Welcome to my blog where I write about technology, programming, and homelab projects.

Ulog v0.0.3 Released

Earlier today I released a new version of ulog which is a lightweight and threadsafe logger with support for C/C++. This release combines a few different changes over the last several months, most notably full support for C++ code, and simplified macro usage for file logging. Below I’ll detail the various improvements

Full Support For C++ Code

It appears that string handling in C++ is slightly different than C, with “strings” defaulting to a const char * type, whereas in C defaulting to a char * type. This lead to issues compiling C++ code using ulog mainly due to the typedefs for the logging functions.

[Read more]

Ulog - A Lightweight And ThreadSafe Logger In C

Introduction

When I decided to start learning the C programming language, and after I got through reading introductory material, namely The C Programming Language 2nd Edition as well as Effective C: An Introduction to Professional C Programming I found myself wondering what I could work on that would help sharpen my newfound skillset.

I figured that a good way to spend my time learning C, and one that would help me become more familiar with the language was to recreate common functionality that I use on a near day to day basis when programming with Golang. Primarily I figured networking, synchronization, and command line builder helpers would be good places to start.

[Read more]

Easily Run CI For Your C/C++ Codebases With TravisCI

Introduction

Recently I started learning the C programming language. Coming from a language such as Golang, I was a bit lost on how to do traditional code development practices, namely CI (Continuous Integration). With Golang the information is pretty easy to find for a variety of different CI providers; But C on the otherhand, not so much.

A First Attempt

Within the last 3-4 months I began using CircleCI for all of my Golang projects to great success. As such my first choice for CI with codebases written in C, was CircleCI. Having been familiar with their website before, I checked out the supported language documentation and C was listed there. Unfortunately it was the only supported language that didnt have a dedicated getting started guide. As one does in this situation, I went to the Oracle known as DuckDuckGo but that adventure stopped pretty quickly. I wasn’t getting much luck on DuckDuckGo, so I tried Google. This provided a few more sprinklings of knowledge, but ultimately nothing concrete enough to be able to easily go off and write a CircleCI configuration that could build my C codebases.

[Read more]