Flower Petals fluttering in front of windmills

Flower

Flower Petals fluttering in front of windmills

When it came out, in 2010, Flower had excellent reviews, the game sounded promising, and then I forgot about it. I recently bought it and played the first three levels of the game. Flower is a pretty strange video-game, there is nearly no explanations, and the game is not very directive you control a swirl of flower petals, and you fly around in some landscape, touching other flowers that will bloom, giving you more petals. Making certain clusters of flower blooms make other flower grows, brings to life some part of the scenery: tree flourish, rocks move, windmills start turning. The level ends once all its parts are activated.

I found the game very soothing, while the graphics are pretty simple, they are gorgeous, and get the important thing right, the effect of the wind in the grass, because whatever the title says, this game is about wind in the grass. I also liked the way a button press influences both the speed and the camera view, as if the viewer would take a step back to blow the petals. While the game is not really fast, it is neither so slow as to become boring.

In conclusion, a nice, calm game, that is available for download for around 10 CHF.

Flattr this!

Recursive QR-Codes

recursive_barcode

QR-Codes are very convenient, they let you encode data in a way that every mobile phone can read. I particularly like the fact you can embed the name and password of your wifi network, so that guests don’t need to type them in. You can also embed urls in barcodes, for instance to advertise your blog. But you can also embed data directly into the url, without the need for any web-server, using the data: URI scheme defined in RFC 2397.

So you can embed an image inside a barcode. What kind of image? The image of a QR-code of course! The code on this post contains another code that leads to a web-site. It cannot be decoded directly, instead you need to somehow capture the second code contained in the first and run it through the QR-decoder a second time. You could go deeper, of course, but the amount of data keeps growing, as the PNG file of a QR code of an url is pretty bad way of encoding an url. Still I wonder if some graphical pattern would appear if you repeated the scheme deep enough, this could give an interesting tapestry.

Flattr this!

Vienna RSS

Evil Genius

Like many other geeks, the shutdown of Google Reader forced me to look for alternatives. I tried , while the UI looks nice at first glance, it is really not convenient: a lot of pixel space is wasted to draw colourful blocks and the interface is far from responsive, the way Feedly runs on OS X is also way toO intrusive: a safari extension, which does not work when one uses the nightly builds. I really fail to see the point of such a development scheme: you have to support each browser as a separate platform, and you are still bounds by the performance of javascript and the UI possibilities of a browser.

I reverted for a few days to Reader, when I saw ads for another alternative tool: so I tried it out. Compared to Taptu, Feedly is a well design and smooth UI, after five minutes, I could not figure out how to import all my reader feeds into the tool. Again a lot of colour blocks (darker than Feedly) with no clear navigation feature, nor any special tool to import from Reader, which is really stupid when you start a advertisement campaign aiming reader users. I suspect they’ll get a horrible conversion rate.

Alias is using Newsblur without being overly enthusiastic which is a shame for a paying service. Another friend of mine suggested I try out . Vienna is an old-school Mac OS X application, with a UI that looks like that of the mail program of OS X: left pane with the list of feeds on the left, top with each item, below the preview, articles are opened into a new tab. The interface feels a bit retro, but makes way better use of my screen space that its HTML brethren with its compact menu. Basically I use its compact mode to sort out what I’m really going to read, then open it up in Safari in Reader mode. For the moment this seems the most convenient tool for me, even though it only runs on my Laptop and seems to have its own glitches. We will see where it goes.

Flattr this!

A red-haired woman in a fur coat besides a pinao

Evil Genius

Evil Genius

Good old games has release a new Mac port of a Windows game: Evil Genius. Clearly inspired by the Dungeon Keeper series, this games lets you control a villain overlord in a James Bond like universe: you build you secret lair and plot operations around the world, while secret agents a tourists stumble upon your secret base.

On Mac OS X the game runs using wine, this means a rather clunky full screen mode, but this aside, it plays fine, I would have like to be able to run the game at a higher resolution. The graphics are good for the time-frame of the game, but nothing special. The real asset of the game is the design and the underlying humour, your guards wear orange jump-suits and go for smoke breaks. Those pesky spies wear suits, or british bermuda pants, the tourists are lost. The music follows the general theme.

A red-haired woman in a fur coat besides a pinao

I found the game rather complex, in particular you need to divide your time between your base and the world map. In the base, you can construct rooms and traps, but also control around your boss and his henchman, each character has special powers, but I have not yet reached mastered this aspect of the games. Basically everything you had in Dungeon Keeper II is present, with more complexity: your boss and the stolen objets motivate the troops, doors have multiple locking levels, you not only have rooms, but also objets within them, and they can be moved. You can not only built your base, but the hotel to keep the tourists away from your base (and keep the spies busy).

While the game is fun, I found it a bit to slow, as you spend quite a lot of time doing micro-management, dispatching your minions, tagging intruders for interrogations, scheduling them, fixing the traps, and moving around stuff to improve the base. Somehow the rhythm reminded me of Tropico, but maybe it’s the whole tropical island. All in all a nice game, but it does not reach the fun level of Dungeon Keeper, I also feel the games would play better if it were better integrated, just getting proper letterbox format on my main screen for instance, more generally I find it weird to have 3D games needing to run in their native resolution.

Flattr this!

Squid cache logo

Proxy Page

Squid cache logo

Squid’s default error page are pretty boring, and I was wondering if I could replace them with nicer ones. The pages are build using templates stored in the /opt/share/squid/errors/English/ directory, and they are simple text files with some printf style substitutions. There are two problems with this, first, squid needs to be restarted each time the files are changed, which is annoying, second one can only serve one text file, so no external style sheet or image files. Of course it is possible to embed everything, into the web page, by inlining the CSS and by using the data: protocol for images, but this is cumbersome.

A better solution is to have a page with a minimal amount of layout and do everything in an external CSS file. My NAS is running a web-server, so style sheets and images can be served from there, but how do I reference them. I could hardcode the ip address of the NAS in the template, but this feels brittle, if the server’s address changes, I’ll need to rewrite all templates. I first thought of using the mulicast DNS, in my case tekai.local, this worked very well with Mac OS X and my iPhone, but not so well with my Android tablet and my Chromebook. Those two devices seem to have limited support for RFC 6762. The squid templates offers a %I code that gets resolved to the address of the proxy. Alas, this is the externally visible IP address, and the web-server’s port is not visible on that side.

In the end I used a small hack: insert the server’s multicast DNS name into the /etc/hosts file. Mac OS X and iOS will see the .local name and resolve it by themselves, others will send the request for the resource to the proxy, which will resolve it using its static configuration and will call the web-server collocated with the proxy. The header of my template files look like this now:

<html>
<head>
<title>Error: requested URL could not be retrieved</title>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="http://tekai.local/squid/style.css" />
<base href="http://tekai.local/squid/" />
</head>

Flattr this!

Unison logo

Building Unison 2.32 for Synology DS211

Unison Logo

I wanted to build the unison file synchroniser for my Synology DS211 NAS. This is always complicated by the fact that unison is written in Ocaml. Here are the steps I followed, largely inspired by this post on compiling unison for a DS212+ and this post (in german) on installing unison 2.32 on a Bufallo NAS. All the instructions assume you run as root. First you will need to install ipkg, beware that the built-in wget does not work properly with ipkg, so you need to manually install a newer version of wget and then make sure that /opt/bin/ is early in your path so that ipkg can use it.

cd /volume1/tmp
ipkg install ocaml make gcc textutils
rm /opt/arm-none-linux-gnueabi/lib/libpthread.so.0
ln -s /lib/libpthread.so.0 /opt/arm-none-linux-gnueabi/lib/
wget http://www.seas.upenn.edu/~bcpierce/unison//download/releases/unison-2.32.52/unison-2.32.52.tar.gz
cd unison-2.32.52
vi update.mli
Remplace the line «module NameMap : Map.S with type key = Name.t»
with «module NameMap : MyMap.S with type key = Name.t»

make clean
make mkProjectInfo
make NATIVE=false UISTYLE=text CFLAGS=”-cclib -L/lib”
cp ./unison /opt/bin/
unison -version

The last command should return unison version 2.32.52 confirming that the binary works properly. To ensure that remote calls find the proper binary, add the following line to your unison configuration: servercmd = /opt/bin/unison.

Flattr this!

Pac File

🔧

So I run my own squid proxy service on my Synology NAS. While it easy to associate a given proxy setting with an wifi network for both iOS and Android devices, Mac OS X has this semi-working notion of network location, which would make a lot of sense it the location was determined by the wifi network or the physical location. But it does not. So how to configure the laptop to talk to my proxy when at home and not if somewhere else?

The solution I found is to write a custom PAC file which basically uses my proxy if its name can be resolved. The file is standard fare, with just one added line to check that the proxy can be resolved. One important thing is to not configure the pac file as a local file: this will not work, as Safari will be unable to load it from the sandbox, the simplest way I found is to serve it from the local web-server on the machine, i.e. http://127.0.0.1/home.pac.

function FindProxyForURL(url, host) {
  url = url.toLowerCase();
  host = host.toLowerCase();
  /* Don't proxy local hostnames */
  if (isPlainHostName(host)) {
    return 'DIRECT';
  }
  var hostIP = dnsResolve(host);
  /* Don't proxy non-routable addresses (RFC 3330) */
  if (isInNet(hostIP, '0.0.0.0', '255.0.0.0') ||
      isInNet(hostIP, '10.0.0.0', '255.0.0.0') ||
      isInNet(hostIP, '127.0.0.0', '255.0.0.0') ||
      isInNet(hostIP, '169.254.0.0', '255.255.0.0') ||
      isInNet(hostIP, '172.16.0.0', '255.240.0.0') ||
      isInNet(hostIP, '192.0.2.0', '255.255.255.0') ||
      isInNet(hostIP, '192.88.99.0', '255.255.255.0') ||
      isInNet(hostIP, '192.168.0.0', '255.255.0.0') ||
      isInNet(hostIP, '198.18.0.0', '255.254.0.0') ||
      isInNet(hostIP, '224.0.0.0', '240.0.0.0') ||
      isInNet(hostIP, '240.0.0.0', '240.0.0.0')) {
    return 'DIRECT';
  }
  if (isResolvable('tekai.local')) {
    return 'PROXY tekai.local:3128';
  }
  return 'DIRECT';
}

Flattr this!

From small to big

Swisscom Outage

This morning I woke-up and realised that my internet connection seemed to be dead, so I went over the usual routine: reseting the router a few times, and ended-up doing a factory reset, the router being convinced that my printer was called “-j LOGDROP”, which cannot be right. Still no internet, so I tried calling the help-desk, where, of course, all operators were busy and the system told me they could not help me. More looking around, the router has working DSL line, but no internet address is assigned to it. Weird.log_drop -j One more call, I must go deeper in the labyrinth of voice-menus, and finally an announcement that all the ip networking is borked, so I use my mobile phone to go and check on the Swisscom customer centre, where there is a thin line telling that all IP and TV services on landline are disrupted, and that I’m advised to not changed my internet settings… Ah, well, by the time I wrote this the network was restored, and my twiddling did not prevent that, time for a cup of tea…

Flattr this!

Odeurs

🌸

Prémisses d’orage, les fleurs de magnolia et de cerisier du japon flétrissent sur le bitume, l’odeur de la pluie sur la terre, celle du bois frais, trop humide encore, d’un futur plancher, encore un voisin qui s’en va, laissant derrière lui un appartement en chantier. Éclairs, les cheveux mouillés je vais fermer les fenêtres de ma chambre, le tatami mouillé par quelques goutes tombées libère son arôme de paille. Ce printemps arrive avec peine, mais il viendra…

Flattr this!

Une silhouette à contre-jour

Chroniques d’outre-scène

Une silhouette à contre-jour

Même si le français est ma langue dominante, il y a toujours eu une grande distance entre moi et la littérature française. La notion qu’il existât des écrivains romands (si on ignore Rousseau et Voltaire) est longtemps restée théorique, et le temps qui passe ne m’a pas rempli de bienveillance envers une culture qui encourage les textes longs et ronflants. J’ai donc découvert avec plaisir les auteurs romands et contemporains, à commencer par Nicolas Bouvier.

Ma dernière lecture dans cette catégorie sont les Chroniques d’outre scènes de Jeanne Perrin, deux petit livres brochés remplis de billets d’une page qui racontent les coulisses du monde du spectacle lausannois, festivals, guichet au théâtre de Vidy, happening dans un grand hôtel où tournée à Tōkyō, chaque page est un petit instantané depuis les coulisses. Le premier tome est illustré par Mercedes Riedy, le second par Mario del Curto et Nicolas Pilet.

Une femme pendue dans des cordes

Ça aurait pu être des billets de blog, mais c’est mieux écrit. C’est souvent drôle, parfois espiègle, parfois tendre, toujours finement observé. Le ton est proche, intime même, il n’y a pas de distance entre le lecteur et la scène. Le paradoxe, pour moi, c’est que si la langue du récit est proche, le sujet ne l’est pas : vision féminine d’une univers d’artistes. Une monde exotique dans une ville où j’ai vécu, à la limite de mon réseau social.

Tellement conscient qu’il n’y a pas d’ailleurs. Même à Tōkyō, même au bout de la nuit. Condamné à être quelque part, obligé d’exister. Il n’y a pas d’ailleurs, même pour les journalistes, les voyageurs de l’ombre.

Chroniques d’outre-scène tome 1

Illustrations : Mercedes Riedy
Éditions Paulette
ISBN : 978-2-97006532-6
Pages : 103
Chroniques d’outre-scène tome 2

Illustrations : Mario del Curto & Nicolas Pillet
Éditions Paulette
ISBN : 978-2-94047502-5
Pages : 105

Même si elles sont courtes, les Chroniques d’outre-scène ne sont pas rapidement lues, chaque page étant son petit monde, son petit praliné d’impressions, on préfère poser le livre un instant, savourer la page, lire autre chose pour aborder le souvent l’esprit frais, un peu comme un mange un lamelle de gingembre entre les sushis. Le temps de réaliser que les numéros de page du second tome sont côté jardin. En fin de compte, le sujet du livre n’est pas réellement ce monde d’acteurs, mais le regard et les reflets de la vie d’une personne dans l’ombre, Jeanne, tout simplement…

En conclusion deux petits livres qui sont une petit bouffée d’air vrai très bienvenue que je recommande vivement.

Flattr this!