Journal OpenJDK JEP 180: HashMap, collisions & attaques par la complexité

84
4
mai
2014

Dans ce journal, je vais parler de la JEP 180 d'OpenJDK 8 qui propose une solution intéressante aux problèmes d'attaques sur la complexité que rencontrent les tables de hachage.

On a déjà parlé de ce sujet ici même à plusieurs reprises. Je vais cependant rapidement représenter le problème et l'évolution des discutions. Le lecteur averti sur le sujet ira directement au dernier paragraphe pour voir la proposition de la JEP 180.

Présentation des tables de hachage

Une table de (...)

Journal Leap second

66
1
juil.
2012

Vous le savez peut-être mais la rotation de la terre ne fait pas tout à fait 24h. Je vous rassure, ça tombe vraiment pas loin. Mais il arrive de temps en temps qu'il faille corriger cet écart. C'était le cas ce week-end avec l'introduction d'une « leap second » : samedi à minuit, une minute a duré 61 secondes au lieu des 60 secondes habituelles.

Petit changement, mais conséquences non-négligeables : beaucoup de code écrit sur cette planète n'est pas (...)

Naissance d'un géant : Java

64
8
juil.
2011
Java

Java est un des langages de programmation les plus auréolés de succès de ces quatre dernières décennies. Une grande partie des offres de postes de développeurs en France concerne Java.

D'après le « TIOBE Programming Community Index » Java est toujours leader avec 18,58 % des parts de marché en juin 2011. Il était bien plus haut en 2000, avoisinant les 30 %.

Mais comment Java en est arrivé là ? Cet article effectue un retour sur la période 1991–2000.

Newton Adventure 1.11

53
26
août
2013
Jeu

Une nouvelle version de Newton Adventure, un jeu de plateforme 2D libre pour Linux, Windows ou Mac OS X.

capture

Le but du jeu consiste à parcourir des niveaux en courant, sautant et faisant tourner la gravité. Pour passer au niveau suivant, il faut trouver une clef et l'amener à la porte de sortie en évitant les nombreux pièges et ennemis.

Plus d'infos en deuxième partie de dépêche.

OpenJDK JEP 180: HashMap, collisions & attaques par la complexité

46
6
mai
2014
Java

Cette dépêche parle de la JEP 180 d'OpenJDK 8 qui propose une solution intéressante aux problèmes d'attaques sur la complexité que rencontrent les tables de hachage.

On a déjà parlé de ce sujet ici même à plusieurs reprises. Je vais cependant rapidement représenter le problème et l'évolution des discussions. Le lecteur averti sur le sujet ira directement au dernier paragraphe pour voir la proposition de la JEP 180.

NdM : merci à ckyl pour son journal.

Sortie de DavMail en version 4.0.0

Posté par . Édité par Davy Defaud, Benoît Sibaud, Nÿco, Xavier Teyssier et Florent Zara. Modéré par Nÿco. Licence CC by-sa
45
11
sept.
2012
Microsoft

Par défaut, les serveurs de messagerie Microsoft Exchange promeuvent leur protocole propriétaire (MAPI/EWS) au détriment de protocoles, certes anciens, mais ouverts et éprouvés (IMAP, POP, SMTP, WebDAV/CardDAV). Il est difficile de les utiliser avec d’autres clients de messagerie et de calendrier que le client Outlook officiel. Il existe cependant une parade :

DavMail est un petit logiciel, léger et multi‐plate‐forme (Java), qui va s’intercaler entre l’interface HTTP (OWA pour Outlook Web Access) d’un serveur Exchange et votre poste de travail, pour jouer les interprètes. Il « parlera » WebDAV (jusqu’à Exchange 2007) ou EWS (pour Exchange 2010) avec le serveur Exchange, et traduira tout cela en IMAP/SMTP/LDAP/CalDAV/CardDAV pour votre client de messagerie et/ou de calendrier favori.

Logo DavMail

La sortie (très discrète) de la version 4.0.0, hier, correspond au terme d’un long travail d’adaptation et de test de l’outil pour l’adapter à Exchange 2010, lequel a abandonné l’usage du protocole WebDAV au profit exclusif d’une variante maison nommée EWS (Exchange Web Services), introduite dans la version 2007 d’Exchange.

NdM : On peut aussi citer un greffon pour Thunderbird : Exchange 2007/2010 Calendar and Tasks Provider (non compatible Thunderbird 15, pour l’instant).

Journal Java ça pue c'est trop libre.

Posté par (page perso) . Licence CC by-sa
45
28
août
2012

Finalement j'ai l'impression que c'était inéluctable, que ça devait arriver un jour ou l'autre…

public void init()
{
   try
      {
       disableSecurity();

Alors là évidemment quand ça commence comme ça…

Bon, pour ceusses qui l'ignorent encore ou ont toujours leur plugin Java d'activé dans leur navigateur, il y a un 0Day qui circule depuis au moins 2 jours:
http://labs.alienvault.com/labs/index.php/2012/new-java-0day-exploited-in-the-wild/
http://eromang.zataz.com/2012/08/27/java-7-applet-rce-0day-gondvv-cve-2012-4681-metasploit-demo/

A priori Linux serait également impacté, mais je n'ai pas pu le vérifier : je n'ai pas le JRE (...)

Journal Java 9 est dehors

Posté par (page perso) . Licence CC by-sa
44
22
sept.
2017

Bonjour Nal,

Je t’écris pour t’informer de la sortie de la nouvelle et très attendue version majeure de Java, l’une des plus grosses plates‐formes de développement du marché. Voici un petit tour des nouveautés :

Victime de jmod

La principale nouveauté est l’introduction d’un système de modules. Ce système mérite un journal complet, mais le principal apport sera le « debloat » (un peu) de l’environnement d’exécution et des applications Java.

Dans les poèmes de jshell

Un outil jshell permet de (...)

Journal Java 7 est dispo !

Posté par . Licence CC by-sa
44
28
juil.
2011

Pour les développeurs de projets Entreprise, aujourd'hui est un grand jour. En effet Java 7 est disponible pour tous. Seulement 5 ans après la sortie de Java 6 (décembre 2005), le langage Java propose une nouvelle évolution majeure pour rester compétitif. On retrouve ainsi :

  • L'inférence de type des variables
  • Les arguments optionnels
  • Les arguments nommés
  • Les méthodes d'extension
  • Les lambdas
  • Les arbres d'expression
  • Un langage de requêtage intégré
  • Le safe navigation operator
  • Les références non nulles
  • J'en passe et (...)

Journal Kotlin + Brainfuck : efficacité, compacité, optimisation

Posté par (page perso) .
43
11
mai
2017

L'une des prétentions de Kotlin, c'est grosso merdo d'être une version moderne et efficace (= sans boilerplate code) de Java.

On va tester ça avec un interpréteur BrainFuck.


La version simple

Le but du jeu est de faire le plus simple possible :

  1. Interprétation bête et méchante du code Brainfuck.
  2. Le code est lu dans un fichier externe dont le chemin est passé en argument.
  3. Si le code BF est pété, le programme fera n'importe quoi (pas (...)

Journal jnuit et la recette des mombolini

42
16
fév.
2014

Bonjour Nal,

Je t'écris pour te parler de mon nouveau projet, jnuit, une bibliothèque pour créer des interfaces graphiques pour les jeux avec Java/lwjgl et… Attends ne pars pas! Si tu restes je te donnerais une délicieuse recette italienne!

Maintenant que j'ai ton attention, revenons à nos moutons. Grâce à mes 42 journaux annuels, tu sais que je travaille sur deux jeux, Newton Adventure et Ned et les maki. Pour les créer, j'ai suivi le conseil d'un article célèbre (...)

RPGBoss 0.6.x

Posté par . Édité par ZeroHeure, patrick_g et palm123. Modéré par ZeroHeure. Licence CC by-sa
40
17
jan.
2015
Jeu

Vous connaissez sûrement le fameux logiciel de création de RPG à savoir RPG Maker. Le gros défaut de ce logiciel est qu'il est payant et surtout qu'il ne fonctionne que sur Windows (les jeux créés avec aussi).
C'est alors qu'une personne nommée Tommy décida de refaire un clone complet mais cette fois-ci multiplate-forme (Windows, Mac, Linux). Ce logiciel se nomme RPGBoss, il est gratuit, libre (AGPLv3), codé en Scala et tourne avec la JVM de Java (6, 7 et 8).

Modernisez votre code Java en un clic avec AutoRefactor v1.0.0 !

Posté par . Édité par palm123, BAud, Snark, Nÿco et Benoît Sibaud. Modéré par ZeroHeure. Licence CC by-sa
40
5
juin
2015
Java

Le 22 mars 2015 est sortie la version 1.0.0 du projet AutoRefactor. Ce logiciel est publié sous Eclipse Public License v1.0 et GNU General Public License v3+.

AutoRefactor restructure automatiquement le code source d'un programme Java afin de :

  • Faciliter la maintenance en améliorant la lisibilité
    • exemple : lorsque toutes les branches d'un if ont les mêmes instructions à la fin des blocs, celles-ci sont déplacées après le if, …
  • Moderniser le code
    • exemple : passer des APIs de java.util.Vector vers celle de java.util.List, …
  • Appliquer les bonnes pratiques
    • exemple : utilisation d’accolades après un if, javadoc bien formés, bonne utilisation des APIs de BigDecimal, TestNG, …
  • Réduire la taille du code
    • exemple : un if imbriqué dans un autre if devient un if unique, suppression des variables locales déclarées juste avant un return, …
  • Améliorer les performances
    • exemple : utiliser Integer.valueOf(int) au lieu de new Integer(int), …

Journal Maki à la vapeur

39
25
oct.
2013

Bonjour Nal,

Je t'écris pour te donner des nouvelles de mes projets libres. Au menu, nanimstudio, Newton Adventure, un nouveau jeu (Ned et les maki) et de nouveaux projets (libtiled-jaxb et lwjgl-nuit).

nanimstudio

Mon logiciel d'animation 2d continue à évoluer au fil de mes besoins et des retours des utilisateurs. Après le support de l'APNG et quelques améliorations de l'ergonomie, mon prochain grand chantier est l'ajout d'algorithme de scaling. Pour cela j'utilise la bibliothèque scilter. Le but est de pouvoir (...)

Journal Oracle perd son procès contre Google concernant l’utilisation de Java sur Android

Posté par (page perso) . Licence CC by-sa
38
27
mai
2016

Selon les jurés, l’utilisation de Java par Google sur Android est « raisonnable » et de ce fait, elle n’est pas illégale.

http://www.presse-citron.net/oracle-perd-son-proces-contre-google-concernant-lutilisation-de-java-sur-android/

Oracle réclamait 9 milliards de dommages et intérêts à Google pour l'utilisation de 37 API de Java… Euh on ne parle pas de l'implémentation de ces API, uniquement des fichiers qui déclarent les API. 9 milliards pour 37 fichiers ? Normal quoi.

C'est quand même la 2e tentative d'Oracle de faire cracher Google, un premier procès avait eu lieu de (...)