Quick change list overview script

A part of my daily routine when arriving at the office in the morning is a quick overview of the code changes since the previous day. It’s not a full blown code review, I only rapidly look at the most important parts of the code base, but I make a point of doing it every day. It allows me to stay informed and notice if something is wildly going in the wrong direction.

This is something I do every day, so it has to be quick and simple. I don’t want to have to open three windows, ctrl-select and right click all over the place. Especially since, like I said, it’s the morning, meaning my neurons are still not talking to each other much yet. I need something dead simple.

Here is a short command line shell script I wrote for doing just that: show me the changes since the previous working day. It uses date with some fancy options to figure weekdays, as well as colordiff and less for comfortable reading. Just launch it from the terminal, and there you have all the changes ready to be scrolled. Feel free to use it if you find it useful.


if [ $argn -lt 1 ]
    echo "Usage: $0 <paths>"
    exit 1

startDate=`date --date="$dateRequest" +"%F"`
startDay=`date --date="$dateRequest" +"%u"`

if [ $startDay -gt 5 ]
    dateRequest="last Friday"
    startDate=`date --date="$dateRequest" +"%F"`
    startDay=`date --date="$dateRequest" +"%u"`

echo "Changes since $startDate:";echo;echo

for d in $@
    echo "$d"
    svn log -r{"$startDate"}:HEAD "$d"
    svn diff -r{"$startDate"}:HEAD "$d" -x --ignore-space-change | colordiff
) | less -R

The frame debugger in Unity 5

Aras Pranckevičius wrote on the Unity blog about the new frame debugger feature they added to their editor: Frame Debugger in Unity 5.0. The hack, he calls it, is very simple and just consists in interrupting the rendering at a given stage and display whichever frame buffer was active at the moment. Just a couple of days of work; most of the work went into the editor UI.

From the article:

There’s no actual “frame capture” going on; pretty much all we do is stop rendering after some number of draw calls. So if you’re looking at a frame that would have 100 objects rendered and you’re looking at object #10 right now, then we just skip rendering the remaining 90. If at that point in time we happen to be rendering into a render texture, then we display it on the screen.

This means the implementation is simple; getting functionality working was only a few days of work (and then a few weeks iterating on the UI).


Illustration from the article: “Here we are stepping through the draw calls of depth texture creation, in glorious animated GIF form”

Two online color picking tools

Color Scheme Designer is a tool I have been for a while now, but more recently I discovered Color Sphere. Both are very helpful when it comes to choosing an harmonious set of colors. Color Scheme Designer gives much more control over colors repartition and has more export options, while Color Sphere has more rules and a simpler interface. Both allow to test the color set against various kinds of color blindness.

Tools of Love

Talking about The Toolsmiths and content creation, the single most impressive content creation workflow demonstration I have seen so far is probably the one they made a post about a few years ago.

In this video, Eskil Steenberg presents the tool he wrote for his game, Love. The tool gives an instant feedback and shows the results of modifications just as they go, while any concept of loading, saving, exporting, synchronizing or even file in general is gone, abstracted away.

Bret Victor – Inventing on Principle

The Toolsmiths, a blog focused on content creation tools for video games, mentioned this enlightening talk by Bret Victor. The first part has some thought provoking ideas for programmers and anyone in a creation process in general. This will certainly strike a chord or two if you’re in the demoscene or in the video game industry.

Mesh generation in Farbrausch demos

Back in 2007, the German demogroup Farbrausch was releasing its masterpiece, fr-041 Debris. Aside from the artistic qualities of this demo, it is impressive by its size: just 177kB worth of binary, for a seven minutes long full featured animation. The equivalent of a mere ten seconds of mp3 of poor quality. Size coding at work.

Reaching such a result requires dedicated tools, compression of course, but more importantly, content generation. Fabian Giesen offered in a recent blog post to give some details of the techniques used for this demo. After a quick poll, he decided to start with mesh generation, hence the first post of a very promising series: Half-edge based mesh representations: theory.

Representing a mesh with half-edges (picture stolen from the aforementioned article; diagrams that took this much time to create are worth showing ;) )