console.log is great for debugging static objects ed. Not so much for the runtime stuff though.
So I just wrote a small handy function to check some runtime var in console.log

var rutgers = {
  log: function(msg, v){
    if (!this.logVars) this.logVars = {};
    if (!v) v = 'debug';
    this.logVars[v] = msg;
    console.log(JSON.stringify(this.logVars, null, 2));
rutgers.log('some message', 'some var');

Categories: Uncategorized | Leave a comment

gitea, a git(lab/hub) light

I just installed gitea on my old home sever and found it to be a very nice alternative for Gitlab. It takes up only a fraction of the available resources. Where as Gitlab will just eat it all up.

Categories: Uncategorized | Leave a comment

adobe sensei, the future?

YouTube Preview Image
Categories: Uncategorized | Leave a comment

time for coffee

Today I decided to do an iterative in stead of a recursive traversal. And I still do not understand what I’m writing about

Categories: Uncategorized | Leave a comment

Speedy debugging for a JavaScript game loop

Javascript code can be quite slow at runtime. At some time you’d prob want to build some debug info, so hopefully you’ll understand why your code is not running as fast as it should. So you start adding some extra code accessing the dom, which makes things even slower. The solution is simple:

speedy code means speedy debugging means no actions on the dom

in HTML add a textarea with id=debug

  • define an array,
  • allocate indexes for the labels.
  • allocate indexes for the values
  • show a flat array at runtime

a newline kan be defined by using the newline character.

in Javascript do something like below

    // somewhere up the ladder
    // ....

    var SomeArray[
            'blablabla, etc'
            'FPS: ',0,
            "\nball Y speed:",0,
            "\nball X speed:",0
        ], // debug array
    animate:function(a) {
        (function logic() {
            self.timeout = window.setTimeout(logic, 30);
            a[1][1] = fps;
            a[1][3] = b[5];
            a[1][5] = b[6];
            a[0][0].value = a[1].join(" ");


    // somewhere in the code

est voila!

Categories: Uncategorized | Leave a comment


Exoskeleton,  a lightweight backbone replacement, looks promising

Categories: Uncategorized | Leave a comment


aaah . … no more editing of hosts files on  ipads, nonrooted androids, virtualbox, docker and the like …

With dnsmasq life has become a bit easer. This lightweight DNS forwarder provides a local DNS / DHCP solution to a small-scale network. It’s no BIND9, but  still. It enables you’re own TPL in your own little network, with ease.

life’s good

Categories: Uncategorized | Leave a comment