❯ Guillaume Laforge

A poor-man assistant with speech recognition and natural language processing

All sorts of voice-powered assistants are available today, and chat bots are the new black! In order to illustrate how such tools are made, I decided to create my own little basic conference assistant, using Google’s Cloud Speech API and Cloud Natural Language API. This is a demo I actually created for the Devoxx 2016 keynote, when Stephan Janssen invited me on stage to speak about Machine Learning. And to make this demo more fun, I implemented it with a shell script, some curl calls, plus some other handy command-line tools. Read more...

Analyzing half a million Gradle build files

Gradle is becoming the build automation solution of choice among developers, in particular in the Java ecosystem. With the Github archive published as a Google BigQuery dataset, it’s possible to analyze those build files, and see if we can learn something interesting about them! This week, I was at the G3 Summit conference, and presented about this topic: I covered the Apache Groovy language, as per my previous article, but I expanded my queries to also look at Grails applications, and Gradle build files. Read more...

Becoming Twitter verified

Probably for vanity sake, or perhaps even out of jealousy seeing friends becoming “twitter verified”, I was curious to see if, me too, I could get those little ticks beside my name on my Twitter profile. Generally speaking, verified accounts are accounts of “public interest”. It can range from your usual movie stars, to politicians, from well-known artists, to company CEOs, but also persons somehow well known in the twittosphere, including tech luminaries, representative of particular tech communities, etc. Read more...

Latest features of Google Cloud Platform

When you’re following a project, a company, a platform, you’re looking for the latest news, about the latest feature announcement, to take advantage of what’s coming up. Last time, I blogged about the gcloud command line tool, which nicely shows you the latest updates since the last time you updated its components. If you go to the Google Cloud Platform website, you’ll see dedicated release notes pages for pretty much all products. Read more...

Viewing my Groovy source files in Stackdriver's debug view

As I was working on a demo for one of my talks at Devoxx, I was encountering a bug in my Groovy code (a Gaelyk app using Glide). I had deployed a new version of my App Engine app, changing some code to persist some data in the Datastore. After those changes, I saw a trace in the logs: Looks like there’s an error in receiveTweet.groovy on line 11. And there’s a link! Read more...

IP filtering access to your VMs on Google Cloud

How do you filter access to your VMs on Google Cloud Platform? During a discussion with a customer, I was asked this question: only certain IP addresses or a range of IP addresses should have access to a particular VM. Let’s see that in action! Let’s assume you already have an account on Google Cloud Platform, but if you don’t, don’t miss the $300 credits for a free trial! I created a new project, then navigated to the Compute Engine section to create a new VM instance. Read more...

GCloud informative update message

I was playing with the new IntelliJ IDEA plugin for Google App Engine yesterday. The plugin depends on the gcloud SDK to do its work. And I started exploring gcloud a little bit more. I was experiencing some odd bug which prevented me to run my application locally with the App Engine’s local app server. It was a bug which was present in an old version of gcloud and its App Engine component, so I had to update the SDK and its App Engine Java component to fix it. Read more...

JavaOne 2016 sessions

Next week will be this time of the year where tons of Java developers are gathering & meeting in San Francisco for JavaOne. It’ll be my 10th edition or so, time flies! This year, I’ll participate to a couple sessions: Java and the Commoditization of Machine Intelligence [CON2291] It’s a panel discussion with representative from IBM, Microsoft and Google to talk about Machine Learning APIs. I’ll be covering the ML APIs from Google Cloud Platform: Vision, Speech, Natural Language. Read more...

Natural language API and JavaScript promises to bind them all

A bit of web scraping with Jsoup and REST API calls with groovy-wsclient helped me build my latest demo with Glide / Gaelyk on App Engine, but now, it’s time to look a bit deeper into the analysis of the White House speeches: I wanted to have a feel of how positive and negative sentences flow together in speeches. Looking at the rhetoric of those texts, you’d find some flows of generally neutral introduction, then posing the problem with some negativity connotation, then the climax trying to unfold the problems with positive solutions. Read more...

Web scraping and REST API calls on App Engine with Jsoup and groovy-wslite

After my Twitter sentiment article, those past couple of days, I’ve been playing again with the Cloud Natural Language API. This time, I wanted to make a little demo analyzing the text of speeches and remarks published by the press office of the White House. It’s interesting to see how speeches alternate negative and positive sequences, to reinforce the argument being exposed. As usual, for my cloud demos, my weapons of choice for rapid development are Apache Groovy, with Glide & Gaelyk on Google App Engine! Read more...