CTPL 0.1

1 décembre 2009

Je ne vous en parlais pas, maintenant c’est là : je viens (enfin, hier) de publier la première version de CTPL !

Qu’est-ce que CTPL ?

CTPL est l’acronyme de C Template (Parser) Library, et c’est… un moteur de templates en C.

Les fonctionnalités/avantages de CTPL sont :

  • CTPL est libre (GNU GPLv3+).
  • CTPL est écrite en C.
  • CTPL est une bibliothèque, et est donc facilement utilisable depuis un programme (C en l’occurrence).
  • CTPL peut traiter n’importe quel tampon mémoire (via libmb), ne nécessitant ni que l’entrée ni que la sortie soit un fichier (ça c’est le vrai truc qui roxx des Pangolins).
  • CTPL a une syntaxe simple.
  • CTPL est (sensée être) portable.

Pourquoi CTPL ?

J’ai écrit CTPL (nofake) car j’avais besoin de parser des templates en C, et ce depuis une bibliothèque, et si possible sans que mes entrées ou ma sortie ne se fassent forcement sur des fichiers ; et malheureusement (ou pas), je n’ai pas réussi à trouver ça. Donc, ni une ni deux, je m’y suis mis.

Je veux essayer !

Ça c’est une riche idée ! Pour essayer, il suffit d’aller sur le site de CTPL, de récupérer les sources (depuis le tarball ou le dépôt Git) et de les compiler : tout ce qu’il faut savoir est expliqué sur le site.

N’oubliez pas de rapporter les éventuels bugs que vous trouveriez, et de me faire part de vos suggestions !

Liens

6 (bonnes) raisons de programmer en anglais

30 novembre 2009

Salut à toi lecteur1 assidu !

Comment tu as échoué sur cette page, je ne le sais, mais comment je vais essayer de te faire perdre quelques précieuses minutes de ta tout aussi précieuse vie, je m’en vais te le montrer. Suivez le guide…

Je vais donc essayer de trouver 10 6 bonnes raisons pour programmer en anglais. Je m’adresse bien entendu à ces chers développeurs amateurs francophones de nativité ou d’adoption, car je suppose qu’un développeur anglophone ne poussera pas le vice jusqu’à programmer en français… peut-être suis-je naïf, mais je préfère ne pas y penser. Allons-y, c’est parti !

  1. Même si Coluche a judicieusement fait remarquer que « ce n’est pas si des million de mouches bouffent de la merde que je devrais en faire autant », l’anglais est manifestement la langue la plus utilisée dans le domaine de l’informatique. Programmer en anglais vous ouvre donc les merveilleux horizons qu’ouvre l’universalité ; même en anglais approximatif, vous serez toujours plus facilement compris par des anglophones d’adoption (ou pas) qu’en français. Même si vous ne pensez pas montrer votre code un jour à un développeur étranger, sachez que même un développeur francophone sera probablement plus à l’aise à lire un programme écrit en anglais qu’en français, question d’habitude. De plus, ça donne de bonnes habitudes pour les programmes à venir.
  2. Ça vous oblige à peaufiner votre anglais, ce qui n’est sans doutes pas un mal…
  3. La plupart des bibliothèques étant elles-mêmes programmées en anglais, la source sera plus consistante.
  4. Comme l’on profitera de programmer en anglais pour tout traduire en anglais, on se souciera plus volontiers de l’internationalisation, ce qui est une bonne chose.
  5. Aussi belle que soit la langue de Molière, il ne faudrait pas vexer Shakespeare non-plus.
  6. Et enfin, cela vous permettra de conquir le monde !

Et voilà, c’est tout… Si vous avez d’autres bonnes raisons de convaincre les méchants nouveaux apprentis programmeurs de programmer dans la langue de Shakespeare, « lashé vos komz » comme on ne devrait pas dire !

Et pour ceux qui se demanderaient pourquoi 6 et pas 10 bonnes raisons, et bien déjà, je suis un grand rebelle qui fait pas comme les autres (na), et ensuite, je vous renvoie à l’argumentation de CerberusXt (Nioutaik, incultes). Je vous laisse chercher, il aime bien les top-pas-10 alors ça devrait pas être trop dur (même si je viens de passer 3 minutes à ne trouver que celui-ci qui n’est pas celui que je cherche, mais vous n’êtes pas obligés de le savoir, d’abord).

1Ou lectrice, je ne suis pas sexiste (et puis ça risquerait de faire un trou dans le vide de mon audience).

Trois petites choses… non, quatre.

30 juin 2009

Hé non, je ne suis pas mort. Déçus ?

Aujourd’hui, je vais parler de quatre petites choses : ma résurrection, et trois de mes petits projets hébergés ici.

Alors non, je n’ai jamais été mort, mais à vrai dire je n’ai jamais trouvé de quoi parler ici qui en vaille la peine. Peut-être vais-je essayer de me poser moins de questions à l’avenir et parler plus de tout et de rien, quitte à passer pour un con de temps en temps − ne vous inquiétez pas, j’ai l’habitude. Voilà, j’en ai terminé avec le primer point, ma résurrection.

Ensuite, les trois petits projets, bien entendu libres.

RMusic

Le dernier né, un petit outil, ou plutôt jouet : c’est un générateur de notes MIDI à partir de données aléatoires (ou pas). Il est fait pour lire quelque chose comme /dev/urandom et être connecté à un synthétiseur quelconque, par exemple ZynAddSubFX, FluidSynth ou ce que vous voulez.

Cette idée qui peut paraître stupide − et je ne dis pas qu’elle ne l’est pas − est partie d’un petit délire d’avant-hier soir, et a engendré ce petit programme tout à fait inutile mais pouvant quand-même générer des trucs sympa si les réglages sont bons.

Si ça vous amuse, vous pouvez aller voir la page dédiée.

LibMB

Ce projet est plus vieux, mais je ne l’avais jamais présenté ici, donc je le fais maintenant. LibMB est une petite bibliothèque (sans blague !?) C fournissant une API semblable à celle de gestion des fichiers C, mais travaillant exclusivement en mémoire. Je l’ai écrite pour de petits parseurs devant travailler sur des données non rattachées à un quelconque fichier dans le contexte de l’écriture de MdownEditor.

Cette bibliothèque n’est pas grosse ni lourde, ne mange pas de pain et est écrite en ANSI C.

LibBNSS

Encore un petit projet, commencé il y a beaucoup plus longtemps que tous les autres, LibBNSS est une petite bibliothèque, ou plutôt un ramassis de fonctions de traitement des chaînes de caractères en C. Les fonctions disponibles sont soit des fonctions manquantes de la norme C mais présentes dans POSIX ou autre norme cool (fonctions de « compatibilité »), soit des fonctions absentes de toute norme connue de moi, mais dont j’ai eu besoin, et qui ne sont pas toujours des plus simples à refaire. Il y a par exemple des fonctions de remplacement de chaîne(s) dans une autre chaîne ou une fonction de nettoyage d’un chemin.

Et voilà, c’est tout pour le moment, mais promis, j’essaierais d’être plus présent à l’avenir.

Quantum Of Solace

15 novembre 2008

Voici un film qui ne fait pas l’unanimité !
Les critiques vont dans tous les sens ; La moitié invite les fans de James Bond à se ruer en salle, l’autre à l’éviter comme la peste. La troisième moitié invite les fans à l’éviter et les autres à y aller, tandis que la quatrième dit pile poil le contraire… Et ceux qui restent sont partagés entre l’extase et la consternation.
Autant le dire tout de suite, la seule solution pour savoir si vous aimez ou non sera d’aller en salle.

Personnellement, ne connaissant James Bond que de nom, je ne l’ai pas vu du point de vue de l’inconditionnel de Bond, mais uniquement de celui de l’amateur de cinéma.
Venons-en droit au fait : j’ai apprécié. Certes pas tout je me suis bien amusé.

Mon avis

À propos des personnages…

Je suis arrivé en salle un peu méfiant je l’avoue, car je craignais Daniel Craig. Non non, détrompez-vous, je l’apprécie ; mais j’avais peur que son charisme soit trop utilisé au détriment du développement du personnage. Car Daniel Craig a toutes les qualités que je supposais Bond avoir, à savoir le charisme, la classe et le côté séducteur (physiquement du moins).

Donc je craignais que Daniel Craig soit mauvais dans ce rôle qui me semblait trop facile pour lui. J’ai été agréablement surpris, il n’en est rien. Il joue très bien.

Par contre, le méchant… C’est le point noir de ce film, je trouve. Ce méchant (Mathieu Amalric) est bien faible, pas très charismatique ni intimidant. Le futur dictateur (Joaquin Cosio) par contre joue bien son rôle et est crédible bien qu’un peu cliché.

Pour continuer sur les personnages, la charmante Olga Kurylenko (Camille Montes) est correcte, un peu trop belle forcement (James Bond Girl oblige, pour utiliser les bons mots) mais crédible dans son rôle de Diane vengeresse. Elle se fait cependant ravir l’écran pendant quelque (trop courts) instants par la sublime Gemma Arterton (Strawberry Fields).

Pour terminer, Dame Judith Dench (M) tient bien son rôle de Grand Patron et a le charisme qu’il faut.

…et du reste

Côté photographie, sans être extraordinaire, c’est très bien. Les scènes d’action peut être un peu saccadées, mais c’est un style qui ne rend pas mal non plus. Les décors sublimes et grandioses, agréables à l’œil.

Côté scénario, je le trouve correct, sans être extrêmement innovant il réutilise du classique actualisé d’une façon assez subtile et d’actualité.

Le tout donne un film d’action à trame géopolitique sympathique, avec quelques moment forts et quelques moment faibles.

La petite touche qui m’a fait sourire, bien que j’ai lu beaucoup de critiques dénonçant l’absence d’humour dans ce film, est le bien trop facile « – Je crois qu’elle a des menottes en poche. – J’espère bien ! ». Trop facile, mais tellement que j’ai souri.

Pour résumer

Les plus…

  • Daniel Craig qui est excellent ;
  • Gemma Arterton… ;
  • de l’action, de la vraie ;
  • de belles images ;
  • une Judith Dench convaincante.

…et les moins

  • Un Mathieu Amalric pas dans son meilleur rôle ;
  • Qui a dit « La vengeance dans la peau » lors de la poursuite sur les toits ?

Je conclurai par : un bon film d’action mais léger côté méchant. 7/10.

Petite présentation de Vala

11 novembre 2008

Vala est un langage de programmation assez récent (2006) visant à simplifier l’écriture de programmes en C avec la bibliothèque GObject en fournissant une surcouche complète au C ; en utilisant une syntaxe proche de celle du C#.
Le programme Vala sera traduit en C avant d’être compilé par un compilateur C standard, le code résultant étant du C pur utilisant uniquement un lot de bibliothèques supplémentaires.
Cependant, Vala n’est pas vraiment un préprocesseur C puisque il va bien au delà de l’automatisation de l’écriture des classes GObject : il fournit une syntaxe orientée objet complète et une gestion de la mémoire automatique via le compte de référence des objets.

L’avantage majeur de Vala par rapport à d’autres langages orientés objet connus comme le C#, Java ou même le C++ est de n’être qu’une « façon d’écrire du C » : l’ABI est entièrement compatible avec le C. Un autre avantage est une rapidité proche de celle du C pur, bien que la gestion automatique de la mémoire via le compte de références et l’impossibilité d’effectuer certaines optimisations manuelles freine un peu le programme, mais pas de façon significative en général.
De plus, de par sa compatibilité binaire avec le C, il n’est pas étonnant d’apprendre qu’un assez grand nombre de bibliothèques sont disponibles pour Vala, rendant ce langage tout à fait viable.

Comme Vala est traduit en C, il est intéressent de remarquer qu’il est tout à fait possible de combiner des parties écrites en Vala et d’autres en C au sein d’un même programme, et même d’un même objet binaire. De plus, le code généré a une API propre, semblable à la plupart des bibliothèques basées sur GObject, le rendant parfaitement utilisable au sein d’un code C.
Le plus intéressent étant bien sûr de programmer certaines parties sensibles directement en C et de créer une interface pour Vala, chose assez aisée via les fichiers d’API Vala (.vapi).

Du côté obscur, Vala souffre encore de quelques imperfections de jeunesse, comme un manque de documentation pour certaines choses.
De plus, je ne pense pas que soit actuellement un langage de premier choix pour quelqu’un ne connaissant pas le C (il ne tirera pas partie des avantages de compatibilité de Vala) et voulant simplement un langage proposant une syntaxe orientée objet ; car les principaux avantages de Vala se situent justement dans sa compatibilité avec le C et sa rapidité.

Quelques liens

Naissance d’un blogueur

8 mai 2008

Bonsoir cher lecteurs,

Ce blog, qui sera aussi un site, contiendra mes pensées, réactions à l’actualité du libre, didacticiels ou petit cours sur l’informatique, comme le langage C, BaSH, l’administration Debian GNU/Linux, etc.

Vous l’aurez remarqué, je ne trouve pas grand-chose pour introduire ce blog (et pour que WordPress ne m’affiche pas une page vide, surtout)… Je n’avais pas prévu qu’un site devrait avoir (un minimum de) contenu lors de sa création, et je m’excuse que vous en fassiez les frais ; bien que vous n’aviez qu’à pas vous perdre ici.

Je rejette mes visiteurs dès le premier article ? Ce n’est peut-être pas la meilleur idée… si ? Je ne saurais donc que vous suggérer de repasser plus tard, lorsque j’aurais ajouté du contenu.

Sur ces palabre, je vous souhaite une bonne soirée, et à bientôt si vous n’êtes pas dégoûtés ^^