Not My Idea

Developpement et Architecture logicielle, par Alexis Métaireau

Dependency Injection – Using SpiralDi Container

Please note that this article is also available in French. A big thanks to Frédéric Sureau for his translation work on the English version.

Since my previous article (FR), I have kept on working on the dependencies injector of Spiral, wich I just published in a standalone version.

Here is an overview of SpiralDi functionnalities, and some examples on the use.
continuer à lire »

Injection de dépendances – Utilisation du SpiralDi Container

Cet article est également disponible en version anglaise. Un grand merci à Frédéric Sureau pour son travail de traduction.

Suite à mon précédent article, j’ai continué à travailler sur l’injecteur de dépendances de Spiral, que je viens de publier dans une version standalone.

Voici un tour d’horizon des fonctionnalités apportées par SpiralDi, ainsi que quelques exemples d’utilisation.
continuer à lire »

Introduction à l’injection de dépendances: le cas du singleton.

L’architecture logicielle est un des aspects du développement qui m’intéresse particulièrement. Ça fait d’ailleurs un bout de temps que l’idée d’un article à propos des dépendances (de l’injection de dépendances) et du cas du singleton me trotte dans la tête, alors, le voici:

Avant tout, il faut bien comprendre que sans contexte il n’existe pas de manière plus censée qu’une autre pour construire une application. Il existe par contre un ensemble de bonnes pratiques qu’il est bon de connaitre et d’appliquer, dans la plus large mesure possible. Ces pratiques sont souvent mal connues, et nombre d’entre elles sont appliquées à la va vite.

Nous allons tenter d’expliquer ici pourquoi et comment l’implémentation la plus rependue du singleton favorise la création de dépendances, et comment nous pouvons y remédier, grâce à l’injection de dépendances.
continuer à lire »

Installation de PHP 5.3 en tant que CGI

La RC1 de PHP 5.3 est disponible depuis peu sur le site de php. J’ai sauté sur l’occasion pour la télécharger et l’installer sur ma machine de développement, pour pouvoir profiter des nombreuses et alléchantes nouvelles fonctionnalités offertes par cette version.

Ayant besoin de garder une version de PHP 5.2 disponible, j’ai choisi d’installer PHP 5.3 en tant que CGI pour Apache. Rien de très compliqué, mais si je peux vous éviter de tourner en rond, voila comment j’ai procédé sur un système à base de debian (ubuntu ici).
continuer à lire »

Comparatif des bibliothèques graphiques php

J’ai travaillé récemment sur une solution pour générer des graphiques efficacement, tout en aillant le meilleur rendu possible, et ce pour des graphiques devant utiliser beaucoup de valeurs (de l’ordre de 5000 pour un graphique).

Je regroupe ici les résultats de mon étude, en espérant faire un petit état des lieux des différentes bibliothèques de génération de graphiques existantes, en tentant des les comparer. Volontairement, je ne désigne pas de meilleure bibliothèque, puisque cela dépends fortement du besoin qui l’accompagne.

J’ai tenté de faire un tour des bibliothèques qui me semblaient intéressantes, si toutefois vous connaissez une bibliothèque qui aurait sa place ici, je me ferais un plaisir de l’ajouter au comparatif.

continuer à lire »

Quelques nouvelles

Même si l’activité sur ces carnets pourrait laisser penser le contraire, je travaille activement, et sur plein de projets !

Récemment, j’ai été embauché en tant que stagiaire dans une petite boite qui fait du développement d’applications web (que je différencie de la réalisation de sites web). Cette société, basée à Paris, vient d’ouvrir des locaux sur Toulouse, et j’ai la joie et le plaisir d’en profiter. Je m’amuse vraiment, et découvre le Zend Framework, tout en passant toujours pour un extremiste qui déteste les antipatterns1. Bref, une super équipe, des gens très interessants, et un stage de 6 mois qui débute très bien !

J’ai commencé les cours, après un mois de pré-cours intensifs2. Et pour l’instant, ça me déplait plutôt. Il faut dire que les matières abordées ne s’y prétaient pas beaucoup (Microsoft et Oracle : merci bonsoir). La semaine qui arrive annonce le début des cours de Java, qui semblent bien plus prométeurs3. Espérons.

Qui l’eut cru: on à repris le développement de spiral, qui décidément porte très bien son nom, vu le temps depuis lequel le projet traine. Des deadlines sont fixées, les idées toujours aussi bonnes, et la motivation au rendez vous. Quelques nuit de travail en perspective, mais qu’est ce que c’est bon d’échanger sur des vrais sujets de geek developpeurs fans de design patterns !

Depuis mon arrivée à Toulouse, je fait partie d’une association naturaliste basée sur l’université de ramonville4, avec laquelle j’ai pu lancer un projet de semaine de l’environnement5. Ca me prends pas mal de temps, mais je rencontre des gens géniaux, et ça me fait décrocher de ce satané écran ! D’ailleurs, la semaine de l’environnement à non pas lieu dans une ville, mais dans 8, et les associations en question sont fédérées autour du GRAPPE (Groupement des Associations Porteuses de Projets en Environnement). Si vous aussi vous voulez lancer une semaine de l’environnement chez vous, contactez nous !

Plus recemment, nous avons eu l’idée de lancer une AMAP étdudiante sur Toulouse. Si vous êtes interessés, faites moi signe, les réunions approchent !

  1. ou qui adore les patterns,au choix.
  2. ou pas, tout dépends les matières
  3. avis aux trolleurs multiples et potentiels: oui, je crois sincérement que Java, c’est bien. Un peu lent, mais bien! Peut être que l’avenir me contredira.
  4. qui n’est pas du tout à coté de mon école…
  5. une semaine d’activités autour du thème de l’environnement, qui aura lieu du 16 au 22 Mars 2009

Allez, au boulot !

Ca fait un bon moment que je n’ai pas pris le temps d’écrire ici, et pour cause, l’été fut chargé: réalisation de sites webs, utilisation intensive des molets1, et découverte des joies du foie gras2

Mais la rentrée pointe le bout de son nez (c’est une bonne chose!), et la reprise d’activités cérébrales ne devrait plus trop tarder. Comme d’habitude, petite liste des choses que j’aimerais bien faire cette année3

  • J’ai eu l’occasion de découvrir l’excellent framework web Jelix, et de l’utiliser pour un projet (pas encore totalement terminé) web. Beaucoup de choses géniales, découverte de svn malgrès moi, et des tonnes d’idées à repiquer pour spiral en perspective4.
  • Trouver un designer digne de ce nom, sur Toulouse, avec lequel travailler, parce que mes clients commencent à trouver que mes sites ont une sale gueule (et ils ont raison…)
  • Trouver un vrai bouquin sur les designs patterns, en français, à mettre sur ma table de chevet.
  • Et puis, enfin, m’installer et découvrir Toulouse, puisque j’ai la chance de poursuivre mes études la bas. D’ailleurs, si vous êtes du coin, je suis pour une visite grandeur nature!

Je profite de ce billet pour remercier ceux qui ont permis de faire de ma passion un gagne-pain le temps d’un été. L’expérience fut très enrichissante, et je vous en remercie chaleureusement.

  1. 750km à vélo pour un mois de vacances inoubliable…
  2. En savourant du Masada sous le grand chapiteau de Jazz In Marciac!
  3. même si je sens que le temps va manquer…
  4. malgrès la puissance de jelix, je continue à m’obstiner à faire « mon mien» . Question de fierté peut être ? En tout cas il me reste – beaucoup – à apprendre

Qu’est ce que GNU/Linux ? Retour aux origines

Avec l’arrivée des distributions « grand public », GNU/Linux souffre d’un phénomène qui prend de plus en plus d’ampleur :

C’est parce que GNU/Linux est une solution de plus en plus largement diffusée et accessible que beaucoup de nouveaux utilisateurs s’y essayent. Trop souvent en oubliant qu’il s’agit du résultat du labeur de la communauté Libre. C’est un phénomène qui se vérifie trop souvent, et j’en suis moi même la preuve : lorsque j’ai décidé de passer sous GNU/Linux, c’était plus par curiosité – parce que cela était amusant – que parce qu’il s’agissait d’une solution fonctionnant grâce et pour le logiciel libre. Ce n’est qu’au fur et à mesure de mes pérégrinations que j’ai cherché à approfondir cette question qui me semble désormais essentielle.

Cela semble pourtant être une évidence : « J’utilise Linux, donc je sais de quoi il retourne ». Malheureusement, c’est assez souvent faux ! Parce qu’il est nécessaire d’avoir une démarche personnelle vers le Logiciel libre pour en comprendre la grandeur, et pour saisir les messages d’ordre philosophique et politique (au sens noble du terme) qu’il engage1.

On compare trop souvent GNU/Linux à Windows, et c’est un tord: L’un n’est pas l’autre2, et les principes qui les régissent, même si ils suivent les même bases techniques (ce sont tous deux des systèmes d’exploitation voués aux mêmes finalités), sont complètement différents voir parfaitement opposés: l’un défends le logiciel libre tandis que l’autre s’inscrit dans une logique de profit économique, et de « programmation égoïste »3.
Ce sont ces principes et cette idéologie, qui ont permis à GNU/Linux de devenir ce qu’il est. Cela à fonctionné parce qu’il s’agit d’un logiciel libre, permettant à chacun, à son échelle, de participer au projet comme il l’entends.

Il semble donc primordial de ne pas reléguer le logiciel libre à un simple contexte de développement, ayant permis de donner naissance au paysage libre actuel. C’est ce qui semble se passer, et la conséquence est simple: les contributions ne sont pas à hauteur du succès des différents projets4.

Le simple fait d’utiliser des logiciels libres ne suffit pas à contribuer à son évolution, il est nécessaire de s’y impliquer pour que cela fonctionne5. La déclaration d’un bug ou un simple retour utilisateur permettent alors de contribuer, à votre échelle.

Avec GNU/Linux, vous avez le pouvoir de faire évoluer les choses, utilisez le !

  1. le projet GNU est une ressource intarissable à ce sujet
  2. Lire l’excellent article de Sébastien Sauvage à ce sujet
  3. au sens ou l’entends Gerald Weinberg dans son ouvrage The Psychology of Computer Programming
  4. ça en fait d’ailleurs râler certains
  5. C’est d’ailleurs ce point qui est à l’origine des désaccords entre les partisans du Logiciel Libre et ceux de l’Open Source…

Convertir des albums encodés en .flac vers du .mp3

J’ai récemment récupéré plusieurs albums au format flac, et souhaitant pouvoir les lire sur mon baladeur multimédia, j’ai du les convertir au format mp3 (bouuuuh).

Rien de bien sorcier, mais les albums en question étaient fournis sous le forme d’un seul et unique fichier, ainsi que d’un fichier .cue, contenant les informations de découpage des titres du dit album.

J’ai donc utilisé mp3splt, ainsi que flac2mp3.

Téléchargez les différents logiciels, installez les puis placez vous dans le répertoire contenant vos fichiers .flac et tapez:

flac2mp3 . . &&  mp3splt -c *.cue *.mp3

Et en trois coups de cuillère à pot, le tour est joué!

Il est également possible de procéder de la même manière en obtenant un fichier ogg Vorbis, en utilisant oggconvert ou flac2ogg.

Ubuntu – Impossible de se connecter au réseau wifi

Cette nuit, et sans donner plus d’explications, mon ordinateur à subitement refusé de se connecter a mon réseau wifi. Lorsque la détection des réseaux voisins, y compris le mien, se passe sans encombres, la connexion échoue systématiquement, nm-applet me demandant sans cesse de (re)saisir la clé de chiffrement.

Il semble s’agir d’un problème de configuration, puisque, après création d’un nouveau compte utilisateur, la connexion en wifi au même point d’accès ce passe sans encombres.

un

locate wireless | grep ~

me retourne une liste des fichiers potentiellement incriminés. Les fichiers de configuration concernant le wifi sont situés dans ~/.gconf/system/networking/wireless/networks.

Supprimez les dossiers portant le nom du SSID de votre connexion wifi, et relancez une session: Ils seront regénérés automatiquement à la saisie de votre clé de chiffrement.

Voici la ligne de commande permettant de supprimer l’intégralité de votre configuration :

rm -Rf ~/.gconf/system/networking/wireless/networks/*

Par contre, je n’ai aucune idée de la provenance du problème …