Newer Posts Older Posts

The Theremin & Clara Rockmore



I must say, today's Google doole blew my mind. Well not the doodle itself, but what I learned after digging further into the subject. The doodle commemorates Clara Rockmore's 105th Birthday. Clara Rockmore is not very remarkable, except for the fact that she was one of the first theremin players or thereminist and maybe the most famous of them all.

"But what is the theremin?" you ask and this is a very good question. A question that captivated my the better part of this afternoon.

read more

Windows Services with node.js



node.js has become my go to technology when I need a quick and dirty solution to automating a task. Occasionally these are tasks that run constantly and monitor something to trigger an action. Now, (unfortunately) I work mostly with Windows systems and node does not integrate cleanly into the service architecture. Writing a service wrapper does not sound like to much fun...

But luckily, NSSM exists with it's rather bland website and meek appearance. The Non Sucking Service Manager is a gem when it comes to wrapping programs to act as Windows services.

To get a node instance running copy the nssm.exe, the standalone node.exe and your script with all required dependencies armed into one folder. Open a command line prompt with administrator rights and execute the following command:

cd myservicedir
nssm install MyNodeService node.exe myscript.js

That's it! As long as the system is running, so will the script be executed. Obviously you can read all the luscious details about NSSM in the rather good documentation.

read more

OpenGL Transformation Library



Modern variants of OpenGL are awesome and powerful, but when working on small OpenGL demos and test projects the simplicity of OpenGL's immediate mode is unbeatable. Unfortunately since OpenGL 3.0 there is no immediate mode rendering anymore.

When toying around with some effects I decided to write a small library that implements the OpenGL immediate mode transformations. It is written in C and needs nothing more.

You can get the library over at github:

read more

BowTie Review



I was recently asked what I think of BowTie, as a user of jekyll. Now my avid readers may know (yes you two), I don't use jekyll anymore. But generally I like the core concept of static website; since they are way more efficient. So I took a look around and sized up BowTie.

BowTie is basically a managed jekyll website. They provide git hosting of the site and automatically build and deploy a copy, once the changes hit the central repository. This all sounds similarly to Githup Pages, except for commercial use. Additionally to these basic features, they have always on SSL, a payment/paywall, user management, front end templeting, analytics and an email service. This to the tune of $5-$82 per month.

BowTie very elegantly solves a problem ...

... that nobody has.

read more

Four C Constructs That Need To Die



C++'s compatibility to C is the key feature that got it off the ground. It also makes integrating C libraries into C++ astoundingly easy; which again is key, because all the really interesting libraries are written in C. But if you program C++ there are a few constructs that just need to be purged from any code base. Here are four constructs that have no place in proper hight level C++ code.

Linked Lists

Bad Code:

struct FooNode
    Foo      value;
    FooNode* next;

FooNode* foos = new FooNode;
foos->next = nullptr;

When learning basic algorithms and data structures, the linked list is one of the first construct you learn. The linked list is also the backbone of many containers. The key problem here is, that using it directly is error prone. Unless wrapped in clear access functions, adding and removing items quickly become problematic code. For example, since you are always holding single elements, you never know if you are actually holding the root element and can never be sure if you can just delete the element.

read more

Resize Canvas Update



A while back I made an article about resizing a canvas automatically. Well I made a mistake, the canvas element does not have a resize event; something I completely missed. Here is an update on how to solve the problem.

After searching the internet, I did not find a good solution. The best solution I found was a stackoverflow question, but they also made some mistakes.

So here is my revised solution, that actually works with the canvas:

function onResize(element, callback) {
  var height = element.clientHeight;
  var width  = element.clientWidth;

  return setInterval(function() {
      if (element.clientHeight != height || element.clientWidth != width) {
        height = element.clientHeight;
        width  = element.clientWidth;
  }, 500);

read more

A Day of Work with Swipes



So I was asked what my routine was? Well I wanted to write this post for a good while now, so here it is.

I am one of the people who consider to do lists harmful. So I start my day thinking about the pig picture things I want to do today. Commonly I do this over a cup of espresso and today I want to clean up the house, since Friday is may "day off" from my day job and continue working on, specificity I want to finish porting it to angular.js.

read more

Swipes - the Procrastinator's To Do List



For a while now I have been using Swipes. On the surface it looks like a run of the mill to do list, but there is a small twist to it. The way you "schedule" tasks is ingenious.

I don't need a to do list for the important things. Each morning I sit down and think about the three most important things I need to to today and I do them. Where things get lost along the way are all the small tasks. You know those tasks that are small, not really important, but hurt when not done. Tasks like cancelling a subscription, checking why Amazon is complaining about your IAM policies, you know those many 5 minutes tasks.

read more

The Dip



The Dip

The Dip by Seth Godin is an interesting small book about quitting. At least that is how Seth Godin describes it and purposely undersells the depth of message.

By quitting he means, quitting the fruitless undertakings, quitting the hopeless quests before ever embanking on them and not quitting the worthwhile endeavours, even when it currently hurts.

The Dip is a really short book and worth the read. Seth Godin writes in his simple, yet though provoking way. I enjoyed reading it and thinking about it. It shows you that you need to pick your fights and persevere.

read more

Artificial Intelligence and The Travelling Salesman



HAL 9000

The near future holds many interesting development, some of which we don't comprehend yet. But a general artificial intelligence or super artificial intelligence won't be part of it.

The notion of the singularity is not new. But recently I have seen more and more articles discussing artificial intelligence. These either spell the doom of humanity or it's salvation. The problem is that a real artificial intelligence is very hard to realize and I will try to explore how hard it is.

read more

Newer Posts Older Posts