Lost+Found: Pong!

14/11/2010

click to play

Inspired by the classic Pong, Eisenfunk gives us a great Industrial music video.


Scary Code

09/11/2010

If you code a lot in a week, you’re bound to make some (possibly) amusing typos. Almost every time, the typo is detected by the compiler and an error is issued, but sometimes you manage to (mis)type valid code! And I recently make one of those typo and I started wondering how far we can push this idea in writing really, really, really, really ugly code.

Read the rest of this entry »


Suggested Reading: Digital Landscape Photography

03/11/2010

Michael Frye — Digital Landscape Photography: In the Footsteps of Ansel Adams and the Great Masters — Focal Press, 2010, ISBN 978-0-240-81243-4

(Buy at Amazon.com)

(This is off-topic for this blog, but you may know that photography is one of my hobbies.)

Frye presents various techniques to create great landscape photography in a spirit inspired by the great masters, in particular Ansel Adams. He discusses many technical aspects, such as the zone system, but focusses on composition and on the ever elusive nature of light: is light too hard? is it soft? warm? Does the light produce the right constrasts? Are the shadows interesting? Are the bright regions in the right places?

Of course, most of the images used in the book are breathtaking!


Source-Level Versioning?

02/11/2010

When you develop software, you’re always dealing with dependencies, and, if you’re lucky (or have made a quite enlightened choice of dependencies), you don’t have to worry too much about version numbers. But what if you do?

Read the rest of this entry »


Patching the Environment for ‘exotic’ Libraries

26/10/2010

Every time I add a development library (or any other application) that is not found in my distro‘s repositories, I ask myself how troublesome it will be. If you’re really lucky, it comes in a package (and repository) compatible with the target distribution (like a Debian package or a RPM) and everything is just fine: you install it from the package manager, and that’s it. But if not, you have to download a tarball from some (more or less trusted) location like Sourceforge. It usually comes with a rather well designed set of configure, make, and (sudo) make install scripts that reduces configuration to little more than launching the configuration script, check for any unmet dependencies, add them and rerun the configuration script until they are all met, and then make install performs a smart, standard location install and you’re done. You won’t have the automagical upgrades with everything else, but you can go on with your life.

Then again sometimes you have to install a library (or application) that either has a half-baked installation script, or is incompatible with your distro, or, cerise sur le gâteau, both. And, just to aggravate you just fine, it installs to a non-standard location requiring you to specify include and library paths in your make files or just to invoke the application. And, of course, default location will change from from /usr/local/shared/thislib/ to /usr/shared/include/thislib between version 2.1.5 and 2.1.6, just to make sure to break just about everything you set up.

Read the rest of this entry »


Sound Screen

19/10/2010

Even if you pay some extra to get low dB fans and set your BIOS to have varying fan speeds it still can be quite far from quiet. 20 dB isn’t that loud, but it’s not silence, and— let us be blunt —adaptive fan speeds seems pretty much to alternate between off and full blast. If your computer is near a wall, the noise reverberates through the room, and the low-frequencies leak in the room on the other side of the wall.

So to muff the sound, I build a “sound shield” made out of custom upholstered panels.

Read the rest of this entry »


Suggested Readings:Computer Architecture: A Quantitative Approach

17/10/2010

John L. Hennessy, David A. Patterson — Computer Architecture: A Quantitative Approach — 4th ed., Morgan Kaufmann, , 704 pp. ISBN 0-12-370490-1

(Buy at Amazon.com)

Computer Architecture: A Quantitative Approach is probably the most up-to-date and comprehensive introductory text for computer architecture, covering a broad spectrum of topics from micro-instructions to multi-core parallelism. This book is different—from the aging Advanced Computer Architecture: Parallelism, Scalability, Programmability by Kai Hwang (1992, now out of print) for example—in that it takes a quantitative approach, motivating most statements by hard numbers, simulations and benchmarks.

Read the rest of this entry »


Random Points on a Sphere (Generating Random Sequences III)

12/10/2010

Last week, we discussed how we could generate uniform random points in a triangle using a (tiny) bit of linear algebra, mostly the parallelogram rule, and a random variable uniform on [0,1]. It required a tiny bit of math and was computationally very simple.

This time, let us see how we can generate uniformly distributed random points on a sphere.

Read the rest of this entry »


Random Points in a Triangle (Generating Random Sequences II)

05/10/2010

In the first post of this series, I discussed a method to generate a random (guaranteed) permutation. On another occasion, I presented a method to recycle expensive random bits. Today, I will discuss something I had to do recently: generate random points inside a triangle.

Read the rest of this entry »


Soul, Guts, Code.

28/09/2010

In a previous post I told you about where to get (legal, free, and DRM-free) Music for your coding needs.

Here’s another short list of music for your soul, your guts, and to code.

Read the rest of this entry »