dimanche 13 mai 2018

Comprendre l'algorithme de Shor

ou

L'informatique quantique pour les nulls


L'autre jour, alors que je devisais avec ma boulangère de physique quantique, celle-ci m'avoua -avec un peu de honte mais il faut lui pardonner- ne rien comprendre à l'algorithme de Shor. Il est vrai que l'algorithme de Shor n'est pas le plus abordable des algorithmes : c'est quand même celui permettant de casser RSA, ou plus simplement de trouver les facteurs premiers d'un entier.

Et s'il y a bien une technologie de rupture dont on n'arrête pas de parler en ce moment, c'est bien le calcul quantique ! Mais aussi l'IA… Et aussi la blockchain… Mais là, on va rester sur le calcul quantique.

RivieraDev, 16-18 mai 2018

lundi 23 avril 2018

L'accès à la propriété pour tous

Toute application d'une certaine envergure expose un certain nombre des variétés de son exécution sous forme de paramètres, chacun composé d'un nom associé à une valeur. Il est commun que ces paramètres soient regroupés dans un fichier, dit "de configuration" que l'application lira au démarrage. On peut y trouver de tout : la couleur du fond d'écran, l'URL de connexion à une base de donnée (et son user/password), la taille du cache, le nom d'une classe concrète à utiliser pour rendre un service donné, l'âge du capitaine, etc.

Pour une application Java, ce fichier de configuration sera le moins souvent un fichier XML, et le plus souvent un fichier plat, les fameux fichiers .properties. Pour faciliter son traitement, Java offre la classe Properties éponyme avec les moyens de lire (ou de sauvegarder après modification) ces propriétés.

Oui mais voilà, ces propriétés sont accessibles par une clé qui n'est qu'une simple String, et disponibles sous la forme d'une valeur qui, également, n'est qu'une simple String. Ne pourrait-on pas faire mieux, tout en restant simple ?

Si, bien sûr...

Une propriété bien peu pratique d'accès

mercredi 7 février 2018

10 hacks en Java

Parfois, il n'est pas possible de faire certaines choses aisément en Java, parce que le langage et son environnement ne sont pas conçus pour ça. Grosse frustration.

Par exemple, étendre un Enum n'a pas de sens, si on éprouve l'idée sur la notion d'extension telle qu'elle est convenue ; pourtant, il peut arriver qu'on en ait besoin si on considère la notion d'extension différemment. Bien que la JVM ne le permette pas de manière triviale, quelques circonvolutions nous permettent cependant d'obtenir l'effet souhaité. On va décrire comment tout à l'heure.

J'expose ici 10 recettes permettant d'étendre certaines fonctionnalités à priori pas permises en Java : 10 hacks bien commodes dont je me suis déjà servi, et qu'un jour peut-être tu trouveras utile pour ton propre code, ami lecteur.

Une alimentation saine et équilibrée
permet de bien faire hack hack