Posts

Arkhn’s Data Platform Goes Agentic

I have been the CTO of Arkhn for two years now, during this time we’ve been building the best data platform to empower healthcare providers, make better decisions and improve patient outcomes.

Object oriented programming deemed irrelevant

I've been coding since 2006, during this time I've seen multiple trends & technologies emerge, rise and fall - nowadays the elephant in the room is the bad press around OOP languages the likes of Java, C#, C++.

From Pandas to Apache Spark’s Dataframe

RDDs are the new bytecode of Apache Spark

With the Apache Spark 1.3 release the Dataframe API for Spark SQL got introduced, for those of you who missed the big announcements, I'd recommend to read the article : Introducing Dataframes in Spark for Large Scale Data Science from the Databricks blog. Dataframes are very popular among data scientists, personally I've mainly been using them with the great Python library Pandas but there are many examples in R (originally) and Julia.

Changing Spark’s default java serialization to Kryo

Apache Spark's default serialization relies on Java with the default readObject(...) and writeObject(...)  methods for all Serializable classes. This is a very fine default behavior as long as you don't rely on it too much...

Try Apache Spark’s shell using Docker

Ever wanted to try out Apache Spark without actually having to install anything ? Well if you've got Docker, I've got a christmas present for you, a Docker image you can pull to try and run Spark commands in the Spark shell REPL. The image has been pushed to the Docker Hub here and can be easily pulled using Docker.

So exactly what is this image, and how can I use it ?

Apache Spark : Memory management and Graceful degradation

Many of the concepts of Apache Spark are pretty straightforward and easy to understand, however some lucky few can be badly misunderstood. One of the greatest misunderstanding of all is the fact that some still believe that “Spark is only relevant with datasets that can fit into memory, otherwise it will crash”.

This is an understanding mistake, Spark being easily associated as a “Hadoop using RAM more efficiently”, but it still is a mistake.

Apache Spark : l’importance du broadcast

Dagger and Play 2 Java

How to remove scaladoc generation from Play 2.2.x Production dist

Timeoff 2014 @ Lateral Thoughts

Highlighting field in memory-based Lucene indexes

I'm using more and more Lucene these days, and getting in depth on a few subjects, today i'm going to talk to you about how to handle the new Highlighting features available with Lucene 4.1.

How to test and understand custom analyzers in Lucene

I've began to work more and more with the great “low-level” library Apache Lucene created by Doug Cutting. For those of you that may not know, Lucene is the indexing and searching library used by great entreprise search servers like Apache Solr and Elasticsearch.

Book review : ElasticSearch Server by Rafal Kuc, Marek Rogozinski

Elasticsearch is the way

Don't get me wrong, i love Apache Solr, i think it's a wonderful project and the versions 4.x are definitely something you should check out when building a proper search engine.

Reste à ta place et fais ce qu’on te dit.

Je ne suis pas le plus aguerri des vétérans, et je m'en rend compte encore assez souvent pour savoir que j'ai encore des sempaïs dans plus d'un domaine (pas que technique) dont certains avec qui j'ai la chance de travailler, même si ce n'est pas tout le temps au jour le jour.

Going offline with Maven

At Lateral-Thoughts, we organize at least once a year, what we call a “Timeoff” where we get together in a nice place and hack on what we want. It can be a learning period or a startup weekend-like event where we hack on a product/idea. Last time it was in a nice house in Guérande where we had everything we needed, internet access, rooms, tables, lots of space, an indoor swimming pool and a barbecue !

State of the Maven/Java dependency graph

So here it comes, the second part of a three part articles on dependencies in different world, the first part was about Python/PyPi dependencies and considering the size of the graph : 20661 Nodes, 14047 Edges,  I was able to show you the graph in an interactive javascript app using SigmaJS. But this times it's different, after extracting the metadata from Maven repositories, the raw data file generated weights 273M, and the size of the whole directed dependency graph is 186 384 Nodes and 1 229 083 Edges, in other words, it's going to be tough to show you the whole graph interactively but the raw data, the graph file and the Gephi file are available on the GitHub project.

State of the Python/PyPi dependency graph

I usually work in Java/Maven environment, so when I explain to people that Python also has a package manager - a bit less heavy than maven - and that it's working pretty well, I always have to answer the same question : “Ok, but how does it solve the transitive dependency hell ?”

New Year’s Python Meme 2012

Agora : Automatiser la démocratie dans une NoSSII

c'est l'histoire d'un concept, vieux comme le monde, la démocratie.

La vie de startup

Pourquoi venir à la présentation “Architecture CQRS et performance avec Django” au #pyconfr

Bon déjà, c’est facile, c’est moi qui la ferait donc ça sera forcement intéressant (au moins un peu !), ensuite plusieurs points.

On devrait toujours travailler comme ça #hackathon LT

Voilà le #hackathonLT “été 2012” est fini pour moi, c’était bien sympa. Difficile d’arriver à expliquer à tout le monde l’ambiance ou l’organisation, vu que le but était de ne pas vraiment en avoir… mais pour faire simple imaginer ça :

J’y vais… j’y vais pas…

Le Cloud n’est pas la martingale

Je vois de plus en plus de devs et autre afficionados technolo-geek commencer à ne jurer que par le cloud, alors à défaut de présenter une vision partiale et totalitairement contre, ce que je ne suis pas, j'aimerais bien tempéré un peu ces ardeurs.

Snow leopard and Qt/PyQt 4.8.x won’t work

Handle Celery-dependent tests in Django and with django-jenkins

So in your life, one of these days, you're going to realize you need tests, and that “maybe” you also need to test components that depend on several Celery tasks.

La puissance et le contrôle

En développement, comme dans beaucoup d'arts martiaux, on peut devenir fort assez rapidement. On peut se fixer des objectifs (une ceinture, une victoire / maitriser une technologie ou réaliser un projet perso) et les atteindre rapidement selon le language, le maître et l'implication qu'on y met.

IncidentsRATP – IncidentsTransports est publié

Voilà c’est fait, après maintes péripéties et une attente longue je l’avoue, le projet est enfin publié en AGPL v3.

Etat de fait et fatalité

Un état de fait m'énerve, il m'énerve d'une part parce que dans d'autres domaines professionnels, il n'est pas aussi exacerbé, et d'autre part parce que je pense que la tendance s'accélère.

Should i really learn Java ?

So i’ve been a professional Java developper for a few years now, and the question seems interesting to me. Should, let’s say a student, really learn Java even if he does not want to do “Enterprise applications” ?

Short answer, Yes.

How to be a happy programmer (with Python) ? 2/3

In the series of the Python “features” that makes me happy last time i began with two concepts, the with statement and the list comprehensions, now i'm going to talk about Multiple assignments and the import aliases.

Using TOR with Python

There are many occasion where you may be limited using your own IP address, i will obviously only refer myself to “rightful” cases where you need to use different IP address in very short lapse of time. Let's say you want to test your website localization functionality, or just access it using many different IP address and see how the system deals with it.

How to be a happy programmer (with Python) ? 1/3

I've just watched Hillary Mason's talk in Pycon 2011 : http://pycon.blip.tv/file/4878710/
And that got me thinking about all the python constructs that makes my day better, and i decided to make a list of them and their meaning.

[IncidentsRATP] Suite et bientôt fin

J'avais déjà publié à la fois la lettre de la RATP me mettant en demeure de fermer le site incidents-ratp.com et mon ressenti sur toute cette affaire, mais là l'histoire continue.

IncidentsRATP – Application IPhone

On peut dire beaucoup de choses, mais pas que l'on chôme. Une application IPhone développée par Benoît Clouet est en préparation et bientôt prête pour être testée. Nous avons beaucoup travaillé ensemble sur la communication avec l'API du site, et voici un petit screencast de présentation de la version de test actuelle (chargement un peu long) :

Quelques chiffres – Revue de presse

J'aime beaucoup les chiffres, mais surtout les chiffres bien utilisés. J'ai eu très peu de temps à consacrer à ce blog ces derniers jours, et beaucoup de temps pris par les interviews et la communication de manière générale. C'est nouveau pour moi dans le sens où pour une fois mes propos sont très largement et systématiquement déformés dans beaucoup des medias. Je ne blame personne et le message que je tenais à faire passer est “globalement” bien ressorti, donc je ne vais pas me plaindre.

IncidentsRATP – pré Post-mortem

Depuis quelques mois je travaillais sur un projet que j'avais intitulé incidents-ratp.com avec un but simple : mettre à disposition une plateforme libre et ouverte pour connaître les incidents en temps réels dans les transports en commun.

FOSDEM 2011 : Day #2

Principal talk de la journée - Facebook messages avec HDFS/HBase :
Une présentation du projet de Facebook d'unifié tous les messages (SMS, Email, Chat...).

FOSDEM 2011 : Day #1

La journée commence bien, petit déjeuner à l'hôtel, et voyage vers le FOSDEM. Petite grasse matinée oblige, on loupe les premières conférences sur la liberté des logiciels et la liberté tout court pour arrivé dans un amphi gigantesque, mais surtout plein à rebord.

FOSDEM 2011 – Day 0

Vendredi soir, après une longue journée de boulot, et un petit voyage en train d'1h30, rendez-vous Bruxelles pour une soirée sympa au beer event du FOSDEM 2011.

FOSDEM 2011

Le FOSDEM 2011 (Free OpenSource Developer European Meeting) aura lieu ce weekend du 5 février à Bruxelles !

Agilité et BuildWall

Recharger son .profile sous Linux/Mac

Etat de l’art de la GED OpenSource

Data Extraction without semantic web

Moving On…

Ca y est ! Fin de mission aujourd'hui.

A good oldie : 1996 Java Vs Python

Un hébergement qui vaut le détour : AlwaysData

Ok, ce n'est très certainement pas mon domaine d'expertise, mais je suis un programmeur Python, principalement sur Django et je cherche souvent un hébergement.

Combien d’applications lourdes utilisez-vous ?

Fin du StartupWeekend Paris 10/2010

Ca y est l'édition d'octobre 2010 du Startup Weekend de Paris qui c'est tenu à Télécom Paris est terminée. C'était ma première fois, et comme le promettait l'affiche, c'est clair que je reviendrais.

Ce que je veux apprendre

OpenOffice.org is officially forked : LibreOffice 3

I honestly have been waiting for this since the first day i met with Thorsten Behrens and worked with him and Eric Bachard on improving OOo Impress.

Here’s what happens when agile methods are whispered

Citation

[Django] Append objects in request.session

This article is once again more of a reminder to me, i hope it will help everyone at the same time.

De l’intégration des nouveaux arrivants

De la différence entre innovations

Citation

Paris Startup Weekend 8-10 Octobre 2010

Weekend…

Citation

Comment créer des sous-formulaires à partir d’un Model Django

Evitons Javascript

Autodidactes en informatique

S'il y a bien une constante que je retrouve à travers toutes mes expériences professionnelles, c'est qu'on vient bien de partout pour finir dans l'informatique. Je m'explique :

Création de modèles avec PySide/PyQt

Ça y est ! mon dernier article sur développez.com est terminé, relu, vérifié, contre-vérifié etc.

Introduction et prise en main de PyQt/PySide

MultiThreaded Test cases – Why ? How ? and What’s for dinner ?

Okay so to make a small introduction (i promise a tiny one) i’m starting to contribute into VirgoRT (ex-SpringSource DM Server) for me it’s an opportunity to work with great people, learn more about OSGi and work on a real JEE application server (and more).

Building Virgo on MacOsX Leopard

I won’t say that my contribution to this work will be tremendous, but it’s nice to know a little more if you want to try out building the ex SpringSource DM Server

Blog au(tour) du monde

It’s like that – always the communists’ way

Machine-learning empowerment – Apache Mahoot

Maybe we’ll soon be able to get more out of machine learning algorithms, Google is communicating a lot, throught the GSOC (Google Summer of Code) and Google Code as a whole, on this project and supporting the Apache foundation.

Self-Improvement : Refactor my code !!

Don’t forget to subscribe !

Self-Improvement : [Java] – Weak references (Soft/Phantom)

That’s official – Be Stupid

Self-Improvement : [Java] – ClassLoading in depth

That’s when your dream comes true…

Sur le site d’une grande banque…

voilà ce qu’on pourrait trouver, alors qu’on essaye sans succès sur une page Web de changer son mot de passe :

One more down, many to go…

After the court decision about thePirateBay, now it’s the time to be sad for Mininova,

Just because i haven’t done anything lately…

and because i’m deep into the last parts of a new release (for my job), here’s a little thought i’d love to share :

Metasploit is Rising

Petite pause japonaise

Le paradoxe de l’analyste programmeur ?

Useful Tips : StringBuilder and Java String Concatenation

Enfin la réponse à l’ultime question…

Internet comme substitut aux relations humaines

Unfinished business… and decision making

Design Pattern : Proxy

Advanced use of Eclipse for Java

Barry Schwartz : On the paradox of choice

Une leçon pour Alain Finkielkraut sur Internet

Did you know ?

Looking for thesis and inspired science ?

Google.com is a …. spell checker !?

To discover : School Food Punishment

Better web applications

NoLife-TV : Y’a pas que la vraie vie dans la vie

If architects had to work like software developers

New moto ? : Be Nice or Leave

Design Pattern : Singleton

A découvrir Tokyo Magnitude 8.0

Expression régulières Vs State Machines

Précis de SQL : utilisation de “Minus”

Alors qu’il fait chaud…

Rebuild of Evangelion dévoile son deuxième épisode

Modélisation de la C.A.F par des Threads asynchrones

Cheat sheet for vim/gVim

RMLL’09, OpenOffice.org, LOPSI/HADOPI et le futur

English report of the OpenOffice.org project : The Eraser

Useful tips : Insert a clob of more than 4k into database

RMLL 2009 – OpenOffice.org and OpenSource lectures

Introduction aux produits structurés

Java Web start/JNLP and file access from within

New blog and Macbook Air review after 5 months

Useful Tips : How to create a thread that must get a result with a timeout time

Les élections européennes ne passionnent pas la télévision, peu importe

Useful Tips : How to insert BLOB into an Oracle database using JDBC

Useful Tips : How to find the biggest files on a unix system ?

Args4j ou de l’utilisation de Java pour faire des Batchs

Déformation professionnelles en Informatique comme ailleurs

La déformation professionnelle est un concept, il faut bien l’avoué, typiquement français qui consiste à dire qu’un professionnel verra toujours sa vision du monde influencée par le type de travail qu’il réalise.

Langage de programmation : Comme si les performances comptaient …

Comme j’anticipe le gros troll qui pourrait découler d’un tel titre, je vais préciser ma pensée : Je ne veux pas dire qu’il ne faut pas optimiser son code autant que faire se peut et qu’il n’est pas nécessaire de toujours réfléchir au plus performant.

Lire un Dvd sous Ubuntu – Cas d’école de piratage

Petit tour à Luxembourg Ville – Canards et paysages

La fusion Oracle – Sun signera-t-elle la fin des conflits entre Eclipse et Netbeans ?

Introduction au langage Natural et problematiques de migration vers Java

Petit précis de Luxembourgeois

Symfony, sfPropelPager et passage de variables

Petits bugs entre amis …

Comment detruire Skynet ??

TCP/IP – Rudiments d’analyse de paquets et d’intrusions

Validateur de code SIREN pour symfony

Faire un “Select DISTINCT …” sous Symfony avec Propel

Finding a way to compile OpenOffice.org

Compiling OpenOffice.org under MacOs and Linux (Part 2)

Compiling OpenOffice.org under MacOs and Linux (Part 1)

Accentuate, KeyJnote under MacOs

MacBook Air review after a month

Migration d’un projet Symfony 1.0 vers 1.2

Création du Blog