Les choses importantes…Important things

まだ旅行しています。今大阪の新今宮で止まります。民宿は安くもinternet accessあります。

Once again, I’m traveling. I’m now in shin-Imamiya, in Ōsaka. While the business hotel was cheap, it still has internet access.

Une fois de plus, je suis en voyage. En ce moment, je suis à shin-Imamiya, à Ōsaka. Bien que l’hôtel soit peu cher, il y a un accès internet.

Shin-imamiya est un quartier relativement pauvre d’Ōsaka, ce qui veut dire qu’on peut y voir des sans abris. L’hôtel ou je suis coûte 2500¥ la nuit, et ce n’est de loin pas le moins cher du quartier. Je suis dans une chambre de 3 tatamis, qui en tout doit faire moins de 10 mètres carrés. Les toilettes et la baignoire sont en commun, de fait, je suis en train d’attendre que ce soit l’heure des hommes dans les bains, mais ma chambre à un accès internet. Il y a des choses importantes dans la vie…

J’ai bien aimé la recommandation (en anglais) dans la salle de bain: Please wear clothes in the hotel.

Civilization IV

I have recently received from a friend the Macintosh game Civilization IV. I’m a regular fan of this kind of games, and from time to time I dust of my old copy of Alpha-Centaury to play a game.

The problem of Civilization IV was visible on the requirements on the box: it requires a G5 or a newer intel processor. This is quite a steep requirement for a turn based game. I can understand that a RTS or are FPS game would require some serious processing power and a good graphic card, but a turn based game?

Still I installed the game, downloaded the latest version and ran it. The game ran reasonably fine (it crashed once), but was unbearably slow. Why? My laptop is by far no powerhouse, Rise of Nations, a RTS with 3D effects ran perfectly fine. Civilization IV also includes some eye candy, like a three dimentional view, but nothing that impressive and nothing justifying the absurd processing requirements. OK, units are animated and so are the rivers and the sea. Now can I turn it off and play?

Actually I don’t even understand the need to run in full-screen mode and re-implement a windowing system with panes and all the stuff. It makes no sense to have an RTS where you can still use your e-mail program or chat with friends, but a turn based game? The fact they even added the option to display a clock in the interface is an indication of the way people play. In the case of Civilization, the people at Fireaxis have reimplemented a window system and done a shoddy job of it – basically the interface runs slower than Java applications.

The internals of the game are partially written in Python, I don’t know to what extent the fact that a scripting langage is used can be blamed for the bad performance. When the game crashed, I got a stack trace, that revealed some strange stuff: what the hell is going on in the RaiseException function?

0 com.aspyr.civ4 0x009d0074 _ZNSt14__tree_deleterISt4pairIKPKvmESt20__base_value_compareIS2_mSt4lessIS2_EESaIS4_EE7destroyEPNSK_4nodeE + 1019616
1 com.aspyr.civ4 0×00074004 RaiseException + 263364
2 com.aspyr.civ4 0x00074f48 RaiseException + 267272
3 com.aspyr.civ4 0x00a05cb0 _ZNSt14__tree_deleterISt4pairIKPKvmESt20__base_value_compareIS2_mSt4lessIS2_EESaIS4_EE7destroyEPNSK_4nodeE + 1239836
4 com.aspyr.civ4 0x009fd300 _ZNSt14__tree_deleterISt4pairIKPKvmESt20__base_value_compareIS2_mSt4lessIS2_EESaIS4_EE7destroyEPNSK_4nodeE + 1204588
5 com.aspyr.civ4 0x0006e27c RaiseException + 239420
6 com.aspyr.civ4 0x00a05edc _ZNSt14__tree_deleterISt4pairIKPKvmESt20__base_value_compareIS2_mSt4lessIS2_EESaIS4_EE7destroyEPNSK_4nodeE + 1240392
7 com.aspyr.civ4 0x00074ce8 RaiseException + 266664
8 org.python.python 0x98a8c8e0 PyObject_Call + 48
9 org.python.python 0x98aec35c PyEval_GetFuncDesc + 2268
10 org.python.python 0x98aebd4c PyEval_GetFuncDesc + 716
11 org.python.python 0x98ae9414 PyEval_EvalCode + 9612
12 org.python.python 0x98aebedc PyEval_GetFuncDesc + 1116
13 org.python.python 0x98aebd34 PyEval_GetFuncDesc + 692
14 org.python.python 0x98ae9414 PyEval_EvalCode + 9612
15 org.python.python 0x98aebedc PyEval_GetFuncDesc + 1116
16 org.python.python 0x98aebd34 PyEval_GetFuncDesc + 692
17 org.python.python 0x98ae9414 PyEval_EvalCode + 9612
18 org.python.python 0x98aea5e4 PyEval_EvalCodeEx + 2132
19 org.python.python 0x98aa1530 PyFunction_SetClosure + 3436
20 org.python.python 0x98a8c8e0 PyObject_Call + 48
21 org.python.python 0x98aeb9a0 PyEval_CallObjectWithKeywords + 256
22 com.aspyr.civ4 0×00244810 RaiseException + 2165968
23 com.aspyr.civ4 0x00243f0c RaiseException + 2163660
24 com.aspyr.civ4 0×00243864 RaiseException + 2161956
25 com.aspyr.civ4 0x004e2b00 RaiseException + 4911040
26 com.aspyr.civ4 0x004e0330 RaiseException + 4900848
27 com.aspyr.civ4 0x004e1d78 RaiseException + 4907576
28 com.aspyr.civ4 0x0045d430 RaiseException + 4364528
29 com.aspyr.civ4 0x004e5a28 RaiseException + 4923112
30 com.aspyr.civ4 0x0073e854 RaiseException + 7384340
31 com.aspyr.civ4 0x0073e01c RaiseException + 7382236
32 com.aspyr.civ4 0x0073e0a0 RaiseException + 7382368
33 com.aspyr.civ4 0x006ebd5c RaiseException + 7045660
34 com.aspyr.civ4 0x006da4c8 RaiseException + 6973832
35 com.aspyr.civ4 0x006e70c0 RaiseException + 7026048
36 com.aspyr.civ4 0x006e72b0 RaiseException + 7026544
37 com.aspyr.civ4 0×00629960 RaiseException + 6250016
38 com.aspyr.civ4 0x0061f028 RaiseException + 6206696
39 com.aspyr.civ4 0×00492500 RaiseException + 4581824
40 com.aspyr.civ4 0x0023d954 RaiseException + 2137620
41 com.aspyr.civ4 0x004e009c RaiseException + 4900188
42 com.aspyr.civ4 0×00002664 0×1000 + 5732
43 com.apple.HIToolbox 0x931ea554 DispatchEventToHandlers(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) + 692
44 com.apple.HIToolbox 0x931e9cac SendEventToEventTargetInternal(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*) + 372
45 com.apple.HIToolbox 0x931e9b28 SendEventToEventTargetWithOptions + 40
46 com.apple.HIToolbox 0x931f0e9c ToolboxEventDispatcherHandler(OpaqueEventHandlerCallRef*, OpaqueEventRef*, void*) + 704
47 com.apple.HIToolbox 0x931ea7a4 DispatchEventToHandlers(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) + 1284
48 com.apple.HIToolbox 0x931e9cac SendEventToEventTargetInternal(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*) + 372
49 com.apple.HIToolbox 0x931f0a60 SendEventToEventTarget + 40
50 com.apple.HIToolbox 0x932317a0 ToolboxEventDispatcher + 92
51 com.apple.HIToolbox 0x9323172c HLTBEventDispatcher + 16
52 com.apple.HIToolbox 0x9322fce4 RunApplicationEventLoop + 148
53 com.aspyr.civ4 0×00002714 0×1000 + 5908
54 com.aspyr.civ4 0x000028a4 0×1000 + 6308
55 com.aspyr.civ4 0×00002184 0×1000 + 4484
56 com.aspyr.civ4 0x00001fb4 0×1000 + 4020

Danses traditionelles et grandeur nature

Dimanche, j’ai profité du beau temps pour aller au 犀川 踊り祭りSaigawa Odori Mastsuri, un petit festival de danse sur le berges d’un des fleuves de 金沢Kanazawa. Outre les sempiternels stand de nourriture (j’ai trouvé du pain Nan au cury pas mal du tout), il y avait une scène ou se produisaient différent groupes de danse. Les types de danse étaient très variés, allant de choses plutôt jazzy jusqu’à des danses traditionelles.

Ce que j’ai trouvé intéressant c’est qu’une part importante des groupes étaient dans un style qui est une remise au goût du jour du style traditionel, donc une musique plus rythmée, des très jolis costumes, du shamisen et beaucoup d’éventails. Ce revival est semble-t-il assez nouveau, une quinzaine d’année à ce qu’on m’a dit – ces groupes tiennent à présent le haut du pavé, avec ceux de 太鼓taiko dans les différent festivals.

En un sens, le phénomène n’est pas tant différent des fêtes médiévales qui ont lieu en Europe, ou même du jeu de rôle grandeur nature. En fin de compte, à chaque fois, une motivation non négligeable de l’opération est de s’amuser avec des costumes rigolos.

Une différence intéressante, à mon sens, c’est que la séparation entre tradition et fantaisie est beaucoup plus marquée en Suisse. Lorsque j’ai dansé au festival de 辰口Tatsunokuchi, l’équipe des étrangers dansait avec celle du club de basketball et les équipes sérieuses en costume traditionel et une équipe ou tout le monde était déguisé en French Maid. Je n’imagine pas une équipe de grandeur nature participer au cortège de l’escalade, je ne sais même pas s’il acceptent les elfes et les orques aux fêtes médiévales.

Cette distinction se retrouve au niveau des costumes traditionels, qu’il s’agisse des 浴衣Yukata ou des plus sérieux 着物Kimono. Si la coupe reste généralement traditionelle, l’étoffe et les motifs varient beaucoup, les enfants auront des yukata Hello Kitty, et les adolescentes des couleurs à la limite du fluorescent. Je suppose qu’à 東京Tōkyō , on peut trouver des Yukata goths.

Le paradoxe intéressant, c’est que la société japonaise, qui est plutôt normalisatrice, semble avoir beaucoup plus de facilité pour intégrer différentes activités sociales, qui, en Suisse, sont souvent largement séparées: fête traditionelles, festivals, fête historique, grandeur-nature. Peut-être que les Suisses prenennt les fêtes trop aux sérieux.

Software update

I have uploaded a small CGI script to extract and display SNMP information in a web page. I have also updated other projects recently (i.e in the last month or two), including a new version of the (removed some debugging code), and an new version of (better handling of unknown and EOF opcodes).

View from JAIST

View from JAIST

While playing with Google Earth, I realized that it now contained the outline of JAIST. I first thought that somebody had uploaded the outlines of the buildings of nearby village Ōkuchi. Now nobody is going to modelize those in his free time. It seems Google Earth now contains the outlines of all the buildings of Japan. My feeling is that this data comes from the same data source used by most GPS programs here: many of them display the oultines of the buildings on the screen. The fact that the Guesthouse, where I life seems not be present confirms this. The guesthouse was built less than five years ago. Still, this is impressive.

The screenshot shows the JAIST buildings viewed from the North. The buildings in the foreground are the buildings on the Ishikawa tech center, the large buildings in the center with the green mark are the towers that contain the computer science and the material departement, the small structures in front are technical annnexes, including the air conditionning systems and the liquid nitrogen tanks. The valley behind leads to the village of Ōkuchi.

C64 Orchestra

Comment beaucoup d’autre informaticiens de mon âge, j’ai commencé à programmer sur un Commodore 64. Même si la machine supportait des balbutiments de traitements de texte, c’était avant tout une machine de jeu. J’ai du entendre presque autant de musique provenant du synthétiseur 3 voies que de la radio de ma chambre, que ce soit dans les jeux ou les nombreuses démos, des tours de forces techniques (pour l’époque).

Je ne suis visiblement pas le seul à me souvenir de cette époque: un groupe a décidé de rejouer les morceau de l’époque avec un orchestre classique, le C64 Orchestra. On peut dès à présent écouter l’enregistrement des premières répétitions. J’aime bien la manière dont le résultat sonne, même s’il y a encore quelques couacs…

Google’s Japanese Search

Google Eiga Sushi Screen Capture

Last saturday I had a traffic spike, nothing serious, but still above the 50 hits a day I usually get. This spike was caused mostly by japanese surfers. The main readers of this blog have, until now, had their browser set-up for english or french, but sudently, Japanese surfers represented 50% of the traffic.

The culprit was this page about a sushi movie. As there was no new referal source, this traffic came from search engines. I realized that my blog turn up in fourth position if you search for the terms 映画 鮨eiga sushi on google, that is if you search for movie and sushi. This seems very wrong to me. It can mean one of the following things:

  • That my blog’s entry is somehow the fourth most relevant page on the theme of movies and sushis. Difficult to believe.
  • That google’s indexing algorithm has trouble with japanese pages. Actually, I already suspected that search engines had trouble with the japanese side of the web this spring, when for some time my page, was highly ranked on queries about the 川北祭りKawakita Matsuri. (This is not the case anymore.)

So what is the problem? I suspect part of the problem comes for the dual writing systems: Hirgana and Kanji. A single word can be written using either system, but google returns completely different results for queries in the two systems:

So why doesn’t google transform the data to one canonical writing system? The problem is that the transformation is not always trivial. Transforming kanji to hiragana is reasonably easy: there are web sites that add hiragana reading to a web page. The problem of this transformation is that it loses semantic information: a kanji has a meaning, hiragana is just a phonetic writing. Multiple kanjis can map to the same hiragana (in fact this is very frequent). The reverse transformation (converting hiragana to kanji) is very difficult to do automatically, as it implies understanding the context. The best solution in my opinion would be to convert kanji to hiragana when indexing a page and indexing both the kanji and hiragana version in the index. When a query is entered in hiragana, suggest the kanji based on statistical data, in the same way the google engine suggests corrections for mis-spellings. The main drawback of this approach is that we have doubled the size of word index for a page. Although you might be able to avoid this by making the page point to the kanji and the kanji point on the hiragana reading.

羚羊KamoshikaKamoshika

Kamoshika

土曜日悪い天気でも辰口町の林道で散歩しました。羚羊を見ました。

Despite the bad weather, I did a hike on Tatsunokuchi’s forest road on saturday. I saw a Japanese Serow.

Malgré le mauvais temps, j’ai fait une balade sur la route forestière de Tatsunokuchi samedi. J’ai vu une chèvre sauvage du Japon.

La balade que j’ai fait était plutôt longue, en tout cela m’a pris environ quatre heures et demie. J’ai fait une boucle qui m’a d’abord fait longer le fleuve 手取りTedori, jusqu’à 和佐谷町Wasadanimachi, d’où la route forestière part. La route monte jusqu’à un sommet pour redescendre sur 鍋谷Nabetani. La chose intéressante, c’est qu’après deux bonnes heures de marche, on arrive sur des vallées largement vierges, ou la végétation est bien plus diverses que les sempiternels sugi. Pour des raisons seules compréhensibles par l’administration japonaise, seuls certains segments de la route forestière sont goudronnés. Il ne s’agit pas des segments proche de la plaine, non, au millieu de la montagne il y a deux segments de route goudronnées flambants neufs, qui ne sont connectés au réseau routier que par des routes de vague terre battue. J’imagine les ouvriers empruntant des routes défoncées pour construire une route goudronnée au milieu des montagnes. Il est aussi curieux de noter que les miroirs dans les virages sont plus importants que le revêtement de la route: ils sont posés en premier.

Arrivé à nabetani, il m’a fallu descendre toute la vallée rejoindre l’intersection des routes 54 et 55, et remonter la vallée qui mène à 大口Ōkuchi et de là, JAIST.

Silas

Un des points fort du web, c’est qu’on peut y trouver des informations à propos de choses vieilles et triviales. En discutant je me suis souvenu d’une série que j’ai vu étant gamin, mais les souvenirs étaient pour le moins flous. Quelques requêtes de google plus tard, j’ai trouvé une page sur Silas en anglais avec des photos. Cette série a été tournée en 1979, ce qui ne nous rajeunit réellement pas… Dans mon souvenir, Silas n’était pas aussi jeune. :-P

La saison des moissons

Moissonneuse à Riz

L’été ici à Kanazawa a été très chaud, mais on sent que l’automne arrive, les journées sont courtes, et il commence à faire frais le soir. Hier, j’ai profité d’un des derniers jour de beau temps pour faire un tour à vélo dans les montagnes alentours, j’ai bien fait car aujourd’hui il a plu toute la journée. Les alentours de JAIST regorge de petites routes de montagnes à moitié abandonnées qui ne mènent généralement nulle part, parfois elles se terminent par une grille, parfois par un temple et une source dont l’eau est renommée. Les routes, et les petites villages qui les bordent sont largement vides, et la majorité du traffic concerne la moisson.

Lorsqu’elles sont mures, les gerbes de riz deviennent jaune et ont tendance à se courber, comme le blé. Comme les rizières sont fondamentalement des marais artificiels, la moisson dans les rizières est faite au moyen de moissonneuses légères montées sur chenilles, elles sont de la taille d’une petite voiture. On a l’impression que la région est sillonée de petits tanks rouges, souvent surmontés d’un parasol de couleur bariolée. L’odeur dominante est celle de la paille de riz, bien connue de quiconque a déjà dormi sur un tatami neuf. Si pour la moisson du blé, des gerbes couchées sont il me semble un problème, pour la récolte du riz, cela semble être nécessaire.

Vieux Tunel Nomi-ShiJ’ai une fascination pour les routes oubliées et les passages secrets, et la région en regorge. En général ici les vieilles routes ne sont pas détruites, mais simplement laissées à l’abandon. Cela donne un réseau de routes envahies par la végétation, qui s’arrêtent brusquement. Malheureusement, les endroits intéressants, comme ce vieux tunnel, sont soigneusement grillagés, c’est dommage, ça aurait fait un tunel sympa pour une piste cyclable.