Sunday, June 22, 2008

ruby 会議


Cette fin de semaine c'etait l'annuel Ruby Kaigi (lit : "reunion sur le Ruby"). Ruby est un langage de programmation de haut niveau (3e generation, abstrait, etc.) C'est le langage que j'utilise au bureau pour developper MS2 (en japonais). Un langage de haut niveau integre beaucoup d'abstractions. Par exemple, le meme code ruby peut fonctionner autant en windows qu'en linux ou sur mac. Ruby possede aussi toutes les librairies pour rendre les taches classiques vraiment simple.

Par exemple, en C++ une simple boucle (un des principes de base de la programmation) ce traduit comme ceci :

for (int i = 0; i < 5; i++) {
  cout << "This line will show up 5 times (" << i << ")" << endl;
}


Pas des plus evident pour les non-inities. En ruby l'exact meme resultat pourrait etre obtenu comme cela :

5.times do |i|
  puts "This line will show up 5 times (#{i})"
end


Meme nombre de ligne, mais personnellement je trouve la maniere Ruby plus comprehensible. Evidement, pour les gens qui ne connaissent rien a la programmation, c'est peut-etre tout aussi esoterique.

Quoiqu'il en soit, cette fin de semaine j'ai entendu parler de tout ce qui se passe avec Ruby presentement. Des projets "cool" en developpement aux nouvelles fonctionnalites dans les prochaines versions du langage en passant par les facons d'integrer Ruby dans une entreprise.

90 pourcent de la fin de semaine c'est passe en japonais avec seulement trois ou quatre presentations en anglais. Heureusement, de sympatiques informaticiens bilingues ont su traduire les grandes lignes sur un ecran texte pour les presentations en japonais. Avec les fiches Power Point et ma faible comprehension du japonais je ne m'en suis pas sorti trop mal. Mais ca demande une concentration qui me rend tres somnolent apres une heure seulement ! Pour la deuxieme journee j'ai emmene mon laptop pour au moins avoir quelque chose a faire pour me garder reveille, meme si ca veut dire que je porte moins attention aux presentations !

Les conferences ont eu lieux dans le centre de conference a Tsukuba a environs 45 minutes du centre de Tokyo sur la ligne de train du meme nom.

Ma compagnie paye la conference a la condition que je fasse un bref rapport sur les differentes presentations qui ont eu lieu durant la fin de semaine. Comme au moment ou j'ecris cela c'est encore frais dans ma memoire et que, en fait, ca pourrait interesser une ou deux personnes, je vais essayer de resumer un peu les conferences auquelles j'ai assistees. Pour les personnes qui ne comprennent rien a ce que je raconte depuis le debut de ce blog, c'est votre signal pour arreter de lire !

JRuby :
  • Une des premieres conference samedi a fait la presentation de JRuby. Normalement, l'interpreteur de Ruby est ecrit en C. Ceci est un port de l'interpreteur en Java. Ce qui est interessant c'est qu'en plus de pouvoir utiliser les fonctions communes de Ruby, JRuby permet d'inclure les librairies de Java, meme l'impressionnante librairie Swing. Comme Java est tres implique dans les services Web et que le langage Ruby (avec Ruby On Rails) est aussi tres actif sur le web, c'est une alliance fort interessant. Le presentateur a d'ailleur demontre comment envolloper une application rails dans un WAR et ensuite deployer sur un serveur Tomcat.


Rubinius :
  • La version 1.9 de ruby (presentement en developpement) presente plusieurs nouvelles fonction pour faire de la virtualization. Le projet Rubinius (de ce que j'en ai compris) essaye de faire la meme chose mais a ca maniere. Normalement, l'interpreteur Ruby roule dans le systeme d'exploitation. L'idee d'une machine virtuelle c'est que l'interpreteur Ruby roule un AUTRE interpreteur. Ceci permet en theorie d'obtenir plus d'information sur l'environnement et l'etat dans lequel roule le programme. Et comme Ruby permet quelques passe passe de Meta-Programmation completement saute, avec la machine virtuelle il est par exemple possible de definir des nouvelles methodes pour obtenir le contexte d'une application et d'agir sur ce contexte plutot que dans le contexte de la methode. La personne qui decide de faire ce genre de design devrait toutefois avoir une foutu de bonne raison ! Le gros probleme avec Rubinius c'est que toute cette complexite a un prix : la performance. Pour l'instant, c'est vraiment pas fameux il semble.


Internationnalization
  • J'ai l'impression que la moitier de la journee de samedi a ete passe a discuter differentes facettes du probleme de l'internationnalisation. Comment convertir les millions d'encodage de pars le monde d'une facon simple et efficace. Personnelement, le sujet est vraiment compliquer et pour une raison que j'ignore je n'arrive tout simplement pas a m'y interesser serieusement ce qui fait que j'ai dormi la majeure partie de la presentation.


Samedi apres-midi
  • Il y a eu un paquet de plus courtes presentations en fin de journee samedi. Entre autre un professeur d'universite qui est venu expliquer pourquoi, dans un court d'introduction a l'informatique il a choisit d'utiliser Ruby. Ruby est simple, flexible, et IRB permet l'execution et le debugage en temps reel. Une presentation sur RSpec, qui est un "framework" pour du developpement oriente test (Test Driven Developpement). Ce que je retiens de la presentation c'est la presentatatrice qui a dit : "70 pourcent de notre code est RSpec". Pour elle ca semblait etre une tres bonne chose, mais il me semble que c'est un peu trop extreme a mon gout. J'ai attrape la fin d'une presentation ou le type faisait des demonstrations interessante de scripting avec ruby et VIM ou il postait du texte de VIM a mixi en utilisant une commande avec un "hook" en Ruby. Une courte discussion de 5 minutes aussi sur une facon de securiser DRuby, un moyen de distribuer du Ruby.


Ruby-Cocoa et MacRuby :
  • Un employe de Apple est venu faire une presentation sur les deux projets sur lequel il travail presentement. Deux maniere d'utiliser Ruby plutot que du Objective-C. Considerant que 80% des gens present se promenait avec des Mac, la periode de question fut assez anime. Pour ma pars, je n'ai jamais toucher a un Mac de ma vie, alors l'idee de developper des application Mac en Ruby m'affecte tres peu.


REST Style :
  • Un type est venu faire une presentation sur comment designer une application REST. Il s'agit de developper des applications web en utilisant des URLs RESTful. Utiliser des URL intelligent qui represente bien l'architecture du site et son comportement c'est particulierement important pour les SEO (Search Engine Optimisation). Quand un site est completement fait dans un language scripter et dynamique, ca devient facile d'oublier ce qui se passe avec l'URL.


Scaling :
  • Il y a eu aussi une discussion sur comment elargir les performances quand un service est tres en demande. Le grand gagnant de la discussion ? Mettre en memoire tout ce qui est statique (Memoire cache). C'est le seul moyen d'attendre des performances decente avec un minimum de materiel quand il s'agit de traiter plusieurs centaines de requetes a la seconde !


Finalement il y a eu beaucoup de presentation sur toutes sortes de librairies et de logiciels fait en ruby. Dans ceux interessant : JPMobile, Sequel, Datamapper et plusieurs autres !

Monday, June 9, 2008

D1 pictures

Booth babes !
Premierement, les pitounes !
DSCF3641

DSCF3609

DSCF3569

DSCF3568

DSCF3487

Some racing
Et un peu de course
DSCF3533

DSCF3605

Et pour la joix de tous, un petit video d'une des courses !
For the happiness of all, a little video of one race
Bon, pour une raison bizarre je n'arrive pas a l'uploader correctement, je re-essayerai plus tard...
I have some uploading problems right now, I'll try again later

D1 Odaiba 2008


Cette fin de semaine il y avait un evenement qui m'interessait fort a Odaiba et comme je n'avais pas fait grand chose depuis Nikko j'ai decide d'acheter des billets. L'evenement en question est un excellent remede pour les gens en manque de testosterone appelle D1 grand prix. Il s'agit d'une genre de course dont l'objectif est de faire deraper sa voiture le long d'une serie d'etroites courbes sineuses. Le vainqueur est celui qui arrive le mieux a controller sa voiture dans les conditions les plus extremes.

Au Japon, certains jeunes casse-cous passent leur temps a faire la course dans les montagnes avec leur voiture a propulsion. Comme les routes sont etroites et sinueuses, ils ont developpent une technique pour prendre les virages en derappant. Ils appellent cela le "touge".

Ce tournois decoule de ce genre d'activite mais est au moins regule et beaucoup plus securitaire. La premiere partie etait bien. Pour decider le top 16 qui passerait en quart de finale les voitures passaient une par une sur la piste de course en essayant de prendre la ligne ideale. Les 16 courseurs a obtenir les meilleures notes sur 3 essaies passait a la prochaine course.

Et c'est a ce moment que les choses deviennent interessantes. Jusqu'au quart de finale ca ressemblait beaucoup a ce que je m'attendais. Mais je ne m'attendais pas a ce qu'a partir des quarts de finale les courses se fassent en combat deux par deux en meme temps sur la piste ! C'etait epoustouflant !! Dans un elan de folie j'avais meme invite Aya pour l'occasion, et malgre le fait que rien ne pourrait l'interesser moins que des courses de voiture, la finale l'a pourtant excite autant que je le fu !

L'idee des combats c'est que les deux voitures font la piste deux fois. Une fois en poursuite et une fois en avant. Si celui qui poursuit arrive a depasser, il gagne. Si celui qui est a l'avant arrive a distancer son opposant, il gagne. Vous dire a quel point certaines courses les voitures se suivaient de pres, c'est incroyable. Si aucune des deux voitures ne semble prendre d'avantage sur l'autre, il est possible qu'il y ait un autre round. Pour la finale, il y a eu 4 rounds ! C'etait tellement impressionnant que j'en ai oublie d'en prendre des photos ! Mais j'ai quand meme quelques bonnes photos de l'evenement en general que je vais m'empresser de poster apres ce blog.


This weekend there was an event at Odaiba which kinda interested me. Since I had not been out much since Nikko I decided to purchase some tickets. The event in question is a very good remedy for people in lack of testosterone. This event is called D1 grand prix. It a kind of race where the objective is to make your car drift along a series of tight corners. The winner is the one that can keep the most control in the most extreme conditions.

In Japan, some crazy young boys sometimes go to the mountain passes with their real wheel drive sports cars. Since the roads are winding and tight they developed a technique to take the curves while sliding their cars. They call this racing "touge".

This tournament is the evolution of that completely crazy activity. Hopefully, this tournament was regulated and much more safe. For the elimination rounds, cars went one by one down the turns trying to hit the markers as close as possible to get the most technical points out of three tries. The 16 best drivers would go into the quarter-finals.

And that's where things got interesting. Till the start of the quarter-finals it was mostly like what I was expecting the event to be. But I wasn't expecting the finals to go down two by two at the same time ! It was amazing !! In a lapse of judgment I had even invited Aya whose love for cars is more absent than water in the desert. Yet at the finals she was just as excited as I was.

The idea of the combats is that both cars go down the track at the same time. One car is in pursuit and the other is the follower. They do it twice, switching places the second time. If one car manage to pass the other or if the front car manage to distance the follower then he wins. To tell you how close they get to each others sometimes while drifting, it is incredible. Also, if no car manage to take the advantage during the round, it is possible that they will go for another round. For the final, they had to go for 4 rounds ! I was so impressed I forgot to take pictures during the finals (I regret it now !) But not to worry, I got plenty of pictures of the event.