© 2010 - 2025 David Pilato

🌱 Generated from 🇫🇷 with ❤️ on Sat Jan 11, 2025 at 08:22:25 UTC
Powered by Hugo with theme Dream.

Who am I?

Developer | Evangelist at elastic and creator of the Elastic French User Group . Frequent speaker about all things Elastic, in conferences, for User Groups and in companies with BBL talks . In my free time, I enjoy coding and DeeJaying , just for fun. Living with my family in Cergy, France.

Details

I discovered Elasticsearch project in 2011. After contributed to the project and created open source plugins for it, David joined elastic the company in 2013 where he is Developer and Evangelist. He also created and still actively managing the French spoken language User Group. At elastic, he mainly worked on Elasticsearch source code, specifically on open-source plugins. In his free time, he likes talking about elasticsearch in conferences or in companies (Brown Bag Lunches AKA BBLs ). He is also author of FSCrawler project which helps to index your pdf, open office, whatever documents in elasticsearch using Apache Tika behind the scene.

Visited countries

You can see here the countries I have visited so far. Most of them are for business purpose but who said you can not do both: business and leisure?

38 countries visited

Social Links
`,readingTime:18,tags:["elasticsearch","hibernate","sql","conference"],title:"Advanced search for your Legacy application",url:"/posts/2015-05-09-advanced-search-for-your-legacy-application/"},{author:"David Pilato",avatar:"/about/david_pilato.png",categories:["tutorial"],description:`

I gave recently a talk at Devoxx France 2015 with Colin Surprenant and I’d like to share here some of the examples we used for the talk.

The talk was about “what my data look like?”.

We said that our manager was asking us to answer some questions:

`,readingTime:6,tags:["elasticsearch","logstash","kibana","hibernate","sql","conference"],title:"Devoxx France 2015",url:"/posts/2015-05-02-devoxx-france-2015/"},{author:"David Pilato",avatar:"/about/david_pilato.png",categories:["tutorial"],description:`

Recently I saw a tweet where Capitaine Train team started to open data they have collected and enriched or corrected.

Ouvrez, ouvrez, les données structurées. Capitaine Train libère les gares : https://t.co/y6DjWsbALF #opendata

— Trainline France (@trainline_fr) April 23, 2015

I decided to play a bit with ELK stack and create a simple recipe which can be used with any other CSV like data.

`,readingTime:10,tags:["elasticsearch","logstash","kibana","dataset"],title:"Exploring Capitaine Train dataset",url:"/posts/2015-04-28-exploring-capitaine-train-dataset/"},{author:"David Pilato",avatar:"/about/david_pilato.png",categories:["tips"],description:`I was trying to use Hibernate 4.3.8.Final with Log4J2 and I spent some hours to find why Hibernate was not using Log4J2 though it was declared in my pom.xml file. Actually, I hit issue JBLOGGING-107 . The workaround is simply to add a more recent jboss-logging dependency than the one shipped by default with Hibernate 4.3.8.Final. <dependency> <groupId>org.jboss.logging</groupId> <artifactId>jboss-logging</artifactId> <version>3.2.1.Final</version> </dependency> `,readingTime:1,tags:["hibernate","maven"],title:"Using Log4J2 with Hibernate 4",url:"/posts/2015-03-05-using-log4j2-with-hibernate-4/"},{author:"David Pilato",avatar:"/about/david_pilato.png",categories:["culture"],description:`

Oh wait! Already 2 years spent working for Elasticsearch ? Time flies!

After the first year, I wrote that I did 58 talks in 4 countries, 37 towns for about 18 000 kilometers traveled. I was pretty sure that things would continue to grow.

`,readingTime:6,tags:["career","culture","travels"],title:"Once upon a time: Make your dreams come true",url:"/posts/2015-01-19-once-upon-a-time-make-your-dreams-come-true/"},{author:"David Pilato",avatar:"/about/david_pilato.png",categories:["culture"],description:`

I joined Elasticsearch Inc one year ago . Those were pretty exciting days!

But now…

`,readingTime:5,tags:["career","culture","travels"],title:"Once upon a time: a year later...",url:"/posts/2014-01-10-once-upon-a-time-a-year-later-dot-dot-dot/"},{author:"David Pilato",avatar:"/about/david_pilato.png",categories:["culture"],description:`

Once upon a time…

In fact 2 years ago, I was looking for a way to make Hibernate search distributed on multiple nodes. My first idea was to store indexes in a single database shared by my nodes. Yes, it’s a stupid idea in term of performances but I would like to try to build it.

Digging for source code, I came to the JdbcDirectory class from the compass project. And I saw on the compass front page something talking about the future of Compass and Elasticsearch.

The future of Compass and Elasticsearch

The future of Compass and Elasticsearch

`,readingTime:2,tags:["career","culture","travels"],title:"Once upon a time...",url:"/posts/2013-01-15-once-upon-a-time-dot-dot-dot/"},{author:"David Pilato",avatar:"/about/david_pilato.png",categories:["culture"],description:`

Il était une fois…

En fait, il y a 2 ans, je cherchais un moyen pour distribuer Hibernate search sur plusieurs noeuds. Ma première idée était de stocker les index dans une base de données partagée par les différents noeuds. Oui ! Il s’agit d’une idée stupide en terme de performances, mais j’avais envie d’essayer et de construire ce modèle.

Après avoir cherché du code source, je suis finalement tombé sur la classe JdbcDirectory  du projet Compass. Et sur la page d’accueil du projet, j’aperçois quelque chose qui parle du future de Compass et d’Elasticsearch.

Le futur de Compass et Elasticsearch

Le futur de Compass et Elasticsearch

`,readingTime:3,tags:["career","culture","travels"],title:"Il était une fois : un conte de fées élastique !",url:"/posts/2013-01-15-il-etait-une-fois-un-conte-de-fees-elastique/"},{author:"David Pilato",avatar:"/about/david_pilato.png",categories:["projects"],description:`

Avec Malloum, nous venons de publier notre premier projet open-source commun: Scrut My Docs !

Technical overview

Technical overview

`,readingTime:1,tags:["elasticsearch","java","spring","enterprise search"],title:"ScrutMyDocs : un moteur de recherche pour documents",url:"/posts/2012-07-20-scrutmydocs-un-moteur-de-recherche-pour-documents/"},{author:"David Pilato",avatar:"/about/david_pilato.png",categories:["projects"],description:`

Et voilà, la première release de la factory spring vient d’être faite.

`,readingTime:1,tags:["elasticsearch","java","maven","spring"],title:"La factory Spring pour Elasticsearch est sortie !",url:"/posts/2012-05-25-la-factory-spring-pour-elasticsearch-est-sortie/"},{author:"David Pilato",avatar:"/about/david_pilato.png",categories:["tutorial"],description:`

Nativement, Elasticsearch expose l’ensemble de ses services sans aucune authentification et donc une commande du type curl -XDELETE http://localhost:9200/myindex peut faire de nombreux dégâts non désirés.

De plus, si vous développez une application JQuery avec un accès direct depuis le poste client à votre cluster Elasticsearch, le risque qu’un utilisateur joue un peu avec votre cluster est grand !

Alors, pas de panique… La société Sonian Inc. a open sourcé son plugin Jetty pour Elasticsearch pour notre plus grand bonheur 😉

`,readingTime:2,tags:["elasticsearch","jetty"],title:"Protéger son cluster Elasticsearch avec Jetty",url:"/posts/2012-04-10-proteger-son-cluster-elasticsearch-avec-jetty/"},{author:"David Pilato",avatar:"/about/david_pilato.png",categories:["projects"],description:`

Le besoin

Il existe dans Hibernate une fonctionnalité que j’aime beaucoup : la mise à jour automatique du schéma de la base en fonction des entités manipulées.

Mon besoin est de faire quasiment la même chose avec Elasticsearch. C’est à dire que je souhaite pouvoir appliquer un mapping pour un type donné à chaque fois que je démarre mon projet (en l’occurrence une webapp).

`,readingTime:2,tags:["elasticsearch","java","maven","spring"],title:"Une factory Spring pour Elasticsearch",url:"/posts/2012-04-02-une-factory-spring-pour-elasticsearch/"},{author:"David Pilato",avatar:"/about/david_pilato.png",categories:["speaker"],description:`

Bonjour,

C’est avec une certaine émotion et fierté que j’ai appris samedi dernier la sélection de mon talk sur Elasticsearch à Devoxx France .

`,readingTime:2,tags:["elasticsearch","conference"],title:"Mon talk sur Elasticsearch sélectionné pour Devoxx France",url:"/posts/2012-03-14-mon-talk-sur-elasticsearch-selectionne-pour-devoxx-france/"},{author:"David Pilato",avatar:"/about/david_pilato.png",categories:["tutorial"],description:`

Il existe deux modes d’accès à elasticsearch en Java :

`,readingTime:3,tags:["elasticsearch","java","maven"],title:"Quel client Java pour elasticsearch ?",url:"/posts/2012-02-13-quel-client-java-pour-elasticsearch/"},{author:"David Pilato",avatar:"/about/david_pilato.png",categories:["projects"],description:`

Il existe dans elasticsearch la notion de river (rivière) qui comme son nom le laisse supposer permet de voir s’écouler des données depuis une source jusqu’à elasticsearch.

Au fur et à mesure que les données arrivent, la rivière les transporte et les envoie à l’indexation dans elasticsearch.

`,readingTime:4,tags:["elasticsearch","java","maven","plugin"],title:"Mon premier plugin elasticsearch : RSS River",url:"/posts/2011-09-14-mon-premier-plugin-elasticsearch-rss-river/"},{author:"David Pilato",avatar:"/about/david_pilato.png",categories:["tutorial"],description:`

Les aventures avec Elasticsearch se poursuivent .

Combien de fois ai-je dit récemment que ce projet est absolument génial et qu’il va constituer à mon sens un des projets majeurs des prochaines années…

Qui n’a pas besoin de moteur de recherche ? Qui s’est déjà “emmerdé” à fabriquer ça lui-même ou à utiliser des briques pouvant aider au prix d’une complexité plus ou moins grande de mise en oeuvre ?

Je crois que nous sommes tous passés par là !!!

Et là, ce projet permet en quelques heures (minutes) de faire tourner un moteur de recherche complet…

`,readingTime:6,tags:["elasticsearch","java"],title:'Elasticsearch et les "facets"',url:"/posts/2011-06-20-elasticsearch-et-les-facets/"},{author:"David Pilato",avatar:"/about/david_pilato.png",categories:["tutorial"],description:`

Après avoir testé Elasticsearch , me voici parti pour regarder ce monde étrange qu’on appelle le NoSQL

`,readingTime:5,tags:["couchdb","elasticsearch"],title:"CouchDB",url:"/posts/2011-05-13-couchdb/"},{author:"David Pilato",avatar:"/about/david_pilato.png",categories:["tutorial"],description:"

Elasticsearch, un projet mature en quelques mois… A suivre de très près !

",readingTime:2,tags:["elasticsearch","hibernate","java"],title:"La recherche élastique...",url:"/posts/2011-03-09-la-recherche-elastique/"},{author:"David Pilato",avatar:"/about/david_pilato.png",categories:["tutorial"],description:`

Voici la suite de l’article sur l’installation d&rsquo;une forge .

Finalement, le temps d’obtenir une machine sous Redhat 5 a laissé le temps à la team FusionForge de sortir une release finale de la version 5.0.

Nous voilà donc lancés dans cette installation que je me propose de décrire ici.

`,readingTime:4,tags:["fusionforge"],title:"Installation FusionForge 5.0 sur Redhat 5",url:"/posts/2010-05-11-installation-fusionforge-5-0-sur-redhat-5/"},{author:"David Pilato",avatar:"/about/david_pilato.png",categories:["tips"],description:`

Jetty peut être très utile aux projets Maven, notamment dans la phase de tests d’intégration.

Il faut souvent déployer l’application sur un serveur type JBoss puis lancer les tests. Avec Jetty, on dispose alors d’un conteneur léger qui permet de disposer des fonctionnalités essentielles d’un conteneur (webapp, datasource, …).

`,readingTime:1,tags:["java","jetty","maven"],title:"Utiliser Jetty 7 avec Maven",url:"/posts/2010-02-25-utiliser-jetty-7-avec-maven/"},{author:"David Pilato",avatar:"/about/david_pilato.png",categories:["tips"],description:`

Lorsqu’on souhaite lancer une WebApp avec le plugin Jetty sous Maven 2 depuis un PC sous windows on obtient une erreur référencée sous JIRA #JETTY-1063 :

java.net.URISyntaxException: Illegal character in path at index 18: file:/C:/Documents and Settings/USER/.m2/repository/org/mortbay/jetty/jetty-maven-plugin/7.0.0.1beta2/jetty-maven-plugin-7.0.0.1beta2.jar
`,readingTime:1,tags:["java","jetty","maven"],title:"Problème Jetty / Maven sous Windows",url:"/posts/2010-02-24-probleme-jetty-maven-sous-windows/"},{author:"David Pilato",avatar:"/about/david_pilato.png",categories:["tutorial"],description:`

Lorsqu’on utilise Hibernate pour déléguer la gestion de la persistence, se pose alors le classique problème de l’exception LazyInitialisationException .

`,readingTime:2,tags:["java","hibernate","spring"],title:"Utilisation du mode Lazy d'Hibernate avec Struts et Spring",url:"/posts/2010-02-24-utilisation-du-mode-lazy-dhibernate-avec-struts-et-spring/"},{author:"David Pilato",avatar:"/about/david_pilato.png",categories:["tutorial"],description:"

Voici une astuce permettant de laisser les analystes ou concepteurs utiliser leurs logiciels habituels de documentation (oOo ou Word), tout en permettant de publier automatiquement avec la génération du site un document PDF lisible par tous.

",readingTime:2,tags:["maven","documentation"],title:"Publication de documentation fonctionnelle avec Maven",url:"/posts/2010-02-23-publication-de-documentation-fonctionnelle-avec-maven/"},{author:"David Pilato",avatar:"/about/david_pilato.png",categories:["tutorial"],description:"

Description de la mise en place de la forge GForge pour les besoins de mon centre informatique.

",readingTime:2,tags:["fusionforge","gforge"],title:"La mise en place d'une forge",url:"/posts/2010-01-26-la-mise-en-place-dune-forge/"},{author:"David Pilato",avatar:"/about/david_pilato.png",categories:["tutorial"],description:`

Je viens de découvrir Google App Engine pour Java. Je vais essayer de compléter cet article au fur et à mesure que je vais avancer dans son utilisation…

Stay tuned…

`,readingTime:1,tags:["java","google"],title:"Découverte de Google App Engine pour Java",url:"/posts/2010-01-23-decouverte-de-google-app-engine-pour-java/"}],fuseOptions={keys:["title"]},fuse=new Fuse(fuseData,fuseOptions)