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.
One of the things I hate in the PHP Build System is that Makefile‘s it generates cannot handle the cases when a header file changes. In a perfect world, any change to a header file would cause all files depending
This article describes some gotchas you may face if you need to use C++ in your extension.
PHP 5.6 introduced the splat operator, which unpacks arrays or objects implementing Traversable interfaces into argument lists. Its most evident application is to call functions without having to resort to call_user_func_array(). So, which method is faster?