Building GNU Emacs from sources

I want to look at the GNU Emacs source code because I have some ideas I want to try and implement.

If you want to write patches for an open-source project, the first thing to do is to check out the latest version from the repository, make sure it compiles and runs. At this stage, you also want to make sure that all of the tests passes, so that you can start working on a verified assumption that you branched from a fully working commit.

So for short this post is a micro-tutorial on building GNU Emacs from source on a Debian-compatible (read: apt-based) system.

The first thing to do is to gather all the required build dependencies:

sudo apt-get build-dep emacs24

This alone will install all of the necessary building dependencies.

Next step is to check out the source code. You can find the url of the repository on the Savannah page:

git clone git clone -b master git://

At this page you might want to slow down a little and skim through the INSTALL file. It contains instructions for building.

At this point you’re al most ready for compilation. You have to run the auto-tools and generate the Makefile:


./ git

And now you can generate a Makefile with all the features you want (you can look up some of the configure options in the INSTALL file, or run ./configure –help):

./configure --with-x-toolkit=gtk --with-cairo --with-modules

And now, finally, compile:

make -j9

On my machine (ThinkPad W530, quad-core i7 and 7200rpm rotational hard drive), it took about five minutes:

real	5m9.283s
user	21m21.412s
sys	0m48.284s

You will now find the newly built emacs binaries in the src/ directory.

Have fun!

I wrote a toy url shortener and people started using it

So yesterday I gave an introductory presentation on how to write web applications using Python, Flask and dokku. In my talk I shown how to go from zero to a fully functional application with a small but functional deployment environment based on Dokku.

The nice thing I noticed is that people started using it, and now I have some URLs shortened through my system.

The application is called musho, as in Micro Url SHOrtener. Here it is live, and you can find the source code on Gitlab.

I hope you like it🙂

Testing Go applications with PostgreSQL and docker

I spawn and terminate docker containers automatically with Jenkins.

This allowed me to have a lighter application and to keep my testing environment closer to the live environment.

In this post I describe how I did this.

Continue reading “Testing Go applications with PostgreSQL and docker”

Correctly erasing an SSD on GNU/Linux

This is not really an article but more of a note for future reference.

So i decided to wipe an SSD drive, and I assumed that using the good old dd would not have been the correct choice.

I was right, and someone (thanks mingdao) from #gentoo on Freenode directed me to this page: ATA Secure Erase.

Basically, when dealing with SSD, it’s better to rely on standard erase feature than doing it yourself.

It took very little (approximately 21 seconds).

Gin-gonic improvements

While writing simple web applications using gin-gonic web framework, there are some things that should be improved, in my opinion:


  1. Static file serving: it should be improved to use browser caching, according to
  2. Default values for templates rendering: there are some values that I am going to need in pretty much every template i am rendering. It would be nice to be able to set them once and for all so that when I render a template, the values i want to be always present are added to the ones i am passing on the fly.

Continue reading “Gin-gonic improvements”

WordPress, again.

I am back on using Wordpress.

Long story short, I am giving WordPress another try.

The main reason is that most static blog engines are awful under the usability point of view, and I really need a blog: when I do stuff I would really like to take notes but every time is a mess like “How did octopress/jekyll implement this feature? What was that?” and such.

As my blog is not a goal but a tool to me, I want something that JustWorks. Thus, I’m going for WordPress, hosted on no hassle, no maintenance, just features.