18/08/2009
Jon Winokur — The Big Book of Irony — St-Martin’s Press, 2007, 174 pp. ISBN 978-0-312-35483-1

(Buy at Amazon.com)
Winokur gives us the complete irony guide; from verbal irony—the most frequent one, when someone says something while clearly meaning the exact opposite—to auto-irony passing by morrisettian irony (irony mistook for coincidence or something else). You’ll learn a great deal about irony. Plenty of à propos quotes. Not exactly a book for the beach, but not very serious either.
Leave a Comment » |
Life, Suggested Reading, Zen | Tagged: alanis morissette, irony, morisettian irony, verbal irony |
Permalink
Posted by Steven Pigeon
11/08/2009
Not all computer cases are equally well designed. That, I’m sure, you know. The thing you may not know, is just how badly designed certain cases are. Not only are they hard to service, they can be detrimental to your hardware! I recently had to change the hard drive from my backup box and ended up changing the whole kit altogether because the old machine did not recognize the new 500GB hard drive. So I reused my old Compaq Presario 6400nx computer, which does recognize the 500GB hard drive, but makes it run very hot. I mean, very hot.

The new drive, although almost idling except for the nightly backup scripts and whatnots, got to 50°C. Even if 50°C is within the manufacturer’s expected operating parameters (10 to 55°C, or similar), that’s about 20°C more than my main workstation’s hard drive that runs around 30–35°C. That got me worried because it is well known that high drive temperature shortens its life considerably. So I decided to solve the problem using tie-wraps—no, not à la McGyver.
Read the rest of this entry »
2 Comments |
hacks, Life in the workplace, Zen | Tagged: 500GB, 80mm, ACPI, case, casing, compaq, compaq presario, computer, duct tape, fan, hard drive, hot, IDE, McGyver, presario, sensors, temperature, tie-wrap, tie-wraps |
Permalink
Posted by Steven Pigeon
07/07/2009
Old computers are not always ready for the scrap pile the second you don’t have any use for them. Of course there’s always recycling—your local area most certainly has a computer and electronics recycling facility—but there are better things to do with your old computers, provided they’re still functional and usable.

A Commodore c64sx. Photo © Erik S. Klein
Read the rest of this entry »
3 Comments |
Life, Zen | Tagged: data privacy, Insertech, iSore, iSore 4000, iSore 5000, Non-Profit Organization, NPO, root, social insertion, social reinsertion, su, sudo, thermite, wiping hard drive |
Permalink
Posted by Steven Pigeon
29/06/2009
I am not sure if you are old enough to remember the 1977 IBM movie Powers of Ten (trippy version, without narration) [also at the IMDB and wikipedia], but that’s a movie that sure put things in perspective. Thinking in terms of powers of ten helps me sort things out when I am considering a design problem. Thinking of the scale of a problem in terms of physical scale is a good way to assess its true importance for a project. Sometimes the problem is the one to solve, sometimes, it is not. It’s not because a problem is fun, enticing, or challenging, that it has to be solved optimally right away because, in the correct context, considering its true scale, it may not be as important as first thought.

Maybe comparing problems’ scales to powers of ten in the physical realm helps understanding where to put your efforts. So here are the different scales and what I think they should contain:
Read the rest of this entry »
1 Comment |
algorithms, assembly language, bit twiddling, CPU Architecture, data structures, Design, hacks, Instruction Sets, Life in the workplace, Object Oriented Programming, Operating System, Portable Code, programming, theoretical computer science, Zen | Tagged: 1977, atomic, bit twiddling, branch prediction, C Standard Library, class, classes, coding, compatibility, CPU, ecosystem, global, graphical user interface, GUI, IBM, instruction, instruction set, interoperability, macroscopic, mesoscopic, methods, micro-code, micro-instruction, micro-optimization, microscopic, molecular, networking, Object Oriented Programming, Operating System, optimization, out of order execution, POD, powers of ten, premature optimization, registers, speculative execution, string, subatomic, system |
Permalink
Posted by Steven Pigeon
03/06/2009
Q. Why did the multithreaded chicken cross the street?
A. To the get other to side
Leave a Comment » |
programming, Zen | Tagged: chicken, multi-threaded, multi-threading, multithreaded, multithreading |
Permalink
Posted by Steven Pigeon
19/05/2009
My first true computer, a TI 99/4a (which I talk about also in a previous entry), had 16 or 48 KB of RAM, depending whether or not you had one of the memory expansion cartridges, and that limited quantity of memory severely curbed the complexity of the programs one could write on the machine. However, the limited complexity of the programs, the relative crudeness of the development environment (a BASIC shell) and the slow execution speeds weren’t very obvious to me back then. They were somewhat mitigated by the novelty of the computer itself as a machine, and by the perpetual intense excitement of discovery. The arduous design of programs to save memory, fit more graphics or more code, or even getting our programs to work at all was less about constraints than challenge.
The same kind of constraints—or challenge—followed me over the years as I moved on to different computers. Despite their being more powerful, both faster and sporting more memory, the challenge remained there because while the computers got better, so did I at programming. I kept asking more out of the machine, writing increasingly complex programs needing either more memory or more speed, often both. That meant better algorithms, better data structures, and better implementations1.
Read the rest of this entry »
Leave a Comment » |
algorithms, bit twiddling, data structures, embedded programming, hacks, Life in the workplace, programming, Zen | Tagged: bad design, computer, Daisy Owl, frugal programming, laziness, memory usage, novelty, optimization, TI-99/4A |
Permalink
Posted by Steven Pigeon
12/05/2009
You are given the following assignment:
You are to write a program that must fulfill these simple requirements:
For the numbers from 1 to 100,
- If the number is a multiple of 3, print fizz instead of the number.
- If the number is a multiple of 5, print buzz instead of the number.
- If the number is a multiple of 15, print fizzbuzz instead of the number.
- Otherwise, print the number itself.
- Each output should be followed by a new line.
Can you code that and get it right in less than one minute? In less than two? How many retries will be necessary? Open your favorite editor for your favorite programming language. Ready? Set? Go!
Read the rest of this entry »
38 Comments |
algorithms, Life in the workplace, programming, Zen | Tagged: algorithm, buzz, fizz, fizzbuzz, requirements |
Permalink
Posted by Steven Pigeon
05/05/2009
When you’re designing interfaces or adjusting your color photos, you must be able to rely on your computer screen for color accuracy. As you may know, I am an amateur photographer and, consequently, I often post-process my pictures to make them actually presentable. However, I would never do such a thing on my Dell laptop because the matte LCD screen is… well, let’s say not up to the task. Red ends up somewhat salmony, so I really can’t use it to do any kind of decent photo processing. My old Vaio, on the other hand, with its glossy display renders stunningly deep and vibrant colors.

But just how much can you trust your display? Can you adjust it without buying the rather expensive color calibration gizmos yet have decent results? In this week’s post, I present my techniques (meaning: tricks) to calibrate LCD (most also apply to CRT) screens.
Read the rest of this entry »
3 Comments |
Life in the workplace, Zen | Tagged: Analog Signal, color, Color Adjustment, Color Calibration, DVI, GPL, HDMI, Pixel Clock, Resolution, True Color, VGA |
Permalink
Posted by Steven Pigeon
21/04/2009
Magic Squares are much less frequent than latin squares in computer science (on which we may come back in the future), but they have a number of (fun) applications.
Historically, magic squares are tied to numerology, alchemy and other esoteric sytems. However, as you may already know, I’m not interested in pseudoscience except to debunk it, so this post isn’t about using magic squares turtles to predict the level of the river running behind your house.

Albrech Dürer's Melancholia I
Read the rest of this entry »
Leave a Comment » |
algorithms, hacks, Life in the workplace, Mathematics, Zen | Tagged: algorithmics, connections, Dürer, debunking, esoterism, graph theory, latin square, magic square, magic turtles, Melancholia, number theory, numerology, pseudoscience, reduction, tic-tac-toe |
Permalink
Posted by Steven Pigeon
24/03/2009
If you, like me, hang out once in a while on IRC to chat with fellow programmers (or with fellow practitioner of your favorite hobby), you may find that some individuals are just not worth your full attention. One easy, and rather definitive way to deal with the problem is to use the /ignore command that allows your IRC client to filter incoming messages from those people, and you just never see them again… quite literally.
However, just /ignoring someone is rude, and may prevent you from keeping a eye on them. You know, the “keep your friends close, your enemies closer” kind of thing.
A long time ago, with a friend, I wrote a mIRC script that shaded the “ignored” people’s text so that it was hard to read (like dark gray on blue), but the text was still available. To view the text, you could either squint or select the text. This week, I present a python version of that script, for XChat, based on the work of Albert W. Hopkins, a.k.a. Marduk, released under the GPL.
Read the rest of this entry »
1 Comment |
hacks, programming, Python, Zen | Tagged: Bugger, Fitler, IRC, Plug-in, Python, XChat, XChat Scripting |
Permalink
Posted by Steven Pigeon