De gros changements à venir à l’occasion du 200e article de ce blog.
J’ai posé jeudi matin ma démission de chez O2Sources.
A partir du 18 décembre, je ne serai donc plus salarié de la meilleure agence web Lyonnaise.

Cette année chez O2Sources a été formidable. Ce fut ma première réelle expérience en entreprise.
Je n’en regrette pas une seule journée.

Malheureusement, je ne peux faire de Ruby/Rails avec ce poste. Et développer mes compétences avec Django n’est pas mon objectif.
J’ai donc décidé de changer.

Le choix a été difficile. J’ai apparemment un profil particulièrement intéressant :mrgreen:
A ce propos, si vous êtes un développeur web avec une bonne expérience Rails et intéressé pour aller travailler en Suisse, à Lausanne, la société Eboutic cherche à étoffer son équipe (la boite est sympa et le poste est plutôt intéressant).

A partir du 4 janvier prochain, je commencerai donc à travailler pour la société LIM (excusez leur site web).
Toujours une PME (bien que plus grosse, environ 25 personnes), il ne s’agit par contre pas d’une agence web.
L’activité principale de la société est la conception et la vente de machine de forage.
Ma tâche sera de participer au développement d’une application web interne qui permettra aux machines possédant une puce GPRS de synchroniser les données statistiques prélevées en ligne.
Et bien évidemment l’application est développée en Ruby avec Rails.

Le poste est sur Vaulx en Velin. Les Lyonnais auront donc toujours le plaisir de profiter de ma présence :mrgreen:

Je ne m’en cache pas, je suis un pro git à fond.
Cependant et malheureusement, git n’est pas (encore) très répandu et beaucoup de projets sont encore hébergés sur des repositories SVN.
C’est le cas chez O2Sources (mais on parle d’y remédier, notamment lorsque Townce gèrera cela).

Vu que je viens de migrer ma machine de Windows vers Ubuntu, j’ai décidé d’en profiter pour faire un test.
Utiliser git-svn pour commiter en local en git et pousser par la suite sur le repository svn :)

Déjà, l’installation. Sous Debian-Like,
sudo aptitude install git-svn
Normalement, cela vous crée une commande « git-svn ». Moi, ça l’a pas fait. Du coup un petit coup de sudo find / -name git-svn; vous trouvez l’emplacement de l’exécutable (théoriquement dans /usr/bin) et y créer une commande globale.
ln -s /chemin/vers/git-svn /usr/bin/git-svn

Ensuite, commençons par récupérer notre repository
git-svn clone -s http://domaine.net/chemin/vers/le/repository
Si vous avez une arborescence avec des tags (dossiers tags/, trunk/ et branchs/), placez l’option -s.
Ainsi, git-svn les convertira en tags et branches GIT.
Sinon, c’est inutile :)

Deuxième étape : si vous avez des options git:ignore, elles ne sont pas prises en compte. Faites les donc :
git-svn show-ignore > .gitignore

Maintenant, faites vous une session de développement. Committez comme d’habitude sur votre repository git et oubliez svn (youpi !!).
Une fois que celle-ci est terminée, il vous faut committer (bah ouais hein).

Pour cela, commencons par faire un update. On sait jamais que vous seriez pas le seul à travailler et que l’un de vos collègues n’ait committé entre temps ;)
git-svn rebase
Et committons
git-svn dcommit

Vous verrez que votre repository svn a été mis à jour.
Cool non ? :)
Et vous, vous préférez GIT ou SVN ? (ouais, postez des commentaires !!)

Je viens de publier un article sur le blog d’O2Sources, sur le thème suivant : « Ecrire du code testable« .
En effet, vous pouvez avoir toute la bonne volonté du monde à vouloir écrire des tests dans votre code, si celui-ci n’est pas écrit de manière à vous permettre de créer des tests de manière aisée, vous n’arriverez à rien.

Cet article donne donc une liste de 10 conseils pour écrire du code testable.

  1. Ne pas mélanger le constructeur avec le code logique
  2. Demandez les choses. N’allez pas les chercher vous même
  3. Ne faites pas tout le travail dans le constructeur
  4. Evitez les singletons et variables globales
  5. Evitez les méthodes statiques
  6. Favoriser les compositions aux héritages
  7. Favoriser le polymorphisme aux conditions
  8. Mélanger des objets de valeur et des objets de service
  9. Ne mélangez pas tout
  10. Pensez deux fois, n’agissez qu’une

Je vous invite donc à lire cet article « Celui qui voulait rendre son code testable« .

Vous êtes étudiant en développement ? Découvrir un nouveau langage et un framework supra top mega cool vous intéresse ?
Ou bien vous êtes étudiant et vous êtes déjà un gourou de Ruby et de Rails ?
Ce message vous intéresse !
Sinon ? eh ben lisez quand même, au cas ou vous auriez un(e) ami(e) qui pourrait être intéressé(e) :)

Une super agence web que je ne nommerai pas a besoin de vous maintenant !
Il s’agit de participer au développement d’un projet interne en équipe (de deux).

Les conditions requires sont les suivantes :

  • Aimer les sushis
  • Avoir un FPH moyen supérieur à 400
  • Avoir une Wiimote et un Nunchuk à la place des mains
  • Être chez Canon

Et sinon si vous avez déjà des bonnes bases dans le développement web (php toussa. Java ne compte pas), que vous êtes intéressé par rails voir que vous avez déjà des bases, vous correspondez au profil.

Le stage est basé à Lyon.
Et du coup n’hésitez pas à lire et à répondre à l’annonce officielle sur le blog de la société qui cherche ce développeur.

Il y a quelques mois, Florent a eu une idée de génie !
Et comme il était dans les bureaux d’O2Sources lorsque cela est arrivé, il nous l’a faite partager et on a été tout de suite conquis.
Nous avons alors lancé un peu rapidement iSpoil, afin de dire « non » au mystère des films, séries et autres livres.
Parce que c’est nul, ça stresse et qu’on a envie de savoir qui c’est Keyser Söze avant la fin du film (ou pas).

Le design choisi était evidemment assez simpliste du fait d’un lancement rapide.
Mais c’est maintenant chose reglée puisque, grâce au travail acharné de Thanh et Hélène pour le design, de Florent pour l’intégration et de moi-même pour d’adaptation à Wordpress, le nouveau thème de iSpoil est disponible depuis ce matin.

Alors tout le monde à spoil !

O2Sources, l’agence web qui rox propose aujourd’hui (merci à Thanh) un nouveau thème gratuit pour Wordpress.
Nommé Pink Chinese, le bébé est en fait né il y a quelques mois, quasiment en même temps que Cyclo. Mais il n’est baptisé que aujourd’hui.

Plus léger que Cyclo, j’aime beaucoup ce nouveau thème :-)

Pendant ce temps la, j’ai vraiment hâte d’être riche !

Nous venons de lancer notre tout dernier "service 2.0". J’ai nommé iSpoil.
Certains d’entre vous en ont déjà entendu parler la semaine passée vu que nous avons fait tourner un doodle dans le but de définir le nom du site. C’est iSpoil qui a gagné evidemment ;-)

Qu’est-ce qu’un spoil ?
Il est dit de quelqu’un qu’il vous raconte un spoil lorsqu’il vous parle de la fin d’un livre, d’un film, d’une série ou de toute autre chose que vous ignorez actuellement, la conséquence étant que vous n’avez à partir de ce moment la plus aucun plaisir à continuer à regarder cette série ou ce film ou à lire ce livre vu que vous savez ce qu’il va se passer.

iSpoil permet de partager cela en proposant à chaque internaute de raconter la fin du livre, du film, de la série ou du jeux vidéo de son choix.
Très drole; un tantinet sadique (voir plus). iSpoil devrait en ravir plus d’un (et en dégouter tout autant) ! :-)

Je vous ai déjà parlé de mon nouveau collocataire, Norris.  En voulant configurer celui-ci, je me suis heurté à une légère problématique

Comment puis-je tester une application située dans mon repository SVN ?

Tout d’abord, je me suis dit "pour faire propre, je crée un repository par projet". Jusque la, facile :-)

Ensuite, Jean-Sebastien (il ne fera pas de billet là-dessus alors que cela serait une excellente manière pour lui de remplir son blog. Qu’a cela ne tienne) m’a expliqué comment il a fait sur le dépot de projets interne à O2Sources. Le principe est au final assez simple :

SVN, utilisé comme un module Apache, permet de visualiser un dépot et d’y faire des commit via le protocole DAV (à tous les étudiants de ma promo : oui je sais, je suis passé du côté obscur de la force. Mais je n’avais pas le choix).

A partir de la, tout devient très simple ! Il existe en effet davfs, qui permet de faire un mount sur une adresse DAV. Y’a plus qu’à faire un mount sur notre chemin SVN ! Je fait donc ce mount vers le chemin ou pointe le dossier parent à tous mes repository. Oui, j’ai pas envie de faire un nouveau mount à chaque fois que je fait un nouveau repository. Ca serait un peu chiant …

Et la, "connection refused". Quelle déception ! Surtout lorsque je tente sur un autre repository SVN et que je constate que cela fonctionne. Après quelques recherches, j’ai finalement tout de même réussi à monter ma partition. En effet, en cherchant à monter le dossier parent à mon repository, qui me semblait être un dossier subversion supportant DAV puisqu’il s’affichait de la même manière que les autres dans mon visualisateur, je ne montais en fait absolument pas un dossier DAV, mais un dossier tout court …

Il fallait donc que je monte directement mon repository. Pas moyen de monter le dossier parent … Ô rage, Ô désespoir. Mais c’est la que viennent faire leur apparition les branches. Pourquoi ne pas utiliser un seul repository pour tous mes projets et créer une nouvelle branche pour chaque projet :-)

Evidemment maintenant cela fonctionne. Je peux monter mon repostory "sites", dans lequel sont situés de multiples projets tels que "refstats", "kazhar", … Et comme cette parition dav contient des fichiers bruts, je peux y placer une virtualhost Apache et donc voir les fichiers présents dans mon repository subversion comme s’ils étaient en dur sur ma machine.

Pour finir, voici ce que j’ai mis dans mon fichier /etc/fstab (afin de monter la partition automatiquement au démarrage de la machine)

http://localhost/sites         /svn/sites     davfs   user,auto,ro    0       0

J’ai créé un virtualhost pour svn sur localhost afin de ne pas avoir à m’embeter à créer une identification pour la machine locale. Un identifiant et un mot de passe sont tout de même demandés au démarrage. Il suffit cependant de taper sur "entrée" pour passer à la suite.

 
Fork me on GitHub