Développement › Code source

Cette sous-catégorie propose du code source directement utilisable, la plupart du temps sous la forme d'archives (ainsi que des études un peu poussée pour expliquer les choix techniques qui ont été faits). Le code source est distribué sous licence libre (si aucun texte de licence n'est contenu dans l'archive, il s'agit d'une licence BSD ou d'une licence induite pas les conditions de lien lorsque le code source doit se lier avec du code GPL).

Fil des billets - Fil des commentaires

18 déc. 2014

shell-debugger.sh: a small shell script debugger

It's been a while since I posted anything here - but that doesn't mean this blog is dead. I continue to read your messages, block spam, think to other articles and so on.

And today, I'd like to present you a small script of mine whose goal is to help the difficult task of debugging a shell script. It leverages the trap ... DEBUG builtin of your not-that-prefered shell (i.e. bash, ash or dash) and allows you to run your script step by step, putting watches or executing additional commands while doing so.

Isn't that fun?

Lire la suite...

02 sept. 2013

Racine d'un entier 64 bits non signé en C

Ce billet est un peu spécial, dans le sens ou je me contente de poster un morceau de code sans beaucoup de commentaires. J'ai écrit ce code récemment pour résoudre un problème un peu agaçant : calculer une racine carrée sur un nombre entier 64 bits.

Pour ceux qui se disent que le problème est simple (appeler la fonction sqrt() de la librairie C ou std::sqlt() de la librairie standard C++), je répond "oui, presque". Parce qu'un nombre non signé de 64 bits ne peut étre représenté correctement sur un double de 64 bits (sqrt() utilise le co-processeur arithmétique de votre x86). On peut utiliser un long double - mais dans ce cas, les performances sont désastreuses (parce que votre processeur n'a pas de registre générique travaillant en 80 bits).

Tout ça pour dire que la fonction ci-dessous peut aussi vous être utile (même si elle n'est pas parfaite : elle dépends principalement de la réponse à une devinette : quelle est la valeur de la racine carrée que je cherche ? Plus je sais répondre précisément à cette devinette, plus l'exécution est rapide).

Lire la suite...

13 oct. 2011

Vérifier si une fenêtre est recouverte par d'autre fenêtres (Win32 API)

Ce code, très court, vérifie si une fenêtre contrôlée par un HWND est couverte par une ou plusieurs autres fenêtres de la même application.

Lire la suite...

08 fév. 2011

Code source de jeux vidéo

Non, ce n'est pas un post qui va vous dire de télécharger tel ou tel jeu sous un prétexte quelconque - et surtout pas sous couvert d'une idéologie ou le libertarisme serait imposé ; chacun fait ce qu'il veut, après tout - c'est ça la liberté. Ce post a pour mission de recenser quelques jeux dont le code source est libre, parce que je suis en train d'en étudier certains afin d'en extraire ce qu'on nomme avec un amour révérencieux du cliché la substantifique moelle.

Nottez quand même que la plupart de ces jeux ne proposent que leur code - pour pouvoir jouer à ces jeux, il faudra quand même l'acheter afin de pouvoir installer les données du jeu. C'est normal : bien souvent, la réalisation de modèles 3D, des textures, des sprites et autres musique a nécessité plus de temps que le développement du code lui même. Il serait injuste de proffiter de tout ce temps sans en remercier d'une manière ou d'une autre les développeurs (il n'y a qu'à voir ce qui se passe actuellement avec Lugaru HD pour voir que tous ne partagent pas ma vision).

Mise à jour: ajout d'Alien Swarm (merci Dri) et Allegiance (merci Hydroxid Acid).

Lire la suite...

31 janv. 2011

[Code source] carray-0.3.0 (mise à jour)

carray est un petit utilitaire qui permet de générer un tableau C à partir d'un fichier quelconque. Je vous livre le code source de ce petit programme (ridiculement petit d'ailleurs), parce que je ne sais pas quoi en faire d'autre. Si vous avez des idées d'amélioration, n'hésitez pas !

Mise à jour: version 0.3.0 en téléchargement (prise en compte de la remarque de gilles sur EOF ; cf. son commentaire ci-dessous) Mise à jour: version 0.2.0 en téléchargement

Lire la suite...

[Code source] preview de ekogen 0.5

Non, [ekogen 0.5] n'est pas encore sorti - ça ne saurait tarder ceci-dit. Mais puisque j'ai écrit deux posts sur le sujet sur gamedev.net, il me semblait logique de faire profiter mes lecteurs francophones de mes réflexions sur le sujet. Voici donc une version réécrite des deux posts de GD.net - en français, avec des explications en plus.

Lire la suite...

19 janv. 2011

[Code source] ekogen v0.4

La librairie de chiffrement basée sur OpenSLL présentée dans un billet récent évolue et deviens plus utilisable. La version 0.4 est disponible en téléchargement sur developpez.com (ainsi que sur ce blog, attachée à ce billet).

Lire la suite...

10 janv. 2011

Une librairie de chiffrement/déchiffrement avec OpenSSL

De temps en temps, des idées de design appliqués à un problème particulier me traversent l'esprit. De temps en temps, je les implémente, histoire de voir ce que ça donne. De temps en temps, je suis content de ce que j'obtiens, parce le résultat me parait clair, simple à utiliser et suffisamment efficace pour pouvoir être utilisé dans le cadre d'un projet commercial. Le code que je vais vous présenter aujourd'hui atteint au moins la moitié de ce troisième état - comprendre : j'en suis assez content, mais il est perfectible. Du coup, je vous en présente ici les grandes lignes.

Aujourd'hui : une encapsulation des moteurs de chiffrement Blowfish et RSA de la librairie open source OpenSSL.

Le code lié à cet article a déjà été publié sur developez.com, donc si vous êtes un fidèle de ce forum, vous avez peut être déjà jeté un coup d'oeil dessus. Je vais continuer à maintenir les deux repository (ici et sur DVP), mais les annonces de nouvelles version se feront principalement sur DVP (pour des raisons évidentes : ce blog n'est pas un système de news). Vous pouvez aussi vous abonner à la toute nouvelle newsletter AL&D, et je promet de vous tenir au courant par ce biais des évolutions dans ce code.

Lire la suite...