Archive for the ‘The geek way of life’ Category
HashMap.put(null, toto)
Question: does Java’s HashMap
accept null
as a key?
Read the rest of this entry »
Forum Trium 2006 – back!
Quelques impressions sur le Forum Trium 2006 a Paris Expo, Porte de Versailles.
Forum Trium’06
Je serai present demain, toute la journee, a l’edition 2006 du Forum Trium (Mines Paris, Ponts, Techniques Avancees, ENSAE), comme representant de mon entreprise.
Je suis facile a trouver: il suffit de chercher un geek mal a l’aise dans un costume ;-).
CSS changes
I modified background colors.
Yes, I know, it’s ugly, but:
- I am fed with using CSS grammars. Had I chosen, CSS would be an XML-based language, instead of a grammar.
- I was fed with “black font on white background”. It is not yet a rainbow, but it is easier to read, at least I feel it as less aggressive for the eyes.
- I did not want to enter deeper in the PHP source code at 11pm.
Therefore, I think I will not change anymore the stylesheet for a while.
Languages hints
If you use Internet Explorer or other deprecated browser, likely you will not see it, but I added a small flag on links. The flag hints the language the pointed page is in.
To perform that, I had to modify lightly the CSS used in the blog.
a[hreflang]:after { color: gray; font-weight: bold; content: "\0000a0[" attr(hreflang) "]"; vertical-align: super; font-size: 80%; }
I found the hack on Tristan Nitot’s Standblog 😉 Thank you Tristan 😉
(Of course: those who have not yet experienced a modern web browser may download Mozilla Firefox).
Edit: I changed again, very slightly, the style to locate the language hint upper than the text.
Sony-Ericsson Z530i
Au debut je pensais que mon vieux Samsung (age de bientot 4 ans) ne captait plus a cause des larges murs du bureau. Finalement je me suis rendu a l’evidence: il ne fonctionnait plus correctement.
C’etait tres ennuyeux, car outre le fait que j’avais deja rate une serie de Sheva Brakhoth a cause de cette panne, j’attendais un appel important de mon rav, appel susceptible de potentiellement me sortir de ma periode “Dead or Dead” (toujours en cours malheureusement ; je ne pensais pas que ca durerait si longtemps). De toute facon ca faisait quelques mois que je songeais a changer de telephone. Apres le travail je me suis donc dirige vers mon vendeur de portables prefere, et me voici avec un Sony-Ericsson Z530i.
Je n’ai pas encore eu le temps de faire le tour de la bete, mais le principal dilemme est deja pose: comment vais-je le personnaliser? Problematique fondamentale pour tout geek qui se respecte…
Apres mure reflexion, j’ai presque arrete mon choix:
- fond d’ecran: une banniere etoilee, evidemment!
- sonnerie d’allumage: le theme des World Warriors, vieux souvenir de ma periode karate shodokan.
- sonnerie pour les SMS: le souffle de Dark Vador (ca fait froid dans le dos la premiere fois) 😉
- sonnerie pour les appels: la j’hesite encore… Pour mon Samsung j’avais compose a la main une compilation de l’Ocarina du Temps de Konji Kondo, mais sur le Z530i ce n’est pas possible… Je vais surement opter pour un theme retravaille de Star Wars, ou, pourquoi pas, un transfert mp3 du trailer de Twilight Princess, ou bien encore un theme midi cree par Seiji Yokohama. Toujours est-il que mon choix n’est pas encore definitif.
IMHO What Java lacks
Up to this day, I have coded in Java for more than 6 years. Of course, I enjoy Java, its compilation engine, and above all: with Java I need not handle pointers myself, which is a great progress (I suffered a trauma when I was younger, with C/C++ pointers).
Thanks to Java 5 (Tiger), many improvements are now available. Among them, the most I use are generics and the new for
loop, ala foreach
.
Nonetheless, I think Java lacks some features I encountered in other languages. Of course, I admit that implementing new features into such a complex project like the JVM is a hard issue. But I throw my ideas, may Sun developers feel free to accept or reject them.
- Multiple heritage is impossible.
- Default parameters values are unavailable:
public Toto(int i, String sz){ // do something } public Toto(){ this(0, “tata”); } public Toto(int i){ this(i, “tata”); } public Toto(String sz){ this(0, sz); }
In PHP (or Python), all these functions may be summed up to:
[php] function Toto(i = 0, sz = "tata"){ // do something }
- Exception handling is too robust:
Let’s consider this function:
[java] public void toto() throws Exception1, Exception2, Exception3, Exception4{ // do something }
Now, in Java we need to catch the exceptions like this:
[java] public void tata() throws Exception4{ try{ toto(); } catch(Exception1 e1){ e1.printStackTrace(); } catch(Exception2 e2){ e1.printStackTrace(); } catch(Exception2 e2){ e1.printStackTrace(); } // throws the uncaught Exception4 }
Obviously, we can catch a generic java.lang.Exception, but let’s acknowledge there is more elegant way :-(( I would like to have this code:
[java] public void tata() throws Exception4{ try{ toto(); } catch(Exception1, Exception2, Exception3 eee){ eee.printStackTrace(); } // throws the uncatched Exception4 }
Plugin de coloration syntaxique
J’ai installe le plugin de coloration syntaxique| pour DotClear.
Je dois dire que c’est pratique… et tres efficace:
[cpp] while (*p++=*q++); fprintf("toto %d", 18);
[mysql] select * from toto where titi = 15
Merci aux auteurs, je vais m’amuser comme un fou! 😉