17/08/2010
Tomorrow’s flowers are in the seeds of today.
Chinese proverb

Read the rest of this entry »
2 Comments |
algorithms, C99, hacks, wtf, Zen | Tagged: Chinese Proverb, pseudo-random, random, weasel, whale |
Permalink
Posted by Steven Pigeon
10/08/2010
HAMLET:
Do you see yonder cloud that’s almost in shape of a camel?
POLONIUS:
By the mass, and ’tis like a camel, indeed.
HAMLET:
Methinks it is like a weasel.
POLONIUS:
It is backed like a weasel.
HAMLET:
Or like a whale.
POLONIUS:
Very like a whale.
Hamlet, Act III
William Shakespeare

Read the rest of this entry »
7 Comments |
algorithms, C99, hacks, wtf, Zen | Tagged: Hamlet, Polonius, pseudo-random, random, Shakespare, weasel |
Permalink
Posted by Steven Pigeon
03/08/2010
Progress, as conceived by most people, consists in replacing older objects, techniques, or philosophies by newer, better, ones. Sometimes indeed the change is for the better, but sometimes it is just change for change—ever had an older device of some sort that was perfectly adequate for your usage, yet you still replaced it with a newer version with no net gain? Unfortunately, the same happens with ideas, especially with mathematics and computer science.

But there are lessons to be learnt from the past. I’m not talking about fables and cautionary tales; I’m talking about the huge body of science that was left behind, forgotten, superseded by modern techniques.
Read the rest of this entry »
1 Comment |
Life, Mathematics, Science, Zen | Tagged: Abramowitz, Antikythera, Antikythera Mechanism, Antiquity, Compendium, Forgotten Knowledge, Formulae, Formulas, Planetarium, Stegun, Upgraditis |
Permalink
Posted by Steven Pigeon
13/07/2010
Programming is in many ways more art than science—I do not want to start that debate in this post—in that you need more than mere functionality and correctness to have great code. For code to be great, it has, amongst other things, to be beautiful in that strange, vague, language-specific way.

As you know, this blog is C and C++-centric. Those are the two main languages I use both for personal and for professional projects. I resisted the transition from Pascal to C a long time, for many reasons. One was that at that time C compilers were flimsy, while we had a couple of really great Pascal compiler, such as Turbo Pascal—quite the upgrade from my Apple II’s USCD Pascal. Another was that I found C just ugly, clunky, and primitive; it was terse and inelegant. But over the years, I learnt to like the way C gives you pretty good control on what code is generated—not that you can predict right down to the assembly instructions what the compiler will generate; but you still have a very good idea if you understand even vaguely the underlying machine.
Read the rest of this entry »
3 Comments |
C, C99, embedded programming, hacks, Life in the workplace, Object Oriented Programming, Portable Code, programming, rants, Zen | Tagged: C, Mordor, ostringstream, Pascal, Programming Language, Python, Turbo Pascal |
Permalink
Posted by Steven Pigeon
23/06/2010
Every once in a while, if you’re not using a rolling release distro like, say, Arch Linux, you have to dist-upgrade your machines. Dist-upgrading consist in upgrading pretty much everything on your computer to the new version sets that correspond to the next distro. I just upgraded from Koala to Lynx.

And, well, …
Read the rest of this entry »
Leave a Comment » |
Life in the workplace, Operating System, Zen | Tagged: dist-upgrade, everything went better than expected, fffffffffffffffffffffffuuuuuuuuu, Linux, Lucid Lynx, Macbook, Poulsbo, Ubuntu, Ubuntu Linux |
Permalink
Posted by Steven Pigeon
15/06/2010
Parallel computing is the next paradigm shift, everybody knows this, but not everyone is taking the proper action to face it adequately. One thing to do is to read on the subject and force oneself to code using threads and various degrees of parallelism; and that’s pretty easy now that a quad core machine doesn’t cost all that much. But the next step, distributed computing, necessitates, well, more than one machine, and if you have different levels of memories and communication channels, all the better.

So out of a bunch of old x86 PCs, I’ve decided to build my own portable mini-cluster with 8 nodes. Nothing all that impressive, but still plenty of fun to build.
Read the rest of this entry »
30 Comments |
hacks, Operating System, programming, Zen | Tagged: Cluster, DIY, MDF, multi-threading, networking, NUMA, old PCs, parallel computing, recycling, threaded rods, why not?, x86 |
Permalink
Posted by Steven Pigeon
04/05/2010
Leave a Comment » |
algorithms, hacks, Life, Mathematics, Zen | Tagged: algebra, Equation System, Equations, Generality, Geometry, Paradigms, Simplicity, Vector |
Permalink
Posted by Steven Pigeon
27/04/2010
Mathematics is still full of surprises. The solution to simple to state problems may elude mathematicians for centuries. One example is the celebrated Fermat’s Last Theorem (stating that equations of the form
have no integer-only solutions for
) that was finally solved by Andrew Wiles with tools Fermat couldn’t possibly know nor understand1.

Another one of those problems is the Collatz Conjecture. Proposed by Lothar Collatz in 1937, the conjecture is that a simple recurrence function—that we will discuss in detail in just a moment—terminates for all natural numbers. This one, however, isn’t solved yet.
Read the rest of this entry »
7 Comments |
Data Visualization, Mathematics, Science, Zen | Tagged: Collatz, DAG, Directed Acyclic Graph, Directed Graph, Fermat, FLT, GraphicsMagick, GraphViz, LHC, Mathematica, Recurrence, Wiles |
Permalink
Posted by Steven Pigeon