I know it's a little late but I wondered this morning : would it be nice to make a recap of 2017 using only my Github, Instagram and Twitter accounts, so here we are!
I started 2017 playing with HTML Audio API, building real-time sound analysis and visualizations.
But this was mostly for entertainment, on the business side I was working on the architecture of the upcoming KillBug SaaS...
... and the user workflow with @EmmanuelJulliot.
I finally bought a LaMetric and started to play with it...
Later that year, during (another!) breakfast I built rss-to-lametric that displays latest Rss news directly from LaMetric!
Took the breakfast to make a @OuestFrance app for my @getlametric (one-shot deploy /w @clever_cloud), can't wait to activate it! pic.twitter.com/Pze8p2bhoD
— François-G. Ribreau (@FGRibreau) November 2, 2017
The NodeJS version was great but not good enough. I've rewrote it in Rust 2 days laters, released it on Github and published multiple lametric apps with it!
Took the breakfast to make a @OuestFrance app for my @getlametric (one-shot deploy /w @clever_cloud), can't wait to activate it! pic.twitter.com/Pze8p2bhoD
— François-G. Ribreau (@FGRibreau) November 2, 2017
... without knowing I would receive a Cease and Desist letter from 20 minutes because I used 20 Minutes logo, copyright stupidity.
[Fr] J'ai reçu une "Cease and desist letter" de @20Minutes pour mon app LaMetric. Bizarrement WP ou NYT ne bronchent pas, la *stupidité* du copyright. pic.twitter.com/zG0KcE1UzE
— François-G. Ribreau (@FGRibreau) December 11, 2017
In March I redesigned fgribreau.com so it could share testimonials about my advisory activities. The site source-code is now hosted on Github and served through Netlify.
Still in March, we've deploy KillBug on a Google Cloud Kubernetes cluster and I made a cost parsing little tool for it (now I use ReOptimize for that)
In April I sold RedisWekely newsletter to Redis Labs, a newsletter I started in 2013 that reached thousands of subscribers.
I also started to get back on wood work...
at that time I did not know that I would build my very own table in August!
In the same month I've left iAdvize to join Ouest-France as head of digital development and architect. Elon Musk bibliography was an awesome read.
... and I also read that
... and this one ...
[Fr] message pour les RH/DSI, on peut faire un joli parallèle entre l’analyse de Machiavel sur posséder une armée vs posséder des mercenaires
— François-G. Ribreau (@FGRibreau) December 31, 2017
ET recruter une équipe vs recruter des prestataires pic.twitter.com/gCGOVv2Yzw
... and this one...
« Practice disobedience » pic.twitter.com/IlP2nKxNmb
— François-G. Ribreau (@FGRibreau) December 13, 2017
[Fr] Lectures de la semaine prochaine ! #vacances pic.twitter.com/dG77yx5kRM
— François-G. Ribreau (@FGRibreau) December 22, 2017
... and this one...
... and that’s why transparency is key in mid/big enterprise. Working everyday in that direction, already saw great improvements/consequences. pic.twitter.com/Q74nxRkbyY
— François-G. Ribreau (@FGRibreau) December 20, 2017
... and these ones (and lot of other books that I did not share on Instagram 😅)...
10 days after my arrival at Ouest-France I "hacked into" active directory to map the organisational chart because I could not find an up to date one and here is the result I had...
One other thing that bothered me was that some internal software (e.g. Redmine) at Ouest-France were not available programmatically from outside because of an old version of Microsoft ISA-server redirecting to an auth form and thus blocking requests. So I wrote a little tool that proxy requests and rewrite them to pass Microsoft ISA server gateway and let us finally automate things on top of internal software like Redmine.
In the last three month of every year since 2014, I always work on improving HeyBe. Heybe is a SaaS that let companies generate personalized video at scale for their customers. This year, I migrated HeyBe video generation cluster to Google Cloud, wrote my own Google Cloud Group Instance auto-scaler for our custom need in Rust.
Does it scale? Yes. 🚀
— François-G. Ribreau (@FGRibreau) November 6, 2017
(Google Cloud instance group (quota upgraded 🎉) fully controlled by a #Rust program monitoring a RabbitMQ queue) pic.twitter.com/iopiXitIcA
I released a simple Google Cloud API client in Rust...
Just released the v0.1.0 of my Google Cloud API @rustlang client that handle instance group resize for me :) https://t.co/9PXmrB8UyG pic.twitter.com/obkPK5R4IH
— François-G. Ribreau (@FGRibreau) October 29, 2017
... and a NodeJS stringify equivalent in Rust.
... and also a very (very) small rust library that stringify querystring (could not find one) https://t.co/DKugxMfBsm pic.twitter.com/G85tJ9qD57
— François-G. Ribreau (@FGRibreau) October 29, 2017
Heybe 2017 release was then ready for prime-time!
[Fr] Le fameux service sur lequel cette année j'ai travaillé à mettre en place de l'auto-scaling (géré en @rustlang) sur Google Cloud pour la génération des vidéos 👌 https://t.co/tVzp44nQFt
— François-G. Ribreau (@FGRibreau) January 2, 2018
Moving cluster to Google Cloud largely reduced HeyBe fixed costs as well.
Dropped the operating cost for one of my startup from 1 500€/month to 152€/month.
— François-G. Ribreau (@FGRibreau) December 7, 2017
- moved from a 3 servers bare-metal hosting to Google Cloud
- leveraged elasticity (automatically scaling up to 30 servers)
- reduced costs for end users pic.twitter.com/Pt3cdrzRjI
For the past 5 years I do still follow hacker philosophy and share what I learn, here I gave a lecture at Nantes University about NoSQL.
and there at Ouest-France about Kubernetes philosophy and Containers
I worked on KillBug and wrote code for the animated background...
... and discovered that Google Cloud was blocking outbound connections to ports 25, 465 and 587....
GKE does not allow outbound connections on ports 25, 465, 587. Keycloak requires SMTP. I need to build a SMTP to SendGrid API gateway. pic.twitter.com/Ok1tsMsu7o
— François-G. Ribreau (@FGRibreau) September 2, 2017
... so I wrote a little SMTP proxy to fix it...
SMTP to @SendGrid Gateway 💫 (bypass GKE limitation) https://t.co/FOFcuoqHAE pic.twitter.com/0ngsjIVQTP
— François-G. Ribreau (@FGRibreau) September 3, 2017
... and also built a PostgreSQL to AMQP tool that forwards some pg_notify events to AMQP (RabbitMQ) for KillBug.
Some weeks later we opened KillBug first private beta
I went on improvising playing piano as well...
... and really enjoyed it ...
Saturday morning piano improvisation! 🎹 pic.twitter.com/nQbcTmJVqd
— François-G. Ribreau (@FGRibreau) September 16, 2017
In June, like every year (!) I went to Web2Day to give a talk about SaaS industrialization with OpenAPI/Swagger
Speaking about talk, I had the chance to give one (very unprepared) at Maia Matter in September, and two at Breizh Camp for my first attending.
During a travel to Paris I rewrote my NodeJS kubectx kubernetes little helper in Rust and saw impressive performance improvements.
Note: if you wish to see it in action, take a look at kubectx https://t.co/VtFDL5ncmX pic.twitter.com/GkIHVAmvsv
— François-G. Ribreau (@FGRibreau) December 26, 2017
In one August night I made my own clap recognition script with NodeJS and Philips Hue!
2017 was also the year I went back to electronics, bringing back souvenirs from childhood 😇
In October I started eating Huel every morning, as I'm taking my breakfast, writing these lines, I still do it today. It was a very impressive life-style change and I feel way more connected everyday since that day.
In October I also added custom domain name support to Image-Charts enterprise plan!
Image-charts enterprise plan now supports custom domain names! https://t.co/iXCp1LHXXv pic.twitter.com/SFTgNPT0Iq
— Image Charts (@imagecharts) October 15, 2017
Oh! And I also bought some Raspberry Pi and hacked a Magic Mirror!
In the mean time during that year I will wrote some code in Rust, like this Rust spinner library
[Release] Spinners - 60+ Elegant terminal spinners for @RustLang pic.twitter.com/2J8NmYBjAK
— François-G. Ribreau (@FGRibreau) December 18, 2017
Waiting for my Tesla 3, I bought a BMW x3 and asked them to send me the source code and how to subscribe as a developer to build widget for the onboard computer (but failed miserably!)
Just sent an mail to opensource@bmw.com to ask for source-code, wonder if I will find something interesting to hack over :) pic.twitter.com/ctN1DRDhKo
— François-G. Ribreau (@FGRibreau) December 26, 2017
However I got the source-code as a DVD AND pushed it on gitlab.com/fgribreau/bmw_oss!
So indeed, @BMW sends it’s OSS source code as a DVD, now I have to use my oldest MBP to read it... since I was able to send the email, a dl link would have been enough you know... pic.twitter.com/0zYfD9O269
— François-G. Ribreau (@FGRibreau) January 29, 2018
During December holidays I hacked on Ouest-France platform tooling
BlockProvider-example is 👌
— François-G. Ribreau (@FGRibreau) December 13, 2017
BlockProvider-runner is also 👌 pic.twitter.com/BbTEalOBpY
... wrote a JSON-schema documentation-generator
Ok so this upcoming json-schema-documentation-generator will use json-schema to define it's own options object and theme template input objects, validate them with ajv and use itself to generate its own documentation 🕺 pic.twitter.com/hGw1juLzAx
— François-G. Ribreau (@FGRibreau) December 31, 2017
... wrote some BlockProvider examples (I will give a talk at Breizh Camp about what they are, how they start to help bringing change to a large organization like Ouest-France and what an agnostic CMS is 😉)
BlockProvider-example is 👌
— François-G. Ribreau (@FGRibreau) December 13, 2017
BlockProvider-runner is also 👌 pic.twitter.com/BbTEalOBpY
The json-schema documentation generator now documents itself 🎉 https://t.co/OUdB1uLHqS pic.twitter.com/aUvAh6hvJr
— François-G. Ribreau (@FGRibreau) December 31, 2017
And a validator-cli for the upcoming Ouest-France platform
.@OuestFrance —to-be-announced— platform now has its own validator-cli (written in Rust) 🎉 https://t.co/oY8fH3oiPp …
— François-G. Ribreau (@FGRibreau) December 26, 2017
/cc @m_pousse @seb_brousse pic.twitter.com/vkwMv2d1OG
Lot of other things were released, updated or experimented during 2017. Let's make 2018 even better than 2017!