samedi 29 juin 2013

Mes anciens articles de HACK

Dans les années 2000, alors que je n'avais qu'une vingtaine d'années, j'étais passionné par le hacking.

Si cette discipline m'a obligé à posséder de fortes compétences en réseaux, il est arrivé un moment où ma seule façon de progresser fût d'apprendre les arcanes de l'informatique, comprendre comment fonctionne précisément les choses pour entrer dans le cercle très fermé des "EL8" (comprendre élite).

Il faut savoir qu'en hacking, les personnes les plus respectées ne sont pas celles qui ont pénétré les plus gros serveurs, mis à genoux les plus gros systèmes ou volé les documents les mieux gardés de la planète, mais se sont celles qui trouvent et mettent en oeuvre les procédés et programmes qui permettent ces exploits.

Être un hacker consiste donc à étudier précisément un système afin de pouvoir détourner son utilisation originale pour le faire fonctionner à son avantage.

C'est dans ce sens que jadis j'avais écrit plusieurs articles techniques que je vais vous présenter ici.

jeudi 6 juin 2013

SortedSplitList - Un algorithme d'indexation d'objet en C#

En informatique, lorsque la spécification demande à traiter un très grand volume de données avec des performances proches du temps réel, le programmeur doit passer par des mécanismes d'indexation pour trier de manière pertinente les informations à manipuler. Or, si pour la plupart des logiciels, un grand nombre de données se compte en centaines de milliers d'objets, il y en a pour lesquels il est nécessaire d'en manipuler plusieurs dizaines de millions, nécessitant énormément de ressources mémoire.

En général ces gros logiciels sont installés sur des stations dédiées dimensionnées spécifiquement pour tenir la charge, c'est pourquoi les algorithmes privilégies les performances plutôt que l'optimisation de consommation mémoire. Sauf que lorsque un serveur nécessite de maintenir plusieurs dizaines d’indexes sur plusieurs dizaines de millions d'objets, la mémoire vive peut se retrouver rapidement saturée engendrant un écroulement des performances globales.

Cet article va traiter d'un algorithme d'indexation que j'ai mis au point pour pallier à ce problème en alliant performance et consommation mémoire lorsque l'on doit travailler avec plusieurs millions d'objets.

La bonne compréhension de cet article nécessite un bon niveau en programmation générale avec des connaissances en langage C#.

Get the English version of this article on CodeProject

samedi 27 avril 2013

Programmation multithread, kesako ?

La loi de Moore prévoit que la puissance des ordinateurs double tous les deux ans. Or, depuis 2004, la fréquence des processeurs tend à stagner en raison de difficultés rencontrées par la miniaturisation des composants.
Pour gagner en puissance, les constructeurs de microprocesseurs ont dû avoir recours au traitement parallèle afin de maintenir les prédictions de Gordon. Pour ce faire, ils ont privilégié le nombre de cœur tout en prônant la programmation multitâche (appelé multithread dans le jargon).

Dans cet article de vulgarisation, je vais essayer de décrire de façon simple en quoi consiste la programmation multitâche et pourquoi ce concept rend la vie des développeurs qui veulent s'y atteler plus difficile. Nous verrons aussi que malgré les promesses de puissance, toutes les applications ne gagnent pas à être écrite en multithread.

vendredi 5 avril 2013

Et c'est ainsi que démarre mon blog.

Certains veulent devenir pompier, d'autres vétérinaires, moi j'ai toujours voulu devenir programmeur.

"Quoi ? tu fais ce job de looser de ton plein grès ?"

Il est vrai qu'aujourd'hui, c'est un métier qui d'un point de vu extérieur parait bien barban. Rester des heures sur un ordinateur pour taper des lignes et des lignes dans une langue inconnue du commun des mortels, tout ça pour afficher un bouton qui fait pouêt pouêt, ça semble difficile d'intéresser la moindre personne avec ce concept lors d'une conversation.

Et pourtant, beaucoup de gens pratiquent cette discipline avec passion.

Je suis programmeur, entrez dans mon monde...