Practice Problem: Sparse Subgraph

Yet another NP-Completeness practice problem. This time from Graph Theory.

Practice Problem: Almost-SAT

If you are reviewing Theory of Computation, here is a nice and simple example of NP-Completeness proof.

Using SSH private keys securely when building Docker images

It is quite common situation when you are building Docker images: some secret value/file is needed (temporary, for the duration of the build), and you are puzzled how to pass it w/o over-exposing, and make it accessible down the road, when the image becomes publicly available.

Bitonic Sort in Go

In this post I will look into multi-core programming using Go. The language is good for concurrency, and handles multi-core parallel execution really well too. As a practical exercise Bitonic Sorter will be implemented. We will test the code on 8-core machine to see what benefit can parallelism provide.

Vim as Go language IDE

Go is amazingly enjoyable language. Experience with it will be even greater once major IDE providers (yes, JetBrains I am looking at you!) start producing full-fledged Golang IDEs (instead of somewhat limited plugins). Before that happens, you are stuck with assembling a good toolset manually, so let’s do just that, for Vim!

REST and long-running jobs

This article describes a proper way to handle (asynchronously) a long-running job creation in the RESTful API.

Weighted Interval Scheduling

In this entry we will dive into the world of dynamic programming, by looking at one of the most simplest yet illustrative algorithmic problems, namely the problem of Interval Scheduling. We will start with special case of unweighted interval scheduling, and then elaborate from there into a more general case of weighted intervals.