A Practical Introduction to Container Terminology

A Practical Introduction to Container Terminology” is at the same time two things for me:

  1. The longest blog post that I’ve seen in a long time, if not ever.
  2. The best introductory tutorial into containers.

Strongly recommended.

Nginx 1.13.9 and HTTP/2 Server Push

Here are some very exciting news from the Nginx front lines: HTTP/2 Server Push is now available in the latest and greatest Nginx 1.13.9, which was released yesterday!

Server Push was one of the most exciting features for me in all of the HTTP/2 specification.  But I wasn’t quite sure how it will be implemented, and, most importantly, how it can be made easily available to the web developers, who are often few levels removed from the web server configuration.  I think Nginx solves the problem quite elegantly.

On the configuration level, “location” directives are often available to the web developers withing the virtual host / server.  But for those who can’t use those or don’t want to mess around with the configuration files, an even easier option is available – Link HTTP header.

I’m sure this will soon be widely supported in all the major libraries and frameworks, much like HTTP cookies are.   Great times ahead!

Automerge – a JSON-like data structure for concurrent multi-user editing

Collaborative editing is a very challenging subject, technically speaking.  The old days of users editing a file, sending it to another user, and back are long gone.  Version control tools like git helped with tracking changes and resolving conflicts.  But the newer generation of tools – Google Docs for example – push the bar even higher.  Now many users expect real-time, transparent collaborative tools, which allow multiple users to work on the same document at the same time and without any additional technical complexity.

Automerge is one project that helps the developers to build such collaborative tools, by providing a library of JSON-like data structures, which can be edited in parallel and then merged back together.

Automerge […] supports automatic syncing and merging:

  • You can have a copy of the application state locally on several devices (which may belong to the same user, or to different users). Each user can independently update the application state on their local device, even while offline, and save the state to local disk.(Similar to git, which allows you to edit files and commit changes offline.)
  • When a network connection is available, Automerge figures out which changes need to be synced from one device to another, and brings them into the same state.(Similar to git, which lets you push your own changes, and pull changes from other developers, when you are online.)
  • If the state was concurrently changed on different devices, Automerge automatically merges the changes together cleanly, so that everybody ends up in the same state, and no changes are lost.(Different from git: no merge conflicts to resolve!)


GRV – Git Repository Viewer

GRV is a text-based Git repository viewer for the console, much like tig, but with a few extra features:

  • Commits and refs can be filtered using a query language.
  • Changes to the repository are captured by monitoring the filesystem allowing the UI to be updated automatically.
  • Organised as tabs and splits. Custom tabs and splits can be created using any combination of views.
  • Vi like keybindings by default, key bindings can be customised.
  • Custom themes can be created.

On browser’s User-Agent string

Back-End Developer Interview Questions

A while back I blogged the link to the Front-end Developer Interview Questions.  Today comes a similar link, but for the Back-end Developer Interview Questions.

Question lists like these aren’t just useful for adjusting your interviews, but also for self-checks and assessments.  Each company, team, and project often require a slightly more specialized expertise, which often leads to narrower interviews and “tunnel vision”.  Looking at other people’s interview questions helps to review and adjust the questions and address the gaps, resulting in a more rounded interview and expertise.

Replacing jQuery With Vue.js: No Build Step Necessary

Replacing jQuery With Vue.js: No Build Step Necessary” article looks at one of the ways to migrate from jQuery to Vue.js as in almost drop-in replacement.  It’s a nice starter guide for people who have been using jQuery for years and are now looking at more powerful and modern JavaScript frameworks.

Composer Local Packages for Dummies

Composer (in combination with Packagist) is one technology that has significantly changed the ecosystem of the PHP programming language.  Anybody working with PHP in this day and age MUST know how to use composer.  However, not everyone does.  So here is a nice tutorial on how to get started with Composer if you already have a large legacy application that you want to split into packages and use composer to manage them – Composer Local Packages for Dummies.

Quick Guide to GraphQL for BackEnd & FrontEnd

GraphQL is one of those technologies which is constantly on my radar, just waiting for the right time and project to try it on.  For now, I’m just slowly moving to that target, collecting links to resources in the meantime.

Introduction & Quick Guide to GraphQL for BackEnd & FrontEnd” is a new addition to my collection.  This article, much like many others, provides a brief introduction to the technology.  And it also shows a practical example of how to design and implement GraphQL API both on the front and back ends.  I give it extra credits for mentioning GraphiQL in-browser IDE for exploring GraphQL.