lo2k


Weblog

01/03

2010

0 Comment

1MPTS

A l’initiative d‘Irmou, j’ai décidé de faire le 1MPTS (un mois pour tout savoir). Le soucis c’est que comme je déménage… je n’ai pas eu l’accès au net pendant un moment… je vais donc essayé de rattraper le temps perdu :) .

  1. J’ai montré mes pin’s sur RTL9 ! Je devais avoir 9 ans… c’était un pseudo pari avec ma mère. “T pas cap d’appeler pour passer a la TV”. Je l’ai fais et je suis passé. Il existe une vidéo honteuse de moi ou je montre mes pin’s et ou je ne comprends rien de ce qu’on me dit.
  2. J’ai mangé ma première pizza à 20 ans. Alors euh… oui ! On va dire que j’ai découvert la vie un peu tard… J’ai bu aussi ma première goutte d’alcool a 26 ans. Je supporte toujours quasi aucun alcool, a part du très bon vin blanc…
  3. Je dessine une fois par an. C’est bizarre mais je garde toujours la liste de tout mes dessins et ils se trouvent que quand on regarde les dates, je ne fais en général qu’une seule suite de dessins par an. 3, 4 d’affilés puis plus rien…
  4. Ma chérie a travaillé pour “la compagnie créole” ! Alors oui… ce n’est pas directement une information sur moi mais ils sont à Thionville !!!
    C’est incroyable !
  5. J’ai acheté mon Nikon D80 sur un coup de tête. Un photographe amateur ventait un D80 a une de ses amies. Après 5 minutes de “blah blah”, je me suis rué sur un vendeur. La pauvre dame l’a voulu 30 secondes après moi mais il n’y en avait qu’un seul ! Dommage. Depuis janvier 2009 j’ai pris a peu prêt 7000 photos avec mon appareil. On peut dire que je suis devenu passionné :).
  6. Je suis maniaque ! Même ceux qui me connaissent ne s’en rendent pas compte mais je suis un maniaque de “l’uniformité”.
    Si des crayons sont bien rangés sauf un, je me sentirais obligé de le ranger. Par contre si ils sont tous en tas sauf un bien rangés, je me sentirais obligé de le mettre “dans le tas”.
    Je mange aussi tout les aliments du même plats en quantité équivalente au fur et a mesure du repas.
    Je m’en rend compte car depuis que j’ai emménagé avec Pauline, je veux tout “centrer” dans les pièces alors qu’elle souhaite plus mettre les choses en travers pour donner un style ;-) .
  7. Je suis ceinture jaune/orange au karaté. C’est entre le jaune et l’orange ;)
  8. Quand j’étais jeune, j’étais super difficile pour la nourriture. Pour résumer je ne mangeais que des pommes de terres et du riz. Aujourd’hui je mange quasiment de tout. J’ai même eu l’occasion de manger du Kudu, du facochère et du crocodile. Je n”ai pas encore tenté les insectes… mais… pourquoi pas ? :)

15/02

2010

0 Comment

5 outils que j’ai découvert en 5 mois de Java

Venant d’un monde plus orienté PHP/Python/Ruby, j’ai envie de faire partager avec vous mes 6 premiers mois d’expérience “pro” en Java. De l’extérieur, je trouvais la communauté Java assez strict et remplit d’acronyme (J2EE, JPA, EJB3, WAR) mais une fois passé ce “langage” imposé surement par les téchnicos-commerciaux de chez Sun/Oracle, on se rend compte que Java n’a pas beaucoup a envié a d’autre langage “hype”.

Même si le langage reste très strict et fortement typés, certains outils ont réussi a le rendre flexible dans les méthodes de développement.

Maven

Si je dis que c’est une évolution de Ant, je vais me faire trucider et créer une guerre de religion :) . Cet outil m’a permis de plus facilement structurer mes programmes. Déploiement automatique, test unitaire, Maven crée un squelette qui permet facilement de gérer tout le “cycle de vie” d’une application. Le système de dépendance (repris par Ivy) est plus qu’appreciable :) . Le genre d’outil que j’affectionne particulièrement. Une ou deux lignes de code et tout fonctionne parfaitement, peut importe la plateforme :)

GWT

Je sais que le Google Web Toolkit ne fait pas partit intégrante d’une application Java mais il faut avoué que sur ce coup là, Google a fait fort. Plus qu’un outil de transcodage Java->JavaScript, les différents design pattern (comme MVP) qui sont proné dans GWT m’ont permis de faire un bon spectaculaire dans ma manière de coder.

Guice

N’étant pas particulièrement fan des fichiers de conf en XML et n’étant pas habitué a Spring, je trouve que Guice a toutes les fonctionnalités pour faire de l’injection de dépendance en Java, simple et efficaces :) .

Sonar

Il est toujours bon de développer avec une boussole, savoir où on va. Sonar permet d’avoir des indicateurs de qualité de code. Un petit “mvn sonar:sonar” sur un projet maven et zou ! On a une ribambelle d’indicateurs et le résultat des tests unitaires dans une interface vraiment très pratique.

Sculptor

Si vous ne connaissez pas le concept de “MDA“, ce n’est pas bien grave. Sculptor vous permet de définir votre “model” et de générer toutes les parties de codes rébarbatives au possible.

Génération de code EJB3, JPA, Spring et même GoogleAppEngine ;) . Une fois correctement maitrisé, il vous fera économiser de nombreuses heures ;)


11/02

2010

5 Comments

4 excuses de collègues pour faire du code spaghetti

Vous avez un regard terrifié ! Les yeux en sangs, vous venez de voir 12 000 lignes de codes sans commentaire dans une classe statique. Vous demandez des explications ! Pourquoi ? Pourquoi tant de haine ?

Voici les “réponses” les plus fréquentes.

Lire la suite »


04/02

2010

2 Comments

Pourquoi j’ai décidé d’utiliser CSS3 sans attendre.

Lorsque l’on voit les possibilités apportées par CSS3 comme on peut le voir sur smashingmagazine… ça donne envie !

Mais voilà… certaines fonctionnalités ne sont supportés que par le moteur Gecko, d’autre dans webkit et on se retrouve vite a se rendre compte que de toute façon, ce n’est pas supporté par InternetExplorer 9 voir même 10 ou 11.

Une compatibilité nécessaire “historique”

Si on se plonge un peu dans l’histoire du web on se rend vite compte que les problèmes de CSS remonte  a cette rivalité “Internet Explorer” vs “Firefox” qui a engendré pas mal de cauchemard. Cette compatibilité était réellement nécessaire car souvent les “div” n’étaient pas affichés au même endroit. Le design partait en “sucette” et le site devenait vite complètement illisible.

De nombreux “framework css”, “css hack & tricks” ont vu le jour pour essayer de faire en sorte que notre bon code CSS ne soit pas aussi compliqué que la compilation d’un code source C natif sur plusieurs processeur.

Petite apparté sur les jeux vidéos

Lorsque vous achetez un jeu PC vous regardez bien les “specifications techniques”. Souvent vous pouvez lire “ce jeu requiert une carte graphique compatible DirectX10″ ou encore “le support des shaders 2.0″.

Certaines personnes n’ont pas envie de changer de carte graphique voir même d’OS pour avoir tout en “high details”.

Certains jeux ne se lancent pas si vous n’avez pas les “prérequis” mais d’autre se lanceront en mode “dégradé”.  Les joueurs peuvent donc s’amuser avec leurs jeux en ayant pleinement conscience qu’ils n’ont pas “tout”.

Mon site est compatible Netscape Navigator 4.0 GOLD

Au final, pourquoi ne pas faire pareil pour le web ? Pourquoi ne pas dire aux utilisateurs “Vous n’aurez pas tout en high detail sur IE. Si vous le voulez utiliser Chrome” ?

Bien sûr la condition est de faire en sorte que le site reste utilisable et que la navigation n’est en rien géné sous IE. En prenant l’analogie avec les jeux vidéos, les jeux restent utilisable et fluide même sur des cartes graphiques moins bonnes !

Un bord arrondis, un petite ombrage bien placé, ces choses ne changent en rien la navigation. Faites donc votre site pour tout les navigateurs et rajoutez plein de CSS3 pour rendre le site plus beau et plus kawaï ;) .


01/02

2010

0 Comment

Les handicapés numériques

Internet fait à présent parti de notre vie. Facebook, Twitter, Msn, les mails, il est de plus en plus rare de recevoir une “carte postale” de voir un album photo qui n’est pas en ligne ou encore de chercher dans un annuaire papier un numéro de téléphone. Pourtant le développement d’internet a des avantages mais aussi beaucoup d’inconvénient.

Un monde qui s’adapte à la vie numérique mais un monde numérique qui ne s’adapte pas toujours a la vie des gens.

Internet a clairement changé notre mode de fonctionnement pour nous simplifier la vie, mais qu’en est-il des personnes qui ne peuvent pas s’adapter au monde numérique ?

Je vous vois venir “ils ont qu’a s’adapter !”. On a souvent l’image d’octogénaire qui vont encore a la banque pour savoir combien de sous ils ont sur leurs comptes alors que 3 clics sur Internet nous permettent de le savoir. Ils n’encombreraient pas les fils d’attentes ! Sans compter qu’en plus, ils veulent papoter !

Vous seriez très surpris de voir que dans le cadre d’un projet que j’ai eu l’occasion d’entrevoir au centre de recherche où je travaille, de nombreux octogénaires n’ont aucun problème avec l’outil informatique. Ils se sentent même d’ailleurs frustré d’avoir des interfaces “restreinte” car au final, ils se considèrent comme des utilisateurs normaux.

L’image du 3ème age complètement largués par l’outil informatique est ARCHI FAUSSE.

Qui demain risque d’être un handicapé de la vie numérique ?

Vous, moi, n’importe qui !

Beaucoup de choses peuvent impacter notre capacité a utiliser les outils informatiques.

  • Problème de coordination (Parkinson)
  • Problème de vision (Mal voyant/Aveugle)
  • Problème cognitif  ou perte de mémoire

On se rend vite compte que d’ici 30 a 40 ans, ces problèmes n’auront pas disparu pourtant l’utilisation d’Internet sera encore plus présente d’ici là. Et dans 40 ans c’est nous qui auront peut être des soucis de cet ordre.

Lire la suite »


18/12

2009

0 Comment

Comment réutiliser son propre code (et ne pas réinventer la roue) ?

Cela fait bientôt… longtemps que je dev :) . Ouh là ! Bien plus de 10 ans ! Je prend un coup de vieux là d’un coup mais fort est de constaté que ma mentalité a pas mal évolué avec le temps.

J’ai envie aujourd’hui de vous faire partager un certain nombre de choses dont je me rend compte en même temps que je commence a perdre mes cheuveux :-) .

La réutilisabilité.

Ahhh la jeunesse, la fac ! Quel nostalgie !

Je me souviens a chaque fois que j’avais une idée d’amélioration dans un programme, je reprogrammais TOUT. Repartir d’un projet vide et tout refaire pour atteindre le code “ultime”, celui qui sera maintenable et rapide à la fois.

Mais voilà… en prenant de l’age. Il n’y a plus maman pour faire les courses, la vaisselle, la lessive et du coup il y a forcément moins de temps pour dev. Alors forcément, si j’ai quelque chose qui marche, j’ai pas très envie de réinventer la roue (surtout carré). Lire la suite »


27/11

2009

0 Comment

Scrutator V3 arrive

Scrutator ? C’est quoi ?

A la base, c’était juste un petit bot irc qui surveillait le chan #funradio pour savoir ce que disait mes potes, histoire de ne pas perdre un seul lien “croustillant”.

Mais voilà… il a pris de l’ampleur, multi chan, multi serv (la V2) et la CATASTROPHE. Bots sur plusieurs machines qui communique pas trop entre eux. Ils partent pas des chans, mise à jour difficile, et quand il y a un bug, PATATRAC, ils l’ont tous !!!

J’ai donc ressortis il y a un an et demi, une idée que j’avais eu chez Linbox/Mandriva lors de mon stage. Faire un “agent” a qui l’on donne des ordres et qui, si il n’a pas le code pour l’executer, le télécharge a la volée. Une sorte d’import “on the fly”.

Voilà ! J’y suis ! Il est terminé http://github.com/xblaster/scrutator.

J’ai enfin mon système de robot qui peut se mettre à jour a la volée basé sur python twisted. Les premiers tests sont très concluant. Je commence a implementer le protocole IRC puis viendra surement Twitter, Facebook et autre.

Certains de mes amis pensent que c’est possiblement Skynet car à terme j’aimerais que tout soit décentralisé. Que les bots s’échangent le code directement entre eux avec un système de confiance par clé GPG :-) . Une sorte de réseau de surveillance incassable. Dans la pratique ça serait possible… il me manque juste encore du temps.

Si vous voulez m’aider, n’hésitez pas à me contacter et à forker mon git ;)


04/11

2009

0 Comment

Une petite application de reconnaissance de formes en Java Web Start

Voilà le résultat de quelques petits tests que j’ai effectué.

neural_ocr

Ceci est un petit java web start où on apprend à une application a quoi ressemble des pommes, des poires des maisons (ou autre) en les dessinant.

Après 3 ou 4 symboles de chaque, vous pouvez lui demander de deviner ce que vous avez dessiné en lui proposant un nouveau dessin.

Enjoy :) .

Derrière, rien de bien miraculeux, juste un petit réseau de neurones très basiques au final…


29/10

2009

2 Comments

Une Intelligence Artificielle peut-elle devenir raciste ?

Une partie de mon nouveau travail consiste à réfléchir et à mettre en place des systèmes pour faciliter le traitement des données. Réseaux de neurones, systèmes expert, statistiques, etc.

C’est un monde merveilleux :-) . Je dessine un “1″ et l’ordinateur trouve tout seul grâce a son apprentissage que j’ai bien dessiné un… et bien oui, haha… un “1″. INCROYABLE ! Mais comment a t-il trouvé cela ? Parce qu’il s’est basé sur un jeu de test.

En fait toute intelligence artificielle repose plus ou moins sur une base de connaissance ou une modélisation plus ou moins humaine de la problématique.

Mise en place d’un système prédictif

Imaginons que je veuille avoir un système prédictif sur le potentiel d’une personne a commettre un délit aux États-Unis. Mon intelligence artificielle va se basé sur l’historique, sur un jeu de test existant pour apprendre. L’IA va s’adapter et va très vite se rendre compte que statistiquement, quand on est noir on arrive plus souvent en prison. Résultat ? L’IA va peut être dire (et cela serait presque légitime) que lorsqu’on est noir, on a plus de chance de commettre un délit et d’aller en prison.

Au final ce n’est pas parce qu’il est noir ou parce qu’il a vécu dans une banlieue qu’il est devenu criminel mais c’est surtout par son vécu, ses parents, ses amis… mais cela n’est pas modélisable.

Lire la suite »


20/10

2009

0 Comment

Un moteur physique avec des canvas grâce à GWT

Chose promise… chose promise !!!

Je viens de faire un petit “proof of concept”.

Qu’est-ce qui est plus difficile que de faire un petit moteur 2D en full javascript/canvas ?
Un petit moteur 2D en full javascript/canvas avec un moteur physique !

jbox2d_in_gwt

Il n’y a aucune bidouille et le rendu est entièrement fait par votre navigateur préféré. Je note qu’a part Google Chrome, les autres s’en sortent assez rapidement très très mal.

Pour la réalisation, j’ai tout simplement intégré JBox2D dans un module GWT.

Il faut être clair c’est rapidement “TRES LENT” et soumis a encore quelques petits glitches, cependant cela montre que “c’est possible” sans trop se prendre la tête.

Pour ceux qui sont intéressés, je pourrais fournir le code source.

Edit:

Un 2eme exemple avec “spawn” des caisses avec la souris.



Exponential Fault is proudly powered by WordPress
Entries (RSS) and Comments (RSS). Theme by Jérôme Wax
Contact