How to bundle many TypeScript files using SystemJS


TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. You can install it from Node Package Manager (NPM) and tinker with its tsc executable. It accepts a handful of options which may be stored inside tsconfig.json configuration file.

SystemJS is a JavaScript module loader that allows using ES Modules in all browsers. You can get it either via CDN or from Node Package Manager.

You may be wondering why do we even talk about SystemJS and Typescript together? Wouldn’t it suffice to use Typescript compiler alone? 

Continue reading “How to bundle many TypeScript files using SystemJS”

How to create Single Modal in Gatsby using Reactstrap, React Portals, React Context and React Custom Hooks


Gatsby is a free and open-source static site generator based on React. In this tutorial, we will use the default starter kit with cosmetic modifications.

Reactstrap provides React components based on Bootstrap 4 library. It comes with a powerful Modal component and his three supporting sub-components:

Armed with those, you can get a working Model almost in no time. Reactstrap documentation is full of examples, so feel free to explore its Modals part on your own.

Continue reading “How to create Single Modal in Gatsby using Reactstrap, React Portals, React Context and React Custom Hooks”

Firefox and Chrome Developer Tools – how to go beyond console.log


Both Firefox and Chrome provide some sort of Developer Tools for technical users. Additionally, both browser vendors regularly improve their tools and surprise us with brand new features.

In today’s post, we are going to talk about console logging. It’s the most basic debugging tool and an indispensable companion of any Javascript developer.  But did you know that there is actually much more than a simple console.log command?

Continue reading “Firefox and Chrome Developer Tools – how to go beyond console.log”

In-depth review of Irresistible APIs: Designing web APIs that developers will love


This blog post (15-min read) is a starting point for a series of in-depth book reviews.

I read around 10-15 books a year, I know how much time it cost and how crucial it is to pick up the right one. If you are investing your own money in a book, it’s even more important to get as much information as possible. You want to be sure that you are not buying a pig in the poke.

Before scheduling anything to read, I search for recommendations and reviews in the following places.

  • Goodreads
  • Publisher websites like O’Reilly, Manning, Packt.
  • Book marketplaces like Amazon or Bol

Unfortunately, recommendations put there are of little value. What is the difference between 3 stars and 5 stars?

Reviews tend to be either too personal and opinionated, or too short and devoid of details. In my experience, the most trustful ones pop up from time to time on Goodreads and Amazon. Yet, it is still hard to draw a proper conclusion.

The nice thing is that some publishers give you an option to read one or two chapters for free. This is better, but it’s still not enough to give you a good picture of the entire book.

Because of this, I came up with an idea to create in-depth reviews of technical books. If the topic interests me, which is in case of APIs, Domain Driven Design, Test/Behavioral Driven Development, Software Architecture, Object Orientation, Design Patterns or Web Development with PHP and Symfony, my mission is to read out all the possible books out there.

So the first book I’ve crunched and reviewed for you is “Irresistible APIs: Designing web APIs that developers will love” by Kirsten L. Hunter.

Continue reading “In-depth review of Irresistible APIs: Designing web APIs that developers will love”

Quick recap of “TDD, DDD & Teamwork” workshop


On the 30th of August 2018, I attended a workshop about “TDD, DDD & Teamwork” given by Pim Elshoff and Joop Lammerts. The venue was Vrieling Adviesgroep, situated in a small village of Dedemsvaart, Overijssel.

Thanks to the local Dutch group VechtdalDev, such sessions occur four times a year, free of charge. Primary language is Dutch and everyone is welcome.

Continue reading “Quick recap of “TDD, DDD & Teamwork” workshop”

PHP 7.2 and Argon2 Password Hashing


PHP 7.2 version appeared for the first time on 30th of November 2017, Time goes fast and more than a half year later, on 21st of June 2018, PHP announced 7.2.7 patch release. Among all the new features introduced in PHP 7.2, there is one, namely Argon2 Password Hashing, which will be the topic of our today’s post. Let’s explore this great addition together and verify whether Argon2 is a good contender to Bcrypt or not.

As always, all the other features of PHP 7.2 can be found under Request For Changes wiki page.

Continue reading “PHP 7.2 and Argon2 Password Hashing”

PHP 7.2 and Object Typehint


PHP 7.2 is around the corner.  On the 26th of October 2017, the 5th version of PHP Release Candidate has been announced, which was preceded by 3 alpha, 3 beta and 4 RC versions. First alpha version was announced on the 8th of June 2017 and the final version is about to be released by the end of November 2017.

If you are impatient and curious as I am, it’s right time to take a sneak peak at what PHP team is cooking for us. You can track all implemented features by studying PHP Request For Comments wiki page.

Without further ado, let’s explore the first feature together, an amazing Object Typehint

Continue reading “PHP 7.2 and Object Typehint”

Modern JavaScript syntax – ES6 const variables


ES6 brought lots of new features. Among them is support for constants. Instead of using var while declaring variables, you are now free to choose between const and let.

In this tutorial I will focus primarily on const and its “immutability” quirks, while let will be tackled in the following one. Without further ado, let’s start it off by going through the handful of examples.

Continue reading “Modern JavaScript syntax – ES6 const variables”

How to start using modern Javascript syntax within minutes


Everyone, including browsers, got used to the JavaScript syntax from 90-ties. But time passes by and JavaScript becomes more and more popular, so ECMA, the committee behind the changes in JavaScript, woke up and started to release new features.

The most recent major update to the specification was approved on 17th of June 2015 and is called by many names: ECMAScript 6, ES6, ES2015, and ES6Harmony.

Based on current plans, new specs will be released on a yearly cycle. Please monitor ECMA’s news page, especially changes related to the ECMA-262 document, if you are really interested.

Shall we as developers be excited? Definitely, cause we love bleeding-edge features, however we should also consider the browsers’ compatibility list.

It turns out that main players as Google Chrome, Mozilla Firefox, Apple Safari, and Windows Edge adopt new JavaScript syntax slowly, each one in different pace and priority, so it’s literally impossible to write modern Javascript syntax as it is. So what is the way then?

As you know JavaScript is an interpreted language: the browser interprets the code as text, so there is no need to compile JavaScript. Since we want to use the latest features, we need a way to convert fancy source code into something that poor browsers can interpret. This process is called transpiling, and it is what Babel is designed to do.

In this tutorial I will show you a few easy ways of tinkering with modern JavaScript syntax, without the need of installing anything nor going into complexity of Nodejs, NPM and Module bundlers.

Continue reading “How to start using modern Javascript syntax within minutes”