Fonctions de hachage

Avec nos langages modernes qui fournissent dictionnaires et tableaux associatifs nativement, il devient rare d'avoir à implémenter une table de hachage à la main. Cela arrive néanmoins, par exemple quand on doit développer en C/C++, qu'on ne peut pas embarquer Boost et qu'on est comme moi allergique à stdlib. Se pose alors la question de trouver une bonne fonction de hachage.

Lire la suite…

Nombres aléatoires et biais dû au modulo

La génération de nombres aléatoires est un problème étonnamment complexe. Heureusement, sauf besoin spécifique, le développeur y est rarement confronté directement : la bibliothèque C fournit des générateurs pseudo-aléatoires performants et prêts à l'emploi. Les systèmes basés sur FreeBSD proposent notamment random() et arc4random(), qui sont de très bons remplacements à l'historique et défectueuse fonction rand().

Lire la suite…

Scanner des codes-barres

La librairie de référence pour scanner des codes-barres de toutes sortes, qu'ils soient mono-dimensionnels comme EAN13 ou bidimensionnels comme QR-code ou Datamatrix, est ZXing (prononcer « zebra crossing »). Malheureusement, il s'agit d'un travail développé sous Android dont le portage sur iPhone n'est pas terminé : il manque toute la partie 1D. (De plus, j'ai toujours trouvé cette librairie mal « packagée » et peu commode à intégrer dans un projet, mais c'est un autre sujet !)

Lire la suite…

Service Web et proxys

Beaucoup d'applications mobiles reposent sur des services web. L'intelligence se trouve sur un serveur tandis que l'iPhone sert de simple terminal, pour afficher des informations à l'utilisateur ou lui permettre d'en saisir. Il peut y avoir tout un tas de bonnes raisons à choisir cette architecture :

Lire la suite…