Archives de catégorie : Programmation

OCaml : Parsing a program’s arguments with the Arg module

French version here

The OCaml language has a rather big number of modules in its standard library, which can serve to do almost anything you could want.

In the following, we’re going to see quickly how to use the Arg module to declare and manage optional parameters (some just call them options) of an OCaml program.

One of OCaml’s sexy logos, making other languages jealous

Continuer la lecture de OCaml : Parsing a program’s arguments with the Arg module

OCaml : Parser les arguments d’un programme avec le module Arg

English version here

Aujourd’hui, du fonctionnel, car je refais un peu d’Objective Caml ces temps-ci…

OCaml possède un assez grand nombre de modules dans sa bibliothèque standard, servant à faire un peu tout et n’importe quoi. Dans la suite, on va voir en vitesse comment utiliser le module Arg pour déclarer et gérer les paramètres optionnels d’un programme.

Un des logos sexy d’OCaml que la plupart des autres langages lui envient

Continuer la lecture de OCaml : Parser les arguments d’un programme avec le module Arg

Python: Mémo pour les reptiles étourdis

Aujourd’hui nous allons parler de quelques spécifités propres au langage Python. Comme je travaille pas mal avec Python en ce moment, je découvre (ou redécouvre) des particularités pas toujours évidentes (surtout quand on jongle entre plusieurs langages en même temps), alors je me propose de faire, ici même, un mémo sur les quelques trucs bien pratiques à savoir (et retenir) en Python, ainsi que quelques faux amis qui m’ont parfois fait arracher quelques cheveux…

Continuer la lecture de Python: Mémo pour les reptiles étourdis

Making multi-texturing work with VTK

This is an English copy of my last article, which was written in French: Faire du multi-texturing avec VTK.

I believe it will help much more people in English since VTK is used worldwide… And I don’t want to bother with a multilingual WordPress plugin yet. 🙂

In this blog post I will talk of what has been my main research subject during the last two months, during my part-time job.

It was about multi-texture mapping on a 3D polygon, using the open source library VTK. I mean it when I say « research subject » since, at the time I write this, it seems that no one or near already tried to do it with VTK… Although the feature is present, it just doesn’t work out of the box.

Continuer la lecture de Making multi-texturing work with VTK

Faire du multi-texturing avec VTK

Dans ce billet, je vais parler de ce qui a été mon principal sujet de recherche les deux derniers mois, au cours d’un stage à temps partiel.

Il s’agissait de faire de l’application multi-textures sur un polygone, en 3D, à l’aide de la bibliothèque open source VTK. Je parle de sujet de recherche car, à l’heure où j’écris, il semble que personne ou presque n’a déjà essayé d’en faire avec VTK… Alors que pourtant, la fonctionnalité est bien présente, mais non fonctionnelle « out of the box ».

Continuer la lecture de Faire du multi-texturing avec VTK

Des tableaux et des indexes (ou l’inverse …)

J’ai appris un fun fact avec le C en parcourant Stack Overflow aujourd’hui 🙂

En général pour parcourir un tableau, par exemple un tableau de caractères:

[cci lang= »c »]char *toto[/cci]

un index commençant à 0 en C, on fait généralement toto[0] pour accéder au premier élément, toto[1] pour accéder au second, etc…

Et que se passe-t-il lorsqu’on essaye d’écrire par exemple 5[toto] ?

Et bien ça fait exactement la même chose que lorsqu’on écrit toto[5] (on accède à la sixième case du tableau), pour une raison simple : pour le compilateur, l’opération « a[b] » pourrait se traduire par  » déréférence l’adresse a (un tableau n’est jamais qu’une suite d’octets réservée en mémoire, l’adresse du tableau étant de fait l’adresse de la première case), puis avance de b cases ». Autrement dit :

[cci lang= »c »]*(a + b)[/cci]

(en C on déréférence avec l’opérateur *)

Et, attention mathématiques niveau CP 🙂 L’addition étant commutative, l’expression « a+b » égale « b+a ».

Ainsi, d’une manière un peu surprenante mais pourtant totalement logique, la syntaxe 5[toto] fonctionne parfaitement !

Le C ne cessera jamais de m’étonner … 🙂

Git — « Poussez madame ! »

Un très court billet pour expliquer, avant que je n’oublie !

Pour un projet perso, j’utilise actuellement le gestionnaire de versions Git (de manière générale aussi, d’ailleurs). Mais je veux que quand je pousse (push) une modification, cela la transmette non seulement sur un dépôt en local, mais également sur un dépôt extérieur type Bitbucket ou GitHub… Un push sur de multiples dépôts d’un seul coup, quoi.

« There’s more than one way to do it » .

Ceci étant dit, voici une méthode comme une autre (que j’utilise). Elle consiste à modifier le fichier de configuration du dépot (racine/du/dépôt/.git/config), et d’ajouter une branche remote ciblant les URLs de tous les dépôts voulus (ici très originalement appelée « all ») :

[remote "all"]
url = my/local/repo.git
url = git@bitbucket.org:my/bitbucket.git

etc...

Ensuite quand on fait un push, il suffit de faire « git push all » et ça pousse les modifications sur toutes les remotes concernées !

Joie ! 🙂

{C++} — Mémo pour avoir la méthode afin de pouvoir être méthodique sur les pointeurs sur méthode

Dès qu’en C++ je dois faire des pointeurs sur fonction membre (ou méthode) d’une classe c’est toujours la même chose : je ne me souviens jamais de l’enfer syntaxique que constitue la déclaration, l’assignation, et l’utilisation d’un pointeur sur fonction membre ! >:(

Panda essayant de faire des pointeurs sur fonction membre
Panda essayant de faire des pointeurs sur fonction membre

Continuer la lecture de {C++} — Mémo pour avoir la méthode afin de pouvoir être méthodique sur les pointeurs sur méthode

Programming Comedy : « Wat ? »

Je repost ici une vidéo que j’ai eu un peu de mal à retrouver, n’ayant pas retenu le nom de l’intervenant la première fois que je l’ai vue : il s’agit d’un lightning talk animé par Gary Bernhardt (de www.destroyallsoftware.com), ayant pour sujet certaines bizarreries plutôts cocasses présentes dans certains langages (ici Ruby et JavaScript).

Je trouve cette vidéo vraiment hilarante (comme le public, visiblement), surtout la fin 🙂 (attention c’est en anglais non sous-titré…)

 

Batman Jesus
Watman