13 mars 2009

Dans la série « Glooze découvre Python … »

… je demande « Les paramètres nommés« .

Moi, quand même, ça me bluffe comment il est bourré de petites choses sympa et puissantes, ce langage. Les paramètres optionnels, c’est courant dans plein de langages, mais les paramètres nommés nettement moins…

23 février 2009

Pour un programmeur, à 25 ans, si t’as pas essayé Python, t’as raté ta vie.

Tout est dans le titre.

Dans le temps j’aimais bien Ruby. Une syntaxe de rêve, des outils de rêve, un framework web de rêve. J’étais même dans le CA de l’association RubyFrance, j’ai bu des coups avec l’ex prèz (salut fredix).

Et pis j’ai commencé à en avoir marre des perfs foireuses, des hash plus simples que les array mais pas ordonnés (un exemple parmi 1000 petits détails), des wrappers pour certaines choses inexistants ou incomplets… Ce qui me retenait sur Ruby était vraiment que la syntaxe était top, et que je blairais pas l’absence de mot de fin de bloc en python.

Et puis le temps est passé, et là où fredix se tente au C(++)/Gstreamer, je m’essaie au python, avec python/glade… Et j’aime ça. Je commence à m’habituer à l’absence qui me dérangeait tant auparavant, et je découvre un langage non pas naturel, mais diablement concis et efficace. Ca a des inconvénients, mais surtout de nombreux avantages. Et puis, la réactivité des applis en python est bien supérieure à celle des applications en Ruby équivalentes, les wrappers plus complets et plus nombreux, voir plus performants …

Du coup, sauf si Ruby 2 sort en avance, intègre des hash ordonnés, mais surtout si le nombre de wrappers potables augmente pas, que les performances s’améliorent pas, ben je resterai sous python pour quelques mois encore… Et peut-être, à ce moment, que je ne voudrai plus repasser à Ruby.

Lendemain de Saint Valentin.

(Bye bye Ruby …)

19 février 2009

Zend Server en bêta !

Je m’attendais à un outil du genre sous Windows, sous Mac Os X, mais pas sous Gnu/Linux, voilà que Zend me surprend en annoncant la bêta publique de Zend Server !

En effet, le principe de Zend Server (encore en bêta pour l’instant) est d’avoir un serveur d’applications en PHP, facile à installer, afin de tester PHP ou d’avoir rapidement une petite machine de développement. L’installation sous windows se fait via un .exe, sous Mac Os X, c’est comme d’habitude, et sous linux, des dépôts existent pour les plus grandes distributions. Facile, quoi.

Mais ça ne s’arrête pas là. Le serveur web a une petite interface de monitoring, de gestion des applications et des règles de réécriture par application. Sous linux, l’installation des différents paquets d’extensions php les active dans le Zend Server (et il y en a beaucoup).

Pour l’instant, le produit étant en bêta, il est gratuit, à terme seul Zend Server Community Edition (CE) sera disponible gratuitement. Toujours à cause de la bêta, je ne recommanderai pas de l’utiliser en production. Cela dit, Zend promet des performances incroyables, et du support performant pour la version payante, et garantit aussi un php et des extensions à jour pour les deux versions (payantes et CE).

Les paquets sont en conflit (forcément) avec les paquets de votre distribution, donc n’hésitez pas à le tester dans une machine virtuelle !

Téléchargement de Zend Server par ici !

PS : Et voilà la liste des différences entre la version payante et la version CE de Zend Server.

12 février 2009

Répertoire personnel Sites qui vous fous une 403 sous mac ?

Créez un fichier <nom court de l’utilisateur>.conf dans /etc/apache2/users/.

Mettez-y :

<Directory « /Users/<nom court de l’utilisateur>/Sites/ »>

# Options de ce dossier.

</Directory>

Redémarrer Apache, allez sur http://<votre ip>/~<nom court d’utilisateur>/ et Enjoy !

6 février 2009

La programmation doit-elle être enseignée différemment de nos jours ?

C’est une question qui m’est venue suite à une discussion avec un ami, qui me demandait comment j’avais appris.

Au moment de lui répondre, et pendant que je le faisais, je me suis demandé si la manière dont j’avais appris la programmation était encore adéquate de nos jours, si elle n’était pas devenue obsolète. En effet, de nos jours, tous les langages ou presque sont objets, et il s’agit dans la plupart des cas de prévoir (avec un peu de programmation procédurale il est vrai) des interactions entre objets.

Est-ce donc aussi important de continuer à faire accrocher l’élève à l’algorithmie alors que les objets sont omniprésents dans quaisment tous les langages ?

Prenons l’exemple des langages les plus utilisés dans le logiciel libre.

  • C : Bon, pas de support des objets, mais des librairies … Dans ce cas il est très utile d’avoir eu des cours poussés d’algorithmie.
  • C++ : Objets, classes, héritage simple ou multiple, templates …. Ici, avoir de bonnes bases d’algorithmie est utile mais avoir des connaissances aussi grandes en objet est encore plus utile pour bien structurer l’application.
  • PHP : Ce langage s’axe vers l’objet de plus en plus, même si son côté permissif est peu séduisant. Je ferais, pour PHP4, le même commentaire que pour le C (le support des objets est primaire, utilisable, mais aussi peu performant…). Pour PHP5, par contre, c’est comme pour C++, même si l’algorithmie reste importante pour l’optimisation entre autres.
  • Python/Ruby/Java (sisi) : Même combat ! Entièrement orientés objets, il y a toujours du procédural dans ces langages (donc besoin d’avoir des bases d’algorithmie, comme partout), il faut aussi s’y connaitre en programmation orientée objet, si l’on veut profiter de toute la puissance de ces langages. Java est un cas particulier (pas du tout permissif, syntaxe lourde) qui mérite toute une attention, car c’est un langage que j’aime beaucoup (comme les deux précédents, mais un peu plus).

Comme vous le voyez, la Programmation Orientée Objet (POO) est de plus en plus répandue, et pour le moment les formations d’apprentissage à la programmation préconisent encore de commencer par le procédural et l’algorithmie avant de faire de l’objet. Alors pourquoi ne pas introduire plus tôt la notion d’objet dans les formations ? En tenir compte dans l’enseignement de l’algorithmie et de la programmation séquentielle (== procédurale) peut être je pense un gain important.

Si l’on sépare l’apprentissage de ces deux choses, elles seront dans l’esprit de la personne des choses séparées. Il faut bien garder l’apprentissage de l’algorithmie, mais l’améliorer, ne pas l’axer que sur l’utilisation mais aussi sur les relations entre objets. Beaucoup de professeurs ont du le faire, ont du modifier leurs cours. Mais peut-être pas tous. Et vous ? Vous enseigneriez la programmation à quelqu’un de quelle manière ?

2 février 2009

L’heure est à l’optimisation !

C’est dans l’air du temps, Windows Seven sera entre autres un vista optimisé (mais pas que ça, y aura plus d’applications de base, histoire de tenter vainement de lutter contre les OS libres intégrant plein de choses d’office). Jaunty Jackalope, la prochaine version d’Ubuntu, sera aussi orientée sur l’optimisation, avec comme volonté affichée d’accélérer non seulement le temps de démarrage, mais aussi la réactivité en général, comme l’avait annoncé Mark Shuttleworth dès les premières réunions de travail.

Il est vrai qu’avec des machines de plus en plus puissantes, on se demande pourquoi nos systèmes ne sont pas plus réactifs qu’autrefois … et la réponse est évidente : plus de puissance, moins de gêne !

Cela fait plaisir de voir que tout le monde s’y intéresse (oui tout le monde, Mac OS X est déjà pas mal optimisé).

Tour oxygène (Alpha version, revision 20090123)

(La tour oxygène, en bêta, comme Windows 7, mais optimisée, je ne sais pas…)

29 janvier 2009

IE8, le cancre de la classe du web, mais devant IE7…

Comme le dit Tristan, IE8 est dépassé avant même d’être sorti car il lui manque encore de nombreuses choses pour être au niveau de la reconnaissance des standards qu’ont atteint Opera, Webkit et Firefox (même si ce dernier est un poil en retrait, il reste loin loin loin devant …).

Mais enfonçons le clou.

IE8 (la dernière bêta) obtient 20 au dernier test Acid3. Bien sur, ce test n’a rien d’officiel, il est juste indicatif. Et j’ai appris par la lecture du blog de Frédéric Beziès que Netscape 7.0.1, sorti il y a 7 ans, cumule 36 points à ce même test Acid3. Pour info, le navigateur de gnome, Epiphany, obtient 71/100 à ce même test.

Moi je vous le dis, ya des efforts louables de fait sur IE8, mais c’est pas encore ça. Mais je ne suis pas négatif pour autant, car IE8 supporte suffisamment de choses en plus par rapport à IE7 que j’espère qu’il va vite sortir, et qu’on pourra oublier les soucis liés à l’affichage de nos sites sous ce navigateur antédiluvien.

Bref, vivement IE9 :)

Ciel et fumée

(Le ciel commence à se dégager dans le domaine du web sémantique…)

4 décembre 2008

La documentation de Django, hors ligne, en pdf ou html !

Merci à David Larlet, qui en voyant mon râlage auprès de Niko s’est souvenu que je lui avais posé la question, il y a longtemps.

C’était tout bête (pour Django). Et avec pour symfony, alors ?

24 novembre 2008

On ne s’improvise pas webdesigner !

Et spécialement quand on est graphiste !

Ce sont deux métiers bien différents, comme le rappelle la lène, soumis à des contraintes différentes.

Un des sites sur lequel j’ai bossé récemment (intégration plus mini cms multilingue) a un design surement très joli dans illustrator, mais le rendu web est à mon avis pas terrible, bien qu’il colle exactement à ce que le graphiste a pondu.

Exemple de choses qui m’ont emmerdé ? Le menu horizontal à 6 éléments, dont aucun n’a la même largeur que les autres. Le bruit au niveau CSS pour styler tout ça est, disons, important. Je peux évoquer aussi le contenu, qui tantôt est en deux colonnes, tantôt en trois ou en cinq, ou alors tout d’un bloc. Et le site n’a que 7 pages pour l’instant.

J’oublie le menu potentiellement déroulant au dernier moment, les changements de design sur les versions successives de leur graphiste. Souvent des petits détails « qui sont faciles à changer surement en html » et qui bien sur sont une horreur, comme le changement de taille de quasiment toutes les polices, parfois changées elle aussi, d’un paragraphe à l’autre. Oui oui vous lisez bien.

Je vous ferais grâce des X changements de texte pourtant déclaré comme « définitif » et du changement des images du site elles aussi « définitives » pourtant …

Bref, vous êtes graphistes et pas webdesigner ? Alors renseignez-vous sur les contraintes liées au Web, plutôt que de pondre un truc très joli mais pas du tout adapté au web. Ou alors abstenez-vous !

Ruelle sombre

(Une ruelle aussi sombre que le tunnel où j’étais pendant le projet dont je parle dans le billet)

9 octobre 2008

Et vous, vous feriez comment ?

Imaginez…

Vous êtes fana de jeu de rôle sur table. Le vrai. Pas les trucs de consoleux.

Vous jouez à un jeu en ligne qui s’approche beaucoup de ce que vous faites autour d’une table. Pas ces jeux avec des cases et où on fait beaucoup une case qui représente notre bonhomme, non, mais un vrai jeu où chaque personnage est vu comme tel, où le roleplay est obligatoire et où tout se fait en jeu …

Et là vient la difficulté. Ce jeu est fait avec un moteur libre, mais mal codé, peu performant, et surtout, où tout est mal séparé dans le code. A savoir que si vous voulez modifier les règles, il faudra modifier un peu tous les fichiers du moteur ou presque. Et le but du projet est justement de pouvoir permettre à des non-pros de php (ou autre langage que j’utiliserai) de pouvoir faire leurs règles, leur gestion de perso …

Et donc, je vous pose la question : Vous, comment feriez-vous ?

Couleurs