Maths 3D : Matrices et calcul matriciel

Les matrices, les matrices, … les matrices ?!
Manque d’inspiration, rejet (in)conscient ou encore peur de l’échec explicatif, j’ai mis un peu plus de temps que prévu pour sortir cet article, j’espère que cela aura servi à le rendre au moins compréhensible.
Avant d’attaquer cette partie, je ne peux que (doublement) vous recommander d’être un pro du vecteur ou, à défaut, au moins d’en comprendre les principes.
Je vous invite donc à lire ou relire l’article sur les opérations sur les vecteurs !

Votre ceinture est attachée, votre tablette rabattue, on peut commencer, accrochez-vous celui-ci est (encore) un peu salé !

Continue reading

pythagore vecteur

Maths 3D : Opérations sur les vecteurs

Vous avez vu les bases ? (sinon, je ne peux que vous conseiller d’au moins parcourir ce superbe article de cet auteur talentueux et modeste).
Il est temps de passer aux choses encore plus importantes : les opérations sur les vecteurs .
Honnêtement, je pense qu’il n’y a rien de douloureux à l’intérieur, mais si jamais vous trouvez que c’est le cas, n’abandonnez pas en vous disant « tant pis », il est tellement important de comprendre que ça vaut le coup de persister.
Cependant, si vous avez suivi, même de loin, vos cours jusqu’à la 3ème, vous ne devriez pas avoir de difficultés, en plus d’en tirer l’avantage de faire remonter vos souvenirs (plus ou moins éloignés et plus ou moins bons, selon le cas).
Continue reading

pythagore vecteur

Maths 3D : Vecteurs, la base

Vous êtes vous déjà demandé pourquoi des images vectorielles pouvaient être redimensionnées à l’infini sans pixellisation ?
Voulez-vous comprendre une des notions les plus importantes dans les mathématiques pour la 3D et comment la manipuler (la notion, pas la 3D, bien que l’un amène vers l’autre) ?
La notion de vecteur est sans doute la plus importante que vous devrez connaître, mais surtout comprendre, lors de votre (long) parcours au sein de la 3D.
Pour revenir un peu en arrière, nous avons défini un vertex comme un point dans un espace dimensionnel.
Dans un espace en trois dimensions, un vertex représente donc un triplet (x,y,z), définissant une position unique dans l’espace.
Une position est en fait également un vecteur, celui-ci est défini par le même triplet (x,y,z).

Suivez le guide, comme d’habitude, nous allons éclaircir tout ça (enfin, au mieux en tout cas).

Continue reading

Maths 3D – Polyèdres, polygones, vertices, arêtes et facettes

Vous vous trouvez actuellement dans la base de la base de la géométrie 3D, et comme toute base solide est simple, ce sera certainement l’un des chapitres les plus courts de l’histoire des chapitres les plus courts de l’histoire.
Ce chapitre est tellement simple et court que vous allez certainement vous dire « et alors ? » après l’avoir lu (si vous le lisez), et tant mieux, cela voudra dire qu’on parle bien des mêmes choses et donc que vos bases importantes sont acquises.

[Note post-écriture + spoiler alert : je pense que ce chapitre n’entrera finalement pas dans le Guiness book des records du plus court chapitre de l’histoire des chapitres les plus courts de l’histoire]

Nous allons même nous permettre d’ajouter un peu de culture en parlant du théorème d’Euler, facultatif et potentiellement absolument inutile, ce qui pourra vous donner pas mal de sujets de conversation lors de vos longues soirées d’hiver au coin du feu tandis que la neige dévale lentement les pentes aiguës de votre toit en ardoise que vous avez adoré lors de la première visite de votre maison mais qui provoque désormais chez vous des cauchemars récurrents et des regrets éternels (en vrai, ça risque de ne pas faire la totalité de vos longues soirées d’hiver, ni même vous donner beaucoup de sujets de conversation (un seul, en fait), mais on ne va pas non plus s’en plaindre …).
Si cela peut vous rassurer, la phrase précédente sera la plus longue contenant le moins de virgules.

Avec tant de digression, le chapitre risque de ne pas être si court après tout … [Note post-écriture : ce type là est un visionnaire]

Attachez vos ceintures, relevez vos sièges et tablettes, on décolle !

Continue reading

OpenGL 4 – Partie 1 : Introduction : OpenGL, historique et fonctionnement

Cette série d’articles porte sur OpenGL.
Il est pertinent de se demander ce qu’est OpenGL et comment cela fonctionne avant de commencer à l’utiliser, ce qui est le but de cette introduction.
OpenGL est une interface standardisée permettant d’accéder et de contrôler la carte graphique depuis votre code.
La standardisation permet de se concentrer sur votre code de manière portable et pas sur l’implémentation des couches graphiques pour chaque matériel sur lequel votre application tournera.
En clair, cela vous permettra de ne développer qu’une seule fois votre application graphique pour toutes les plateformes supportant OpenGL (ce qui peut aller d’un téléphone à une console de jeu en passant, bien évidemment, par votre cher ordinateur que vous manipulez certainement actuellement), à condition que le reste de votre code soit également portable, mais c’est un autre sujet.

Ces quelques phrases étaient extrêmement abstraites pour vous ? Pas de panique, on entre dans le concret ! (juste après la petite note …)

Continue reading

Que se passe-t-il quand j’alloue une variable PHP ?

L’allocation de variables en PHP est relativement facile, vous n’avez pas vraiment besoin de savoir comment la mémoire est gérée pour utiliser le language.
Cependant, si vous voulez être un « bon » développeur, vous DEVEZ savoir ce qu’il se passe lorsque vous écrivez « $var = 10; ».

Avez-vous entendu parler du Zend Engine ?

Continue reading

Les bases numériques ou « comment on compte ? »

Cela faisait un petit moment que j’avais cet article dans les cartons mais une conversation récente m’a remis dans le bain ;
Savoir compter c’est une chose, savoir comment l’on compte c’en est une autre;

Cet article a pour but d’expliquer tout cela et de vous permettre de sortir une phrase du genre “Hé Jean-Etienne, je peux compter jusqu’à 1023 avec mes doigts” lors d’un dîner mondain en compagnie de Jean-Etienne et sa compagne Germonde, vos deux meilleurs amis d’intérêt.

Bref, tout le monde s’accorde sur le fait ( sauf si évidemment vous avez perdu des doigts ou si vous en avez en trop, auquel cas je vous laisse prendre contact avec les personnes qui signaleront en avoir perdu afin que vous puissiez faire un échange ) qu’avec nos 10 doigts, on est bien loin des 1023 que vous promettiez à Jean-Etienne, impatient de voir votre démonstration de ce fabuleux tour de force que vous lui aviez promis lors de l’apéro plutôt arrosé, mais pas encore assez pour entr’apercevoir un bout de sein de Germonde, qui se serait bien passée de cette soirée plutôt ennuyeuse jusqu’ici.

Tout est question de base numérique

Continue reading

60*60*24 – Man, you can avoid it !

This is a quick note to whomever feels concerned about this.

I often read a lot of stupid stuff while I’m reviewing code (even mine sometimes), and this is part of the giga-frustration that I can feel when someone, with a lot of good intentions maybe, thinks it’s smart to explicitly calculate something that can be pre-calculated.

The best example I have is 60*60*24 ( sometimes can be 60*60*24*30 for 30d period ) ;
YES, of course, we can notice while reading that 60*60*24 is 24 hours in seconds, but if you write 86400 we know this as well !

The main idea behind programing, in any language, is that you don’t have to analyze the rvalue to know what the variable means : you mainly have to concentrate on making your variable name explicit.
And if you think the rvalue must be commented, then comment it, don’t mess up the whole thing !

To make this clear, this is not about “micro-optimization”, this is about common sense !

Redmine on Raspberry pi : it really works ( surprisingly ) !

When I managed to buy a Raspberry Pi a few months ago, I was unsure about the way I would use it : not enough for a test server, too much for embedded stuff …

Anyway, I bought it, installed Debian on it, and it was lying around for a long time, until yesterday.

Luckily for it, I chose Redmine over Jira !

Installing redmine wasn’t a big deal as raspbian repos contained everything I needed : redmine and redmine-mysql .

Continue reading

Procmail with Postfix – MDA configuration

This post can help you configure and use postfix as an MDA (Mail Delivery Agent), and configure filter rules to deliver mails in mailbox depending on some criteria.

Use procmail as MDA with Postfix

In fact, this step is quite simple, you just have to update main.cf with the following line :

Continue reading