A Quick Health Question

Three days a week I work out. It’s about 50-50 aerobic and resistance training, starting with thirty minutes of rowing machine and treadmill, followed by crunches and weights. It feels pretty good to have done it.

After working out we generally spend a few minutes with my sweetie’s folks, then we drive home. I’d estimate it’s at least half an hour between the end of the workout and our arrival home. Each time, on the way up the stairs to our apartment, I get a massive head rush.

Anyone know what’s causing it? Should I worry? When I was younger I had low blood pressure, but last time it was measured my blood pressure was on the high side. I haven’t lost a significant amount of weight, but I think I’m in better shape.

Any insight or wacky theories are welcome. Thanks!

A Job I’m Glad I Don’t Have

As you might be able to tell from the paucity of episodes here at MR&HBI, I’ve rejoined the ranks of the employed. My writing has taken a real beating, so today I’m going to spend some time writing about work. You don’t have to thank me, it’s what I do.

I don’t mind writing software; I’m pretty good at it and I can make pretty decent money doing it. I would much rather write code than dig ditches, for instance, and luckily for me the world has decided that making Web sites is worth more than roadside drainage. (Before you go and say, “that’s because it takes skill and training to make a Web site, but anyone could dig a ditch’, ask yourself – could you dig ditches for a living? If the economy were turned upside-down, that ditch-digger living in his nice house would say, ‘anyone can make a living sitting on their ass in front of a computer, but I dig ditches. I’m glad things are the way they are, is all I’m saying.)

My current job sends me dangerously into territory I don’t much like, however, and that’s the area known as Information Technology. It’s not really a good name for the job, which is about setting up computers and keeping them running. It’s less about making things and more about making things work.

Last night, for instance, I moved the Web product I’m working on to a different server and it didn’t work. Naturally I assumed the problem was in my code (it had worked on that server in the past), so it was several hours later that I discovered that for reasons I still don’t know, the server failed when it tried to compress very large messages. Just *poof* no response beyond the number 500 (something went wrong). To make things more fun the server was specifically set up to not write out a lot of error messages to its log. I turned off the compression feature (with a hammer) and things worked again. Five hours or so spent to add seven characters to a PHP file, to make things work the same way they already did on other servers. Welcome to the world of IT.

I think the original intention of the phrase information technology referred to the the information that would be stored, manipulated, and distributed by machines. What the I really stands for is the vast store of arcane crap you have to know to do that job well. What line of the php.ini file to modify if you want zlib output buffering and utf-8 character encoding. How to set up all the computers in an office to use a local domain name server first. That’s the information in IT.

The worst thing about having an IT job is this, however: When you’re doing a good job, no one notices. When a company is running smoothly, that’s a sign that the IT department can be downsized. There are no problems! What are those guys doing all day? Having things not happen as part of your job description makes for tricky times when you do your job well. Of course, when something does go wrong people know just where to find you.

So if you work in a company that has people on payroll working to keep your technology humming along, cut them a little slack. Someone’s got to do that stuff; be glad it’s not you. I do enough IT now to know that I’d rather let someone else have the pleasure.

You Know it has to Happen

I’m waiting for the commercial that has:

“I’m Steve Jobs, and Windows 7 was my idea.”

An Important Science Question Investigated

I give this to you without comment:

The Airspeed Velocity of an Unladen Swallow.

MacPorts and GIMP

Preamble for those here by the grace of Google: Yes, I do eventually get around to talking about Gimp in this episode. Short version: it works but takes hours. Anyway, on with the show!

Setting up a new computer can be a tedious task; there are all kinds of settings and programs and files and whatnot that need to be passed from old to new. When you work with Web development things can get even more cumbersome, as one finds oneself descending deep into the world of IT. There are programs to install that all have to talk to each other, and configuration files to be tweaked. Many of the applications that are required have no user interface of their own, they simply run in the background and answer requests from other applications.

I found myself facing (for the third time in three months) the need to install the latest Apache (and set up virtual hosts), PHP, Pear, MySQL server, PHP email addons, Propel, and on and on. For many of these items, the instructions for installations go something like:

1) Download the source code
2) Configure the build
3) Compile the application

And the instructions go on from there. For most of the above there are shortcuts, and probably-recent-enough versions of some things come built-in with the Mac OS, but when you install it yourself you can get everything where you want it and avoid conflicts. Still, this can be a long, tedious, pain in the butt to get going. And when you install something and it doesn’t play well with the others, finding that one line in the secret config file that’s causing the problem can be a real pain.

Enter MacPorts. MacPorts is a project that has developed a system that does all the steps of the installation for you, and puts everything in standard places so everything else installed with MacPorts can find it and talk to it. There’s still some configuration to do (tell PHP where the database server’s socket is, and set passwords for instance), but overall things are much simpler, and there are very good instructions out there for tweaking and troubleshooting MacPort installs. Since the person writing the instructions knows where all the files are in the standard install, instructions can be much more specific.

With MacPorts installing php 5.3.1 was a simple matter of typing “sudo port install php5” and letting the MacPort system do the rest. Hooray! Setting up a server is suddenly much simpler.

As an aside, MySQL didn’t work when I used MacPorts to install it on a previous machine. Don’t know why. Ran the install, followed the instructions, nothing. After a few hours banging my head against it, I went and got the excellent binary installer. It worked without a hitch. This time around I didn’t bother with the MacPorts version at all.

Anyway, thanks to MacPorts, I was able to get a complete development system up with nary a hitch, in a fraction of the time. Knowing where all the config files were this time around helped as well. I found several useful links on the Web, particularly from HiveLogic and my new buddy Danilo Stern-Sapad who took a little grammar rant from me with grace.

On that note, I read the phrase “How to setup…” so many times in so many places it’s amazing I still have teeth.

Edited to add: I have now written my own tutorial which does into greater detail than the above, and includes a works-every-time MySQL install.

Last night I realized I hadn’t installed GIMP on this computer yet. GIMP is an open-source graphics program that wishes it rivaled Photoshop but it doesn’t really. It’s free, however, and when you consider the incredible amount of work that went into it, you have to be impressed. I don’t do a whole lot with graphics, so GIMP is usually adequate for my needs.

When I went to the Web site for GIMP I found a couple of options for installation, including MacPorts. Just type “sudo port install gimp” into the terminal and that’s that. Pretty sweet.

One thing about a program like GIMP: it’s really a collection of a bazillion smaller parts. Many of those parts require other bits to work. When you run a traditional installer, all the parts are already there and they’re already tied together in a neat bundle. MacPorts does things a little differently; each part knows what parts it depends on to work, so when you say “install gimp” it first looks at the parts gimp needs, then at the parts those parts depend on, and so forth. You get to watch (if you choose to pay attention) the parade of all the little pieces as they’re installed, each the product of an individual or small group of people who have allowed their work to be exploited for free.

For GIMP, the list of dependencies goes very deep. I watched as X11 was installed. X11 is already on my computer, but ok, this is MacPorts and they keep their own realm and that way they can update parts without worrying about how that will affect non-MacPort installations. It’s redundant, but that’s why God made big hard drives.

Then I saw Python 2.6 install. Later, Python 2.5 went by. One of the little pieces seems to depend on an earlier version of Python. This probably means the person in charge of that bit just hasn’t updated it recently. On the installation went. After a while the Gnu Compiler Collection came down the pipe. gcc is a collection of compilers for building programs, and I watched as gcc was built… using the gcc already installed on my machine. Hm. And what’s this? Fortran! Yep, somewhere in the great tree of dependencies (maybe ‘root system’ would be a better term), someone decided that a Fortran compiler was necessary to run GIMP.

Actually, that’s not quite fair; the piece that loaded the Fortran compiler might need it for other tasks not related to GIMP. Just because GIMP uses a library doesn’t mean that’s the only use for it. Still, I ended up with a lot of stuff I don’t need. It’s all invisible and I’d never know it was there if I hadn’t watched the install (which took hours), so it’s not a disaster or anything. And next time I need Fortran I’m ahead of the curve!

Time slipped past, the install continued. I went to bed. When I got up this morning to check if the build was finished, I discovered there had been an error. Yep, the MacPort version of gimp-app doesn’t currently compile on 64-bit operating systems. All that other stuff that was installed? Python 2.6 and Python 2.5, the Gnu Compiler Collection (including Fortran), libgnome and libbonoboui and tkl and tk and gd2 and dozens of other things I don’t know what are, they’re still there, waiting to be useful in some way.

Edited to add: The compile bug has been fixed; I recently used MacPorts to install Gimp on my 64-bit laptop. It took a long, long, time, but now it works just fine.


AiA: White Shadow – Episode 12

Our story so far: Allison is an American high-school student who has transferred to a private prep school in Japan. She is a transfer student, and in this Japan, that means she will be the cause of upheaval and strife. Although she really doesn’t understand what’s going on around her most of the time, she is starting to understand White Shadow, a computer virus that can infect the human brain. Or something like that. It seems Allison is pretty good with computers, and may be the person to stop the scourge. Those around her sort of take this for granted. She’s a transfer student, after all.

Last night the virus got into the video system of a local dance club, and the results were horriffic. Allison has decided to investigate, and she has been joined by her friends. As soon as they entered the building, however, they were confronted by a man with a gun. While he was talking, Alice simply vanished.

If you would like to read from the beginning, the entire story is here.

“Damn! Find her! She must not escape!” The man with the gun gestured frantically. Spotlights stabbed through the darkness all around the group, and from the shadows men emerged slowly, menacingly, clad in the heavy rubberized suits of the Institute, faces invisible behind reflective glass. Each bore a wicked-looking rifle, raised and ready to fire as they swayed back and forth, sweeping their headlamps around the night club.

Ruchia fought down a rising sense of panic. She might have lost it completely but Seiji was holding on to her arm, his touch reassuring. He was standing completely still, staring at the man who had stopped them, his face a mask of pure rage. Yet he held himaelf, one hand on Ruchia’s arm, the other on Tasuke’s shoulder. It looked like Tasuke was about ready to attack the nearest Institute man, if Seiji wasn’t holding her back. Ruchia wished she had a little of her friend’s courage.

Kaneda was just standing there, looking around himself in confusion, as if he had just awakened out of a dream to find himself there.

The man who had first accosted them strode up to Ruchia and shouted down into her face. He was a big man, with broad shoulders, who wore his silk suit jacket like a military uniform, his tie knotted with absolute precision. His black hair was cut short. “Where’s the other one?” he screamed.

Ruchia cowered before the man’s anger, grateful for the support from Seiji. Her knees were shaking. “What other one?”

“The other girl, stupid! the one who was standing right next to you!” Ruchia could feel the man’s spittle on her face.

“T-t-tasuki? She’s right there.”

“Not her, stupid! The other one!”

Ruchia felt the tears welling up in her eyes. What was this crazy old man talking about?

“What the heck are you talking about?” challenged Seiji. “We’re all right here!”

“Don’t play stupid with me! There were five of you!”

Tasuke jumped into the fray. “What are you, stupid? Can’t you even count?”

One of the shambling hulks in the Institute suits stepped to the side of his leader. “Uh, sir?” His voice came through a tinny speaker on his chest. “We’ve double-checked the surveillance cams. There were only these four.”


“Just the four, sir.”

“Damn! That can’t be!”

“I’m sorry, sir, but…”

“Damn that White Shadow!”

What the heck is he talking about? Ruchia wondered. Anyone could see that there were four of us when we came in. She looked at her friends to see if they might have some idea what this guy’s problem was. She thought that Kaneda was about to say something, but then he thought better of it. He went back to looking confused.

Ruchia had a bad feeling as the man looked them over. He was deciding what to do with them, she was sure. She found herself wishing that Allison were there. This was definitely transfer-student sort of trouble. Ruchia wondered why they had even agreed to meet Allison here.

“Wrap ’em up,” the man said. “Let’s get them back to the institute. They might be contaminated.”

“Hey! You can’t do that!” Tasuke protested. “We’re fine!”

The big man smiled grimly as the institute men in their protective suits closed in around the four of them. “I will be the judge of that.”

Ruchia screamed, Tasuke struggled and kicked, Seiji shouted in defiance, but it made no difference.

“You can’t do this!” Seiji shouted. “Where are you taking us?”

As they pulled a heavy black hood over her head, Ruchia thought she heard Kaneda say, “To the room with no doors.” She heard a thud and Kaneda grunted.

“Kaneda!” Ruchia called. “Kaneda! Are you OK?” He didn’t answer. Hands were on her now, cold, impersonal, heavily gloved hands, grabbing her arms, her legs, her chest, wrapping aroung her middle and lifting her up as if she weighed nothing. She screamed, she kicked, to no effect. She had never felt so vulnerable as the hands moved over her body. “Help me,” she sobbed, but no one answered.

From a catwalk high above the floor of the discotheque Allison watched as her friends were bundled up. Her gut wrenched when she heard Ruchia’s piteous plea for help, and her blood boiled when they hit Kaneda over the head to silence him.

Allison had been wise to get there early, to slip in unnoticed and conceal herself. Had she even suspected that the institute would take her friends, however, she never would have done it. Now it was her fault they were in trouble, and it was going to be up to her to get them out.

But what was the institute? She had guessed that White Shadow came from there, but now it seemed like they were actually fighting against it. Did that make them her allies? Her gut replied with a resounding ‘no’. Perhaps they had a common enemy, but that didn’t make them friends.

Now the Institute had taken her friends. To the room with no doors, Kaneda had said, before they pummeled him into silence. What did that mean? Allison didn’t know, but she suspected White Shadow might.

The three men sat in the grass beneath a mighty tree. They wore their monk’s robes carelessly, exposing their knobby legs and sometime more, causing more than one passerby to avert their gaze with a stricken expression. They sat in order of height; on the lap of the middle monk there was a laptop computer. All three stared at the screen with rapt attention, the colors from the screen lighting up their faces in a steady progression through the spectrum.

“It’s terrible,” the tall one said.

“It’s wonderful,” the short one agreed.

“What are we looking at again?” the one in the middle asked.

“It’s a computer virus,” the short one said.

“It’s God,” the tall one said, nodding in agreement.

“Truth,” the short one said.

“Lies,” the tall one agreed.

“It’s making my lap sweaty,” the middle one said, lifting up the computer.

“That’s what she said!” the other two said in unison. The broke out laughing.

“Next time,” the one in the middle said, “we need to find someone else to be the straight man.”

“Next time…” the tall one said.

“Next time…” the short one said.

“That Seiji boy was fun,” the middle one said.

“Very serious young man.”

“Wouldn’t know a joke if it suffocated him in his sleep.”

“I hope they haven’t killed him yet.”

The three men nodded solemnly, then began to laugh.

Happy January 2th! Uh, whoops…

January twoth is a holiday in the Muddled Calendar, first suggested by Mr7k a few years back. He pointed out that January first is hardly the time to be getting a start on the new year, what with the aftermath of New Year’s Eve to contend with, and all the sporting events on television to watch. No, much better to have January twoth, New Year’s Day (observed), set aside for all the getting-off-on-the-right-foot activities.

This morning I thought it would be nice to post a short episode here and to spend a little time getting my own year started on a positive note. Then I noticed that January twoth was yesterday. Huh.