Tous les articles par Pando

Pando est un gentleman panda qui aime programmer sur son ordinateur, particulièrement des applications en rapport avec le monde de la modélisation 3D et de l'image de synthèse. Il aime aussi parler de ses coups de coeur littérature, musique et cinéma. Twitter Page perso

« Ah… Ok … »

Parfois, je trouve que certaines choses sont vraiment débiles…

Débarquant récemment sur une Fedora toute fraîche (et oui, j’ai fini par mettre ma Debian à la retraite), je tente de lire un DVD commercial lambda sous VLC et… oups, ça ne marche pas !

Cascade d’erreurs comme quoi le média ne peut pas être lu.

Un problème classique sur Linux : les DVD du commerce sont chiffrés et dans la grande majorité des cas, une distribution Linux ne propose pas de base le paquet permettant de les décoder.

Bref, installation de ce fameux paquet, répondant au doux nom de libdvdcss.

Ça ne marche pas.

Passage par divers dépôts pour installer à peu près tous les codecs de la création…

Ça ne marche toujours pas.

Mon salut est venu au détour d’un forum technique… Le device utilisé par défaut par VLC pour la lecture des DVD est « /dev/dvd », visible comme entrée par défaut de la liste labelisée « Disc device » dans le menu « Open Disc ». J’ai changé cette entrée pour la dernière de la liste, « /dev/sr0 » (qui désigne, en effet, le lecteur CD également) et… Paf, ça marche.

Je crois que plusieurs images sont nécessaires pour exprimer mon sentiment à ce moment-là…

 

 

Ah, ça va mieux après !

Juste en passant

Hier en faisant ma mise à jour de Debian (sur unstable), j’ai eu droit à un beau message d’erreur :
dpkg: error processing gnome-themes-standard:amd64 (--configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
gnome-themes-standard-data
gnome-themes-standard:amd64
E: Sub-process /usr/bin/dpkg returned an error code (1)
A package failed to install.  Trying to recover:
Setting up gnome-themes-standard-data (3.8.1-1) ...
update-alternatives: using /usr/share/icons/Adwaita/cursor.theme to provide /usr/share/icons/default/index.theme (x-cursor-theme) in auto mode
update-alternatives: error: error creating symbolic link `/usr/share/icons/default/index.theme.dpkg-tmp': No such file or directory
dpkg: error processing gnome-themes-standard-data (--configure):
subprocess installed post-installation script returned error exit status 2
dpkg: dependency problems prevent configuration of gnome-themes-standard:amd64:
gnome-themes-standard:amd64 depends on gnome-themes-standard-data (= 3.8.1-1); however:
Package gnome-themes-standard-data is not configured yet.

dpkg: error processing gnome-themes-standard:amd64 (--configure):

dependency problems - leaving unconfigured
Errors were encountered while processing:
gnome-themes-standard-data
gnome-themes-standard:amd64

En gros il essayait de créer un fichier dans /usr/share/icons/default/, alors que ce dossier n’existait pas chez moi. Alors, vu que j’utilise Adwaita comme thème (par exemple), la solution pour moi a été de faire :

# ln -s /usr/share/icons/Adwaita /usr/share/icons/default

autrement dit de créer un dossier default qui est en fait un lien qui pointe sur le dossier de Adwaita.

Ça change rien au fait que cette mise à jour a aussi cassé GTK3, mais bon, au moins ça c’est fait.

Un plugin et on pète tout

Purée, récemment j’ai installé le plugin Code Colorer, notamment pour les besoins de l’article sur VTK car il y a d’assez longues portions de code dedans et que ça faisait un moment que je me disais que, bon zut, ça peut toujours être utile et qu’il était temps de se bouger la fesse.

Le bouzin marche à peu près comme prévu, sauf que le truc que je n’ai aps vu tout de suite, c’est qu’à l’installation, il a tenté de manière plus ou moins ratée de convertir les balises code, que j’utilisais avant pour mettre des exemples de code, en balises Code Colorer :s

Certains exemples se retrouvent alors illisibles, ou juste moches. Je pense en avoir corrigé la plupart, mais n’hésitez pas à laisser un message si vous voyez un exemple de code qui a l’air bizarre ou qui est vide …

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

Featuring: « GPL versus BSD : une affaire de durabilité »

L’autre jour, je me demandais quelle était la « vraie » différence entre les licences GPL et BSD.

Et je suis tombé sur un article un peu vieux (2007) mais assez intéressant ( « old but still relevant » ), c’est pourquoi j’aimerais vous en proposer ici une traduction libre de l’anglais, avec l’aimable autorisation de son auteur 🙂

La note de blog originelle se trouve à cette adresse.

GPL vs. BSD
Le gnou contre le daemon

Continuer la lecture de Featuring: « GPL versus BSD : une affaire de durabilité »

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 … 🙂

Les Chroniques du Métal Hurlant — deuxième partie

« C’est le dernier fragment de ce qui fut un jour une planète vivante.

Menée à la destruction par la folie de ses habitants, ce qu’il en reste est condamné à errer à jamais au travers de l’espace et du temps, hurlant sa peine et son désespoir.

Dans la légende et dans les faits, on l’appelle…

le Métal Hurlant.»

METAL HURLANT CHRONICLES

Hello,

voici (enfin…) mon retour concernant les trois derniers épisodes de la première saison de Métal Hurlant Chronicles ! 🙂

Au départ je comptais le poster au moment de leur première diffusion sur France 4, puis je profite de leur actuelle re-diffusion sur Nolife pour finalement revenir dessus.

Si vous ne l’avez pas encore lu, je vous conseille la lecture de l’article de Gaby sur les trois premiers.

Pour les feignants et les curieux qui seraient ici par hasard, resituons un peu…

Continuer la lecture de Les Chroniques du Métal Hurlant — deuxième partie

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