willoblog

Aller au contenu | Aller au menu | Aller à la recherche

Tag - développement web

Fil des billets - Fil des commentaires

jeudi 29 octobre 2009

SNI, TLS : multiples virtual hosts avec Ubuntu Karmic

Ah, enfin. Ça y est, hourra, depuis le temps que l’on attendait cela, c’est enfin possible : il est enfin possible avec Apache et OpenSSL d’héberger sur un même serveur plusieurs sites sécurisés avec chacun son certificat propre.

J’héberge sur mon serveur plusieurs sites. Deux en particulier ont besoin d’être sécurisés, non pas pour garantir qu’il s’agit de moi (je ne suis pas une banque, personne n’essaiera jamais de se faire passer pour moi), mais parce que ce qui y est écrit est personnel et que je suis un grand parano qui ne veux pas laisser d’accès à des personnes que je ne connais pas.
Comme je veux cependant garantir l’accès de mes sites au plus grand nombre, je cherche à éviter les affichages d’erreurs moches et incompréhensibles des problèmes de sécurité, qui deviennent particulièrement pénibles avec Firefox 3.5. Du coup, deux choses à faire :

  • acheter des vrais certificats, du moins ne pas utiliser des certificats auto-signés. C’est tout à fait contre ma pratique et mes habitudes en informatique, mais il faut se rendre à l’évidence : tous les navigateurs font croire que l’on tombe chez des pirates quand le certificat est auto-signé. C’est très triste d’en arriver là. Néanmoins, ayant trouvé des certificats à pas cher, je me fournis maintenant chez RapidSSL pour des certificats que ne m’ont causé aucun problème.
  • pouvoir séparer les noms de domaine sur mon serveur web.

Le deuxième point paraît simple. Il s’agit pourtant d’une grande impossibilité du chiffrement SSL tel qu’il été conçu à l’origine : le chiffrement est effectué sur l’adresse dès l’envoi de la requête par le navigateur, et le déchiffrement n’a lieu sur le serveur qu’après sélection du certificat pour déchiffrer… La sélection du certificat ne peut donc pas dépendre de l’adresse demandée.
Sous Ubuntu, une solution existait jusqu’à maintenant. Utiliser GnuTLS, qui comme son nom l’indique permet l’utilisation du protocole TLS, dernière évolution de SSL. Pourquoi ? Parce qu’avec TLS, il est possible de balancer en clair l’adresse grâce à l’extension appelée SNI. Problème de GnuTLS, c’est un peu instable et il arrive notamment en cas de requêtes multiples de se voir servi par un mauvais certificat : on retombe sur les messages d’erreur, encore plus dérangeant parce qu’incompréhensibles vu que ça fonctionnait une seconde avant…
Apache, le logiciel serveur, supportait le TLS, mais pas le SNI avec OpenSSL. C’était un bug connu, qui a été réparé début août, mais pour Ubuntu Karmic uniquement. Cette version est installée depuis quelques jours (tout juste avant sa sortie finale, soyons fous…) sur mon serveur, et cela marche comme un charme. Il suffit de mettre dans la configuration générale, par exemple /etc/apache2/ports.conf :

Listen 443
NameVirtualHost *:443

puis dans la configuration de chaque site :

<VirtualHost _default_:443>
  ServerName votredomaine.fr
  SSLEngine on
  SSLCertificateFile /etc/apache2/ssl/votrecertificat.crt
  SSLCertificateKeyFile /etc/apache2/ssl/laclécorrespondante.key
  ...
</VirtualHost>

À noter aussi l’existence d’un autre logiciel serveur, Lighttpd. Il a notamment l’avantage d’être plus léger qu’Apache. Je ne l’utilise pas sur mon serveur plus par inertie, parce qu’Apache est parfaitement configuré, mais je l’utilise sur mon portable pour avoir un serveur web de test avec moi, et je le trouve très bien et très réactif. Je pensais qu’il supportait SNI depuis quelques temps, mais visiblement ce n’est le cas que depuis 5 jours. Bref, le choix est ouvert, comme toujours dans le monde libre.

mardi 29 septembre 2009

Bilan d'été et de rentrée

Les vacances de cet été, mes premières vraies vacances d'été depuis 2005, sont passées très vite. Quelques passages en jury de concours, un peu de repos je pense mérité, la fabrication d'une discothèque, la préparation d'un grand évènement m'ont bien occupé. J'ai aussi pas mal bossé sur ma galerie photos, et le résultat est très enthousiasmant. J'en reparlerai quand j'aurai fini ça, y a encore quelques trucs à faire, mais la liste des nouveautés est plus longue que la liste des fonctionnalités déjà existantes, et les modifications au niveau de l'administration de la galerie pourrait enfin permettre l'installation et l'utilisation simples.
Après un petit moment de flottement, la rentrée est maintenant bien active et les journées de travail sont longues. Cela va forcément réduire ma capacité de codage, mais j'ai bon espoir que dans moins d'un mois je pourrai sortir cette nouvelle version.

Bref. Je pensais que ces vacances me permettraient de solder toute ma todo-list. Bin non, les vacances ne sont jamais assez longues. :-) En même temps, faudrait pas que je m'ennuie...

jeudi 6 août 2009

Environnement de développement

Comme les articles d'aujourd'hui vous en ont surement persuadés, vous aurez compris que j'ai passé un premier mois de vacances à réaliser un grande partie des projets qui me tournaient dans la tête et que je n'ai pas eu le temps de creuser d'avantage cette année (parce qu'on ne l'imagine pas au début, mais une vie de prof débutant ne laisse pas beaucoup de temps pour le reste). La todo-list commençait à se faire longue et j'ai été bien content de pouvoir enfin m'y atteler sans plus penser au boulot.

Mais ceux qui me connaissent vous diront que je passe, on va dire « pour raison familiale », beaucoup de temps loin de chez moi. Et personnellement, j'ai commencé à m'intéresser à l'informatique à partir du moment où j'ai eu internet. J'associe mon plaisir de ce loisir à ma navigation sur le net, à lire de la doc pour être sûr de ce que je fais, à perdre mon temps sur des détails techniques qui permettent la compréhension d'effets de bord insoupçonnés (ça c'est mon côté chercheur :) ). À tel point que je me demande comment on faisait avant. Et que cela me manque quand ce n'est plus possible.

Être loin de chez soi n'est pas un problème. ssh, rsync (et mon script de sauvegarde) et sshfs font que l'on peut maintenant travailler sur un ordi distant comme si l'on était dessus (avoir une console, c'est bien, mais avoir ses fichiers dans le navigateur de fichiers et pouvoir les éditer avec l'éditeur classique en double-cliquant dessus sans temps de latence, c'est vraiment génial).

Mais pour pouvoir développer, en particulier des sites web, dans le train, c'est une autre affaire. Ma solution est d'avoir un serveur sur mon portable. Et finalement c'est très simple. J'ai choisi, pour changer de mon apache configuré aux petits oignons et que je commence à bien comprendre, un serveur censé être plus light : lighttpd. Finalement, sans aucune configuration, tout fonctionne du premier coup. Facile, il suffisait de taper :

sudo aptitude install lighttpd php5-cgi mysql-client mysql-server php5-mysql

On peut y ajouter le gestionnaire de bases mysql développé par Sun, mysql-query-browser, mais je l'essaie depuis environ un mois et je n'en suis pas convaincu. Il ne vaut pas PhpMyAdmin, dont je me passe néanmoins en utilisant à la roots le client mysql en console. Il n'y a plus qu'à incanter des lignes magiques dans des fichiers et peupler /var/www/.

À partir de là, au moins on peut faire du php/mysql et vérifier si cela fonctionne bien. Mais il manque les docs. Et quand on fait du php, on sait tout l'intérêt de la doc de php.net, complète et bien faite. Alors du coup, maintenant je ne sors plus jamais sans mes docs :-)

  • documentation php à télécharger et à dézipper
  • documentation JQuery à télécharger et à dézipper, qui est assez bluffante
  • documentation mysql à télécharger et à dézipper (prendre le « HTML page/chapter »)

Ma discothèque

Le résumé

http://musique.cyril-ravat.fr

La préhistoire

Depuis plus d'un an cela me trottait dans la tête. Alors je me suis pris par la main, j'ai un peu réfléchi, et je l'ai fait. C'est pas encore tout à fait comme je l'imagine au final, mais on s'en approche.

Depuis plus de 13 ans maintenant, depuis le printemps ou l'été 1996, j'achète de albums en cd. Avant, j'avais quelques cassette audio, mais rien de bien important, un pirate de Smash d'Offspring, premier album que j'ai pu écouter en entier, des enregistrements de Skyrock qui ne passait pas la même chose que désormais, des broutilles. Depuis ces temps reculés donc, des albums, beaucoup, maintenant près de 240. Presque tous choisis volontairement.

Depuis 13 ans donc, je note. Enfin au début pas tout à fait, mais en 1998 j'ai commencé à noter avec davantage d'assiduité dans mon agenda titres, artistes, dates d'achat, lieux d'achat et prix. Et je n'ai plus jamais arrêté, à de rares exceptions près. Et maintenant, avec mes capacités à organiser une base de données de façon pérenne, je me disais qu'il fallait vraiment que je stocke ça quelque part, dans des endroits plus sûrs qu'un simple carnet vieilli.

Depuis 3 semaines environ, je m'y suis mis. Entre 8 et 10 heures de code par jour, souvent la nuit, parce que malgré moi c'est comme cela que je préfère bosser. Mais j'ai procédé d'une façon complètement différente à d'habitude. Contrairement à d'habitude, j'ai l'impression de ne pas avoir perdu trop mon temps en pinaillages et fioritures.

L'histoire

Contrairement à d'habitude, j'ai commencé par fabriquer une interface d'administration solide et pratique, à base de contrôles en JavaScript et en Ajax, de validation à la volée, de pseudo-web2.0, de messages d'alertes ou de confirmation qui s'affichent sans recharger la page, dont je suis assez content. Plus je code en utilisant la formidable bibliothèque JQuery, plus je trouve qu'elle est géniale et facilite énormément les chose. Quand je pense que j'avais implémenté dans la GaleriePhotos, en octobre 2006, une connexion de type Ajax (en fait, une simple utilisation de la vieille fonction XMLHttpRequest)... C'est quand même autrement plus élégant de coder cela maintenant en trois ligne parce qu'une API complète se charge de tout.

Et puis, contrairement à d'habitude, j'ai entré quelques albums fictifs en bidouillant partout pour être sûr que la machinerie était robuste. Pas mal de bugs sont apparus, et rapidement, à peu près une semaine après avoir démarré, j'ai commencé à entrer mes albums. Contrairement à d'habitude, je n'ai pas attendu d'avoir tout entré pour avancer, et arrivé à un tiers environ, j'ai codé l'interface publique. Rapidement. J'ai ensuite repris la saisie des données, laborieuse et ennuyeuse. Avec en parallèle quelques moments de réflexions pour implémenter telle ou telle fonction pour l'affichage.

L'épilogue

De fil en aiguille, tout est maintenant enfin prêt. Depuis 2 jours, le site hébergeant la liste de mes albums acquis au fil des ans, de tout mon univers musical, existe. Depuis 4 jours en fait mais les deux derniers jours ont permis d'ajouter des fonctions de recherche et de classement que j'apprécie pas mal, surtout pour les techniques que j'ai employées (ce n'est rien d'autre que du narcissisme, rassurez-vous).

Le site en question, histoire de faire simple, s'appelle

http://musique.cyril-ravat.fr

Je vous invite à y venir faire un tour.

J'allais oublier de parler de ce qu'il manque. Le site contient des données, mais pas encore assez. J'ai prévu d'ajouter :

  • les pistes des albums, éventuellement, si je trouve un moyen simple et pratique de le faire. J'avoue ne pas avoir encore beaucoup cherché.
  • des liens entre artistes et entre albums, du genre « si vous aimez cela, alors vous aimerez... ». C'est assez complexe, en particulier en terme d'interface d'administration. J'ai déjà quelque chose de fonctionnel mais très lent à l'affichage, et mal pratique au final. Il faudrait surement effectuer une présélection grâce aux tags...
  • une description un peu plus complète des artistes, une photo, un lien wikipedia, des trucs.
  • un système de commentaires et la possibilité pour les visiteurs de mettre aussi des notes. En fait, c'est quasiment déjà en place, mais je pense que ce n'est pas le plus pressé et donc je ne le ferai pas très vite.

Et bien sûr, j'ai prévu, quand je serai assez sûr de moi, de publier sous licence libre le logiciel dans son ensemble, au cas où ça pourrait servir à certains. Mais il va falloir attendre une petite année environ avant cela...

SyntaxHighlighter, php et scripts Bash

Bon, troisième post de la journée sur le sujet, après les deux premiers. Petits trucs et astuces pour pouvoir afficher des scripts bash comme cela est réalisé sur mon site.

Pour le transcript, deux problèmes

Balises malgré elles

SyntaxHighlighter transforme tous les chevrons « < » et « > » en entités html correspondantes, respectivement « &lt; » (less than) et « &gt; » (greater than). Ce ne serait pas grave s'il ne le faisait pas seulement pour presque tous les chevrons... Or il cherche à détecter automatiquement les balises (ce qui n'est pas très malin dans du code bash d'ailleurs, ce qui fait que mon adresse mail par exemple était comprise comme une balise, dégradant quelque peu la suite de l'affichage. Total : il faut le faire pour lui.
Au départ, j'avais choisi d'utiliser readline en php, à savoir

<pre class="brush: bash">
<?PHP  @readline('compil'); ?>
</pre>

Mais transformer les chevrons à l'avance n'est pas beaucoup plus compliqué :

<pre class="brush: bash">
<?PHP  echo str_replace('<','&lt;',str_replace('>','&gt;',file_get_contents('compil'))); ?>
</pre>

Vous aurez remarqué que du coup, dès que le fichier est modifié, c'est le code de la dernière version qui s'affiche. Zéro maintenance (le fichier compil est un lien symbolique vers /usr/local/bin/compil sur mon serveur).

Décidément, ces chevrons...

Et c'est à ce moment que l'on relit un peu ce qui s'affiche à l'écran, et qu'on se rend compte que plein de chevrons (mais pas tous) sont restés à l'état d'entités html. Alors qu'en enlevant l'influence de SyntaxHighlighter, on obtient bien le résultat attendu. Il m'aura fallu quelques minutes pour me souvenir que lt et gt, sont des mots-clés en bash, justement pour des tests numériques plus grand/plus petit (ouais, tout est lié). Un grand dilemme se pose alors. Soit on laisse comme ça, et le code affiché est faux. Soit on s'arrange pour ne jamais avoir de chevrons (ce qui est impossible quand on a besoin de redirections). Soit on commente les mots-clés gt et lt dans le fichier de définition shBrushBash.js, et tant pis pour leurs rares apparences en tant que tests, où ils ne seront pas colorés comme il faut. J'ai choisi cette dernière solution.

Pour l'aide

Ah, là ça se corse. Au départ j'avais recopié telle quelle la réponse de compil -h. Je me suis dit alors « mais si t'as une coquille dans l'aide ou que tu la modifies, il faudra revenir ici... au secours ». Alors j'ai trouvé un moyen. Après plusieurs tâtonnements et hésitations sur la meilleure fonction php entre exec, system et passthru, j'ai opté pour

<pre class="aide">
$ compil -h
 
<?PHP 
exec('[ ! -e compil.help -o compil -nt compil.help ] && compil -h | tr -d "\033" | sed -e "s/\[1m/<b>/g" -e "s/\[0m/<\/b>/g" > compil.help');
@readfile('compil.help'); ?>
</pre>

Explication : la dernière commande lit et affiche un fichier compil.help. On va donc y mettre l'aide. Problème, j'utilise un formatage à base de caractères bizarres qui permettent de mettre en gras du texte en console. On prend donc le résultat de compil -h, on en vire donc le caractère bizarre (grâce à la commande tr -d), puis on identifie le début et la fin des mises en gras, que l'on remplace de façon moche mais fonctionnelle par des balises de formatage html.
Le début est un test, qui permet d'exécuter la commande seulement si compil.help n'existe pas ou est plus ancien que compil. Cela semble fonctionner à peu près correctement.

SyntaxHighlighter

J'ai découvert il y a quelques semaines un (gros) bout de code génial. Bon, ce n'est pas une grande découverte, il est déjà très utilisé, mais je n'avais jamais vraiment eu besoin de ce genre de trucs jusqu'à maintenant...

Comme le dit son site, il s'agit d'un code de surlignage syntaxique, ou comment rendre des bouts de codes déjà lisibles encore plus lisibles.

L'utiliser n'est pas très compliqué, puisqu'il suffit de télécharger le dernier .zip, de le dézipper et de regarder ce qu'on trouve. Un répertoire scripts contenant en particulier shCore.js qui est le cœur de la machinerie, ainsi que plein de shBrush*.js, qui contiennent les définitions des syntaxes pour différents langages. Personnellement, je n'ai pas besoin de tout, donc je n'ai choisi de garder que ce qui m'intéresse : Bash, Php, Plain que j'utiliserai souvent, Css, JScript et Sql un peu moins, et puis aussi au cas où Diff, Perl, Python, Xml. Un dossier styles contient lui les fichiers de mise en page css, parmis lesquels shCore.css est obligatoire et ensuite shThemeDefault.css correspond au seul thème écrit en noir sur blanc (les autres font du blanc sur noir, je déteste ça). Sans oublier les trois icônes qui seront affichées dans la toolbar et l'icône de retour à la ligne.

Donc on prend tous ces fichiers, on met tout ça dans un répertoire, appelé par exemple syntaxhighlighter, à la racine de notre formidable site web qu'on adore et dont on prend soin. Il ne reste plus qu'à modifier les pages web en ayant besoin. Il faut rajouter dans l'entête html :

<script type="text/javascript" src="/syntaxhighlighter/shCore.js"></script>
  <link type="text/css" rel="stylesheet" href="/syntaxhighlighter/shCore.css"/>
  <link type="text/css" rel="stylesheet" href="/syntaxhighlighter/shThemeDefault.css"/>
  <script type="text/javascript" src="/syntaxhighlighter/shBrushPlain.js"></script>
  <script type="text/javascript" src="/syntaxhighlighter/shBrushBash.js"></script>
  <script type="text/javascript">
    SyntaxHighlighter.all();
  </script>

Ensuite, tous les paragraphes de type <pre> seront analysés, pour peu qu'on dise à quel langage ils correspondent, en ajustant la classe :

<pre class="brush: bash">

par exemple. J'ajoute aussi, pour éviter la numérotation des lignes quand il s'agit d'une simple ligne de commande :

<pre class="brush: plain; gutter: false">

Le résultat a été utilisé dans de nouvelles pages sur mon site, dédiées à des scripts dont je me sers assez souvent et que j'ai écrits pour cela. C'est là qu'on se dit que la coloration syntaxique rend le code plus lisible.

Pour info, la coloration effectuée dans les articles du blog n'est absolument pas due à SyntaxHighlighter mais à un plugin pour Dotclear nommé SyntaxeHl.

vendredi 31 octobre 2008

Todo list

Ce qui me trotte dans la tête :

  • acheter un (vrai) nom de site et un certificat ssl
  • passer à dotclear 2.1
  • reprendre le développement de la galerie photos en PHP
  • mettre à jour un certain nombre de page (quoi, le top10musqiques, enfin ?)
  • me mettre à Ajax, et en particulier utiliser jQuery
  • utiliser des bases sqlite si besoin

Et puis d'autres trucs...

mercredi 6 août 2008

note pour plus tard : certificats ssl à pas cher

Ceux qui ont déjà cherché un certificat ssl ont souvent, comme moi, abandonné en se disant « Quoi ? 5000€ pour un truc qui me sert si peu ? ». Merci Verisign.

Au final, tout le monde (ou du moins, tous ceux qui n'ont pas derrière eux le budget pharaonique des ressources informatiques du CAC40), ont choisi de s'auto-fabriquer leur certificat, car c'est pas si compliqué, relativement bien expliqué partout, et surtout totalement gratuit. Et puis ça fait un peu geek aussi. :)

Le problème, c'est qu'aucun navigateur ne me fait confiance de base. Du coup, quand vous venez sur mon site en https, il vous demande s'il doit me faire confiance. Avec insistance. Beaucoup d'insistance, de plus en plus même, et la nouvelle politique de Firefox 3 en la matière me paraît quelque peu excessive : 5 clics obligatoires, passant par du jargon très informatique, et avec des pages ressemblant beaucoup trop à des pages d'erreur classiques...

C'est pas si gênant, et la preuve est que je fais avec depuis assez longtemps, en particulier parce que je ne me sers pas de ssl pour l'authentification du site (je ne suis pas une banque, si d'aventure un jour qqun tentait de me piquer des internautes en se faisant passer pour moi, grand bien lui fasse). Je ne m'en sers que pour chiffrer les connexion quand je le souhaite, typiquement quand je donne des accès par http(s donc) à des documents confidentiels (principalement des photos, si si) à des personnes de confiance. Du coup, si la personne est ok et a cliqué 5 fois, on peut discuter tranquillement sans que personne ne puisse savoir de quoi on parle, et c'est ça qui m'importe. Reste la petite gène pour ceux qui doivent cliquer frénétiquement sur les « oui, je suis sûr de ce que je fais, j'ai toutes mes facultés mentales et je veux accéder à ce site ».

Aujourd'hui, je me disais que j'en avais marre de cette situation, que j'aimerais que des choses changent. Petite recherche google plus tard, il y a des solutions (j'ai pas le temps de m'en occuper maintenant, d'où la note pour plus tard) :

  • startcom.org propose un certificat gratuit. Si si, gratuit, c'est incroyable ! Et reconnu par Firefox et Safari. Bon, bien sûr, Internet Explorer, non (il faudra donc cliquer sur « oui blablabla » dans IE).
  • Et il y a les certificats RapidSSL qui sont pas trop cher, du moins beaucoup moins que les autres. Reconnu sur tous les navigateur existants ou presque, c'est la fête.

Le problème de RapidSSL ? Je rappelle que je ne me sers des certificats que comme clé de chiffrement des connexions : du coup, plus grosse est la clé, plus difficile est le déchiffrement. Je ne suis pas sûr de ce que je raconte parce que je connais mal, mais normalement j'ai actuellement une très grosse clé (ne croyez pas que je m'en vante tous les jours non plus), et même Firefox me le dit : « connexion chiffrée : chiffrement de haut niveau (AES-256 256bit) ». Et RapidSSL, tous les sites le vendent avec « Fort Cryptage 128 Bit, Standard SSL de l’industrie ». Bref, moins bien que ce qu'on peut faire en auto-signé. M'enfin, si c'est pour éviter des clics inutiles (qui comme tout le monde le sait contribuent au réchauffement de la planète)...

RapidSSL, si j'ai bien compris, fait partie des certificats reconnu par Verisign et donc par le reste du monde. Mais plein de fournisseurs en revendent, et a priori il n'y a pas de risque à les prendre là. Les deux premiers ou presque dans Google sont finalement pas si cher :

  • trustico.fr à seulement 12€ par an.
  • rapidSSLonline à seulement 12$ par an (ça fait combien en centimes d'euros ? ;) ).

Allez, un jour peut-être.

dimanche 11 novembre 2007

Passage à vide

Passage à vide pour moi, passage à vide pour le blog. Le mois d'octobre ne fut pas un très bon mois pour mon moral. Je ne suis pas sûr que ç'aurait d'ailleurs été mieux si on avait gagné cette foutue coupe du monde.

Le boulot a repris à peu près jeudi dernier, lorsque je me suis rendu compte que finalement tout n'était peut-être pas perdu, que j'avais fait un peu de science ces deux dernières années, que les 8 mois qui restent maintenant (à peine) suffiraient peut-être. Peut-être. Du moins faudra-t-il que j'arrive à me concentrer, à avancer sérieusement sur les points à éclaircir. Et à la fin, à rédiger rapidement.

A., exilée malgré elle dans le centre de la France pour un poste visiblement pas simple et assez chronophage, me manque beaucoup entre deux weekends. J'essaie de m'occuper, mais me voir recommencer à geeker ne me plaît guère. Surtout si c'est pour réinstaller des ordis, tester des nouvelles distributions (Fedora 8 est sortie peu après Ubuntu Gutsy, par exemple), ou pire, coder en bash des fonctions inutiles, pour redimensionner automatiquement des vidéos et des films (faudra que j'en parle ici) entre autres. (et je ne parle pas des regrets permanents « ah, si je prenais le temps de faire de la programmation objet en php », « ah, jquery et ses possibilités, quelle invention prometteuse... »)

Bref. Arriver à se contenter de tout ça, quelques temps. Et passer à autre chose, enfin.

jeudi 26 avril 2007

Top 10 musique, bis

Nouveauté pour le top 10 musique : il intègre désormais un lecteur mp3 qui permet d'écouter en direct les chansons dont je parle, histoire de pouvoir s'en faire une idée.

J'utilise pour cela le très bon lecteur de Neolao, en version «multi», c'est-à-dire pouvant gérer plusieurs fichiers, avec playlist. Ce lecteur flash est très bon, presque rien à redire (si ce n'est que la mise en cache des fichiers de configuration a l'air un peu violente).

Pour les mp3, j'ai réencodé les miens, après avoir fait quelques tests et vu que finalement ça ne changeait pas grand chose de repartir des originaux de mes cds ou de prendre mes mp3 (en 160 ou 192kbps, c'est certainement pour cela). Une lecture de man lame plus tard, et on se retrouve simplement avec

lame --resample 44.1 -b 80 --tt "Titre" --ta "Auteur" fichier-original.mp3 fichier-réencodé.mp3

pour réencoder en 80kbps, qui d'après mes écoutes étaient le plus faible taux à ne pas distordre trop le son sur certains instruments (le pire étant visiblement les cymbales les plus aigües). Un petit script bash pour automatiser tout cela, et ça roule...

Bonne écoute !

mercredi 7 février 2007

Projet fini

Ça fait un peu moins d'un mois que je passe une bonne partie de mon temps libre dessus : j'ai fini de remettre en ordre le site du Ciné-club de l'ENS Cachan. C'est la quatrième version si je compte bien, depuis la première dont j'ai encore honte ;-) en 2002, après une deuxième version fin 2002 et une troisième en 2003. Cette fois-ci, très peu de changements en apparence. C'est toute la partie interne, toute la structure de la base de données, tous les scripts de gestion de cette base, qui ont été revus de fond en comble. C'était un boulot que j'avais un tout petit peu sous-estimé, colossal en fait, et que je suis très content d'avoir effectué. Enfin j'utilise de façon optimale les jonctions, les groupements, les sous-requêtes... Je commence à connaître la doc officielle par coeur, et ça me plaît.

Il manquait depuis 2003 des choses dans ce site, et en particulier dans la partie administrative, visible uniquement des membres actifs. Cette fois, tout est complet. Il reste juste à mettre à jour, petit à petit, la rubrique «liens», les émissions de télé, et l'aide interne. Ce sera fait bientôt et je pourrai enfin ne plus avoir ce remord d'avoir fabriqué un outil partiellement inutile car incomplet.

Je vais donc pouvoir, à partir de dans 10 jours (pas d'ordinateur la semaine prochaine...), me remettre à mes projets laissés en stand-by : compléter le site, développer la galerie photos, essayer des logiciels comme MySecureShell ou Beryl.