Zenika à Devoxx-fr 2012 : les slides !


Comme indiqué dans mon précédent billet, j'ai eu l'honneur de présenter deux sessions à Devoxx-fr :

  • Un "quickie" (15mn) pour présenter Seren, ma librairie d'optimisation de sérialisation;
  • Une "conférence" (1h) avec Heinz Kabutz, sur le thème "Deadlock Victim".

Pour nos lecteurs qui n'auraient pas eu l'opportunité d'y assister, voici les slides correspondants.
De plus, la conférence a été intégralement filmée, vous pourrez donc la retrouver très bientôt sur la plateforme Parleys.

Bonne lecture !

Lire la suite...

Retour sur le Mix-IT 2012 avec Play2, Backbone, HTML5, CSS3 et JavaScript


Lors du Mix-IT 2012, presque tout Zenika Lyon était présent pour suivre les différentes conférences. Nous nous sommes dispatchés dans les différentes sessions ce qui nous permet aujourd'hui de proposer un retour collégial de quatre conférences que nous avons retenues sur Play 2, Backbone, HTML5, CSS3 et JavaScript.

Lire la suite...

Overview of Spring Data MongoDB


The Spring Data umbrella project aims at providing support for new data access technologies. It hosts many sub-projects and one of them is dedicated to MongoDB. Spring Data MongoDB comes with tons of features for the Java developers working with MongoDB: database and collection management, lightweight object-document mapping, and dynamic repositories are some of these features. Let's take a tour!

Lire la suite...

NFC V - Android Beam et P2P


Jusqu'à présent, lors de cette série de billets sur le NFC, je n'ai évoqué que des modes d'utilisation unidirectionnels. Ici, je vais maintenant détailler les possibilités offertes par Android pour les autres modes d'utilisation décrits dans le premier article.

Lire la suite...

Mix-IT 2012 : Un très beau cru !


Logo Mix-ITLa seconde édition du Mix-IT de Lyon, notamment sponsorisée par Zenika, a eu lieu ce jeudi 26 avril.

Un peu plus de 350 personnes ont pu profiter de cette journée de partage technique à la fois conviviale et très bien organisée, comme nous les aimons chez Zenika :-)

L'évènement, proposé par le Lyon Java User Group et le Club Agile Rhône-Alpes, a été une belle réussite marquée par la grande variété des sujets présentés, dont certains ont été abordés sous un angle gentiment provocateur. Parmi les thèmes et les technos traités, citons en vrac et de manière non exhaustive Hadoop, MongoDB, Node.js, Blackbone, PhoneGap, Selenium, l'approche DevOps, l'Agilité, le Lean et Kanban, Play!, Hibernate Search, Clojure, ZeroMQ, HTML5 et CSS3 ... Bref, il y en avait pour tous les goûts !

Lire la suite...

Zenika à la conférence Devoxx-fr 2012 !


La semaine dernière se tenait la conférence Devoxx-fr 2012, la première adaptation française du fameux Devoxx belge, point de ralliement incontournable de tous les développeurs Java européens.

Grâce à Zenika, j'ai pu assister à l'intégralité de la conférence, et présenter moi-même deux sessions, dont je vous reparlerai dans un prochain billet. Trois jours exténuants mais passionnants, dont je vous propose une rétrospective.

Lire la suite...

NFC IV - Les types de messages du NFC Forum


Ce billet sera l'occasion de rentrer dans les détails de plusieurs type de message Ndef définis par le NFC Forum. Nous verrons dans un premier temps, les différents Type Name Format (TNF) prévus par le consortium, puis je décrirai les types des messages NFC les plus courants, tels que l'Uri et le Text.

Lire la suite...

Introduction à la programmation concurrente en Java (2/2)


Dans un précédent article, nous avons vu comment lancer plusieurs threads pour exécuter des traitements concurrents en Java, manuellement ou via le framework Executor.

Dans cet article, nous étudierons les problèmes qui se posent lorsque plusieurs threads tentent d'accéder simultanément à une ressource, ainsi que quelques techniques simples pour les résoudre.

Lire la suite...

Introduction à la programmation concurrente en Java (1/2)


Aujourd'hui, le moindre équipement électronique - ordinateur, téléphone, tablette... - possède plusieurs coeurs, répartis sur un ou plusieurs processeurs. Si l'on souhaite en tirer le meilleur parti, il est nécessaire de se pencher sur les arcanes de la programmation concurrente. Dans cet article, nous verrons ce que sont les threads, et comment les créer et les manipuler en Java.

Mais tout d'abord, rappelons quelques notions générales.
Un processus représente l'environnement d'exécution d'un programme. Il référence d'une part un espace mémoire permettant de stocker les données propres à l'application, et d'autre part un ensemble de threads permettant l'exécution du code qui manipulera ces données.

En Java, au démarrage de l'application, un thread initial est créé : le thread "main". Son rôle est de localiser le point d'entrée de l'application (la méthode public static void main(String... args)) puis d'exécuter son code.

Ce thread, comme tous les threads, exécute la séquence d'instructions qui lui est confiée de manière purement séquentielle. Si une instruction prend du temps à compléter (par exemple, en attente de connexion à un serveur), toute l'application est paralysée.

Pour éviter cela, il est possible (et même souhaitable) de confier l'exécution de ces portions bloquantes à des threads annexes, laissant ainsi le thread principal libre de continuer l'exécution de l'application.

Voyons comment.

Lire la suite...

PDF workers with RabbitMQ


Initiating a CPU-intensive task from within an HTTP request is quite common. Asking for a PDF report is a typical example. But where should the processing take place? Processing the task in the same thread as the HTTP request is simple and works well, but it can overload the web server machine. Another solution consists in submitting the task to remote workers. This solution offers a good decoupling between the task producer (the web controller) and the consumers (the remote workers). Let's see how to implement such a solution with RabbitMQ ans Spring AMQP's support.

Lire la suite...

- page 1 de 28