Technical Difficulties from on Top of the Mountain
2004-07-27
Dealing with authority
Justin had a run-in with the law over putting up posters, and it reminded me of one particularly stupid adventure of mine taking down posters.

We had a bunch of posters stuck on cement posts (holding up a cement balcony). Marvin and I thought they looked ugly, and since the tape had aged and couldn't be pulled off, we decided to see if we could burn them off with a propane torch. We had a stack of them smoking away when the campus rent-a-putz showed up and started trying to hassle us.

"You can't do that," said the putz.
We continued to demonstrate that the laws of thermodynamics were on our side. Our college tradition is not to suffer idiots.

Finally the putz called for backup, and an older and wiser security guard showed up.

"I'd rather you didn't do that," he said, wisely.
"Why not," we asked.
"Well, its making some pretty thick smoke, and leaving a rather big black smudge on the pole."
"Hmmm. Yes, well, I guess we could stop."
"Ok, thanks."

I'm still impressed with his ability to engage us and convince us to stop, instead of trying to pull the authority card. It continues to be a roll model for me when working with others (especially youth). No threats, no loud voices, no pulling rank -- just intelligent conversation and respect.

The amazing speed (or lack thereof) of dialup
I am away from home this week (thus an additional excuse for not posting), but occationally I'm able to sneak away from the kids I'm teaching and go check in online. The camp has a dialup line, and I'm connecting at a pretty good speed for dialup, but its still remarkably unbearable.

While an ssh window is usable, and the google home page isn't very busy, so many interactive sites are filled with massive quantities of javascripts and the like that it takes forever. Yahoo mail isn't too bad, and actually one of the worst is GMail. I must of downloaded close to 300k just to get started (not a scientific measure, just seat of my pants). That takes minutes on a dialup line. Then there's the resource usage. At first I was going to try and use the computer already setup here, but since it only had 256MB of memory, the machine was so loaded that even scrolling a listing at eBay was painful.

For now I'm keeping my online use to a bare minimum just to keep my frustration level at a minimum, but I truely feel sorry for people who are connecting that way on a regular basis.

2004-07-22
New TIG machines
I'm borrowing a Miller Maxstar 140 which is a little portable stick/TIG welder, to take to christian youth camp next week which is cool. The thing is about the size of a lunch box (and about as heavy), but will put out 140amps for stick or TIG welding. I gave it a try, just to remind myself how to do it, and after burning the end off of the tungsten electrode a couple times when I forgot to turn on the Argon, I got down to business making some welds.

Boy, inverters are smooth. No wandering, pulsing or poping. This unit doesn't have high frequency, so its lift-start, which isn't ideal, but serviceable. It just hums right along after started, and the box is so small that its easy to keep it right to the side, and just adjust the power output as you go. And it didn't seem like I needed that much power (compared with an older Sychrowave). 20 amps was more than enough on some 16gauge, and even at 100amps, I was fusion welding 1/4" plate just fine. Even held its arc down to 5amps, making the tinyist little melt dimple on the face of the metal. If it wasn't for the fact that its a DC only machine, I could probably weld tinfoil with it.

With a few extra electrodes, cups and collets; I should be all set. (Jim Hess was complaining that I shouldn't be breaking cups, but I reminded him that the last time I was welding I managed to break one anyway. I've got to plan for not what should happen, but what could happen.)

2004-07-20
A good book and a great story
I picked up Phobos last week from the library and basically didn't put it down until I had finished it. Its a classic space adventure, in the style of EE "Doc" Smith and Issac Asimov, and while some reviewers claimed they had it all figured out ahead of time, I pretty much followed the narrative, being in the dark about certain things up until the end. Once in a while the dialog between the team is a little clunky as he reuses the same jokes over, but overall its very enjoyable.

But its an even more interesting story about how this author "broke" into the business and got his first book published. Starting from nowhere, he was bound and determined to make his way into the business and he worked it from all angles. He networked with the agents, he started his own online scifi magazine, and he wrote a lot of letters. Some of his notes on getting published are here. Of course the journey is not over. He's already got a sequel written, but being a first time author, Tor isn't about to go wild rushing another book out. Instead he's still in the Land of Waitandsee. Still his attitude is pretty good:

Bottom line: Waitandsee sucks. If you've been there, then you know what I'm talking about. If you've never been there, then you're not missing a thing. And if you're stuck there now, well, at least you know you're not alone.

While you're there, though, why not buy my book - just to have something to read?

[ref]
Peridot Books, Ty Drago's online zine.

2004-07-15
Memory is a funny thing
I have a lot of boring days. Days where I get up, chase the kids around, pickup cereal off the floor during breakfast, go downstairs and work, have some nilla wafers or cheezits for lunch, stare out the window at the breeze blowing the trees around in the afternoon, write some more code, go upstairs and chase the kids around some more, sit and watch baby doolittle for the 800th time, tuck them in bed, go back downstairs and work some more, and then finally go to sleep around 2am. But those aren't the days one remembers.

Today I was reading some older posts of the Pork Tornado who is kind of a kindred spirit, except he's single, and more funny. He was talking about a series of events that had put him in a bad mood, and he was hoping the adventure was over:

The thing is, I knew I shouldn’t have gotten out of bed yesterday. I just had that feeling. I got in the car, backed up about three feet and realized I had gotten a nail in my tire the day before when I went to clean my old apartment so I could turn the keys in ...

Luckily, I always keep a can of that aerosol tire sealant stuff in my car. If you don’t do that, you need to. That is twice it has saved me from having to change a tire or have the car towed. What it didn’t save me from was locking my keys in the car (with the car running) while I fixed the tire.

I also keep a spare car key in my wallet for just such an eventuality. I stopped and thought about how much of my time and energy is devoted to protecting myself from myself. Didn’t do much for my mood.

Its the trials and tribulations that we remember, chuckling at (if enough time has passed), and maybe tell to our grandkids. This story reminded me of the last time JonMarie locked her keys in the car.

Now since moving to the sticks I don't normally lock my car, and JonMarie doesn't really either, but cars these days have gotten way too smart for their own good. They figure that every driver must live in an urban hell and assume the need to lock themselves at the slightest sign of trouble, like say the opening and closing of a door. Our new toyota is so annoying that if you unlock the door but don't open it right away, the car will lock the door again for you. But it was our previous car that caused JonMarie some severe grief.

JonMarie never really liked her '96 grand am. Perhaps it was partially because we got it used, and maybe some of it was that it was only a four cylinder so it didn't have much pep. But it also was new enough that it had that lock-the-doors-for-you-even-when-you-don't-want-it-to feature. So, one particular morning I was downstairs working and I get a call from JonMarie--she's at the Mobil station and she's locked out of her car. I didn't even wait for her to finish talking, but hung up and dashed out of the house with keys to her car (and mine) and zoomed down the road to the Mobil. I was in quite a hurry, not because of what she said, but because of what I she hadn't. She had said, "I'm locked out of the car," not "Me and the kids are locked out of the car," which meant the kids were still in the car.

So in two minutes, I pulled up to the car wash behind the Mobil to find JonMarie standing besides the running Grand Am with two kids inside, in their car seats, staring out and wondering what's going to happen next. I unlock her door for her, and after a few choice words about the situation and the car, she settled in and continued on with her chores.

That's the kind of adventure you remember, and depending on the severity of the crisis, can look back years (or maybe decades) later and laugh about. In this case everything turned out fine without any real crisis, so we can look back and laugh after a few years. The time my parents left me and my sisters in the car, on a side of a steep hill at Shasta lake, and we managed to take the car out of park and disengage the emergency brake; well, maybe I better wait a few more decades before reminding my Dad about that adventure.

2004-07-11
Fighting old habits
Sometimes old coding habits are handy, but they can also get in the way. Like char vs string. I've been coding in C++ maybe six years now, and almost all of the time I've been using the old char arrays instead of string. Partially its my inherent distrust of automatic memory management (and its effect on things like heap fragmentation), partially its my need to supervise and optimize every action the computer is taking, and maybe there's some value in limiting how much memory inputs can use and preventing denial of service attacks; but really I was just resisting change.

So I've been using strings now, and it hasn't bitten me yet, but I hit a real point of uncomfortableness this evening. I had built up some great routines for dealing with parameter lists (like param1=aaa&param2=uuu&param3), but I had a form that only had one parameter. Did I really want to copy around memory and create all these complex structures just to get the value out when I could just find the '=' with strchr()and then set the char * to point to the next character? I finally decided, yes for a couple reasonts:

• Higher order tools should always be prefered to lower level
• Performance just isn't enough of a factor
• If I did this one routine different from all the others, then anyone that had to maintain this code would curse me
This last reason didn't surface right away, but its probably why I made the decision. (I often know the right answer long before I figure all the reasons why its the right answer.) I still have to fight the feeling that I'm burning cycles for no reason, I am burning cycles, but there's a reason, its just a social reason, not a technical reason.

2004-07-07
Great way to produce equations
After updating the entry for critical pressure at Wikipedia today, I was marvelling at the fact that you can enter equations in TeX notation, and the engine will render them out as images. So I went and did a little test (testing both my math knowledge and my TeX syntax notation):
:<math>E={1\over 2}CV^2</math>
:<math>x=\frac{-b\pm \sqrt{b^2-4ac}}{2a}</math>
And I got this:

Very cool.

2004-07-05
Computer Programming as Art
This topic is a favorate of Richard Gabriel, one of the founders of the Masters of Fine Arts of Software who has tried to apply the experiences he had pursuing a MFA in poetry to software.

Anyway, I finally had a chance to read Knuth's "Computer Programming as Art" speech given in 1974 (at his acceptance of the Turing award). He gives some interesting perspective on the history of "art" (where the word art was traditionally used as a counterpoint to science the way we use the word engineering now). He was also amused to find that scientists have been trying to get rid of the "art" in their fields for hundreds of years. From the preface to a textbook on mineralogy,

"Previous to the year 1780, mineralogy, though tolerably understood by many as an Art, could scarce be deemed a Science."
It looks like he was struggling with the same questions we were in January when we tried to identify "beauty" in software.
My feeling is that when we prepare a program, it can be like composing poetry or music; as Andrei Ershov has said, programming can give us both intellectual and emotional satisfaction, because it is a real achievement to master complexity and to establish a system of consistent rules.

Some programs are elegant, some are exquisite, some are sparkling. My claim is that it is possible to write grand programs, noble programs, truly magnificent ones!

He ended up with this list of general "goodness" for computer programs:
• works correctly
• easy to change
• source is readable and understandable
• interacts gracefully with users: is flexible with input, and recovers gracefully from input errors
• efficient
• works well within system constraints
While I think we had covered the first five in gory detail (we ended up with more than 60 properties if I remember correctly), Knuth points out a certain joy and skill in fitting programs into environments of limited resources. He recalls programming for one particular machine where he had only 4Kwords of memory. While he does not advocate arbitrarily restricting the resources programmers have to work with, he none the less felt that programmers rose to the challenge that resource limitations placed on a program.

While we have basically ceded the desktop as a hopeless land of bloatware, there still are plenty of domains where resources are still tight, and programmers have to be careful. From cell phones, to PDAs, to microwave ovens; small microcontrollers are being put to work every day with limited CPU cycles, memory and IO capabilities. Perhaps this is one reason why Java hasn't been a smash hit on portable devices: its style of programming (and VM itself) lead to decadence in resource usage. Programmers writing in Java don't think of the CPU costs or memory fragmentation resulting from the use of invariant objects and explicit assignments, they just plow right ahead creating and destroying hundreds of objects as they go about their task.

While I tend to go a little overboard, there are certain areas where the harder path should be taken up front (this is not premature optimization). For instance I have a template engine for a UI engine I am writing. At start up the app loads all of the assets into memory, so it can shoot it down the channel when needed. For templates, I process the file at loading, breaking it up into text blocks and variable names, so that macro expansion would just be a matter of going through all the pieces, putting the text blocks and looking up the variables. Another engineer on this project, when faced with the same problem just wrote a look running strstr() on the source text and doing string substitutions. His approach words, but I feel mine is the more elegant solution, and it was not that difficult or complicated to implement. Moreover it is a routine/module I will carry forward with me into the future and can apply to other solutions, where the strstr() solution is just throwaway.

Knuth's turing award lecture (PDF 750k scanned)

2004-07-02
Manly tools
What could possibly more manly than a chain saw? How about a diamond chain saw. No I'm not talking about putting glitter on the case, I'm talking about putting diamonds to work on the blade. No more of that soft wood stuff, now we're cutting concrete.

What will those guys at ICS think of next.
Includes action videos: Block Wall, Egress Window, and use of the Speed Hook.

2004-07-01
Other uses for a space suit
I told this story to Gary Jedynak (part of the C4DSD group) about how the first working space suits were not designed for astronauts. While a noble goal, space was not a priority in the early 1950s (sputnik did not happen until 1957). What was big in 1950 was the vacuum tube, a set of metal plates and grids arranged to switch or amplify current, operating in a complete vacuum. Engineer Siegfried Hansen was tired of the time it took to seal up a tube and evacuate it before he could test it, so he came up with the idea of building an entire evacuated room and a suit for an engineer to wear that would provide air while making adjustments and trying new configurations out.
Litton commissioned a vacuum chamber large enough for a man to maneuver within. Then Hansen and colleagues designed a suit to be worn inside the chamber that mimicked the atmospheric conditions conducive to human life.

The suit, dubbed the Mark I, weighed 50 pounds and had a rigid torso of aluminum, puffy rubberized appendages, ribbed joints and a helmet as square and ungainly as a comic-book robot.

More important than its appearance was its function: Unlike previous pressure suits, it maintained constant volume and geometry, which allowed the occupant to breathe inside the vacuum and move with enough dexterity to handle a screwdriver or power drill.

While too heavy and rigid for the first space missions, this design was the forerunner of the modern EVA hard suit.

[sources]
Los Angeles Times
short IEEE obit

Life in the middle of nowhere, remote programming to try and support it, startups, children, and some tinkering when I get a chance.

ARCHIVES
January 2004 / February 2004 / March 2004 / April 2004 / May 2004 / June 2004 / July 2004 / August 2004 / September 2004 / October 2004 / November 2004 / December 2004 / January 2005 / February 2005 / March 2005 / April 2005 / May 2005 / June 2005 / July 2005 / August 2005 / September 2005 / October 2005 / November 2005 / December 2005 / January 2006 / February 2006 / March 2006 / April 2006 / May 2006 / June 2006 / July 2006 / August 2006 / September 2006 / October 2006 / November 2006 / December 2006 / January 2007 / February 2007 / March 2007 / April 2007 / June 2007 / July 2007 / August 2007 / September 2007 / October 2007 / November 2007 / December 2007 / January 2008 / May 2008 / June 2008 / August 2008 / February 2009 / August 2009 / February 2010 / February 2011 / March 2011 / October 2011 / March 2012 / July 2013 / August 2013 / September 2013 / October 2013 / November 2013 / December 2013 / December 2014 / February 2015 / March 2015 / July 2016 / September 2016 / December 2016 / April 2017 / June 2017 /

Blogroll
Paul Graham's Essays
You may not want to write in Lisp, but his advise on software, life and business is always worth listening to.
How to save the world
Dave Pollard working on changing the world .. one partially baked idea at a time.
SnowDeal
Eric Snowdeal IV - born 15 weeks too soon, now living a normal baby life.
Land and Hold Short
The life of a pilot.

The best of?
Jan '04
The second best villain of all times.