When I tried to use unistore instead of redux in one of my pet projects, I discovered that its TypeScript typings are not very accurate. In this post I try to come up with better typings for unistore’s connect() function.
When using sass-loader 8.0.0 with preact-cli 3.0.0-next.19,
preact build fails with an error: Invalid options object. Sass Loader has been initialised using an options object that does not match the API schema. options has an unknown property ‘includePaths’. Quick fix: use sass-loader 7.3.1.
This post describes how to serialize a FormData object to JSON and how to fill the form back with the serialized data.
We live in a world where data is an incredibly valuable currency, and you are always at risk of loss. Because of this, you must do everything you can to ensure what you hold on your desktops and servers is safe. If you are looking to lock down your Linux servers and desktops as tight as possible, you should consider to make use of two-factor authentication. This article explains how to configure two factor authentication using pam_u2f.
A CORS proxy is a service that allows sites to access resources from other websites, without having to own that website in case when no `Access-Control-Allow-Origin` header is present on the requested resource. This article shows how to create one with the help of nginx and without writing a single line of code.
SQLite Session Extension provides a convenient way to create “diffs” between two versions of a table. These “diffs” are binary and are usually much more compact than their SQL counterparts. This article shows how to create and apply such “diffs” to tables.
Correspondence between OpenSSL cipher suite names and RFC names taken from http://testssl.sh/openssl-rfc.mapping.html.
Signal is a great encrypted communications application built upon Electron framework. Couple of months ago I faced the issue that Signal had failed to start showing a message like this: “Uncaught Exception: Error: /tmp/.org.chromium.Chromium.j4ITUv: failed to map segment from shared object”.
Here is the solution.
In Systematic Error Handling in C++ Andrei Alexandrescu claims that C++ exceptions are very slow. And though I have no doubts because I know the internals of exception handling, it is interesting to see some proofs yourself by benchmarking how fast or slow exceptions are.
Sometimes, unexpected things happen. Your program throws an unexpected exception, which is caught by the framework, which loudly complains but provides no hints as to where this happened. You need to find the source of the exception, and this article will explain one of the possible ways to do that.