Sylvain Wallez


Random musings of a busy geek

Getting meaningful stack traces from Rust tests returning a Result

I was recently writing a test for a side project in Rust (more on that in a future post) and was frustrated by the lack of information reported when the test fails. I ended up with an interesting hack to report the precise location and error that caused a test to fail.


Go: the Good, the Bad and the Ugly

This is an additional post in the “Go is not good” series. Go does have some nice features, hence the “The Good” part in this post, but overall I find it cumbersome and painful to use when we go beyond API or network servers (which is what it was designed ...


Local date time calculations in Go

For a side project I'm writing in Go, I needed to send an email to each registered user during the night. Their night actually, according to each user's time zone. More precisely at a random time between 3am and 4am to spread email sending and avoid any rate ...


Micro benchmarks can make you short-sighted

In the last 24 hours, two articles related to code benchmarking showed up on my Twitter timeline, where the authors describe the optimization of a tiny bit of code via successive benchmarks. Both articles immediately triggered the same reaction in my head: "WTF, this is wrong! Why did they wrote ...


Afternoon hack: a USB foot keyboard

This post explains a quick afternoon hack to turn a foot pedal controller for music synthesizers into a programmable USB foot keyboard. A couple of weeks ago, for a personal project, my wife needed to manually transcribe many hours of interview recordings. Text-to-speech software were failing miserably both because of ...


Blog.reboot()

This blog is now a static website powered by the Pelican generator. It's the 3rd major change since I started blogging in 2002. It began with Movable Type, a Perl blogging tool. There wasn't much choice at that time, and it did the job even if I did ...


Efficient storage of non-periodic time series with MongoDB

TL;DR: this post explains the MongoDB storage structure we use at Actoboard to efficiently store non periodic time series. Storing one Mongo document for each data point is woefully inefficient, so we store them in fixed-size segments, which speeds things up by more than an order of magnitude. MongoDB ...


GitHub hack: a common security flaw in webapp frameworks

GitHub has faced a spectacular hack: a disappointed developer has exploited a weakness in Ruby on Rails to gain commit access to the Rails master branch and create issues in the future. As a result, GitHub asks us to confirm our ssh keys, but this can have been used to ...


My 2011: a year like no other

This blog has been mostly silent in 2011. Blame both Twitter that makes capturing quick thoughts so easy and a busy year as I started my freelance business. But a new year is starting, and along with the traditional wishes I owe an update to the people that still look ...


How often do you redeploy your J2EE application?

The guys at ZeroTurnaround have published an interesting report on the development habits from over 1300 Java developers. One of the questions that really struck me was "how often do you redeploy?" My answer to this question is "on my development machine, never". I use Jetty which is really easy ...