I am not an expert in finance, but when I look at the S&P 500 historical annual returns, I wish I had started investing my savings in the stock market way earlier.

If you’re not familiar with the US stock market, the S&P 500, which stands for Standard and Poor’s 500, is a free-float weighted measurement stock market index of 500 of the largest companies listed on stock exchanges in the United States.

That said, especially if you’re new to the stock market, picking individual stocks is quite hard and sometimes very risky. Will the stock go up or down…

Debugging is the task to identify and remove errors from software applications, and is more than just printing out values in your code. This post describes how to efficiently debug Node.js programs using the latest Google Chrome DevTools.

Using console.log to debug your code generally dives you into an infinite loop of “stopping your app, adding a console.log, and start your app again” operations. Besides slowing down the development of your app, it also makes your writing dirty and creates unnecessary code. …

If you come from a C-like programming language, you may wonder why the first ES6 JavaScript code is valid, but the second C program (as you well know) will make the compiler fail.

# JavaScript
const numbers = [1, 2, 3, 4, 6]
numbers[4] = 5
console.log(numbers[4]) // print 5
# C
const int numbers[] = {1, 2, 3, 4, 6};
numbers[4] = 5; // error: read-only variable is not assignable
printf("%d\n", numbers[4]);

The reason why is because in C, const defines a read-only variable that is not modifiable, whereas in JavaScript, it is not about value immutability. It doesn’t…

It has been an incredible experience to be part of the AEC Hackathon’s jury in San Francisco last month. First of all, I want to thank Damon Hernandez for the invitation. Damon is the AEC Hackathon’s founder. He works in many areas of the Web3D Industry and has been active in virtual environments and the 3D web for over a decade.

Architecture, Engineering and Construction (AEC) industry integrates separate fields into a single industry, allowing architects, engineers and contractors to achieve a common goal more efficiently. …

Nowadays Continuous Integration (CI) has become a de facto standard for modern tech companies and startups. There are several options of how you can setup your perfect CI environment, from using your own Jenkins cluster to third-party services like Travis or CircleCI.
Continuous delivery (CD) goes one step further by ensuring every build can also be deployed into a production-like environment (or staging) and then pass integration tests in that environment.


Before you start setting up your CD pipeline, there are few things you should think about: needs, time, effort and money. Today I want to show you how I’ve…

In this article I want to explain you how you can create thumbnails starting from a pre-recorded video using Python and OpenCV library. You need Python 2.7+ and OpenCV 3 installed on your machine before starting. For Mac OS X you can follow this tutorial, while for Ubuntu you can follow this one.

The following function takes the video filename as input and it returns an array of OpenCV images containing first frame, frames at 1/4, 2/4, 3/4 of the video’s length and the last frame.

We also need something to create the thumbnails for each extracted frame. The…

Today was my last day at Impero. After 33 amazing months, I decided to leave and join Pikichat, a French company which operates Tribe in Paris and San Francisco through the US subsidiary. I’m very pleased to help Cyril Paglino and his team to scale their application to million of users.

End of an era as new one starts now.

What I learned at Impero?

I’ve definitely leaned much more than I’ve expected. Because I have no idea where to start, I’ll do few examples.

Early this year I moved all Impero’s projects into Deis with Docker. Deis is an open source PaaS (Platform as…

Post previously featured on my old blog, posted on 03/15/2016.

Yes, you can test in JavaScript and it’s awesome!
Programmers write, compile or interpret, and test code. Looking at the programs output, programmers can establish whether they need to go around again. This cycle of development has remained unchanged since the beginning of Computer Science. The difference today compared to 40 years ago is the development tools that have indeed grown increasingly powerful.

Every application unique or not, to succeed, it must work. It doesn’t necessary have to be beautiful, nor absolute fastest, but it must work. Of course beautify…

Post previously featured on my old blog, posted on 02/07/2016.

A month ago I started my 2016 challenges. One of these is reading at least one book not computer science related each month. This choice has been very important for me, for my relationships and my career. Last month I had the pleasure to read It’s not how good you are, it’s how good you want to be by Paul Arden.

I don’t completely agree with everything written in the book, but I do agree with some parts of it. The book inspired me a lot, and especially helped me…

Post previously featured on my old blog, posted on 01/17/2016.

I don’t want to write thousands of words about Async Javascript libraries performance. By the way, I benchmarked, using bluebird/benchmark, the most popular Async Javascript libraries on different AWS EC2 instance types. This article reports the results I obtained.


A Promise represents a proxy for a value not necessarily known when the promise is created. It allows you to associate handlers to an asynchronous action’s eventual success value or failure reason [Mozilla documentation]. …

Jacopo Daeli

I’m a Computer Scientist, Software Engineer and Hacker, passionate about web technologies with a vocation for writing beautiful and clean code.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store