I have written a couple of retrospectives in the previous years and this year is no different. The retrospectives have been from freelancing perspective, but this time I wanted to try adding a bit more random things that were interesting. Freelancing ... more
In the ideal world, investigating why a test fails should be a trivial task, but sometimes the code that is under testing is not easy to follow. Or, even the test can be hard to understand. To get understanding what is going on you can use console.log ... more
Prettier is an opinionated code formatter for different languages (such as JavaScript and TypeScript) and style sheet files. Prettier wasn't the first code formatter, but it had a new approach that led to being very praised and popular tool. The powerful ... more
If a Web developer would make a switch to Windows from Linux or MacOS, the most significant thing they would miss is a proper Unix shell. Disclaimer: that statement is only based on discussions with numerous web developers, so the sample size rather ... more
I started writing TypeScript at the end of 2015. Since then I have written three medium-sized TypeScript projects. Even though TypeScript is very pleasant to learn (good resources, online playground, smooth learning curve, etc.) it can become a painful ... more
It has been one year since the last review, and it is again time reflect how the year went. The way I approach life is quite simple: do more things that bring positive feelings and try to minimize that drain energy. Freelancing - Overview My work-life ... more
Usage of TypeScript's powerful type system decreases specific type of bugs. Linting tools provide additional static code analysis to spot common mistakes and ensure consistency across the large codebase. In each project team decides which of the rules ... more
I gave one of the talks on React Helsinki meetup on 8th of November 2017. The title of the talk wasn't very imaginative, but it was quite descriptive: "Lessons learned from three React + Redux projects." These lessons were learned the hard-way ... more
When a developer with C# or Java background learns TypeScript, there is a temptation to write TypeScript with the same style as C# or Java. It is easy to lose TypeScript's beauty by not understanding the type system TypeScript offers and how it differs ... more
Setting up a build process for a modern web application can be a tedious process. Knowing your tools is important when you're going to maintain the software. When you want to learn a programming language or experiment with an idea, you want to get started ... more
Even though the library of type definitions is vast, the amount of JavaScript libraries is even greater. Every TypeScript developer will encounter a situation where the type definition is missing, or it is not up-to-date. There are four options to deal ... more
The TypeScript team and community have done amazing work lately. In this blog post, I'll show some of the new language features, tools, and libraries that have been released or will soon be released. Enjoy! Prettier TypeScript support For those who are ... more
TypeScript is a very well-planned type system that has type inference, structural subtyping, generic types, contextual typing, intersection types, literal types, union types, etc. In this blog post, I try to solve an example problem in two different ... more
If you haven't read the previous blog post (which describes FSA and the TypeScript FSA library), please read it before continuing. In this article, I cover the creation and usage of Typesafe actions and the way to unit test reducers that use asynchronous ... more
TypeScript is a perfect match for React reducers because it has an intelligent type system, making refactoring much easier than it is with plain JavaScript. The topic of reducers is also an easy way to start learning and enjoying TypeScript because reducers' ... more
Web developers have spent tremendous time and effort to make reusable components. One of the problems has been CSS and its cascading nature. For example, if a developer creates a component that displays a tree structure, how can she/he ensure that CSS ... more
About a year ago, team members and I were thinking about an ideal front-end stack to fulfill a client's business requirements. We ended up with a React setup. A year later, we can say that the technologies we used were valid choices for the project. ... more
Yarn is a client for the npm registry, Node.js ecosystem for the packages. This new client will address performance, reliability, and security-related issues. Before diving into this article, which is about speed comparison, please read the introductory ... more
The problem In the current project, I made a custom checkbox. The custom implementation used native control and didn't rely on any JavaScript, but for some reason, it didn't work on Edge. It is a common technique to give style for the native HTML checkbox ... more
I have come to a conclusion that many debugging methods and tools haven't reached a broad audience. Perhaps we consider reading a blog post or watching a video about a browser's developer tools uninteresting or unimportant, yet developers spend a great ... more
For quite some time, consumer cloud services have been easy to use: users don't need to think about where the files are or how to share them. Unfortunately, developers haven't had this luxury. Sharing the product under development is still a bit cumbersome. ... more
I have used various linting tools to keep code consistent across teams. A few weeks back, I started using ESLint with my website and hobby projects. Most of the projects used plain old ES3 syntax. I expected some nagging about semicolon and curly brace ... more
After launching my email list, I received a ton of great questions. Here's one of them: I would be interested in post about technologies / tools / techniques you use for stable production applications. Not just javascript of course. Instead of listing ... more
When something new is announced, people have a tendency to choose sides. When TypeScript was announced, I wrongfully picked a few key concepts that didn't resonate with me, then chose my side: against. In this blog post, I'll try to explain what I was ... more
Ghost blogging platform theming support gives us plenty of built-in blog and post related Handlebars helpers. There are cases where built-in helpers are not enough and we need a way to apply custom helper. In this blog post, I'll show you how new Handlebars ... more
I've recently learned a few things about HTML forms, which are a fundamental part of the web. We web developers spend quite a lot of time and effort making forms simple and accessible so that users can easily accomplish tasks. Even after years of working ... more
Dear readers, I am pleased to introduce you to Ville Immonen, a co-founder of Reindex. Today we will be discussing what Reindex is, the problems it solves, the company's operation, and upcoming news for 2016. Ville, it is great that you spared your precious ... more
I've never doubted that I should install an SSL/TLS certificate for a web service that I have been building for a client. Any site that has at least one form should use HTTPS—not just the login screen, but the whole site. When it came to my personal ... more
If you haven't heard about so-called NPM-gate, then please read one of the summaries of the topic (Ars Technica, npm blog or Business Insider). As a person who has made NodeJS production code, I couldn't just close my eyes on the topic. Unfortunately, ... more
Disclaimer: I have been programming for a while, but I am a complete Elixir n00b. These are my unfiltered notes while learning the Elixir language. Official Getting Started documentation is where I started the learning process. I tried to write as many ... more