Blog Archive

Using CMake to create header-only, shared and static libraries

19-03-2021 by Jan Gabriel · CMake C++ Libraries

It's important to keep in mind how you want to package and distribute your code when developing a library. You need to make design decisions such as building a header-only, static, or shared library. In this post, I'll show how you can use CMake to package your C++ library in these three ways: Header-only (INTERFACE) Static; and Shared...

Read more
A GMock Example using an Interface class design, a Sequence class and the ElementsAreArray() method

08-02-2021 by Jan Gabriel · C++ GTest GMock plantuml

I like Test-Driven Development (TDD) because it gives me a goal to develop towards as well as peace of mind when I make changes to my code later on. TDD describes a development strategy where you write a test, which will pass when certain conditions are met, followed by the code which takes your test input data and returns the expected output...

Read more
How I built this site with NodeJs, Express, EJS and MongoDB

24-01-2021 by Jan Gabriel · WebDev NodeJs Express EJS MongoDB

I must admit that I am not a web developer and before I started to build this site I didn't really know much about this field. What I can say, is that the web development community is awesome. There is really a lot of people that share tutorials, support each other and teach on the subject for free or at least for a reasonable fee (e.g. on Udemy)....

Read more
My Notes from Cpp Europe Conference June 2020

22-01-2021 by Jan Gabriel · CppEurope Conference C++ SOLID ApprovalTests std::move

I decided to post my notes from the CppEurope online conference held on 23 June 2020. It was the first C++ conference I've attended and for me a milestone in my development as a C++ software engineer. I hope to attend the next one on 23 February 2021. Thus, without further ado here are my notes and lessons learned from the conference. Further...

Read more
Let's CMake an ASIO Socket Wrapper project!

09-12-2020 by Jan Gabriel · CMake C++11 Project-Structure Asio-Wrapper

There is a very good reason why I chose the CMake topic for my Hello World post. If you want to create a C/C++ software solution that needs to build cross-platform and support multiple compilers, then CMake is for you. There really is a myriad of other reasons too, but for the purposes of this post, I'll stick to those two. I like programming in a...

Read more