Accidents 2

Sheesh, another accident witnessed. A woman in the lane next to me was driving a brand new BMW, was following too close to the car in front of her, and was not paying attention when the cars ahead of her stopped for a left-hand turn. Last second evasive action hurt more than it helped; she probably had time to brake, her car’s ABS system would at least have reduced the collision to a light fender-bender, rather than a full-on airbag-deploying, radiator-coolant-everywhere whole-front-end crunchbang. She tried to swerve instead; stupid thrice, good thing no one was in the lane she tried to swerve into.

All lanes were blocked — no breakdown lane, no place to pull over — so I helped push the wreckage into a nearby parking lot. In the meantime the morons behind me were honking. Anyone wanna help? No (the horns seemed to say), just push the heaps to the side faster so we can move on, oh why O why are you still in the way?

No injuries.

(The accident I was next to last year was a person who made a sudden lane change without checking to see if anyone was approaching from the rear. Her car — also new — was blasted into fragments of plastic against a nearly indestructable pick-up truck. The other driver was more irked at being late than having the existing dents on his truck scratched up.

Let’s just say this: In all of these accidents, everyone got to walk away. Crush-zones, seat belts, air bags and decent frame design are at least helping people shrug off accidents that probably would have crippled someone thirty years ago.

O-O comment

Someone tried to post the following comment to my posting last month about Bruce Eckel. Comments may or may not be broken, so I’ll repeat it here.

—-
You should see the POS I’m working on. Chock-full of every OOP buzzword, stuffed to the gills with all the goodness of patterns, and yet: hard to modify (brittle), unreliable, and extremely low-performance software. I’m ashamed to have my name on it. (FWIW, I was not the ‘architect’ so I’m just along for the ride.)

Run, do not walk, to the nearest web browser, and view this stuff (by MSoft-ian Rico Mariani)

http://channel9.msdn.com/wiki/default.aspx/Channel9.RicoM
http://blogs.msdn.com/ricom/

Rico’s stuff on ‘oopaholic’ design is a thing to behold. This video in particular is not to be missed:

http://msdn.microsoft.com/netframework/programming/classlibraries/clrperformancetips/

Cheers,

Smurfie
—-

Bingo. Personally I think that O-O makes things HARDER. The best O-O designs I’ve seen have had tens or maybe hundreds of man-years invested in them (counting all the stealing from generation to generation of product). Why do J-random bozos think they can waltz in with buckets of inheritance and overloading, spray the walls thick, and have automatic success? Those are kids tales. Real O-O successes are won with pain, by tossing out crap that doesn’t work, and by backhanding the slobs who keep trying to stick three extra layers of stuff in “Just in case.”

“It’s a factory.”

“I know that. Why do we need a factory there?”

“Uh, because factories are good things to have.”

“Take it out. Factories are things you work in. Factories are dirty, nasty, dark places full of machinery that will take your ass-skin off and turn it into a soccer ball the moment you stop paying attention. Factories are where poverty-stricken, ignorant sumsabitches come to work still drunk from last night’s bar fight and stick doodads together using a laser welding torch that last month killed three workers when someone lit a cigarrette and forgot to turn off the welder’s power supply. Factories kick you out when you’re sixty five with a cancerous colon and a sixty dollar a week pension, and the only things you know how to do are (A) stick doodads together with that torch, and (B) have fights in bars. Don’t talk to me about factories. Don’t talk to me about stupid useless factories, okay?”

“Sorry, uh, yeah . . . okay.”

“Is this next file a singleton?”

“Yeah.”

“Get out of my sight and don’t come back until it’s either gone or does thread-safe teardown correctly.”

Sometimes the best thing that can happen to you is a catastrophic disk crash that wipes out all your source code and forces you to take a fresh look at things. Perhaps modern revision control systems are a little too unforgetful.

Boingity boing

Here’s an absolutely wonderful blog by a semi-anonymous bouncer. Well worth digging through the archives. Link.

If only things were that interesting at the place where I work… 🙂

Book Musings

I don’t know why I expected Dan Simmons’ Ilium to suck, but it most definitely does not. Maybe it’s my near utter disinterest in the whole Iliad thing; Gods and heros acting childish and stupid, jabbing swords into each other on some godforsaken plain in order to settle a custody battle over some king’s tart. But Simmons breathes some life into the whole affair, giving you characters that you might care about instead of a mob of unlikeable, braggart, numbskull heros. Recommended, even if lists of Greek and Trojan casualties give you hives. (The concluding book is out, so you don’t have to worry about getting Farmered).

Most CS writing makes me want to pluck my eyeballs out with a spork. Joel Sposky has a collection of essays by other people out, The Best Software Writing I, and it looks pretty refreshing. Most of the contents you can already find on the web (e.g., Your Starbucks Doesn’t Use Two Phase Commit), but it’s nice to have some decently written material all in one spot. It’s a nice, light read when you’re not actually after, say, how to make a two-phase commit actually work.

I have a love-hate relationship with Charles Stross’ Accelerando. It’s a number of short stories glued together into a novel, following a rather screwed up family through three generations as they live through a Vingian singularity.

Singularity? Briefly: A point in time where the curve of acclerating technological advances becomes so rapid (e.g., a week, a day, an hour in which advances are made that dwarf all previous periods) that you can’t make any predictions about what will happen. Some givens: Way too powerful sentient hardware, working nano-technology, economic systems that are basically too advanced for humans to understand or participate in. You are not expected to be able to understand what is going on. Most singularity stories deal with the smoking rubble after the curve melts down.

The problem is that it is extremely difficult to write about characters that are smarter than you are. Niven noted this when he wrote Protector, and sweated tons of details that only become apparent long after you finish the book, and John W. Campbell had a policy of rejecting stories about supermen (One rejection slip to a famous author: “You can’t write this story. No one can.”) It’s hard to know what a super-intelligent being will decide what to do.

Stross makes it palatable by following characters who are (mostly) just ordinary humans, maybe a little smarter than we are, or disadvantaged in certain ways (e.g., slightly crazy). He uses the inevitable super-intelligences as a backdrop, like a threatening sea-storm that could take out the little boat. Protagonists in Accelerando are reduced to “rats in the walls” status, avoiding contact with the big, bad smart things. But even handled with kid gloves, the book starts reading a little like Robert Reed’s Sister Alice, which unfortunately does attempt to deal directly with characters that have superhuman ability and intelligence, and winds up just about as boring as any of E. E. Doc Smith’s planet busters. You’re always left wondering what whizzbang gadget the author is going to whip up to get the damsel out of distress, because anything goes when you know more than the reader.

Don’t get me wrong: I liked Accelerando a lot, especially the last chapter, and I do recommend it. It’s just somehow unsatisfying in terms of what the characters can do about their predicaments.

And I do want a pair of those magic heads-up-on-steroids glasses that the main character loses in the second chapter . . . after a suitable low-level format.

Books in the Queue

Charles Stross, Accelerando (SF, short stories glued into a passable novel)
Jim Rogers, Adventure Capitalist (travelogue, financial musings, also wrote the excellent, if dated, Investment Biker)
Hope Mirrlees, Lud on the Mist (fantasy)
Ian MacDonald, River of Gods (SF)
Liam Callanan, The Cloud Atlas (WWII fiction set in the Pacific Northwest)
Peter Hessler, River Town (memoir of two years in China)
David Gerrod, Child of Earth (SF)
Lucius Shepard, Two Trains Running (weird mix of fantasy and real life American train adventure)
David Vann, A Mile Down (high seas construction memoir)
Barbara Ravage, Burn Unit (history of modern burn treatment)
Murray Leinster, A Logic Named Joe (collection including The Pirates of Zan, Gateway to Elsewhere, The Duplicators, and short stories)
Michael Lewis, Liar’s Poker (late 80s Wall Street finance)
Spike Walker, Working on the Edge (Alaskan crab fishing adventures)

Accidents

It happens in the blink of an eye. This is why you stay alert.

I’m driving, with passengers, on a freeway that is moving briskly. There is a sudden commotion a few hundred yards ahead, it’s hard to see what happens, but a car shoots out tumbling to the right, a truck bucks and swerves as it brakes heavily, a bus rocks like it was kicked. Other brake lights come on and traffic slows. I worry about the drivers behind me, but they manage to brake on time, too. By the time we reach the scene, the people directly involved are on the side of the road, on their cell phones and starting to get out of their vehicles.

I’ve seen this two or three times in the past couple of years.

Once upon a time I was a passenger in a car where the driver was following very close indeed (say, a car length), in 65 mile an hour traffic. I told the person it would be a good idea to get more distance.

“Why? It’s not like they’re going to slow down suddenly.”

I heard of an older driver once who never used the radio. “Too much of a distraction,” he said.

Pay attention, stay alert.