The final editor war is over: Atom vs Visual Studio Code

During the last month I started experimenting a lot with some editors for software development. I’ve been playing for 2 weeks with Atom and Visual Studio Code and here are my impressions from a Mac and Sublime user.

Atom VS Visual Studio Code

I started developing several projects using NodeJS, coffee-script, python, docker and angular, but sometimes Sublime is not enough and I need other tools and software for job routine. I am a Sublime user, and I love it, but I had to break up with it since I need more features… and I found the love in one of those two editors… :-) (more…)

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… (more…)

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.

cf-logo-v-rgb

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

(more…)

I wish you a private and secure 2015

During the 2014 I’ve learned how much privacy and security are important. Apart from my “nerdy needs“, I started observing my habits, considering who reads what and where my important information are stored online. My bank accounts, passwords, email and some private conversations should stay private and encrypted. Some other information should still be available to somebody as other documents could be read by anyone.

Sometimes we need to keep secrets, secret.
Sometimes we need to keep secrets, secret.

I discovered and I got annoyed by the fact that, in order to provide a “spam-free inbox” or other advertisement service, all my emails are read and scanned by Gmail. I also got rid of Dropbox because after thousand of passwords leaked, I felt bad that some of my documents were stored in a not-really-safe service. So, when I am communicating or sharing things with others, I decided to switch to secure and private channels when needed… including those services that are considering encryption as a serious thing and not just a joke as SSL. So I wrote down a list of suggestions to improve the privacy and the security. (more…)