So, after a long while, I wrote a new C language program. As usual, the same things that I dislike about C programming popped up, specifically the need for low level data structures and manual memory management.

I did learn some new things:

  • uthash : I have used this library before, but there were a few new features that I did not know before, specifically it not only includes the hash library, but also some other high level structures that were quite handy.
  • Unit testing : So I started using cu, a C unit testing library. Frst time I write a program with integrated unit-testing. I can see its usefulness, but it does feel like a lot of work. For a casual programmer like myself, does feel like an over-kill.
  • Continuous integration with Travis-CI : For this project I tried using a CI tool. I chose Travis-CI because it integrates with GitHub. This only makes sense with unit testing. Once again, for a casual programmer like myself, it feels like a bit too much, but I can see how it would be useful if you have multiple contributors to the same project repository.
  • Creating binaries for a Zyxel NSA 325 v2 : So I got the NSA 325v2 SDK, and I am cross compiling for it. Quite straightforward, but still, something new.
  • An interesting feature of this code, is that, when possible, it is object oriented.

Anyway, this project can be found in github: