Management Tactics for the real world complex projects

A lot of management practices are used to optimize to current state of the projects and get the situation under control, but it does not always work as intended. Unfortunately, many people think that just applying the required process does the trick, however, in many cases it does not. I've published the presentation Management Tactics regarding that, and you can find the corresponding notes with the detailed explanations below.

A Sample of Lambda Architecture Project

I would like to present my pet project: A Sample of Lambda Architecture Project, the boilerplate for detecting IoT sensor anomalies using the Lambda architecture. It's based on Akka/Scala cluster, and utilizes Cassandra database and Redis in-memory data store.

Running arbitrary containers in LinuxKit

Debugging issues with LinuxKit images could be a serious challenge in some cases. Unfortunately, the documentation is not full enough to cover all the caveats, and in this article I'm going to show the general principle how to deal with arbitrary containers and run the commands in them.

Using LinuxKit on real hardware

LinuxKit is a promising toolkit for building secure, portable and lean operating systems for containers. One of its advantages is having a predictable container set (in other words, installed packages in the system), hence providing a homomorphic environment for QA and benchmarking tests. However, the project is fairly new, and users may have problems setting and running it up, especially on the real hardware. The documentation and packages are under way, but it's already possible to get it working.

Getting PID in Java/Scala (cross-platform)

The Scala/Java environment has a certain lack of features regarding process management - it's in a very good shape, but sometimes we need more. It's totally understable considering that the underlaying system is the JVM (in most cases), however once in a while we have to leave the sandbox. That was the case I've faced, and it got me to the problem how to get the ID of the process I started in JVM for various operating systems.

Emulating line-buffering mode (Gradle example)

C printf() function doesn't flush buffers by default, and a lot of code using it may miss this, therefore creating interactivity problems to the end user. It's not specific to C though - it's about the standard I/O streams, and the problem may appear anywhere. The post is based on StackExchange discussion, so you can dig deeper if you want: Turn off buffering in pipe.

Xcode build settings

Xcode build locations may mislead developers hoping to fully control the output of the IDE. While we can use CONFIGURATION_BUILD_DIR for the xcodebuild tool during continuous integration, IDE generates files in different locations, and sometimes we want to control it too.