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.

Why console.log is not the best option?

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.

What AEC Hackathon is about?

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.

Introduction

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.

From video to frames

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.

From frame to thumbs

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.

Managing and deploying Docker containers on AWS with Deis

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.

Introduction

What are promises ?

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]. …


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

Hello everyone, after using Node.js for the past three years, and getting a bit tired of using the same technology every day (don’t take me wrong, I still love Node.js and I will always love it), I recently started learning Go and using it in production with some projects I am working on at IMPERO, the digital agency where I work today as Chief Software Engineer.

Hello everyone, after using Node.js for the past three years, and getting a bit tired of using the same technology every day (don’t take…

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