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.
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.
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.)
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.[ref]While you're there, though, why not buy my book - just to have something to read?
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 ...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.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.
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.
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¶m2=uuu¶m3
), 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:
:<math>E={1\over 2}CV^2</math>And I got this:
:<math>x=\frac{-b\pm \sqrt{b^2-4ac}}{2a}</math>
Very cool.
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.He ended up with this list of general "goodness" for computer programs: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!
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.
[links]
Knuth's turing award lecture (PDF 750k scanned)
What will those guys at ICS think of next.
Includes action videos: Block Wall,
Egress Window,
and use of the Speed Hook.
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.While too heavy and rigid for the first space missions, this design was the forerunner of the modern EVA hard suit.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.
[sources]
Los Angeles Times
short IEEE obit
Feb '04
Oops I dropped by satellite.
New Jets create excitement in the air.
The audience is not listening.
Mar '04
Neat chemicals you don't want to mess with.
The Lack of Practise Effect
Apr '04
Scramjets take to the air
Doing dangerous things in the fire.
The Real Way to get a job
May '04
Checking out cool tools (with the kids)
A master geek (Ink Tank flashback)
How to play with your kids