Category Archives: Software Engineering

Book Review: Unix System Programming in OCaml

Is Unix System Programming by Xavier Leroy and Didier Rémy worth your time? This blog gives a brief description of what it is, to help you decide. What is Unix System Programming The authors cover the following the topics as … Continue reading

Posted in Languages, Linux, OCaml, Software Engineering | Leave a comment

Check If It Is a Good Array

Problem Leetcode presents the following problem: Given an array nums of positive integers. Your task is to select some subset of nums, multiply each element by an integer and add all these numbers. The array is said to be good … Continue reading

Posted in Algorithm, Python, Software Puzzle | Leave a comment

Unit Testing With Boost in Visual Studio

The Problem There are many Unit Testing Frameworks (UTF) for C++. Wikipedia list over 50 of them. Not all of them are created equal. CPPUnit is one of the oldest and is still popular. Google Test has a strong brand … Continue reading

Posted in C++, Software Engineering, Windows | Tagged | 5 Comments

Asio: A Brief Introduction for the Windows Programmer

Really! Yet another tutorial on Asio? “Why?” The average C++ programmer has much more experience than say the average Java/Javscript programmer – not necessarily a good thing. (C++ is becoming like assembler.) As such a C++ developer can understand how … Continue reading

Posted in C++, Concurrent Programming, Software Engineering | Tagged , , | Leave a comment

Web Server Using C++ – Asio

Motivation There are good web servers both in the free/open source arena as well as commercial products. Apache and Lighttp are widely used in the UN*X based systems. PHP, Python based Django or Ruby on Rails usually run on top … Continue reading

Posted in C++, Software Engineering | Leave a comment

C++ Multithreading: Promise and Future

Introduction In addition to providing portable wrappers for native multi-threading facilities, C++ also provides higher level constructs that allow the programmer to call functions asynchronously. Future Consider: Here f is of type future<int>. The async function may be computed in … Continue reading

Posted in C++, Concurrent Programming, Software Engineering | Tagged | Leave a comment

PThreads: An Introduction for Windows Programmers

Historical Note The first versions of UNIX had no concept of threads. Processes could be forked as shown in the example below: Both the parent and the forked child process continue from the point fork is called. The return value … Continue reading

Posted in Concurrent Programming, Linux, Software Engineering, Uncategorized | Leave a comment

Evolve existing multi-threaded code to use C++ 14

Intended Audience The reader is presumed to know C++ and has addressed multiple threading issues in C++. Hence I presume, you know what are mutex, condition_variable, the need for atomicity while doing a read-modify-write operation etc. Let me describe some … Continue reading

Posted in C++, Concurrent Programming, Software Engineering | 1 Comment

Template Metaprogramming: SFINAE

Judge me by my C++, not my WordPress — Eric Neibler This site has moved here WordPress is unpredictable. Sometimes it is just what you want. Sometimes it is terrible. So I have moved that blog to my own website.

Posted in C++, Software Engineering | Tagged , | Leave a comment

Template Meta Programming in C++: A Gentle Introduction – Part I : Template Specialisation

Most C++ programmers will do little Template Meta Programming. However we could all use Template Meta Programs (TMP) in our own code. Hence a basic understanding of TMP will make C++ programming much more enjoyable. My aim here is not … Continue reading

Posted in C++, Software Engineering | Tagged , | Leave a comment