Hey people! As I see it, my blog here is pretty much dead (shame on me) and considering my tight schedule at the moment I’m thinking about bringing it offline permanently, replacing it by some static site that I’ll update now and then or redesigning it to purely serve as a personal site. I’ll let you know when I made up my mind… 😉
Personally the last one and a half year was exceptionally great: I finished the renovation of my apartment at the end of 2016 and in April 2017 my girlfriend finally moved in. We successfully merged both our cats and recently we bought some hens to get some fresh eggs now and then. 😀
Today I had a few minutes of spare time and uploaded the rest of the photos showing the renovation procedure and the end result. Of course we did some minor tweaks here and there in the meantime, but you’ll get the idea of what it looks like today.
Hi again folks. I haven’t been very active here (and on the web in general) and yeah, I’m not sorry for that… sorry for that. 😉
I’ve started playing again (PS4 FTW! Yay!) after pausing for a while and started a major project in completely renovating a nice and comfy flat for myself and my three lovely cats. In fact the latter is what’s keeping me busy these days. When all goes as planned and it’s all done in spring next year I may upload a few photos to a new gallery.
Apart from that I started working as a integrator for embedded software at Diehl Metering GmbH. I love the new challenges and tasks these changes brought to my life. And cheers to a still Facebook, Twitter and G+-free life!
Getting back to CppUnit – I recently updated my personal feature/cmake branch with a few fixes to the CMake build system (rebasing it on the current master branch and eliminating some build failures of the Qt Testrunner on Windows). I will try and submit them to the official Git repository ASAP.
And now… back to work. Which in this case means extensively gaming Metal Gear Solid V while listening to its amazing soundtrack.
Please accept YouTube cookies to play this video. By accepting you will be accessing content from YouTube, a service provided by an external third party.
Today I progressed one step further to freedom. Yes, I deleted my Facebook account once and for all. After retreating from Facebook for the first time last year and leaving approx. 135 “friends” behind I really began to feel better. Twitter? What the hell did I need a Twitter account for?? I mean – seriously! I never really used it anyway, so, yes, I sent it to data hell and that’s exactly where it belongs. The same goes for Google+ and all the other useless stuff people and companies only use to spy on others!
So, what did I learn these last months? First of all, it doesn’t matter whether I’m on Facebook or not. It’s overrated as hell and I stay in contact with my real friends anyway (by visiting or phoning them for instance). I do not want to know whether someone “likes” a crappy “Daily Horoscope” or “Made my Day” motto, because most of these are modern spiritual garbage anyway.
Want to contact me? Write me an e-mail. Send a SMS or a message via Telegram. Or just phone me. That’s so much more personal than pretending to be friends on some ad-infested “social” platform.
Here we are again – another year is ending. Personally, 2014 was a very turbulent year for me, to say the least. I know in the end that’s not really an excuse for not putting up the Tntnet benchmarks, but I won’t make any promises either anymore, because currently it does not seem that I will put those up anytime soon. So, if you’re really interested in how Tntnet compares against Apache 2, why don’t you find out yourself? Shouldn’t be too hard to set up the required tools (I would suggest starting with looking up the Apache benchmarking tool).
Apart from that I need to say ‘Thank you a thousand times’ to all my friends and my family, who listened to me, supported me and never lost faith in me these days. You are the best people to have around. And I know that I can be quite a nuisance at certain times. 🙂
Okay then, what will 2015 bring? Well, I will try to get my life back on track for once. 2015 will be a year filled with sparkling and exciting changes and challenges. I’m an optimistic guy (I try hard to be at least) and so I still trust in the fact that an honest smile will always be worth so much more than wasting the time with hate, fear or other negative feelings.
And so all there is to say for now is “Merry Christmas and a Happy New Year everyone”. Always try to be friendly and love each other.
No, I’m not dead. So… yes, you’ll get those Tntnet benchmarks eventually. There’s just a bunch of other stuff going on in my life lately and so I did not find time nor motivation to drive this any further. But it seems to get better now (staying positive helps a lot), so – yes, you’ll get those Tntnet benchmarks eventually. It may just take another two to three months. 🙂
On a side note I’m currently working on using the Linux BlueZ 5.x bluetooth stack via its D-Bus API. That’s some highly interesting stuff, even though the BlueZ D-Bus API documentation is vague at best (and I won’t even mention the state of the documentation for the C API). But fighting through all the docs and even the source code of BlueZ itself paid off in the end. The system I’m developing the software for is running quite stable and I’m proud to say that it passed all tests this week. Oh, yes, I did not use the low level D-Bus C API for this task of course. You may take a look at the D-Bus low level API reference documentation for the reason behind this decision. As I definitely did not want to “sign up for some pain”, I decided to use the Qt D-Bus high level bindings for this project. Everyone interested in communicating via D-Bus in their own (C++/Qt) applications really should try these out.
Being a fan of C++ and having a new Embedded Linux project in the pipeline, a colleague recently put my interest onto the small C++ based web server Tntnet. Tntnet essentially is a framework that allows to generate rich dynamic web applications using C++ and a model-view-controller approach – just like Rails (Ruby) or Django (Python). For this task Tntnet comes with a variety of tools: a sort of “meta compiler” that generates pure C++ code out of so-called “ecpp” files (which are a mixture of HTML and C++ code), the standalone web server executable and the Cxxtools C++ library that brings stuff like JSON / XML RPC, logging capabilities and much much more. Before hacking any code developers have two options to deploy a web application: either compiling the web stuff as shared library, which in turn can be loaded as a module by the standalone Tntnet executable, or compiling everything into a single application, which then serves as the web server providing the content. The latter case contains of a simple main() entry function in which the server is set up and configured. It may look like this:
Writing CMake scripts to search and use these tools and libraries merely took a few minutes and an hour later (reading my way through the documentation and Howtos on the official website) my first web application (a simple CRC32 Checksum calculator) compiled successfully. Due to its C++ nature the application has a really small footprint (~230 KB), serves http requests amazingly fast and hence seems like the ideal solution for our new project.
Sorry that I don’t have any more examples for now, but I will update you later with some stats (comparing Apache2 and Tntnet using the Apache2 Benchmark suite) and more code. So long and keep on hacking.
At work I recently had to look for a Unit Test Framework that’s usable on Windows. We had used the great CppUnit library to drive our unit tests for our Embedded Linux applications before and hence I decided I’d look into that first. Maybe I should explain first, that the original CppUnit project was recently forked by the Document Foundation (that’s the girls / guys driving LibreOffice) as the original project seems to be dead for some time now. Even some major Linux Distributions already switched to this fork, one of them being Debian – which is shipping 1.13.1 in Jessie. Driven by the Open Source thought many of our Windows (Embedded) applications are being compiled using the MinGW Toolchain (essentially that’s the GNU Compiler Collection (GCC) accompanied by some GNU Tools). And that’s exactly where the pain began.
CppUnit mainly ships for usage with two build systems – one for Microsoft Visual Studio based solutions and an Autotools based build system (there are some others, like for the Borland C++ Compiler, but I didn’t get to try them). Try to make either of them work with MinGW. Yeah right. Apart from that the build systems are cluttered all over the place and some of them are horrendously outdated.
So I decided to take a look into what could be done to improve the situation. A few months back we decided to switch to CMake based build systems at work (CMake is awesome, btw) and so I started porting CppUnit to make use of this build system. Unfortunately I realized very soon that it would be hard work getting all components to work again, as some of them did not get the love they deserved (I’m especially pointing at the Qt based test runner, which was still using the quite outdated Qt3 libraries). Getting the library itself to build was quite easy.
That said, in the meantime my changes made it into the official Git repository hosted at freedesktop.org and at the current state all components except the MFC based stuff are building just fine on all platforms supported by CMake and meeting the minimum compiler requirements – which should be all recent compilers starting with the MSVC 2005 compiler and GCC 4.x. So “recent” is quite relative in this sense. I’ve also almost completely rewritten the Qt Test Runner library and it now makes use of either Qt4 or Qt5. So, all of these changes can be found in the feature/cmake branch of the official CppUnit Git repository. If you’re interested, just clone it and build the good stuff. 🙂