612M$

Via /., on apprend qu’une entreprise devrait dépenser plus de 600 millions de dollars pour redévelopper le noyau Linux !

Pfiou, ça fait quelque chose d’avoir ça d’installé sur sa machine :-).

Subversion

Ça faisait quelques temps que j’avais envie d’écrire sur un sujet plus technique. J’en ai d’autres en tête, le problème étant de trouver le temps pour les traiter durant cette dernière année d’école d’ingénieurs qui nécessite tant de travail, comme le dit aussi Vincent

Cette année, pour mes projets j’utilise Subversion alias svn à la place de CVS que j’utilisais l’année dernière.

Je parlerai surtout de son utilisation côté client parce que je n’ai installé un serveur que pour CVS. L’installation d’un serveur svn a toutefois l’air plus complexe, mais je me fourvoie très certainement, j’en conviens.

Pourquoi Subversion ? Pourquoi pas CVS ?

En fait, svn ne se pose pas en concurrent de CVS, mais en successeur. Il n’y a donc pas de raisons de chercher à trouver CVS meilleur, il ne l’est pas. C’est très simple, j’ai même entendu dire que ce sont des anciens développeurs de CVS qui ont codé svn. Ils ont repris ce qui était bon et modifié ou supprimé ce qui était mauvais.

Qu’est-ce qui change ?

Ils ont gardé les mêmes commandes (enfin, pour celles qu’on utilise le plus couramment, je n’ai pourtant vu aucune différence) :

  • cvs co … => svn co …
  • cvs update => svn update
  • cvs commit => svn commit

Donc, si vous commencez un projet, n’hésitez pas utiliser svn plutôt que CVS. Il est d’ores et déjà prêt pour une utilisation en production (dixit la FAQ de Subversion).

Mon avis

Comme je l’ai dit plus haut, je n’ai testé que le côté client. Voici en vrac quelques points que j’ai retenus. Ils ne sont pas forcément très importants, mais c’est ceux qui me viennent à l’esprit alors que j’écris ce billet :

  • Pour le checkout initial, si vous utilisez un serveur qui fonctionne en http ou https, je trouve ça plus simple. cvs co http://svn.monServeurAMoi.org/monRepository et c’est OK. Pour ceux qui connaissent, fini les export qui précédaient l’appel du checkout avec CVS. (Bon, c’est vrai qu’il peut encore y avoir des export dans certains cas avec svn, mais jusqu’à maintenant, je n’en ai pas eu besoin, mais passons).
  • Les commits sont atomiques. Ça veut dire que votre serveur Subversion ne peut plus se retrouver en vrac après un souci (de commits en concurrence par exemple). Soit vous arrivez à “commiter” correctement, soit rien ne passe et le repository revient dans un état stable. Pour ceux qui veulent en savoir un peu plus : en fait, c’est grâce au fait qu’on n’utilise plus des fichiers mais une BD (Berkeley DB) qui apporte la gestion des transactions (rollback&commit world :-))
  • Le répertoire de travail du client n’est plus visible directement sous GNU/Linux. En effet, celui-ci se nommait CVS pour… CVS, oui, bien joué, “c’est encore un militaire qui gagne une tringle à rideauuuuuu!”. Il s’appelle désormais .svn pour subversion : ce qui correspond à une sorte de fichier caché sous mon OS favori. D’aucuns pourront considérer le fait de ne pas voir tout de suite qu’on est sur une “working copy” d’un repository comme un défaut, personnellement je trouve ça très bien de ne lister que les fichiers de mon projet (et non aussi le répertoire destiné à la gestion de l’outil de travail collaboratif).
  • Un meilleur support réseau. CVS a été développé comme une surcouche à rcs, un logiciel capable (en local) de gérer l’historique d’un fichier donné et qui stockait ça dans un fichier à l’extension ,v :-). Subversion a été pensé pour être utilisé en réseau, il offre donc plusieurs moyens évolués et sécurisés d’accéder au repository, là où CVS obligeait à posséder un compte utilisateur sur la machine serveur…
  • Par la commande svn rename, svn offre la possibilité de renommer un fichier là où CVS obligeait à : déplacer le fichier, le supprimer du repository (cvs remove) et l’ajouter à nouveau avec le nouveau nom (cvs add)…

Quelques pointeurs (en anglais)

  • Un comparatif d’une dizaine d’outil de “gestion de configuration”. Vous verrez que, contrairement à CVS, Subversion n’a plus rien à envier à des outils closed-sources et très chers.
  • Un extrait d’article (merci Greg) qui résume bien les changements importants entre CVS et Subversion. Je ne sais pas d’où il provient, si quelqu’un le sait, je veux bien rajouter la référence :

CVS is aged, and it has many deficiencies. For example, you cannot move or rename files, the branch feature is very complicated, etc. Furthermore, CVS has only poor network support. To run it in a safe way, you must use it in conjunction with ssh, and this means that you must give all participants a system account. If the network connection breaks in the middle of a commit operation, this may damage your data.

Subversion seems to implement all features that are missing in CVS. The version control model is more complete, as you can check in directories. The network support is much better, as it uses the well-known WebDAV protocol. One can tunnel it easily through SSL, and it is only required to have a web server user account to get write access. Last but not least, there is a modern database behind it with transactions, so you are not lost in space if your disk gets full, or if some other unpredicted incident happens.

Bien entendu, si vous avez des questions ou des compléments sur le sujet, n’hésitez pas à utiliser les commentaires :-)

La soupe

Bon, cette nuit j’ai dormi à Champs/Marne chez Rudy, Gab était là aussi. On est rentré un peu tard de soirée et je me voyais pas trop prendre le volant…

On a donc décidé de boufer un ptit truc avant de se coucher. Rudy propose une soupe, Gab et moi trouvons que c’est une bonne idée. Et là, Gab demande : “Hey, t’aurais pas une soupe à la purée et aux knackis ?”(sic)… L’alcool fait des ravages, non ? :-)

Une autre pour la route, Rudy habite dans une résidence très près de l’école : 620€/mois pour 18m². Je remarque que son rideau de fenêtre est déchiré, alors je le lui dis et lui de me répondre : “attends ! qu’est-ce tu crois ? T’as cru que pour ce prix là, c’était le grand luxe ou quoi ?”. Sans oublier que son lit s’est cassé hier soir lorsqu’il s’est assis dessus…

C’est la vie :-)

Et là... c'est le drame...

Pour ceux qui suivent un peu, je suis dans une école en alternance où je fais 6 mois à l’école et 6 mois en entreprise. Mon école se trouve dans la cité Descartes de l’UMLV, à Champs sur Marne en Seine et Marne et mon entreprise est à Toulouse…

Alors, voilà… Le problème c’est que j’ai entendu la météo de demain : genre 16 à Paris, 17 à bidule, 24 en Corse et … 29 à Toulouse ! Oui, 29° :'(

Et moi de me dire qu’on est en octobre et que je ne suis PAS à Toulouse en ce moment…

Et là… c’est le drame…

Le poids des entreprises

Bon, un petit extrait d’un des cours d’aujourd’hui. Juste pour montrer qu’on ne perd pas la main.

La prof nous parle du malheur des SSII qui sombrent à cause de leur petit poids face aux géants. Elle continue ensuite de parler de ces boites…

Ah, ces pauvres boites de petit poids, me dis-je…

Face au géant (vert), que je pense maintenant que j’écris ce billet :-)

Allez, ce sera tout pour la blague du jour (pour ceux qui ne l’ont pas vue, ne la cherchez pas, vous ne rirez pas. J’ai dit non, ne la cherchez pas !).

Neuf Box et Volley

Un peu de mode ma vie®.

Je viens de recevoir ma neuf box, mais j’attends toujours que ma connexion soit activée. Il semble en effet que ce ne soit pas encore le cas. Heureusement que la connexion illimitée bas-débit de secours fonctionne… Mais comment on faisait avant ?

Quelques commentaires sur ce modem. Je vais un peu la comparer avec la FreeBox, que j’ai à Toulouse :

  • Bon, évidemment le débit est inférieur à celui de la FreeBox ;
  • Un bon point pour le téléphone : j’ai l’offre ADSL 1024/téléphonie illimitée. Avec la FreeBox, il faut deux téléphones un pour la FB et un pour la liste classique. Avec la NeufBox, un seul téléphone suffit : lorsqu’un appel arrive sur la ligne normale, il est basculé sur le téléphone branché à la NeufBox… Très très bien !
  • Par contre, le fait que la FreeBox affiche l’heure automatiquement mise à l’heure par le serveur distant, c’est pas mal.
  • EDIT(2) : En fait, il y a autre chose que je préfère avec la FreeBox, c’est le fait qu’elle soit en DHCP. La NeufBox est, elle, en PPPoE, ce qui est moins simple à configurer et moins répandu.

Bon, voilà, j’ai fini pour la NeufBox

Sinon, pour terminer, eh ben je reviens du volley et ça fait franchement du bien :-) . Ce soir, un pote de ma promo est venu…

Bon, ce sera tout pour ce soir et ce billet inintéressant.

EDIT : Tiens, au fait, je voulais le dire depuis un certain temps. Mais j’ai la flemme de rajouter un lien dans le menu, il est possible de suivre les commentaires postés sur le blog par le fil rss des commentaires.

Geek Test

Bon ben voilà Vincent, j’ai aussi passé le geek test.

Eh ben, je suis moins geek que toi !

Votre fiche de geek

Votre score est de : 1058

Vous faites partie des Reasonable Geeks

Pas mal… Un bon taux de geekitude coule dans vos veines, mais vous êtes encore trop sociable pour faire un bon geek. Débarrassez-vous des quelques amis qui ont l’outrecuidance de vous tirer hors de chez vous. :-p

Comment increaser sa productivity

Pong.

Via le Blog-Note, un lien vers le good site qui va vous faire gagner du time (and “time is money”).

Sinon, j’aime beaucoup aussi.

Pourquoi je le trouve pas, ce fichu lien vers mes résultats ? Ou comment fonctionne un moteur de recherche.

À force d’entendre ma copine et d’autres se plaindre de ne pas trouver :

  • les résultats du bac de la cousine, du frère, du chien… ;
  • les résultats des dernières élections ;
  • ou que sais-je encore.

je me décide à t’expliquer, public, comment ça marche un moteur de recherche, à la base.

Pourquoi, lorsque vous tapez quelque chose du genre “bac résultats toulouse”, vous n’obtenez pas toujours de façon miraculeuse et en premier le lien direct sur la liste des bacheliers fraîchement reçus ?

C’est très simple : chaque moteur de recherche possède un robot (un logiciel) qui passe son temps à surfer et à trier tout ce qu’il lit. Il retient donc plus ou moins bêtement les mots qu’il a rencontré. Donc, si aucun site n’a écrit en toute lettre un ou plusieurs jours avant les résultats d’un examen Résultats du bac ici pour l’académie de chouette, et bien le moteur de recherche ne pourra pas deviner où l’information est succeptible de se trouver et ne pourra pas donc pas vous fournir la bonne réponse le jour venu… C’est pas plus compliqué que ça.

Exemple des traces que laisse lors de ses recherches ce type de robot :

Google

64.68.82.178 www.batmat.net - [01/Sep/2004:11:48:04 +0200] "GET /robots.txt HTTP/1.0" 404 2384 "-" "Googlebot/2.1 (+http://www.google.com/bot.html)"

Yahoo

66.196.90.232 www.batmat.net - [01/Sep/2004:00:21:44 +0200] "GET /robots.txt HTTP/1.0" 404 2384 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)"

MSN

65.54.188.130 batmat.net - [01/Sep/2004:07:55:07 +0200] "GET /blog/2004/08/24/76-VolleyballAuxJoSuiteEtFin HTTP/1.0" 200 12981 "-" "msnbot/0.11 (+http://search.msn.com/msnbot.htm)"

Divers autres

192.133.61.44 www.batmat.net - [01/Sep/2004:09:04:42 +0200] "GET /robots.txt HTTP/1.0" 404 2384 "-" "lmspider (lmspider@scansoft.com)"

64.62.168.26 www.batmat.net - [01/Sep/2004:02:56:44 +0200] "GET /robots.txt HTTP/1.0" 404 2384 "-" "Gigabot/2.0"

La faute n’est donc pas à ce_fichu_internet_qui_ne_fonctionne_pas_si_bien_que_ça, mais tout simplement au fait qu’on ne sait pas encore, malgré les progrès fulgurants de la technologie, lire l’avenir dans les pages web :-).

PS aux XHTMLeux : j’ai mis les logs en <code>, qu’est-ce que vous en pensez ?

Nombre d'arguments variable en Java

Les connaisseurs du langage se diront certainement que c’est impossible. Et bien, ceux là n’auront pas encore découvert la nouvelle API de Tiger, la version 1.5 de Java (parfois connue aussi sous le nom de version 5). Les varargs font en effet partie des nombreux ajouts de l’API qui devrait sortir en version finale (actuellement beta2) vers le mois d’octobre.

Je vais donc décrire brièvement comment ça marche avec des petits bouts de code. Vous verrez que c’est très simple à l’utilisation, beaucoup plus que l’équivalent C :-).

Nous allons montrer un exemple avec l’ancienne et la nouvelle méthode. Une simple fonction destinée à afficher les paramètres qui lui sont demandés.

C’était pas mieux aaavaannt (Cabrel’s moment)

On utilisait un tableau d’arguments en entrée, ce qui pouvait s’avérer lourd à l’utilisation.

public maFonctionBof(String [] args)
{
  //et paf, on fait des trucs en parcourant le tableau
  for(int i=0;i<args.length;++i)
  {
     System.out.println(args[i]);
  }
}

Pour l’appeler, ça donnait un truc assez moche :

maFonctionBof(new String[]{"nif-nif","naf-naf","nouf-nouf"});

C’est mieux mainteeenaaannnt

En fait, seule la signature de la méthode change, le corps reste totalement identique :

public maFonctionPasBof(String... args)
{
  //et paf, on fait des trucs en parcourant le tableau
  for(int i=0;i<args.length;++i)
  {
     System.out.println(args[i]);
  }
}

Vous remarquerez que c’est le même symbole qu’en C. Et pour l’appeler, ça simplifie la chose :

maFonctionPasBof("nif-nif","naf-naf","nouf-nouf");

Mais alors, mais alors, mais alors ? Quelle est donc la fonction connue par une génération de programmeur C, adulée que dis-je, utilisant ce principe avec avantage et que beaucoup demandaient ? Oui, vous l’avez rêvé, ils l’ont fait : printf est maintenant disponible dans l’API de la version 1.5 de Java :-).

float v = 1.5F;
int nb = 2;
System.out.printf("C'est-y-po formidable tout ça ? Que la version %.1f 
       nous apporte ces %05d améliorations ?",v,nb);

Pour des informations plus complètes sur les nouveautés de Tiger.

Page 25 of 33 Older