samedi 21 septembre 2013

Et une autre upgrade de Postgresql sur Debian

Une fois de plus, la mise à jour de Postgres sur Debian se fait avec une facilité déconcertante.

pg_dropcluster --stop 9.3 main
pg_upgradecluster 9.1 main
pg_dropcluster 9.1 main

pgAdmin se plaint que la version de Postgresql est trop récente, mais semble fonctionner quand même.

jeudi 19 septembre 2013

Un carnet

Une nouvelle icône, représentant un carnet. Rien de bien compliqué: quelques tores pour les anneaux, deux blocs pour le papier et le fond cartonné.

Cependant, les trous pour les anneaux m'ont laissé perplexe pendant un petit moment. J'ai commencé par essayer de les modéliser en subdivisant un côté de mon cube, et en extrudant les "bons bouts", mais reconnecter l'ensemble de l'autre côté semblait un peu complexe. Finalement, l'utilisation des fonctions booléennes a donné de meilleurs résultats: j'ai simplement créé un cube traversant le carnet au niveau de l'anneau, et utilisé le modificateur booléen "différence". Les vertex du carnet deviennent un peu n'importe quoi, mais cela ne gène pas le rendu. L'essayer c'est l'adopter!

jeudi 12 septembre 2013

Going Native 2013 - Bjarne et les ramasse-miettes

Les vidéos de la conférence "Going Native 2013", grosse conférence sur le C++ réunissant, entre autres, Bjarne Stroustrup (inventeur du C++), Herb Sutter (gourou C++ devant l'éternel, bossant ces temps ci chez Microsoft, et auteur d'un excellent blog sur le C++), Andrei Alexandrescu (le roi des templates, son bouquin "Modern C++ Design" est une perle) et Scott Meyers (De la série "Effective C++", "Effective STL", "More effective C++"...), sont maintenant en ligne. Les interventions ne sont pas aussi denses que je l'aurais souhaité, mais cela m'allait très bien puisque je me les suis gardées en tâche de fond, casque sur les oreilles, pendant que je codais autre chose, revenant parfois à l'image pour regarder une diapositive.

Un point qui m'a particulièrement interpellé dans l'intervention de Bjarne Stroustrup est son avis sur les ramasse-miettes (garbage collectors ou GC en anglais). Pour autant qu'il n'en nie pas l'utilité dans certains cas, en l'occurence des bases de code vieilles, complexes, et où les responsabilités ne sont pas bien définies, il demeure cependant convaincu de la supériorité des approches RAII, pour leur déterminisme d'une part, mais aussi pour leur capacité à gérer d'autres ressources que la seule mémoire d'autre part, comme les fichiers ou les verrous sur sections critiques.

De mon côté, autant j'apprécie la présence du GC dans du Java ou dans de l'OCaml, autant ce n'est absolument pas le paradigme C++ (Bjarne indique également qu'il déteste de mot "paradigme"...), et je suis fort satisfait des pointeurs intelligents fournis par le nouveau standard (ou par Boost pour ceux qui utilisent encore le même compilo que le roi Hérode).

jeudi 5 septembre 2013

Dwarf Fortress

Je suis en train de regarder la série sur Dwarf Fortress de VanguardOfValor sur Youtube, et je suis très impressionné par le jeu.

Pour ceux qui ne connaissent pas, il s'agit d'un jeu indépendant développé par deux frangins dans lequel le joueur dirige un groupe de nains dans la construction de leur forteresse souterraine. Au fur et à mesure de son expansion, la forteresse attirera de plus en plus de colons, mais également de plus en plus de convoitises. De plus, creuser trop profond peut faire surgir des hordes de créatures démoniaques...

La complexité est tout à fait remarquable, les nains ont des dizaines et des dizaines de compétences à développer, il y a des dizaines de types de chambres et de bâtiments, et le jeu devient de plus en plus difficile au fur et à mesure que vos nains sont de plus en plus exigeants et les ennemis de plus en plus nombreux.

Chaque créature du jeu a son histoire, ses préférences, son équipement... Et il y a toujours quelque chose à faire dans sa forteresse, comme de chasser les vampires qui se sont introduits parmi les colons, répondre aux demandes des nains "nobles", permettre aux nains qui sont pris d'une obsession de construire ce qu'ils veulent, sinon ils deviennent fous ou se laissent mourir...

Graphiquement, c'est particulièrement moche, et encore, des groupes de passionnés fournissent des outils supplémentaires et des jeux de sprites pour améliorer les graphismes en ascii art. Mais qu'est-ce que ça a l'air prenant! C'est d'ailleurs la raison pour laquelle je ne me lance surtout pas à y jouer moi même :)

mercredi 31 juillet 2013

Le Carnet De Bébé

Voilà, l'application Android pour laquelle je modélisais des épingles à nourrice et des gouttes sous Blender dans le but de fournir des icônes a été publiée dans le Play Store. Il s'agit d'une application de suivi des repas (et des couches) de bébé, orienté vers les femmes qui allaitent. Et en français, s'il vous plait (il y a également la localisation en anglais et en chinois). Voici une capture qui montre mes icônes:

Empressez-vous donc d'aller la télécharger, et si vous n'allaitez pas, vous pourrez au moins admirer mon épingle à nourrice.

vendredi 26 juillet 2013

La tablette Vivaldi bouge encore

Un sursaut inespéré de la très attendue (tout du moins par moi) tablette Vivaldi, qui se veut basée sur KDE, mais surtout complètement libre.

En effet, un des développeurs, Aaron Seigo, a annoncé que les développeurs du projet allaient recevoir une pré-version de la tablette pour certification. Il y encore donc un bon bout de chemin avant que vous et moi puissions les manipuler de nos petits doigts fébriles, mais c'est un grand pas en avant.

lundi 8 juillet 2013

Les dangers de la move semantics

Voyez donc cette question que je pose sur Stackoverflow: en écrivant mes constructeurs dans le style moderne, passage des arguments copiés par valeur et déplacement, je me suis rendu compte qu'il était extrêmement facile d'utiliser par erreur la valeur déplacée dans le corps du constructeur. Comme les commentateurs du post l'ont noté, il n'existe pas vraiment de parade à ce problème, il faut juste faire très attention à ce qu'on fait...

Ce genre de bug va se multiplier, j'imagine, et sera probablement particulièrement difficile à débugger: l'on peut imaginer, dépendant de l'implémentation de chaque type, que l'on verra parfois l'ancienne valeur, parfois une valeur non initialisée, et parfois de beaux crashs. Pas de quoi jeter bébé avec l'eau du bain, mais il faudra ouvrir l’œil (comme si l'on avait déjà pas assez à penser lorsque l'on code en C++...).