Archive for the 'computer' Category

Nouvelle décoration pour le site Ruby

Thursday, August 24th, 2006

Un nouveau design pour le site officiel du language Ruby pointe son nez. C’est basé sur un CMS Ruby appelé Radiant

Ruby c’est bon mangez-en. Par contre si les développeurs de Ruby pouvaient franchement bosser sur la rapidité de l’interpreteur, ça nous ferait pas de mal… (Parce que même comparé à Python c’est lent).


Tags: ,

Le conseil informatique

Friday, August 18th, 2006

Les vendeurs de légumes ont quelque chose que les vendeurs de conseils experts
en informatique aimeraient bien avoir. Ils vendent un bien matériel qui permet
à l’acheteur de tout de suite savoir ce qu’il achete, et de se rendre compte
que ça a une valeure. L’acheteur sans même avoir acheté sait déjà que ce ne
sera évidemment pas gratuit, et peut même toucher le bien qu’il souhaite
acquérir (quel luxe!).

Si un acheteur potentiel prenait 1Kg de fruit et partait sans payer, les
preuves du délit seraient immédiates, et sans discussion possible.

Dans le conseil c’est tout l’opposé. Ce que vend le prestataire c’est son
cerveau, sa matière grise, son experience. Rien de concret, que du vent, et
c’est bien là le problème. Combien de clients potentiels m’appellent et
souhaitent me rencontrer pour discuter d’un projet qui les occupent. Plein de cas de figure
me sont arrivés, en voici deux pour l’exemple (toute ressemblance avec une histoire que vous auriez vécu est le fruit du hasard):

L’entreprise en phase de création

4 personnes pensent avoir une idée géniale, innovante, et qui mérite de créer une société. Pire que ça, ils pensent que cette idée permettra une levée d’argent immédiate (ou rapide), des fonds tombés du ciel de la part d’investisseurs en mal de dépense. Malheureusement pour lever de l’argent il faut tout de même un prototype (une démo), et ces 4 personnes à l’idée géniale n’ont pas les compétences pour l’effectuer eux-mêmes.

Vient alors une délicate étape, trouver quelqu’un de compétent (et donc cher) qui pourrait travailler gratuitement. Toutes les feintes sont possibles pour arriver au but désiré.

On me contacte alors, et on me propose de ne me payer que si les sous sont levés (HAHAHA! La grosse blague!). Enfin évidemment ça ne commence pas comme ça, d’abord on vous demande si vous êtes intéressé par le projet. Vous dites que oui et vous donnez vos tarifs à la journée, on vous répond que pas de problème. L’engrenage est lancé. A la fin vous aurez passé quelques jours (au mieux) sur un travail non facturé, et vous aurez passé de l’information à votre (non) client qui lui ne vous payera jamais pour ça. Evidemment vous n’avez donné aucun code, vous avez juste donné de votre temps, mais le temps ce n’est pas concret, et peu de monde voudra bien vous payer pour ça.

En gros, on vous fait subir la prise de risque de ne pas lever l’argent, alors que ce n’est pas votre idée, et que vous n’avez aucun intérêt dans le projet.

Le prestataire

Un prestataire d’une entreprise se voit attribuer un projet dont personne n’est sûr qu’il aboutisse. Pas de chance, le prestataire n’est pas compétent dans ce domaine, mais il n’a aucun intérêt à le dire. Il a tout intérêt à montrer qu’il peut effectivement le gérer. Vient alors sa partie difficile, trouver un autre prestataire compétent alors qu’il n’a pas de budget.

Il me contacte et me demande ce que j’en pense, j’en pense que c’est faisable et je donne mes tarifs, on me répond aucun problème (de toute facon à ce moment là il n’y en a évidemment jamais).

Au final on passe quelques heures ou une journée pour évaluer plus en profondeur, sur la demande du prestataire, la faisabilité du projet, ce que ça implique et boum! le projet ne se fait pas. Evidemment, le client n’a rien signé à son prestataire, et le prestataire à qui vous avez donné de l’information, de la matière grise, ne souhaite pas du tout payer, ce serait de sa poche (on le comprend). Dans l’histoire celui qui perd le plus son temps, c’est moi.

Le prestataire est passé pour compétent vis à vis de son client, cela lui permet de continuer son travail relationnel pour envisager d’autres projets dans lesquels il pourra être impliqué. Mais moi n’ayant pas de relation direct avec le client, je perds tout. Les quelques heures effectuées ne seront sans doute jamais facturées (enfin c’est la roulette Russe).

Mon conseil. Définissez dès le premier rendez-vous, à la première heure, les responsabilités des personnes impliquées. Une règle d’or, votre interlocuteur est la personne qui assumera et vous reglera le temps que vous aurez passé. Et définissez dès le départ ce qui se passera si le projet n’aboutit pas. Ne passez pas plus d’une heure sur un projet si un bon de commande ne vous a pas été signé, les projets ont 95% de chance de ne pas dépasser le cap de l’idée (d’experience). Si votre interlocuteur ne souhaite pas être responsable, demandez de rencontrer ses clients, si le temps passé ne vous est pas payé, vous aurez au moins eu l’avantage d’avoir de nouveaux clients potentiels.

Conclusion

Il n’y a aucune raison que l’expert ait à supporter les prises de risques inhérentes à tout projet. Principalement celle que le projet soit abandonné. Imaginez vous dire à un vendeur de fruit “Je prends 1KG de citron, mais je ne vous payerai que si je les mange”? Il faut donc définir dès le début les modalités dans le cas ou le projet ne se fait pas, et faire signer un bon de commande sur une durée à investir dès la première heure de travail.


Tags: , ,

Les PDA, c’est pas encore ça!

Wednesday, August 16th, 2006

Pour les besoins d’un client je regarde ce qui est possible d’être fait du côté des PDA (iPAQ). Depuis le temps que je n’ai pas regardé et que j’ai fait des pages WAP et des pages PDA pour LinuxFr, je me dis que de l’eau a coulé et qu’on ça doit être super bien.

Bah non, c’est toujours pareil. Dans un iPAQ récent on a un Windows Mobile 5.0 (ouch), doté d’un IE limité (déjà que la version PC laisse à désirer). Mes petits bouts d’Ajax sous Rails ne fonctionnent pas, mais javascript est présent et il est possible d’utiliser la fameuse fonction qui permet de faire des requêtes HTTP. Enfin si c’est pour refaire la librairie Prototype… Il faut sans doute installer Opera pour Mobile

Ca me laisse un goût de “ce n’est vraiment pas encore prêt”. Enfin ça permet de voir qu’il est vraiment important d’utiliser des tailles en “em” et non “px” pour les CSS (les margin, padding, etc) pour éviter d’avoir un truc à chier sur un écran en 380×240 pixels de large.


Tags: , , ,

UUCP pour vos mails

Monday, August 7th, 2006

Inutile de le redire, le mail c’est important. C’est tellement important que beaucoup de sociétés en dépendent désormais, comme elles dépendent du téléphone. Pas de téléphone, pas de communication, pas de clients. Pas de mails, et c’est la même chose: on est coupé du monde.

Pour les indépendants que nous sommes, idem. Alors quelle solution de mail utiliser? Gmail, Hotmail and co, pas très professionnel. Il existe une autre solution, “UUCPssh”:http://www2.uucpssh.org/. UUCPssh propose des “solution anti-spam”:http://www2.uucpssh.org/ et autres choses. Vous pourrez opter pour un hébergement “UUCP”:http://www2.uucpssh.org/, en tant que “proxy transparent”:http://www2.uucpssh.org/ pour ceux qui possèdent déjà un serveur de mail, pour profiter des solutions antispam et antivirus, juste faire suivre toutes les adresses d’un même domaine vers une seule adresse fixe (gmail par exemple) pour avoir la possibilité d’avoir un monprenom@monnom.com (ce qui fait tout de même plus professionnel).

Bon évidement il existe déjà beaucoup d’autres solutions, mais celle là existe depuis plusieurs années, est développée et gérée par votre serviteur, et vous pourrez flamber en soirée en indiquant que vous, vous utiliser un protocol (“UUCP”:http://fr.wikipedia.org/wiki/UUCP) vieux de 30 ans (bien plus que le web, évidemment).

Vous pourrez configurer finement la quantité de SPAMs que vous désirez filtrer, la taille maximale des emails que vous souhaitez recevoir pour alleger votre connexion GSM, ou faire suivre temporairement vos mails vers une adresse gmail pendant vos vacances. Oh oui!

Note: vous noterez que ce billet n’a que pour unique but de faire parler du projet.


Tags: , ,

Point de vue sur l’état de la VoIP en France

Sunday, June 11th, 2006

La “VoIP”:http://fr.wikipedia.org/wiki/Voip en France, tout le monde connait, tout le monde en parle, mais personne ne fait ça comme il faut ; je m’explique.

A la fin de mon année de master spécialisée en architecture logicielle, j’ai eu l’opportunité d’effectuer un stage de 4 mois chez “Wengo”:http://www.wengo.fr/. J’ai eu l’occasion de travailler autour d’une “modélisation idéale”:http://penso.info/code/wengofr d’un outil de téléphonie sur IP, et de m’intéresser de loin à ce sujet. Pendant cette periode, j’ai réfléchis à la manière d‘“effectuer des appels”:http://penso.info/tmp/DESS/softphone-csharp/diagrams/Model/Base/SQmakeCallpatterns.gif et à toutes les fonctionnalités que vous voudriez avoir sur un tel logiciel, dans les limites du temps qui m’était donné. Ne cherchez pas mon nom pas les crédits donnés aux développeurs Wengo, je n’y suis pas (je suis juste un peu “par la”:http://dev.openwengo.com/trac/openwengo/trac.cgi/browser/old/wengophone-csharp).

Après un court séjour en Inde, j’ai proposé à Wengo de travailler pour eux et de continuer cette modélisation et mon travail général d’architecture logicielle pour eux. Nous étions d’accord sur les points qui ne convenaient actuellement pas chez eux, mais j’ai reçu une réponse négative à ma proposition. Passons…

Les acteurs actuels de la VoIP en France sont :

  • “Ekiga”:http://www.ekiga.org/ (bon c’est Belge, mais on n’en veut pas à “Damien”:http://blog.gnomemeeting.net/index.php?cat=7 ;).
  • Wengo
  • Free, par l’intermédiaire de leur Freebox
  • Neuf Telecom, dont Wengo fait parti, avec leur NeufBox
  • les autres prestataires (club-internet), Wanadoo, etc.
  • Skype. C’est le leader mondial incontesté, il n’est pas Français, mais j’imagine que c’est en France aussi le logiciel le plus utilisé (moi même je l’utilise, sous le pseudo fabienpenso, et j’y ai même acheté des minutes).
  • D’autres logiciels propriétaires qu’il n’est pas nécessaire de mentionner.

Dissocions tout de suite les prestataires qui fournissent un logiciel (Skype, Ekiga, Wengo) de ceux qui facilitent l’accès aux non informaticiens par l’intermédiaire d’une boite (free, club-internet, wanadoo). Seuls les premiers m’intéressent dans cet article.

La VoIP devient aussi important que le web, le mail, le transfert de fichiers (P2P, FTP, système web). Qu’attendez-vous d’un logiciel qui permet de transmettre votre vie privée et tant d’autres informations confidentielles? Personnellement j’attends :

  • Un logiciel libre, que tout le monde puisse vérifier. Plus que libre, j’attends un logiciel libre qui permettent à la communauté de participer avec de la documentation en ligne, un code clair et propre, l’utilisation de design patterns, l’utilisation d’un language objet haut niveau, la facilité de pouvoir le compiler sous plusieurs systèmes d’exploitations, une séparation type MVC. Combien de logiciels libres sont inmaintenables, de par leur architecture.
    Je note que ce critère est très important pour les laboratoires informatiques français (Le haut secrétariat de la défense a interdit l’usage de Skype pour les chercheurs, mais les chercheurs ont changé d’avis en indiquant que ce n’était à appliquer que pour les communications importantes). Comment peut-on imaginer que ces laboratoires puissent communiquer entre eux ou avec leurs collaborateurs à l’aide de logiciels propriétaires, dont il est impossible de vérifier qu’ils sont sûrs, ou qu’ils n’effectuent pas d’écoutes illégales.

  • La possibilité de chiffrer mes communications. Les sociétés Françaises seront bien emmerdés, il est probable qu’ils subiront des pressions du gouvernement pour laisser la possibilité d’activer des écoutes entre des interlocuteurs. Et alors? Proposez un plugin de chiffrage aux utilisateurs qu’ils peuvent activer ou non. Quelque chose de “ce type”:http://www.philzimmermann.com/EN/zfone/ par exemple.

  • Evidemment, l’utilisation de protocols libres (jabber ou SIP, mais SIP a une préférence sauf pour Google et leur GTalk).

  • Une autre fonctionnalité plus général et qui ne s’applique par qu’à la VoIP. LA SIMPLICITE, et que CA MARCHE. Skype a très bien réussi dans le domaine, les autres, n’en parlons pas.

Et bien dans la liste des acteurs Français, aucun ne remplit ces critères. Le plus étonnant c’est qu’il est probable que si l’un d’eux remplissait ces critères, ils pourraient avoir des financements publiques, et l’aide de laboratoires tels l’INRIA qui a déjà, en interne, demandé à quelques personnes de regarder le protocole Skype de plus près (ça montre bien qu’ils s’intéressent au sujet). Les acteurs qui se lanceront dans le domaine seront:

  • Des sociétés dont l’unique but est de faire de l’argent, et dont ceux qui tiendront les manettes n’auront que faire que le logiciels soient développé correctement, dans les règles de l’art, remplis de tests unitaires, fonctionnels, de design patterns, de systèmes de plugin, avec une interface correcte et intuitive.

  • Des indépendants, des développeurs, ou de petites sociétés (Ekiga?) qui ont envie de faire les choses correctement, mais qui n’ont pas les financements pour attirer des développeurs seniors, et pour investir le matériel requis (serveurs SIP, bande passante, etc).

Je suis pessimiste, et nous verrons bien l’état de la VoIP en France dans quelques années, mais pour l’instant à part pour les fournisseurs (freebox), et malgré les apparences, il va plutôt mal.


Tags: , , , , , , ,

Le dimanche, c’est repos

Sunday, June 11th, 2006

Quelques sites photographiques à visiter:

  • “Le collectif SIC”:http://www.collectifsic.com/ et “le blog”:http://francois-cs.blogspot.com/ de l’un de ses membres ;
  • La photographe “Heidi Good”:http://www.heidigood.com/, d’incroyables portraits ;
  • La page “digitalrailroad”:http://www.digitalrailroad.net/bruno/ de Bruno Stevens, avec deux reportages récents faits en Angola, sur le choléra ainsi que la tuberculose. Hasselblad et Tri-x au rendez-vous ;
  • “un autre”:http://www.lagaraje.com/ pour la route.

Le soir, quand mon emploi du temps le permet, j’aide un peu “Shinji”:http://kuwayama.com/ à améliorer la rapidité de “lightstalkers”:http://www.lightstalkers.org/. Du “rails”:http://www.rubyonrails/, évidemment. Les erreurs que je peux y voir et que vous pourriez être intéressés de ne pas reproduire lors de vos propres développements :

La révision, c’est bon. L’utilisation d’outils de gestion de révisions tels que CVS ou “Subversion”:http://subversion.tigris.org/ (préférez Subversion) est primordiale. Sans cela, pas de développements à plusieurs, pas d’historique, pas de possibilité de backuper votre travail facilement. Bref, sans ça, ne commencez même pas à développer, même pour un projet à une personne.

La gestion de tickets: “trac”:http://www.edgewall.com/trac/, le 2ème outil à mettre en place. Il vous permettra de noter les bugs, fonctionnalités à développer ultérieurement, et de concentrer tout ça sur une seule page. Vous pourrez de plus naviguer dans les sources, controler les derniers travaux effectués sur le projet (timeline), gérer votre TODO list. Le matin en arrivant à votre bureau (ou en vous déplaçant du lit à l’ordinateur), il vous suffit d’aller voir les fonctionnalités à rajouter, en les listant par ordre de priorité. Tous les acteurs du projets pourront faire de même.

Attention à votre code source, n’utilisez que tabulations ou espaces, pas les deux. La consistance dans vos sources et quelques commentaires bien placés faciliteront grandement le travail de vos collegues (futurs ou actuels).

Plus spécifiquement rails. D’abord l’utilisation de find(), ensuite et seulement ensuite, pour des raison d’optimisation, l’usage de find_by_sql(). Pas l’inverse.

Pas de code dans les fichiers views/, comme l’indique le pattern MVC. Pas de @comments = Comment.find() dans les vues, jamais. Les vues se contentent de l’affichage.

La première chose à vérifier quand vous développez votre site, le nombre de requêtes SQL dans le fichier de log (log/development.log) et l’utilisation pour celles-ci de clé (DESC SELECT … dans la console mysql). L’usage de :includes => [] dans le code rails est souvent requis. Conseil: il est souvent plus rapide d’avoir 2 requetes SQL plus simples, qu’une seule très compliquée avec beaucoup de :includes.

L’utilisation massive de caches, et particulièrement pour la page principale du site (caches_page). L’affichage d’information personnelle pourra toujours se faire en javascript directement, ou en Ajax. Qui n’apprécie pas un site qui se charge instantanément, plutôt qu’un autre ou il faut, pour chaque page, attendre 2 secondes?

Un petit rappel: j’effectue toujours des conseils autour de développements logiciels (web ou non). Ce que mes clients devraient attendre de leurs prestataires :

  • Un accès permanent et complet au code source en développement ;
  • Un accès permanent au site en cours de développement, pour vérifier au quotidien l’avancement du projet ;
  • Un accès à une interface de gestion de ticket, pour remonter le plus rapidement possible les mauvaises surprises ;
  • De manière générale, une relation étroite entre vous, et nous.

Et ça tombe bien, vous aurez tout ça ici.


Tags: , , , , ,

Entretien Google

Thursday, June 1st, 2006

Pendant mon séjour récent en Inde, j’ai reçu de 2 personnes différentes une proposition de “Google”:http://www.google.com/ (un nom à consonnance Indienne, un autre à priori des Etat-Unis). Evidemment tous mes amis les avaient déjà reçus (et moi aussi il y a quelques mois), et même parfois en plusieurs exemplaires. Néanmoins je me suis décidé, j’y ai répondu (par mail).

Je réponds par mail, et on convient d’un rendez-vous téléphonique pendant lequel on me posera quelques questions. Le jour J arrive (le lendemain je crois) quand mon téléphone sonne (une heure plus tôt, enfin les décalages horaires avec la France, on sait jamais d’avance).

Les fameuses 3 questions qu’on vous posera sûrement (ou un truc dans le genre):

  • What is the 3 types of variables in Perl ?
  • What is the normal speed of Quicksort, and the slowest ?
  • What is the power of 2 closer than 2 billions.

Les questions sont simples, mais n’étant pas de bonne humeur, je n’y ai répondu à chaque fois qu’à moitié. La première “array and hashes, but I forgot the 3rd one. Perl isn’t a typed language, so integer and strings is the same, but I forgot its name” (oui, c’est les scalaires, je fais du Perl depuis 10 ans…). La seconde “log(n) but I don’t remember the slowest, I got my C book next to me and I could take a look if needed”, et la dernière “hmm, more than 20, but I don’t know” (oui, c’est 31 et j’aurais pu taper en 4secondes un ‘bc -l’ sur mon terminal, mais j’avais pas envie).

Bref, un message quelques jours plus tard me confirme qu’ils n’ont pas de positions pour moi. Je crois que j’aurais pu faire un effort pendant l’entretien :-) (Notez que il s’est très bien passé, on a papoté un moment).


Tags: , , ,

Remote disk project

Thursday, November 17th, 2005

You want to use remote disk space through webdav, because you need to store files or anything else.

Well why not use “rdisk”:http://rdisk.net/ then ? :) “rdisk”:http://rdisk.net is a way to get “remote disk”:http://rdisk.net/ through “webdav”:http://rdisk.net/. It’s not online yet, but expect that to happen within the next weeks.

The website will run “rails”:http://www.rubyonrails.org/, obviously.


Tags:

Oswd is dead

Tuesday, November 8th, 2005

The website “oswd”:http://www.oswd.org/ is dead for weeks now, and I feel like it won’t be back soon. Looks like someone needs to rewrite a similar one using “recent technology”:http://www.rubyonrails.org/ with ajax and stuff. So where will you now fetch your HTML templates some nice designers did for you ? :)

Update: oswd is back online with a new design. Looks like a split happened between the owner and the main developer, who moved the database and the website to “this website”:http://www.openwebdesign.org/.

I now use rails 0.14.X on my outgoing projects, much faster implementation on specific parts of the code. Go for it!


Tags:

Updated my website, new temporary job

Sunday, October 30th, 2005

h2. Website updated

Yeah, I have finaly done it. I have updated my website and it’s now powered by “rails”:http://www.rubyonrails/. In the same time, I’ve changed the design.

The top picture has been taken during a Tango play. No photoshop at all, I was just too far away with my 35mm lens, but the result isn’t that bad afterall.

h2. Temporary job

I’m now working on a 1 month mission for “pekin”:http://www.pekin.fr/ to fix one of their customer website which use old non-object PHP (uurk). “Pekin”:http://www.pekin.fr/ is a design company on the web, based in Le Marais, Paris. Yes, the url is correct.

h2. Photography

I’m getting convinced I should buy a new film scanner, and the “Nikon 5000”:http://www.nikonusa.com/template.php?cat=1&grp=98&productNr=9238 is the best deal. The price felt down since last year, and it’s now affordable for my wallet. On the photography side I’m looking on the Mamiya 7ii (medium format 6×7). Have you ever worked with it ? Mail me and send me your feedbacks (or you can send me your camera).

h2. Computer project

I’m still working on “uucpssh”:http://www.uucpssh.org/ and the new server now receive emails for few domains. It looks like the spam filtering works much better. Within few weeks I hope to switch to the new website, also powered by “rails”:http://www.rubyonrails.org/ as you might have guessed already.

The “authgenerator”:http://penso.info/rails/authgenerator/ for rails has been updated to v1.3.0. Only bugfixes, thanks HK.


Tags: ,