Posts

Creating a tiny C++ task library
Tasks are a popular concurrent programming mechanism. It allows decomposing a computational problem into a set of isolated subproblems, i.e. tasks. This decomposition exposes the underlying parallelism of the problem. Meaning that at least some tasks can be executed in parallel, and without any explicit synchronization.
This post covers the design and implementation of a very simple yet useful task library.

Data Flow Analysis. The (homework) interview problem.
This is another problem I was asked to solve at home. The company worked on a static code analysis tool and I were to work on the Data Flow Analysis (DFA) part. The problem was a miniature static analyzer with a very basic DFA diagnostic.

Receiver. The (homework) interview problem.
I was changing jobs recently and in the process had quite a few technical interviews. In addition to the interview problems asked on the spot, several companies also asked to solve test problems at home. These problems required more time to complete, but were much closer to what programmers actually do at work, in contrast to the typical implementthequicksort type of interview problems.
Here I want to share one of such problems, together with a solution. It took me about 3 hours to complete, and I enjoyed solving it.

C# quirks
No language is free of quirks. Here I have a few C# quirks that I came across recently.

Cryptography in license verification routines
In the last post I touched upon the possible uses of cryptography in the license verification routine of shareware applications. In this post I will discuss the common use cases and give some recommendations.

PostScript and the bad IDEA
The strength of cryptography doesnâ€™t only depend on the algorithm selected. It is mostly how cryptography is used that is important. Here I examine an application that made use of a cryptographically strong algorithm in its license verification routine, but due to mistakes made during the implementation, it was possible to circumvent the cryptography.

Bit Swizzling
Here I want to show how lowlevel bit manipulation can lead to curious results in the memory layout of 2D matrices.
subscribe via RSS