Waiting until Docker containers are initialized
An issue that a lot of people run into when automating Docker builds is in figuring out how to wait for services to be set up before running subsequent commands.
Dijkstra's algorithm for finding the shortest path to other nodes
Dijkstra's algorithm is a simple, elegant graph algorithm, and one of my favourites.
The problem it solves is the following: given a graph with non-negative edge weights and a start node, how can we find the shortest path to other nodes in the graph?
(LXDE) Adding user-specific start menu items
In this post we’ll add a user-specific start menu item for an npm application, Evolus Pencil V3.
Scalability of data processing
How can we make distributed computing more resilient, remove bottlenecks, and improve scalability?
We can often address these questions at the architectural design level, in which we plan the structure of our system and the high-level interactions between system components.
Hash functions for cryptography versus look-up
A hash function accepts an arbitrary sequence of bits, such as a string or file, and outputs a corresponding sequence of bits of fixed size. This output is known as the "hash" of the input.
Simple Git workflows for teams
There are several common workflows for managing projects using Git, and which one works best will depend on your team’s structure and the complexity of your project.
Types of failures in distributed systems
Failure recovery is an interesting problem in many applications, but especially in distributed systems, where there may be multiple devices participating and multiple points of failure.
The Go Programming Language has built-in communication channels, which provide type-safe one-way or two-way communication between processes. This can be very useful for concurrent programming, such as in master-slave and map-reduce programs.
subscribe via RSS