I have built a 21 Bitcoin Computer “clone”

Two months ago, I decided to buy two Bitcoin ASIC Miners. The reason is quite simple: I am easy to get bored when I have everything prepared and ready to be used. 😴 Particularly if we are talking about technologies and computers. There is no fun if I can’t learn from crafting it, right?

When “The 21 Bitcoin computer” was announced I was surprised to see a Raspberry Pi device with a huge black brick on top of it: an ASIC Chip that mines between 50 and 120Gh/s. Basically it is an “already assembled and configured” device that can mine and be a Bitcoin full node. 👍

Photo from amazon.com

That seems to be an awesome product, for thousands of reasons, but I have decided to not buy it. The reason is not the price (~400$) or the software inside that is pre-compiled by a new company for you. The reason is simple: it would bore me.

Continue reading I have built a 21 Bitcoin Computer “clone”

Why I quit the StartUp world (for now)

Few days ago, while watching The Martian something special happened to me: I got my first epileptic seizure. I don’t remember that much of that evening, but I realized how much I grew up by moving away from Italy, and deciding to stop working for Startups.

Almost 2 years ago I decided to escape my country to find my path abroad. I accepted a job offer to be the CTO of a Danish startup, lead by Italians.

I moved to København. I don’t have any regrets, and I still suggest my friends to move abroad as soon as they can, to make more experiences. Continue reading Why I quit the StartUp world (for now)

I am running ZeroNet in background on my Mac

Since when I was little, I always loved peer-to-peer technologies… I even tried to create a GNU/Linux distribution based on that. .. but recently I have discovered a brilliant project that is combining the power of asynchronous cryptography, using Bitcoin private and public keys, with BitTorrent technology. This project is called ZeroNet and it is a new and interesting way to provide websites and real-time services in a p2p network.


To join the network and browse the ZeroNet websites, now you have to keep running a python software in one of your terminal. I really hate to keep it opened 24h a day… even if I am nerd enough to love logs. I decided to run an instance of ZeroNet in background on my Mac: every time I turn on my computer, I am updating and seeding content. I feel happy to help this community 👍 Here is how I made it possible. Continue reading I am running ZeroNet in background on my Mac

My review: Pebble Time

It’s been a long time, and finally, exactly when I forgot about it, my Pebble Time arrived. Because the web is full of people excited to review this product, I decided to wear one for 2 weeks before writing this post… and my review is probably different than the others.

Pebble Time

Pebble time with Super Mario watchfaceDuring these weeks it was nice to have a device on my wrist that is able to do things rather than just do one single and simple thing: showing the time. I have to admit that the Pebble Time is doing it in a great way: all the custom watchfaces created by people from all around the world are just perfect. My favorite one is the Super Mario one, because I am a real nerd and Nintendo fan. 🙂

The packaging that they used for the kickstarter campaign is really minimal: a box with written on “It’s time”. That label was enough to make me happy, that finally it arrived… but after few hours of usage, I realized that all that excitement just started  melting away

Continue reading My review: Pebble Time

The reason I use the international keyboard

If you think that a keyboard layout can boost your productivity, you should consider the time you will spend to learn a new one, the hassle and the frustration when typing something wrong… but if you love programming, you may consider to buy/switch to the international keyboard.

Back in February, I had to switch to a new MacBookPro. My old 2011 13 inch MacBookPro, started being impossible to use… and after 4 years I had to remove all the stickers from its back and turn it off forever. I am still in mourning after its death.

Considering all the times I’ve been playing, working, writing and programming with it, I feel sad… but I feel even worst when I think that I did it using the Italian keyboard, that was really impossible to use to write code: the keys that I need are hidden by combinations of shift and option. This is really common in several keyboard layouts, like the Danish or German ones.

The Option button (or Alt for some keyboards) is the big problem. If you look at your hands while typing you will notice that probably this “layout switcher” is right under your palms. This means that you have to move your hands to press some combinations that are including it… and you do this every time.

The international keyboard layout, instead, puts all the buttons we need, right there, and we can get [ ] ' \ / . - ; and , without crazy combinations. If we need something more complicated you can still use the shift button, and you can activate it without moving your hands from the previous position.

There is a feature that is helping me when I need to write other “special vowels” by holding the one I need. You can read more about it here, on the Apple support website. For example to write København I will hold O when i need ti write Ø and something like this will appear:

Just old the vocal you need

To be honest, it is not a big deal, but this is the reason why my MacBookPro has an International Keyboard instead of a localized one. It is easier to use to write code. My hands are thanking me for this choice 🙂

Docker + aliases: I don’t install tools on my Mac

I really care about keeping the OS clean and untouched. Sometimes, when I have to develop using specific softwares and tools, I have to modify core and important sections of the system on my Mac or PC, and this can create some problems with package managers (like homebrew for Mac OS X; or like APT, pacman or yum for GNU/Linux)…

Docker Icon black and white

For example, few months ago I installed node.js on my Mac using the official package. When I started using homebrew, I had problems with the command line and the configuration. I even had the same problem when I was not using a virtual environment with Python 2.7 and 3.4… So I was forced to fix all the files/links manually with the super user… and I don’t like that: it is like corrupting my OS… Continue reading Docker + aliases: I don’t install tools on my Mac

How to use Cache Headers to speed up your website with Django and CloudFlare

Since I started working at bigger startups, like MinbilDinbil, I had to face the problem of providing pages to a larger amount of users every day. For this reason, it is really important to use a CDN service like CloudFlare, in order to provide a good user experience on our website: we don’t want our clients wait too much to load the homepage! How do we do that? The author of GNU grep once said:

The key to making programs fast is to make them
 do practically nothing

Mike Haertel, Sat Aug 21 2010. Source

So I decided to integrate our django servers with CloudFlare, improving the cache. According to their documentation, to enable the cache, the backend needs to provide specific headers in the HTTP response, like Cache-Control, Expires and others: by using these headers both the browsers and the CloudFlare servers will cache the file for a specific amount of time.


For this purpose, I created an open source customizable middleware to provide cache headers in a smart way. It is called django-smartcc (standing for “smart cache control”). Once installed, it will start considering not authenticated requests as public and disabling the cache when the user is logged in. You can read here the instructions to install it too:

pip install -U django-smartcc

Continue reading How to use Cache Headers to speed up your website with Django and CloudFlare