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

Posté par  . Licence CC By‑SA.
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

Posté par  (site web personnel) . Licence CC By‑SA.
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

Posté par  (site web personnel) . Modéré par patrick_g. Licence CC By‑SA.
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.

Journal IBM achète Red Hat

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
64
28
oct.
2018

Le communiqué chez Red Hat : https://www.redhat.com/en/about/press-releases/ibm-acquire-red-hat-completely-changing-cloud-landscape-and-becoming-world%E2%80%99s-1-hybrid-cloud-provider

Ça valorise Red Hat a hauteur de 34 milliards de dollars.

Après Rational pour le rose, ils achètent Red Hat pour le rouge ?

Java 15 est sorti

Posté par  . Édité par bobble bubble, Nonolapéro, Yves Bourguignon, Benoît Sibaud, Lawless, BAud, Davy Defaud, theojouedubanjo et Ysabeau 🧶 🧦. Modéré par Ysabeau 🧶 🧦. Licence CC By‑SA.
Étiquettes :
56
15
sept.
2020
Java

Ce 15 septembre 2020 sort Java 15. C’est l’occasion pour cette dépêche de revenir sur les nouveautés entre les blocs de texte et autres ramasse‑miettes. On en profite pour parler de quelques informations autour de Java (les vingt‑cinq ans de la plate‑forme, les nouveaux champions, etc).

Newton Adventure 1.11

Posté par  (site web personnel) . Édité par Xavier Teyssier, NeoX, Benoît Sibaud et ZeroHeure. Modéré par ZeroHeure. Licence CC By‑SA.
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.

Journal Pythran, en plein délire

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
50
23
mai
2018

Cher journal, je dois te confesser que j'ai déclenché quelque chose dont j'ai un peu honte.

Tu te souviens bien sûr de Pythran, ce compilateur pour noyau scientifiques écrit en Python, et de ce petit détail d'implémentation qui veut que le compilateur commence par transformer les fonctions Python en fonctions C++ template (a.k.a. transformer du code Python en meta-programme C++ pour faire stylé voire pédant).

Un choix de design a été de faire en sorte que ces fonctions ne (…)

Journal Optimisation, microbenchmark et compilation Just In Time : quand 1 + 1 ne font pas 2

Posté par  (site web personnel, Mastodon) .
Étiquettes :
50
3
nov.
2017

Imaginons que j'aie une méthode à optimiser. Par exemple – sans intérêt réel – cette fonction qui génère une chaîne de 100 caractères aléatoires :

private static final Random RANDOM = new Random();
private static final char[] CHARS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123465798".toCharArray();
private static final int ALPHABET_SIZE = CHARS.length;

private static String functionToMeasure() {
    final StringBuilder sb = new StringBuilder(100);
    for (int i = 0; i < 100;
(…)

Sortie d’OpenJDK 13

Posté par  . Édité par ZeroHeure, theojouedubanjo, Ysabeau 🧶 🧦, Davy Defaud, Cetera, xof et Julien Jorge. Modéré par Julien Jorge. Licence CC By‑SA.
Étiquettes :
48
24
sept.
2019
Java

Le 17 septembre 2019 est sortie cette nouvelle version d’OpenJDK. Elle comporte son lot de nouveautés, de fonctionnalités en préversion et des retraits. C’est aussi l’occasion de réécriture de certains composants, notamment l’API Socket pour l’inclusion des fils d’exécution — threads — locaux (aka Fibers). Les notes de version vous permettront d’avoir plus de détails.

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

Posté par  . Édité par claudex, palm123, Benoît Sibaud, Nils Ratusznik et ZeroHeure. Modéré par Benoît Sibaud. Licence CC By‑SA.
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.

Journal Spring Troie est dehors : le cadriciel java n'a plus son talon d'Achille

Posté par  (site web personnel) . Licence CC By‑SA.
45
28
nov.
2022

Bonjour Nal,

Je t'écris pour te parler de la nouvelle version du plus populaire des cadriciels Java : Spring.

Largement utilisé en entreprise, il est le grand vainqueur de la guerre des Trois milles frameworks, conflit des années 2000 durant lequel il avait écrasé des concurrents redoutables comme Struts, Play ou Wicket dans un combat homérique dont les cicatrices couvrent de nombreux projets legacy.

Mais depuis quelques temps, un nouveau venu faisait le Pâris de détrôner : Quarkus. Plus jeune (…)

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  (site web personnel) . Licence CC By‑SA.
Étiquettes :
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 7 est dispo !

Posté par  . Licence CC By‑SA.
Étiquettes :
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 Java 9 est dehors

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
43
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 (…)