Je suis content

May 4th, 2008

Je viens de me commander un beau Mac Book Pro 15″. J’ai hâte de l’avoir! J’ai travailler avec un Laptop PC (Vista) pendant comme 2 mois et je me suis vite rendu compte que vraiment j’aime pas windows. La dernière fois que j’ai roulé windows temps plein c’était windows 2000. Comme j’ai changé de travail on m’a fournit (Oh surprise) une machine windows et je travaille sur un projet ou il y a des dépendance a un truc qui roule pas vraiment sous Linux. Je me suis dit OK. J’aime pas windows mais c’est plus par principe que n’importe quoi d’autre alors je vais l’essayer. Résultat maintenant je n’aime pas windows mais je sais pourquoi :) !!! En plus du fait que je passais la moitié de mon temps dans Cygwin qui marche vraiment pas bien sous Vista je perdais un temps fou a chercher comment désactiver tous les machins de sécurités. Vraiment Mac même si leur pratique commercial sont pas mieux que M$ au moins leurs produits tiennent la route; pour le moment.

Spamassassin

January 19th, 2008

J’ai installé Spamassassin sur mon serveur y a comme 2 mois de ça. Quand je l’ai fait c’était plus par curiosité d’en faire l’installation puisque le client mail Thunderbird inclue un excellant filtre anti-spam. Je dois par contre reconnaitre que Spamassassin est meilleur. Il a attrape grosso-modo 40% plus de truc que le filtre a Thunderbird. Sous Fedora je l’utilise avec procmail, spamassassin-milter et sendmail.
Le secret pour que ça marche ce sont ces trois ligne dans le fichier /etc/mail/sendmail.mc
INPUT_MAIL_FILTER(`spamassassin', `S=unix:/var/run/spamass-milter/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m')dnl
define(`confMILTER_MACROS_CONNECT',`t, b, j, _, {daemon_name}, {if_name}, {if_addr}')dnl
define(`confMILTER_MACROS_HELO',`s, {tls_version}, {cipher}, {cipher_bits}, {cert_subject}, {cert_issuer}')dnl

ensuite il ne reste qu’a exécuter
make -C /etc/mail
/etc/init.d/sendmail restart
Ces configurations active le filtrage pour l’ensemble des usagers et ajoute [SPAN] dans le sujet des messages identifiés comme en étant.

Zut

December 7th, 2007

Je suis sur le chômage. Ça fait longtemps que j’ai pas été sur la chômage pour vrai. La “ride” a été cool mais la fin a été dure et riche en émotion pas nécessairement bein bein le fun. Heureusement quand on est programmeur on peu se retrouver sans emploi sans trop stresser. Bah c’est le risque quand on travaille dans les startup. J’aurais surement pu me trouver quelque chose dans une grosse boite safe mais il y a quelque chose de vraiment spécial dans de fait de travailler dans une petite compagnie qui commence. Il y a une camaraderie sincère, une ambiance fébrile qu’on retrouve pas dans les grosse boites ou tout est “safe” et établie, vraiment établie. Il y a aussi la latitude technologique et le niveau de formalisme minimal dans les startup qui donne a tous le monde en place le sentiment d’avoir son mot a dire sur la direction des choses. Il y a des exceptions, des grosses boites ou les gens sont répartie en groupuscule selon les projets mais c’est pas la norme. Une place ou j’aimerais vraiment aller c’est air Canada dans l’équipe web. J’ai passé une entrevue pour y travailler comme consultant par l’intermédiaire d’une agence de placement et une question monétaire a fait échouer le tout, mais crime que je les ai trouvé cool c’est gens la. Merci a Nic, Jérémie, Yoann, J-F, France et Jacques pour une expérience vraiment le fun.

2 truc

September 21st, 2007

Mon patron m’as reconnecté avec la musique (classique). C’est vraiment une joie que de re-découvrir le plaisir de s’assoir et de prendre le temps d’apprécier une bonne pièce de musique intelligente. Le trouble c’est de trouver des bonnes interprétations. Il y a tellement de cd que c’est vraiment pas facile. C’est pourquoi le site http://www.gramophone.co.uk est si cool. Il faut s’enregistrer mais c’est gratuit. Une fois que c’est fait on a accès a plein de “reviews” et de recommandation; c’es vraiment cool. En passant des 3 sites Canadadien que je connais (HMV,CDPLUS,AMAZON) Amazon est de loin le moins cher.

service à la clientèle

June 25th, 2007

La mondialisation, l’économie d’échelle et tous les arguments en faveur des méga corporations vont éventuellement devoir adresser un problème de plus en plus criant; Le service à la clientèle. Les impératifs de gestion et l’éloignement hiérarchique des points de contact avec le consommateur font que il est pratiquement impossible de parler a quelqu’un qui peut régler notre problème si il ne cadre pas dans un des scénario pré-établie par les analyste. Le consomateur se heurte a une machine inébranlable qui ne vas pas sans rappeler l’attitude des fonctionnaires de la fin du siècle derniers. Je crois, du moins au Québec, que la fonction publique est beaucoup plus efficace qu’elle ne l’était et il est aujourd’hui beaucoup plus facile de résoudre un problème avec une des instances gouvernementales. Les compagnies comme Bell avec leur Émilie sont loin d’avoir appris cette leçon. Le gouvernement a réussis a améliorer le service à la clientèle en décentralisant le service. En rapprochant le préposer au service du client. J’imagine qu’ils ont aussi surement dû donner plus de latitude et de pouvoir décisionnel à ces mêmes agents.

Dans le cas des méga corporations du domaine des télécommunications ce rapprochement se fait souvent via de petites compagnie qui profite des règles imposées par le C.R.T.C. et qui permettent a ces petites entreprises de devenir revendeur des services comme l’accès a l’Internet. Le hic c’est que c’est petits revendeur, qui offre un service à la clientèle vraiment supérieur n’ont pas accès aux toutes dernières technologie. Il faudrait que quelqu’un explique a Bell (et aux autres grosses boites) de se retirer du marché du directe aux consommateurs et qu’ils laissent le soins a ceux qui savent et veulent le faire de nous donner le service auquel nous avons droit.

AMD & Microsoft Vista

March 27th, 2007

AMD & Microsoft Vista Hummmmmmm on dirait que c’est la fin de wintel… D’ailleurs on voit de plus en plus un petit logo amd dans les pubs de Vista. Est-ce que Intel vas faire la même chose avec Apple? Y a de l’espoir de voir Linux prendre une part de marché; Après l’ADQ a réussis a devenir l’opposition officielle au Québec.

Java Persistence API FAQ

March 9th, 2007

Java Persistence API FAQEn fait ce post est plus comme un rappel de suivre cette technologie de proche mais comme je pense que ça vas être vraiment significatif comme truc dans le monde Java je le mets ici. Ce serait cool si a long terme c’était intégrée dans les driver Jdbc :)

Grado Labs, Inc.

February 28th, 2007

Grado Labs, Inc.
J’ai une pair de ces écouteurs. Ils sont excellent. Je les recommande sans hésitation. Dans la même vaine je viens de commander ceci et j’ai vraiment hâte de le recevoir.

ThinWire - Open Source & Beyond Ajax: Home

January 4th, 2007

ThinWire - Open Source & Beyond Ajax: Home Finalement un truc pour faire des interfaces administratives. Y a rien de plus chiant que les interfaces admin dans les projets web. C’est souvent un amalgame de JSP fait par un programmeur parce que personne a fait le design et que de toute façon c’est pas mal plus des écran de capture de data que n’importe quoi d’autre alors c’est des formulaires a plus finir. Il y a un tutoriel en 2 parties sur le site de IBM sur l’utilisation de cette bête! (http://www-128.ibm.com/developerworks/views/web/libraryview.jsp?type_by=Tutorials&search_by=Build+Web+apps+with+ThinWire+and+Java+code)

Un moment émouvant

December 29th, 2006

http://video.google.com/videoplay?docid=425176058583199440&q=jacques+brel+ne+me+quitte+pas

Une leçon d’humilité

November 30th, 2006

Des fois, ça m’arrive de fouiller un tutoriel vite vite pour trouver comment faire quelque chose de bein spécifique. Je trouve ce que je cherche, ça marche et je fouille pas plus loin. Pis làs je copie / collle le même truc d’un projet a l’autre, j’ajoute un peu de crémage dessus mais je ne retourne pas à la source. Tel était jusqu’à aujourd’hui l’usage que je faisait de XSLT en Java. TransformerFactory / transformer / transform et bang HTML. Hors aujourd’hui un gars avec qui je travailles en ce moment (Jeremy sans blog ni page perso) m’a fait remarquer que l’on pouvait passer des paramêtres au xslt avant la transformation (en php). Du coup je me dit; je programme en Java c’est bein mieux (Je suis un tantinet snobish envers php) alors c’est surement possible avec Xalan. Men wow quel découverte!!!

Non seulement c’est possible mais il y a tout un monde a découvrir avec les extension dans Xalan (les extension font partie de la spec du W3C pour xslt). Non seulement on peut passer des paramètres aux xslt mais en plus on peut, du xslt, invoquer n’importe quoi en java. C’est vraiment cool. Si seulement javais lu la doc un peu plus je me serait sauver tellement de casse pied avec ça!

Seul truc vraiment important a garder a l’esprit les paramètres sont passer au Transformer; c’est à dire après la lecture et le parsing du xslt. Il faut donc faire attention a ne pas reparser le xslt pour changer les paramètres ni garder un Transformer et lui faire transfromer plusieur xml en changeant les paramètes sans le synchroniser. Je suppose que vous savez que la création d’un Transformer coute cher. Voici quelque truc a lire si ça vous intéresses:

un bon article : http://www.javaworld.com/javaworld/jw-12-2001/jw-1221-xslt.html?page=1

Chapitre d’un bouquin par o’reilly :
http://www.onjava.com/pub/a/onjava/excerpt/java_xslt_ch5/index.html?page=1

La doc de Xalan-j sur les extensions (Je recommande pas de faire du sql dans du xslt):
http://xml.apache.org/xalan-j/extensions.html

poste ouvert

November 15th, 2006

C’est la que je vais savoir si on me lit un peu… Il y a un poste de programmeur Java d’ouvert ou je travaille en ce moment. Il faut avoir autour de 5 ans d’expérience mais je suis prêt a vivre avec moins si la personnes est débrouillarde. Envoyez vos cv a garem A sanssucre point ca.

P.S. pour ceux qui lisent entre les lignes; vous avez maintenant une bonne idée de ce que je penses de rails. En fait non, c’est pas mauvais et je préfère rails de loin a php par exemple, mais pas pour les projets complexe avec une longue durée de vie. C’est parfait, par contre, pour les trucs comme les projets de fond (Vidéotron, Bell, etc). On vas surement garder les trucs spécifique aux clients en rails.

Apprendre Ruby

October 26th, 2006

Avant de faire du Ruby on Rails il faut bien que je sois capable de faire du Ruby tout court. En ce qui me concerne le processus d’apprentissage commence pratiquement toujours par la recherche d’un point de référence. C’est encore plus vrai pour les langages (de programmation ou autre). Par exemple, au début, pour parler anglais je devais traduire en temps réel jusqu’au point ou j’ai eu une maîtrise du nouveau langage suffisante pour commencer a penser en anglais.

Donc dans mon processus d’apprentissage de Ruby je fais la même chose et mon langue de référence bein c’est Java. En fait, quand j’ai appris le javascript j’étais un peu rouiller et ma référence était le basic. Pas le visual basic, le vrai basic avec les numéro de ligne… C’était comme essayer d’apprendre le chinois en partant du français. Mais bon de Javascript a Java c’est plus simple et de Java a Ruby; bein on vas voir. Comme mon point de référence c’est java je cherche aussi le pattern de la structure du langage qui est sans doute le bout le plus confus. Disons que le langage est pas exactement dans la même famille mais ce n’est pas non plus trop loin. Enfin bref comme je cherche les similitudes je me suis un peu casser le nez sur les codes blocks.

Au début je les voyais comme des « anonymous inner class » mais j’ai finalement compris que bon c’est unique a Ruby et que il y en a pas en Java. Mais ils sont cool quand même c’est truc alors je n’ai pas pu m’empêcher de jouer avec le concept dans ma tête en allant a l’épicerie et voici ce que ça donne.

Je vois 2 façon de faire quelque chose de semblable en java. Les 2 utilise le varargs de java 1.5. Le première est de tout simplement faire une méthode une autre méthode en paramêtre.

public void sort(Object[] src, Method method){
method.invoke();
}

Il faut seulement que la méthode reçu ait comme signature Object… objects

La deuxième façon et sans doute la plus élégante est de remplace l’objet de type Method dans l’exemple précédant par un Object implémentant l’ interface suivante via une « anonymous inner class ». Bon c’est pas une réplique exacte du truc mais je vois une couple de cas ou ça pourrait être utile.

public interface CodeBlock {

public Object yield(Object… object);

}

recherché: programmeur(e)s rails

October 25th, 2006

Comme je le disais dans mon billet précédant le marché est vraiment bon en ce moment pour les programmeurs et donc je me suis trouvé un truc. C’est en Rails. Je constate que je suis vraiment un junky de technologie. N’importe quoi pourvu que je ne le connaisse pas et que ce soit pas par Micro$oft… Je retrouve enfin le plaisir que j’avais il y a « quelque » année quand j’apprenais Java. Le projet, en plus, est vraiment « tripant ». C’est une application web avec des volets B2B et B2C qui vas déplacer de l’air dans le marché ou elle sera déployé. Enfin bref tout ça pour dire que j’ai besoin d’aide! Est-ce que vous avez envie de faire du rails? J’attends les CV. Sylvain si jamais tu lis ça parles en autour de toi.

Vers d’autres horizons

October 18th, 2006

Je quite LVL. En fait c’est ma dernière journée ce vendredi. Je n’ai vraiment pas fait ça sous le coup de la colère. C’est vraiment une question de conjoncture. En fait je dois admettre que ça me fait de quoi de partir de las! Mais bon, ainsi vas la vie et comme dans le marché il y a plus de demande que d’offre faut en profiter. De toute façon je ne suis pas un bon manager (fiou). Je me rend compte que je suis a mon meilleur comme lead sur un bon gros projet pas comme lead sur 5 - 6 petit. Il faut que je sois impliqué dans le quotitien d’un projet pour bien le superviser. Il y a donc un poste de Lead d’ouvert chez LVL. C’est une bonne place pour travailler, surtout pour quelqu’un qui a le gout d’organiser l’équipe de dev. Il y a vraiment des gens sympatiques et ce serait cool qu’ils aient un boss compétant. Y a des prenneurs? Faites moi signe!

Yahoo ui

October 1st, 2006

Yahoo a mit ses sources sources javascript utilisé dans la conception des ses interfaces usagers sous liscence BSD. J’aimes bien les interfaces web 2.0 de yahoo. Elles sont utiles. N’ayant pas fait d’intégration depuis un bon bout de temps je ne suis pas en mesure d’évaluer la qualité du code mais j’aimes ce que je vois et la façon dont ça se comporte.

uptime

September 13th, 2006

crime une chance que je n’ai pas un lectorat fidèle et assidu car il serait déçu… J’ai une machine Linux dans un rack en impartition quelque part et elle, elle est assidu. Comme ça, juste pour le fun, j’ai fait uptime sur la machine en question et j’ai eu une méchante surprise en voyant le résultat
uptime
21:51:53 up 668 days, 4:54, 1 user, load average: 0.02, 0.04, 0.00

quand même assez cool non?!

On se raparle dans 62 jours.

un truc utile

July 7th, 2006

Jean Pierre Martineau viens de me donner un lien fort utile alors je le partage ici… Le voici

Le processus d’embauche

May 4th, 2006

Depuis que je suis en charge des technologies chez LVL, une de mes tâches est d’assister les ressources humaines dans le processus d’embauche de nouveaux programmeurs. Je me rappelle quand j’étais un jeune intégrateur chez PTM et que je regardais le boss allez faire passer des entrevues comment j’avais une pointe d’envie. J’imagine que la source de cette envie viens de ce que l’on ressent quand on est du coté demandeur de la chaise. Cette impression que l’on a de l’importance de la personne qui nous questionnes. Maintenant que j’occupe cette place, du moins partiellement, ma perspective a complètement changer. Je me rend compte que c’est pas évident, à tous le moins en programmation, de trouver des gens compétents. A quelque part ça me rassure sur ma valeur sur le marché. C’est incroyable de voir ce qui sort d’une annonce sur Jobboom.

Jobboom demande au candidat de donner un aperçu de leur niveau de connaissance pour chacun des critères. Je peux dire que le mot expert ne veux pas dire la même chose pour tout le monde. Je penses que c’est raisonnable, quand on se présente a une entrevue pour une job de programmeur Java, de s’attendre a quelques questions sur le langage. Voici les questions que je poses:

1) C’est quoi les différences entre java.util.List et java.util.Set?
2) Qu’est ce qui peut causer un NullPointerException?
3) Nommez moi quelques unes des additions au langage entre la version 1.4 et 1.5
4) Quel sont les différence entre une Interface et une classe abstraite
5) A quoi sert le mot clef “static” en Java

Ce sont, a mon avis des questions auxquelles un “expert” doit pouvoir a tous le moins réagir intelligemment.
Pour la question no 1 la plus part des candidat me regarde avec un air bébête et semble penser que il n’y a en fait pas de différence.

A la question no 2 la moitié des candidats après avoir bafouiller pendant quelques instants finissent par émettre un semblant de réponse acceptable. Aucun candidat n’a répondu “l’appel d’une méthode sur une instance(variable) non initialisé” qui est, a mon avis une réponse évidente.

Avec la question 3 mon but est de voir si les gens dont la profession est de programmer en Java prennent le temps de lire les “release notes” quand une nouvelle version fait son apparition. Il faut se rappeler que JSDK 1.5 est sortie depuis plus de un an quand même. Il y a eu plein de nouveaux trucs ajouter a Java dans la version 1.5 qui ont fait couler plein d’encre (virtuelle) dont les générique, les “for each”, etc Je n’ai des réponses que dans 15 à 20% des cas. C’est pathétique; tout simplement pathétique. Aussi “bad” que mon orthographe!

La question 4 est, pour moi, une opportunité de voir si un candidat est articulé et me donne aussi une idée de sa compréhension de l’héritage. Quand je l’ai mit dans le questionnaire mes collègues se foutait un peu de moi en disant que c’était trop facile. Oh boy! Incroyable! Absolument incroyable. Bien que au moins 80% des gens rencontrer m’est donner une réponse, personne mais alors la personne, ne m’as parler d’héritage. La plupart ont cafouillé quelque chose sur le corps des méthodes mais personnes ne m’as seulement parlé d’héritage…. Ah crap!

Finalement la question 5 je la voyais comme du bonbon tellement c’est simple. Sérieusement “static” en Java???! Un étudiant de première année apprend ça au BAC. Bein croyez le ou non 15 à 20% des gens ont pas répondu correctement.

En plus de programmeurs Java on a besoin de quelqu’un pour le contrôle de qualité et aussi d’un king en Javascript. Je ne me lancerai pas dans la description des entrevues pour ces postes car c’est juste pire. Est-ce que c’est Jobboom? Enfin bref ou ils sont les bons programmeurs?

c’est pas pour être baveux mais…

April 30th, 2006

J”ai un vieux pIII 600 dans un rack en coloc. Il y a comme 20 sites web en PHP, Java et en Perl sur la machine. elle a aussi comme 10 adresse ip et un firewall shorewall dessus. Tantôt je checkais les logs d’un site et j’ai fait la commande uptime sur la machine pour le fun et: 20:51:49 up 532 days, 3:54, 1 user, load average: 0.18, 0.05, 0.01. Crime c’est vraiment pas loin de 1 an 1/2. En plus la dernière fois que je l’ai patcher ça remonte a 8 mois. Trouver moi une machine windows qui est capable d’en dire autant!