RSSAmplifier

Blog

Coldflake Blog

Exploring software technologies

blog.coldflake.comRSS feed ↗10 posts

Latest posts

Minimal Development Setup for Mac OS

This time of the year I usually have a little time to go through the notes I made over the course of the last 12 month. Most of them are some howtos and write-ups of some of the things I learned or recipes I’d like to use again in the future. One of those write-ups cover some of the steps I undertake to setup a new box running Mac OS. This usually happens once or twice a year and I often forget…

Testing C++ With A New Catch

Unit Testing frameworks are mostly boring – if they are any good, they follow the rough approach of the x-unit family that Kent Beck introduced with smalltalk. And in languages like ruby or even Java they are quite comfortable and can make use of the runtime introspection capabilities, mostly to automatically discover your test cases and execute them. Not so in C++. And the test frameworks here…

Choosing the Type of your Types

In my years as a developer I have used a lot of different programming languages. Most of them I already tried to ban from my brain again (LISP still seems to give me nightmares from time to time – L ost I na S eaof P arentheses ). At the moment my most frequently used languages include haskell, C++, Ruby and Lua: I immersed myself in C++ and it’s intricacies. I got to really love Ruby and it’s…

Testing Without A Brain

Testing software is perhaps one of the most controversial topics among programmers. Opinions range from “test first and test everything” to “tests slow us down”. As with so many things, the truth lies somewhere in between. After making my own experiences in a lot of different projects, I have to admit to myself that finding the perfect balance is still a hard a lot of times. Starting out in a new…

Android Style Message Passing

Last week I finished a substantial rewrite of the concurrency portions in the code of a fairly complex embedded system we currently develop at work. It has been quite a roller-coaster ride and I went back and forth between moments of joy and situations where I would tear my hair out. In the end I’m quite happy with the result and want to reflect about some of the things I learned. Our target…

C++ Delegates On Steroids

Yesterday I came across an excellent article from Jeremy Ong that introduces an extremely nice solution for integrating C++ and Lua code. Jeremy used a technique based on C++ meta-programming in conjunction with C++11 variadic templates to call Lua functions from C++ code. That reminded me of some other example where variadic templates have been a joy to work with: coding delegates in C++. Why…

Top 10 Unix Command Line Utilities 2013

Content awk ls find ack rename Redirects Subshells tee Zips & Archives Base Conversion For a long time I have used the bash on a daily basis. It has become such a trustworthy companion that I virtually cannot do any work on a windows box anymore. But even using bash every day I regularly come across ways of solving particular tasks that I did not really know about. To keep track of such solutions,…

The Incredible Brew

When Apple started shipping the first iBooks including Mac OS X back in 2001 I was hooked. A beautiful and well design user interface sitting on top of a developer friendly operation system. More importantly: a unix based OS where most of the unix tools you know and love are available. But porting some linux based utility to Mac Os was now possible albeit quite hairy in some cases. Dealing with…

Simple Networking

Last Friday a coworker was so kind to organize a fun session at work where we had to write bots that participated in a game . The basic idea is to program a bot that plays against other bots, all communicating via UDP with a server that supervises the game. Even though many of our developers are rather avid C++ users, this problem involved two reoccurring tasks: UDP communication and string…

Start of Year with Shunting Yard

One of my resolutions for the new year is to solve more interesting problems and learn about new algorithms. The new year puzzle from programming praxis has some very interesting problem that I used as an excuse to try out one of Dijkstra’s algorithms: Shunting Yard . As we begin the new year, we note that 109-8*7+654*3-2/1 = 2013. There are three other combinations of the numbers 10, 9, 8, 7, 6,…