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.

The international keyboard on my MacBookPro

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

My Bitcoin Experience: Wallets and Debit Card

I am in the world of bitcoin since 2012 when I opened my first bitcoin wallet on blockchain.info… and a lot of things changed since that moment: new services, growing communities, new alternative crypto currencies, ATMs, Credit-Debit cards, and a larger diffusion of people accepting bitcoin in their shops.

Xapo Bitcoin Debit Card

After those two years I can see a better view of what Bitcoin means to me and the innovation behind that technology, including Xapo debit card… and some of my friends are tired of me talking about bitcoins :)

How I choose a wallet

Using simple words: the wallet is a collection of addresses and their private keys. The address, that is used to receive the money, is a group of letters and numbers generated by the private key, that is required to send money.

Because you must have the private key of your address in order to sing a transaction, the security level where this value is stored must be high. The default bitcoin client provides a wallet, but is really slow and it must be synchronized and it will take some days…

(more…)

Impossible means: “harder to make it possible”

Several times, I have heard my grandparents saying “that is impossible” when they are comparing what the young generations do to what they were used to do. According to the dictionary, what is impossible, is “not possible, unable to be, exist, happen, unable to be done…“, but for what I have noticed and experienced, is just a matter of points of view.

Today I saw on this video, comparing the new generation of MacBook Pro with Macintosh Portable, and we can see clearly the difference between those two models, but the main difference is the release date. You have all the rights to say me that I am talking about a trivial thing, but it’s really good to introduce the thought I have in my mind.

The Macintosh Portable, yes that big-plastic-“90’s gray”-heavy thing, was released on the September 20th 1989. At that time the technologies were totally different than today, and now we can almost say “obsolete“. Nevertheless, that piece of cold engineering became really obsolete few years later. On the February 11th of the amazing 1991, that heavy guy started being “a piece of history“.

I may think about “future” things, but they will always appear as “impossible” to my practical eyes. I may say “people take flying cars in the future”, maybe they will, maybe they will not. I really believe that what I see as impossible is still possible, but the effort to make it real, so to make it possible, is higher. What is impossible for me could be possible to somebody else or in another time of the history. It’s just a matter of points of view.

Macintosh Portable battery

The main reason behind this choice by Apple was its battery. Technically you can read more about that on Wikipedia, but the battery problem is important to understand my idea: If we could travel back in time and go on Semptember 20th of 1989 with the concept of the modern MacBook Pro, or just even with the concept of the modern batteries, how do you think people and engineers will react?

Probably they may say that the MacBook Pro is an impossible concept, even thinking from the technical prospective of that time. It took almost 20 years to make the right battery and screen for the MacBook Pro… Or even the MacBook Air. Steve Jobs, as many others determinate people, took his entire life to create Apple’s products, that in the 80s were considered as “impossible”.

That’s also why I think that if you have a concept that may appear impossible, you can push to make it possible: steps by steps, goals by goals, everybody can change the world somehow, and make their dreams come true! That’s why from my point of view, what it is “impossible” is just harder to be possible.

Needs and happiness with Maslow’s pyramid

Maybe I should write this blog post on my personal and secret diary, but I would like to share this using my blog. This time I am not going to talk about technology or startup, but what happiness is to me and how Maslow’s pyramid helped me to realize that.

Before moving to Denmark, when I was in Italy, I was focusing all my attention on the main actions to get material things and physical welfare: I was happy only when I was able to achieve my goals. The truth is that I was able to achieve my goals, but as soon as I got stuff done, after a short period of happiness, I had the same feeling when the tv series I am watching is over, and there are no more episodes to watch: looking for something to re-fill that feeling of nothingness.

Maslow's hierarchy of needs

So I reminded that Tommaso Grotto, once told me about his own version of the Maslow’s hierarchy of needs and I decided to think about that, redrawing and thinking from scratch what happiness means to me. I am not a psychologist and just for fun, I created my own Maslow’s pyramid, based on the needs I can satisfy to be happy and on my life goals.

I created a new pyramid made by needs connected to specific life-goals and actions: At the bottom of it there are needs that I can satisfy easily, (like eating junk food) and on the top the needs that require a bigger effort (like found another company). I don’t want to share it here, because is really personal and I am sorry, but I hope you get the idea: I really suggest everybody to create their own Maslow’s pyramid.

To really use my “pyramid” I started comparing it with my every-day whims: by asking myself  “where should I put this whim inside the pyramid?” I understand what priority and if that whim makes me really happy. If it fits or is connected to some of the pyramid levels, I will perform the actions to satisfy the need behind that whim. This helped me to distinguish things that really matter and things that doesn’t, like for example, my decision of not buying a new phone at the beginning of this year: there was something more important to do than spend some money for something that I don’t really need.

Even If I live in the happiest country in the world, I think that this is really personal and probably there is not a single way to see the Maslow’s pyramid. I am not a psychologist but I think everybody should build a pyramid… and listen to the happy song :P It helped me to clear my mind from stupid whims.