the crud

not only do grown-ups without children have more free time/disposable dough, they don’t get the crud nearly as often. what surprises me is how the stuff they carry and spread doesn’t kill them, even as it makes us wonder if we’ll survive.

not only do grown-ups without children have more free time/disposable dough, they don’t get the crud nearly as often. what surprises me is how the stuff they carry and spread doesn’t kill them, even as it makes us wonder if we’ll survive.

why computer programming is not fun

Same instructions, similar toolchains, identical code base: why on one system do I get a “parse error:” In file included from core/compositor.c:42: /opt/local/include/X11/extensions/damageproto.h:140: error: parse error before ‘xRectangle’ /opt/local/include/X11/extensions/damageproto.h:140: warning: no semicolon at end of struct or union /opt/local/include/X11/extensions/damageproto.h:141: warning: type defaults to ‘int’ in declaration of ‘geometry’ /opt/local/include/X11/extensions/damageproto.h:141: warning: data definition has no type or storage class /opt/local/include/X11/extensions/damageproto.h:142: warning: type defaults to ‘int’ in declaration of ‘xDamageNotifyEvent’ /opt/local/include/X11/extensions/damageproto.h:142: warning: data definition has no type or storage class core/compositor.c:124: error: parse error before ‘XserverRegion’ but the same identical source files build without issue on another system? My admittedly limited experience in C doesn’t point out any obvious flaws in this struct: 133 typedef struct { 134 CARD8 type; 135 CARD8 level; 136 CARD16 sequenceNumber B16; 137 Drawable drawable B32; 138 Damage damage B32; 139 Time timestamp B32; 140 xRectangle area; 141 xRectangle geometry; 142 } xDamageNotifyEvent; So perhaps it’s in another header or source file or perhaps how this definition is used by the file that calls it.

I’m not even trying to write any code, simply trying to build something that works over here but fails over there. Same instructions, similar toolchains, identical code base: why on one system do I get a “parse error:”

In file included from core/compositor.c:42:
/opt/local/include/X11/extensions/damageproto.h:140: error: parse error before 'xRectangle'
/opt/local/include/X11/extensions/damageproto.h:140: warning: no semicolon at end of struct or union
/opt/local/include/X11/extensions/damageproto.h:141: warning: type defaults to 'int' in declaration of 'geometry'
/opt/local/include/X11/extensions/damageproto.h:141: warning: data definition has no type or storage class
/opt/local/include/X11/extensions/damageproto.h:142: warning: type defaults to 'int' in declaration of 'xDamageNotifyEvent'
/opt/local/include/X11/extensions/damageproto.h:142: warning: data definition has no type or storage class
core/compositor.c:124: error: parse error before 'XserverRegion'

but the same identical source files build without issue on another system?

My admittedly limited experience in C doesn’t point out any obvious flaws in this struct:


133 typedef struct {
134 CARD8 type;
135 CARD8 level;
136 CARD16 sequenceNumber B16;
137 Drawable drawable B32;
138 Damage damage B32;
139 Time timestamp B32;
140 xRectangle area;
141 xRectangle geometry;
142 } xDamageNotifyEvent;

So perhaps it’s in another header or source file or perhaps how this definition is used by the file that calls it. Not that the error message says that . . .

This brings up something that many young hackers may never run into: a lot of computer programming work is maintenance. But unlike hardware maintenance, with identical FRUs and well-tested diagnostics, software is not nearly as consistently standardized. One person’s clever shortcut is another’s unspeakable kludge.

It’s stuff like the error messages above that confirm my unsuitability for software engineering. For all its logic and structure, sometimes it seem like rough carpentry — measure once, shim to fit.

What is Pinhole Day?

Anyone, anywhere in the world, who makes a pinhole photograph on the last Sunday in April, can scan it and upload it to this website where it will become part of the annual Worldwide Pinhole Photography Day celebration’s online gallery. [From Worldwide Pinhole Photography Day – home ] Just loaded a film holder to take to a birthday party: we’ll see what we get.

Anyone, anywhere in the world, who makes a pinhole photograph on the last Sunday in April, can scan it and upload it to this website where it will become part of the annual Worldwide Pinhole Photography Day celebration’s online gallery.

[From Worldwide Pinhole Photography Day – home]

Just loaded a film holder to take to a birthday party: we’ll see what we get.

corner detail

The board is recessed 1/4 inch into the frame all the way around and as a result, the whole thing went together with no fasteners, just glue and lotsa clamps (does anyone ever have enough clamps?)…. The frame is finished with a cherry stain I had a little bit of (I think it came with the house) and the board was primed and painted with ordinary interior latex.

This is a recent project I took on for two purposes: one, to generate a little coin and two, to learn some new skills. The objective was to make a game board, but it is a little more involved than that. What I ended up with was a board with 143 (11 rows of 13) 1/4 inch deep circular depressions, mounted in a box frame. So I ended learning how to cut dadoes , a couple of different approaches to mitered corners, and the use of a router in a repetitive style.

The material is 1/2 inch oak cabinet plywood. The board is recessed 1/4 inch into the frame all the way around and as a result, the whole thing went together with no fasteners, just glue and lotsa clamps (does anyone ever have enough clamps?). I don’t have a strap or band clamp but a couple of bungee cords worked just fine.

The frame is finished with a cherry stain I had a little bit of (I think it came with the house) and the board was primed and painted with ordinary interior latex. It would have been nice to have that stained or left natural but I don’t know if I could have removed all the pencil marks.

The picture I worked from had little bumpers in the corners to deflect the game pieces — marbles — back into play, but it doesn’t look like I need them. All in all, I am pretty pleased with how it came out. I had to buy a router bit (at the world’s greatest hardware store) and of course some materials, but I still come out a little in the black.

for sale

Working with Delicious Library, I found some items that are surplus to my requirements.


“Unix C Shell Field Guide” (Gail Anderson, Paul Anderson)


“Accelerated C++: Practical Programming by Example (C++ In-Depth Series)” (Andrew Koenig, Barbara E. Moo)


“Sun Performance and Tuning: Java and the Internet (2nd Edition)” (Adrian Cockcroft, Richard Pettit, Sun Microsystems Press)

7ab21363ada0f936ed120110._AA240_.L.jpg

“Java Enterprise Computing: Enabling Breakaway Business Strategies” (Sun Microsystems)

not bad

Your final score was 132/180

Mix-Tape Master (109-144 points)
You are a music evangelist: the person in your network of friends who always has the coolest new song, the one whose iPod gets picked to DJ every party. You understand the art of the segue, how the key to the best mix-tape isn’t just the songs you pick, but how they interlock with each other. You also know who the up-and-coming acts are and are quick to recognise where their influences lie and whether they will make it big. You work hard at the pursuit of this knowledge, scouring music blogs, magazines and record stores. Most importantly, you are generous with your passion – and your friends should be very, very grateful. Still, it’s always good to get new inspiration for your latest mix.

[From Music Intelligence Quiz Results]

what’s wrong with this picture?

Another civil war? Hmm, maybe that will slow down greenhouse gas generation . . . it’s all about the Yankees trying to hold the Southrons back.

Right. Lest we forget, here’s the (corrected!) map of the balance of Federal funds, with blue states paying and red states receiving:redblue.gif

The next time that the South pays its fair share will be the first time, at least in the last 160 years. But remember, it’s okay to talk about the violent overthrow of the US government if you’re a conservative Southerner…

[From Lawyers, Guns and Money: Treason In Defense of Global Warming]