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