Coding : Une partie sur la programmation quelques astuces et réflexions.

Bash : Remplacer les caractères d'échappement HTML en caractères UTF-8

Voici un petit script bash permettant de remplacer, dans tous les fichiers d'un répertoire, les séquences d'échappement HTML par le caractère qu'elle représentent (UTF-8).
J'ai pris la liste des caractères d'échappement de theukwebdesigncompany.com.

Avant de l'exécuter, comprenez comment il fonctionne et sauvegardez vos fichiers, ça vous évitera de perdes des documents.
convhtml-utf8.sh.zip

Une machine à boucle midi

Comme me l'a fait judicieusement remarqué Pascal, je vous avais parlé dans mon dernier édito de la conception d'un logiciel permettant de faire des boucles avec un instrument midi.

Attention ! Par manque de temps, j'ai développé ce logiciel sous Windows et je n'ai pas testé son fonctionnement sous Wine.

Les principe est simple, il y a une touche pour lancer l'enregistrement et pour l'arrêter et faire boucler les notes (le C# de l'octave 6, cela est modifiable dans les premières lignes du programme).

Petite explication sur la norme midi :

Il s'agit d'une norme très simple inventée dans les débuts de l'informatique musical.
Ce sont des messages de 4 octets, comportant le numéro de l'appareil cible (un numéro de canal) suivit d'une instruction. Par exemple, jouer une note, l'arrêter...
Cette norme n'a donc aucun connaissance musicale. Les messages envoyés donnent des information sur le début et la fin des notes, mais pas sur la durée. Ce logiciel doit donc chronométrer le temps entre le début et la fin des notes.

Pour simplifier la conception, je mémorise donc dans un tableau, à chaque évènement, le message envoyé, s'il s'agit d'une nouvelle note, ou s'il s'agit d'un relâchement, avec le temps écoulé depuis la dernière opération. Ensuite, le logiciel a juste besoin de relire la liste, en attendant le temps nécessaire.

Le code source et une version compilée pour Windows x86 est téléchargeable ici.

Le RapidQ n'est pas mort ! L'exemple d'une carrière en informatique.

Je suis retourné hier sur le forum rapidq-france.org. C'était l'époque où j'ai commencé la programmation, en 2005. Je ne connaissais n'avais pas de méthode ce qui limitait la taille des projets, mais je cherchais, et me débrouillais. RapidQ me permettait de développer très rapidement des applications fenêtrées. Il y a des milliers d'exemples sur Internet : des jeux on 3D utilisant directx on été développés avec ce langage. La communauté a été très importante. Car il fonctionne sans DLL, ce qui le rend beaucoup plus simple à diffuser que le VisualBasic, qui fonctionne avec un tas de bibliothèques dont on ne possède jamais la bonne version...

RapidQ IDE

RapidQ est né un peu avant 2000. Créé par William Yu, il a su conquérir beaucoup de monde par sa simplicité. Mais voilà qu'un jour son créateur a annoncé la fin du développement. RapidQ est gratuit, mais en aucun cas libre. William Yu a déjà publié un compilateur sous licence GNU, mais il a refusé de le faire pour RapidQ.

Quelques semaines plus tard, William Yu a publié une lettre sur sa liste de diffusion, où il expliquait son choix. William était confronté à un dilemme : vendre son travail à RealBASIC et se faire embaucher, ou continuer à distribuer RapidQ : "The facts are, I could have made more money working at McDonalds than the time spent on Rapid-Q and what Geoff has offered me to stop working on it", déclarait-il dans sa lettre d'Octobre 2000.
Il s'en est suivit une discussion assez mouvementée sur la liste. Certain en ont voulu à Geoff, le directeur général de RealBASIC, car il était très présent sur la liste de diffusion pour parler de sa société. Cela a été vu comme de la publicité gratuite. Certain on dit aussi que Geoff avait tout intérêt à faire disparaitre le langage, et son développeur avec. Lorsque l'on compare ces deux langages, ils se ressemblent en tout point. Il est même possible de créer des fenêtres avec l'éditeur de RapidQ et de compiler le code sans aucune modification sous RealBASIC (Real Studio).

C'était il y a 11 ans, la liberté de diffusion n'était pas encore un argument commercial pour les entreprises, et elle n'avait pas encore cette puissance chez les développeurs. Les amateurs de RapidQ diront que son rachat est une catastrophe car ils pensaient que RapidQ allait devenir un très grand langage. Mais avec un peu de recul, on se rend compte que la version de 2000 n'est pas buggée et qu'elle est toujours compatible avec les dernières version de Windows (et de Linux, puisqu'il existe des versions multiplateforme). Encore une fois, la puissance de ce langage réside dans sa simplicité : il est possible de faire appel très simplement à des DLL, ce qui rend ses possiblités presques infinies.

Biensûr, j'aurais aimé qu'il en soit autrement, que le langage soit publié en GNU. Mais l'informatique n'est-elle pas un secteur où l'on peut devenir célèbre ? Où son tallent (car c'est bien de cela qu'il s'agit pour William Yu) peut être reconnu, et permettre de s'élever socialement ?
Finalement, William Yu a gagné le respect de milliers de développeurs, et a trouvé un emploi dans une société implantée dans 7 pays. Une belle carrière dans l'informatique, non ?

Snippets C++/Qt : Conversion de date et extraction de nom et prénoms

Dans le cadre d'un projet de convertisseur de fichier tableur en GEDCOM j'ai eu besoin de deux fonction pour convertir des dates et pour extraire le nom et le prénom d'une même chaine. Je l'ai ai codés en C++ avec la framework Qt.

Fonction de conversion de "Prénom même composé NOM" en "Prénom-Même-Composé" et "NOM" :

Lire la suite de Snippets C++/Qt : Conversion de date et extraction de nom et prénoms

Qt : coder multiplateforme, performant et propre, le tout 10x plus vite !

Nokia Qt

Sous ces faux airs des marketing racoleur et grossier, cet article va vous parler d'un des exemples les plus intéressent de l'aboutissement d'un framework libre.
Un framework est une bibliothèques de fonctions toutes faites, elles servent souvent à créer des fenêtres (pour les framework graphiques comme GTK par exemple), mais elle peuvent aussi avoir une couche réseau, des fonctions de traitement de données en XML, des images... Qt doit être la bibliothèque la plus puissante et fournie.

Lire la suite de Qt : coder multiplateforme, performant et propre, le tout 10x plus vite !