Category Archives: Computers

DSL Update

Thanks to everyone who replied with regards to my DSL woes.  I apparently had a brain tumor for breakfast yesterday morning because when I was checking with various providers, I kept giving them the phone number of our new house.  Said phone number is not yet active.  So, of course, no server reported DSL as available to that number.

Turns out, though, our new house is only 5,500 feet away from the CO (I’m not entirely sure what that is), so services are VERY available to that location.  After looking at various recommendations and checking out reviews, I’ve decided to go with  They can provide the services I want at cheaper than AT&T (though more expensive than our current plan).  I like the fact that they’re a locally-owned business, and I really like the fact that they understand Linux and won’t constantly be asking me what version of Windows I’m running when I have questions.  Seriously.  It got to the point where if I had tech support issues with AT&T, I would just answer "Windows XP" when they asked what OS I was running.  And then when they said, "Open up your connection manager", I would just use VI to open up /etc/network/ifconfig.  It was always frustrating, knowing more about networking than their techs.

It was hard to choose between Sonic and OmSoft.  Both have great reviews on and both come highly recommended from friends of mine in the area who would know.  I chose Sonic because they were slightly cheaper for the services I wanted.

So, thanks again to all who gave me their suggestions.


Linux novices like me probably shouldn’t be allowed to even play with their Linux boxes. Such computers are simply doomed to live like cats, always dying and coming back to life. Mine has dies and been resurrected, by my count, four times now. It’s just died again, and is waiting for me to resurrect it again.

This time, I know exactly what I did wrong. In an attempt to free up some space in my root directory, I decided to move all of my command files to a big chunk of unused space on another partition. I’d done it before with some other code libraries; why shouldn’t it work this time?

Well, I discovered, it’s something like this. You can mess with the ignition in your car all you want, but disconnecting the wires from the ignition and reconnecting them to, say, the transmission is not going to make your car work better. In other words, my computer no longer knows how to start up. I can boot into Windows just fine — it’s slightly harder for an inexperienced person to kill Windows than it is for them to kill Linux (although I’ve made a couple of good attempts at this).

Fortunately, I think I can fix this error without too much grief; it will just be time consuming. What I probably ought to do, though, is just reinstall Linux altogether. I’m just not quite brave enough to do that yet. Fortunately for me, all of my files and stories and artwork are on a shared partition, so I haven’t lost any data. What I ought to do next, though, is back up everything onto a CD-ROM. Just in case.

Do you know why Jesus was able to back up his system when it crashed, whereas the Devil was completely lost? It’s because Jesus Saves. Wah ha ha haaa! Ha ha! Ha ha ha haaaaaaaaaaaaa! Sometimes I kill myself, I really do.

So here’s the moral of our tale, something I’m sure will be applicable to your every day life: when messing around with your root account in the root directory on your Linux system, be sure you have backed up your X-server configuration files and possibly established a symlink to your backup directory; because otherwise, none of your system daemons will be able to start themselves at boot time, and your system will be hosed.

For some reason, I suspect Aesop never wrote a fable about that one. Though "How the Ferret Dumped Its System Core" would certainly have gone over well with the ancient Greeks.

That is all. Good night.

Time, Space, the Living Dead, and My Computer

First thing’s first. I’m not entirely certain I know how I should feel about a journal entry of mine turning up for this search on Google. I suppose it takes all kinds. Ah, well.

Today’s Report:

In the job hunt, I went to a job fair in Sacramento today. If I were qualified to be a probation officer or a social worker, I would have been set! The Sacramento Office of Information Technology had a booth, but I’m afraid I’m not qualified to be a supervising technical manager; I’m not analyst material, let alone management material. A few of the booths wanted technical writers, so I dropped off my resume with them. I chatted with a few folks, but I don’t expect anything to come of it.

In the home IT front, I’ve been playing around with ports and forwarding, and discovered how to set up Apache on my personal computer to listen to a different port than port 80. Effectively, that means I can turn my computer at home into a webserver. Heck, I might decide to start hosting this journal on my computer at home. I have all the tools to do it now; however, the service at Pair is more reliable and I don’t know how effective a sysadmin I’d be, even for just one computer. Besides, I haven’t lost the 30 pounds that I agreed I’d lose before buying a webserver to live in our house. I also downloaded and installed a product called Crossover which lets me view all kinds of Windows media on my Linux box. Finally I can watch those movie trailers at Apple’s website, and listen to my favorite NPR station, KXJZ on my desktop.

Sometimes, it’s the little things.

This afternoon, my blood pressure had reached the ionosphere, and the trainers at the Healthy Weight Program were uncomfortable with me working out today. So I took myself to see The Time Machine, the latest "reimagination" of H. G. Wells’s classic 1894 novel. The word "reimagination" is an ugly word to me: especially since Evilpheemy and I took our wives to see Tim Burton’s reimagination of The Planet of the Apes (a film which, apart from its wretched script, horrid acting, predictable plot, sequences which looked like they’d been lifted straight from an old Scooby Doo cartoon, was almost a decent film — though I admit that was a an insult to Scooby Doo). That film shook my faith in Tim Burton’s directorial abilities.

I had very low expectations for The Time Machine; with few exceptions, Hollywood has demonstrated that they believe that the IQ of the average science fiction fan ranks somewhere between that of a flea and an eggplant. I was somewhat surprised, though, that The Time Machine wasn’t nearly as bad as I thought it was going to be.

One of the criticisms I’ve heard of this film is that H. G. Wells’s commentary about Victorian life doesn’t translate very well to a 21st century movie screen. That is, of course, true. But I think that what these critics fail to remember is that The Time Machine is also a good adventure story, and this film captures that fairly well. I did find myself wishing that there was more action after the main character and his co-horts had encountered the Über-Morlock (played hammily by Jeremy Irons, still on the road to recovery after Courtney Solomon had drugged him and forced him at gunpoint to play the Evil Wizard in Dungeons and Dragons — the only explanation I can come up with for how that happened). But the vision of the future presented in the film was interesting and amazingly consistent with itself. And surprisingly, I thought that the social commentary that H. G. Wells had presented in his novel managed to translate fairly well to the modern film. Of course, the major themes of the novel — that there are Forces with which Man Was Not Meant to Tamper, and that The Rich Eat the Poor — are as timeless as romantic love itself, so there probably wasn’t much need for alteration.

On the whole, not a bad little film. Definitely worth a rental.

Over the weekend, Jennifer and I also saw Resident Evil, another film for which I had very low expectations, and which surprised me. Apparently the film was originally supposed to have been directed by George Romero, the man behind the Living Dead films; and there are certainly elements of Resident Evil which could have come from Romero’s mind — the ending, in particular, and the nasty surprises that turn up just when you think things are going to be okay — are very much in line with something that could have shown up in a Living Dead movie.

The special effects were pretty neat, too, though they lack the special touch that Tom Savini might have brought to them.

And that, I suppose, was my day. There wasn’t much to it. I bought a vinyl cover for the futon. I returned a CD that I had borrowed from the library (I’d returned the case yesterday). I watched Enterprise (sometimes also referred to as Spot the Nipple) with Jennifer. And I mopped the floor.

I swear. Only the Army has me beat for the number of things that they do in a single day.

Bean Trick: Or, Another Three Reasons Why My Wife is Cooler than Yours

Usually, when I decide it’s time to zark a computer to death, it’s my Linux box that bears the brunt of my incompetence. Last week, though, I booted into Windows to check out an image I wanted to work on, and discovered that I was unable to hook up to the Internet through Windows 2000. I tweaked this, fiddled with that, and finally decided that what I needed to do was uninstall and reinstall the TCP/IP protocol that my computer needs to connect. No problem. Click on the protocol. Click on "uninstall". Click OK. It takes its time, and then tells you that you need to reboot the machine. No problem there. You reboot, and then you go back into Network Settings to reinstall the protocol from its nice little cache on the hard drive. No problem, right?


"Insert Windows 2000 Installation Disk to continue."


This is a problem. I don’t happen to have that disk right now. It’s with my brother-in-law, who lives out in Napa, quite a ways away from here. Not an impossible distance, but longer than a casual daytime drive.

All in all, it’s a bad thing. I haven’t been able to get on-line from Windows for over a week now. Not that I miss it, of course; I’ve been working in Linux pretty solidly for about a month now, and I’m getting very used to it. In many ways, I like it much better than Windows. But that’s a hobbyist thing, really; it’s like the difference between the guy who wants to drive his car from one end of town to another versus the guy who wants to tweak his engine, adjusting a gap here and tweaking a valve there and fiddling with an intake valve under that camshaft (or wherever you’d find an intake valve). Okay, his car probably isn’t as pretty, but he’s got a lot more faith in it, because he is pretty much responsible for it himself… and if it explodes, he knows who’s to blame. And I like how much I can customize Linux; just for fun, I’ve been playing with some screen capture software, and I made a snapshot of my desktop, which I’ve placed below. It’s based on H. P. Lovecraft, of course, since I’m still on that HPL kick; any day now, Evilpheemy, "Incident at Mount Joyce" will be finished and we’ll be ready to start playtesting Outer Darkness.

With Linux, I feel like I get more out of my computer, and I understand it better.

But meanwhile, I frequently stay up until the wee hours playing with my computer, adjusting this and tweaking that, and generally enjoying the heck out of myself. Jennifer doesn’t seem to mind that I typically end up sneaking into bed at 2:00 or so, still too wired to sleep. That’s reason number one: that she puts up with my weird hobby.

Jennifer likes to cook, and that’s reason number two. She likes to cook good food, and she does a very good job of it. She came home earlier this week with a quick-and-dirty recipe for green beans that involves garlic and soy sauce, and we’ve had that twice this week with dinner; tonight, we had it with this amazing lasagne that she makes, which involves some vegetables so cleverly chopped up that the texture almost makes you swear you’re not eating vegetarian lasagne. Jennifer likes finding recipes like that and bringing them home and preparing them, especially if they’re quick and easy. She’s got a knack for it; I call it her "Bean Trick", in honor of the bean recipe and our linguistic obsession with bean words in our house.

"Bean head!"

I get easily bored at times, and this can sometimes take odd manifestations. A couple of weeks ago, while heading off to the University to work in the lab a bit, I decided that I was bored with going left, then right, then left and down to the highway. And so instead of taking that second left, I went straight, and found myself being forced to take another left; then I took a right, just for the heck of it. Then I found myself taking a right. And so on.

The back roads of Solano and Yolo Counties are amazing. There are acres and acres of farmland, of course, but there are also wetlands and grasslands, bird sanctuaries, marvelous old Victorian style houses, and an abandoned church with an old graveyard that someone has moved their modern double-wide trailer onto; naturally, it’s that last bit that caught my attention the most. There is also a large damp field near one farm where an egret has taken up residence. The first time I drove past it, I took our digital camera and tried to get a picture of the egret; unfortunately, it was way too far away from the edge of the road, and the photograph shows nothing but this tiny white speck in a sea of light brown grass and mud. I erased the picture from the camera. Unfortunately, the back roads are a bit inconstant, it seems, and I haven’t been able to find that bit of marshland again.

The upshot, though, is that I’ve been able to find at least two routes Davis from Dixon that stay far away from I-80. I doubt that either route saves any time except during the heaviest rush hours on I-80, but there’s still something rewarding about speeding down a farm road which is barely wide enough for your car, let alone your car and the tractor that’s pulling a wagonload of hay. With the windows down and the soudtrack to O Brother, Where Art Thou? blaring loudly.

We’ve had weird car karma over the past couple of weeks (more about that some other time), and last night we wound up driving separate cars home from Davis to Dixon. I offered to lead Jennifer along the back roads so that she could see what I’d discovered. She probably wanted to get home sooner than that would have entailed, but she was a good sport, and we drove those roads. Bear in mind, that was the first time I’d driven that route in the dark; I almost got lost a couple of times, but managed to get us home safely. Jennifer puts up with weird stuff like that from me, and that’s the third reason.

There are two more reasons, but I won’t detail them here: just think about wholesome implications of the phrases "love monkey" and "gum drop bear", remind yourself that today was Valentine’s Day… and that’s all you need to know. It was clean.

And if I were the silly sentimental fool that I have been known to be in the past, I’d have spent this entire entry talking about how much I love Jennifer and making you, my one or two constant readers, a bit sick; but instead I wanted to share at least three ways in which Jennifer has made my life so much more interesting and exciting than it ever was before, by giving me space to do random things in, and participating in some of them with me. This whole marriage has been a complete life upgrade for me. In a way, it’s almost like the difference between Windows and Linux for me; with Jennifer around, I just feel like I understand things better and get more out of life.

And just for the heck of it, here is the snapshot of my computer’s desktop:

Perhaps not all that exciting, I guess. And it looks quite a lot like Windows in some ways. But trust me, it’s a big change.

Making it Cooler

I’m feeling much better now. Oh, yes. The Java programming final that was kicking my butt last week is over; I got a B on the final, and an A- in the class. The instructor assured me that only one student received an A on the final; still, after having stayed up until 2 in the morning a couple of days in a row, I wish I’d done better. Ah, well. Still, an A- is nothing to sneeze at, considering that I haven’t taken a programming class per se since 1984. Back then, BASIC still had line numbers (remember 10 GOTO 10?), Pascal was a rigorous teaching language, the IBM-PC was barely a twinkle in some engineer’s eye, and Larry Wall (inventor of Perl), Linus Torvalds (inventor of Linux), and Rasmus Lerdorf (inventor of PHP) were all shooting spitwads across their frog dissection lab stations in Mrs. O’Hare’s science class in PS-102 in Des Moines, Iowa.

Well, okay, I made that last part up. But the part about BASIC is true.

In other news, I’ve conquered a milestone or two with my Linux computer by getting it to print (mostly) to a printer that is attached to a Windows 98 computer, and getting it to talk to my Palm Pilot. I’ve been fussing with both of these challenges for months, and finally figured out the answers on my own. I feel darn near competent! All I need to figure out now is how to get my installation of WordPerfect to print; for some reason, WordPerfect uses its own weird set of drivers for Linux, and since Corel sold their Linux products to some other company, there is no more support for the program I bought. Dammit. But it is possible, I’m sure of it.

I’m not quite ready to dump Windows yet. but I’m getting there.

In other news: I’ve snagged a couple of minor PHP projects, and I’ll be writing a short series of articles about PHP for a web development company that promises me authorship credit, if not actual money. I got an e-mail from the graduate student I was working with a couple of months ago, and it looks like I’ll get to tromp through the mud collecting water samples again this month or next month. Next week I start my Chemistry and Math classes. The creative project that Evilpheemy and I is going pretty well (and would go better if he didn’t throw me massive curve balls every couple of weeks so that I could feel comfortable working on the source book – *ahem*).

So… Things are busy, but going well. The job hunt is going… well, it’s going. I’ve networked as much as I can conceive of, I’ve sent out at least five resumes a day, if not more, just about every day, and there have been no nibbles, no responses. Ah, well.

This last bit won’t make sense unless you know us and our cats.

You Are:

Allegra’s theory is that everything should be discussed at length, while one is doing it. Allegra’s actions are usually accompanied by some sort of musical trill (simple mews are beneath her) – a sort of running commentary on her day-to-day activities. She is the perfect example of how a living creature can be not a solid, but a semi-liquid. Her movements are usually graceful and sinuous, albeit occasionally comical as she pours herself around the underside of the shelf on the cat tree. She prefers attention on her own terms – only when the unsuspecting human is sitting down and presents an available lap.

Take the "Which Crawford Cat Are You? Quiz

Wherein Our Hero Discovers He's Been On Earth All Along

All in all, I think that Jennifer has probably made the transition from engaged to married more smoothly than I have. While I still find myself stopping dead in my tracks from time to time (inconvenient when I’m driving at eighty miles an hour down highway 80) and thinking to myself, "Wow! I’m really married now!", Jennifer says that she doesn’t feel all that different from when we were just engaged and living with each other. Well, okay, perhaps there isn’t that much different on a physical level — we still breathe the same air, live in the same house, and our feelings for each other haven’t changed. But on an existential level, there is a difference between being engaged and being married. I can’t really put my finger on it, but I’m sure that there is. Or maybe I’m just imagining the whole thing.

The hours leading up to the ceremony were hectic and stressful for me, and nothing compared to what Jennifer and her mother had to deal with, what with the seamstress running obscenely late (the ceremony was nearly an hour late because the seamstress was still sewing the groomsmen’s shirts at the last minute and trying to fix the bridesmaids’ dresses which had somehow become far too small between the last fitting and the day of the wedding). Fortunately one of the dancers from the dance troupe that came to perform at the wedding was well versed in Renaissance garb in general and helped all of us men put our outfits on and made sure we looked at least halfway decent wearing them. The only problem for me was that I wanted to take my groomsmen out to lunch before the ceremony, but between one thing and another we wound up having to go to a different restaurant than the one I’d wanted to go to in the first place, and then my best man and I ended up at the church with about one minute to spare.

I don’t remember all that much about the ceremony itself. I remember seeing the flower girl stumble her way down the aisle, upending her basket of flowers and spilling them all out on the floor and then deciding to take a nap midway down the aisle; I remember something about some vows that we exchanged; I remember Jennifer’s father coming close to tears; I remember my best man clapping me on the shoulder just before the ceremony when I confessed, "Now I’m nervous"; and, of course, I remember Jennifer walking down the aisle, glowing in her dress, more beautiful and radiant than I had ever seen her before. I remember standing up with the minister, holding Jennifer’s hand, and falling in love with her all over again.

As her wedding gift to me, Jennifer gave me a new computer, which her brother-in-law (which, I guess, she shares with me now) had put together and built for me. It’s got Windows 2000, Linux, and just about every bell and whistle that I could ever want. And it’s ironic that while I’ve probably spent more time in front of this computer than I ever did in front of my old computer, I’ve found myself with even less time than I ever did to post to this journal. I’ve been merrily learning about Samba and Linux networking to get my new box talking to the network that Jennifer and I have set up in our house, I’ve figured out how to keep our computers with static IP addresses even though our router is set up with a DHCP server, and I’ve even figured out how to use my old laptop computer as a primitive web server in addition to its duties as a file server and a print server. I haven’t yet figured out how to use Samba to print from my Linux box through the old laptop, but I’ve learned how to use my Linux computer to read files from Jennifer’s old Windows 95 machine. That part was easy.

And in addition to that I’ve been spending a lot of time playing this really cool horror FPS game called Undying. Far too much time, I suppose. All in all, I’ve been sleeping a lot less than I should over the past couple of weeks. I only hope that Jennifer hasn’t been feeling neglected.

Not, of course, that Jennifer is any less of a nerd than I am. For our one-week anniversary, Jennifer and I used some of the gift cards we’d gotten from Best Buy and picked up a Sony Dreamcast game station and a copy of House of the Dead 2. We’ve spent many a happy hour together since then shooting zombies and laughing at the cheesy voice overs and smiling warmly at the oozing green blood of melting undead creatures.

I tell Jennifer that her left pinky toe is corrupt and is bent on world domination, which is why that is the only part of her that I don’t love. She just looks at me strangely and says, "Yes, dear," in a strangely condescending voice.

Last night we went with some friends to see Tim Burton’s "re-imagination" of The Planet of the Apes. I can only hope that Tim Burton’s hands were tightly bound while this movie was being filmed, because it’s the first Burton movie that I didn’t like. Well, okay, let me amend that. When I first heard that Tim Burton was going to remake The Planet of the Apes, I thought, "This could be cool." But the more I thought about it, the more I realized that I haven’t seen a single remake of a classic science fiction film that I thought was any good. I could give Tim Burton’s version two stars only because it didn’t suck as bad as I thought it was going to. I can only hope that the reason why Tim Burton made this film was because someone in Hollywood had decided that by God this film was going to be made, and Tim Burton stepped bravely forward and said he’d do it. Sort of like the guy who throws himself on a landmine so that other people can live.

The word "re-imagination" should be banned. It doesn’t mean, "A reinterpretation of the original source material." It means, "Not willing to go the extra distance to make the remake anywhere as provocative as the original." Tim Burton’s film was full of gaping holes, inconsistencies that make you question your very sanity, and unresolved plot lines that scream, "SEQUEL COMING!". And there was a twist at the end, but the twist at the end of this film carried none of the power of the twist at the end of the original. When I saw the last few minutes of this film, I wasn’t shocked or surprised or anything… Instead, I found myself laughing out loud. I couldn’t help myself. It was ludicrous.

If you’ve never seen the ending of the original Planet of the Apes and have no idea what it is (which I doubt, since it’s probably the most classic twist ending in the history of science fiction and has become a mainstay of modern American culture), go out and rent it right now. Go ahead, I’ll wait. I just don’t want to spoil anything for you.

Okay, so now you know that Taylor, Charlton Heston’s character, was on Earth all along. And isn’t that always the way it is? Just when you think that you’ve landed on another planet, you discover that you’re really at home after all.

Being married is kind of like that… only without the nuclear holocaust and the enslavement of humanity (though I guess some people might differ on that second point). It’s honestly not all that different from when we were engaged, I suppose, but still… something has changed.

And I’m finding it pretty damn wonderful.

Code Code Code

This is the first computer-related class I’ve ever taken, this class in Programming Java from University Extension. Well, okay, I took a class in Pascal when I was in high school, but let’s be honest: who in the world ever programmed in Pascal except for high school proto-nerds like myself? First-year college proto-nerds, I guess, although now I understand that C++ is the beginning language of choice in college these days. When I was a freshman in college, my roommate, in one of his more lucid moments, told me that I really needed to take ECS 40, because it was a great computer class and you learned Pascal. I sniffed haughtily. "I already know Pascal," I told him. Smugly. "I don’t need to learn it again."

Now, said psychotic ex roommate is earning somewhere in the neighborhood of 25% more than I am without having ever finished his college degree, and I’m trying to figure out this Java stuff.

What’s bothering me at the moment is that I cannot figure out what the hell is wrong with this code, which I wrote for the second assignment. I’ve written more complicated code in Java in the past, but it can’t hurt to go over the basics one more time, right? This bit of code includes a class that I downloaded from the instructor’s website and which I compiled in the same directory as my code. I made sure to tell the compiler that the directory my code is indeed, God’s truth, in the CLASSPATH variable. And yet something is going wrong. Here’s the code. See if you can figure it out:

class Assignment_02
  int age;
  String inText;

    System.out.print("Enter age: ");
    inText = Term.input();

    age = Term.atoi(inText);
    if (age < 16)
      System.out.println("This person is under 16");
    else if (age < 18)
      System.out.println("This person is under 18");
      System.out.println("This person is over 18");

  public static void main(String[] args)
    Assignment_02 myProg = new Assignment_02();

I swear, the only thing that differs between my code and the instructor’s code is the class name. I’ve compiled this stupid thing a dozen times. It compiles fine, but when I try to execute the code, I get an error that reads, "Exception in thread main: no such class as Assignment_02, you idiot." Verbatim. My compiler doesn’t pull punches.

I know what’s going to happen. I’m going to fuss over this code all night while Jennifer happily bakes brownies in the kitchen and the cats chew on my socks, and I am going to go to bed convinced that I have missed some secret alchemical device known to the course instructor and a handful of Illuminati in Bavaria. And tomorrow morning I am going to wake up early, go swimming, and just as I complete my fourth lap I’m going to leap out of the swimming pool shouting "EUREKA!" and come running back to the house and log into my computer and fire up my editor and make a single change in the code, probably a single character somewhere, and recompile the damn thing and run it, only to have the same error come back into my face. "No such class as Assignment_02, asshole. You might as well practice saying, ‘You want fries with that?’"

This is just like dating. Except that when you’re in the dating process, you sometimes get it right. It’s my considered opinion that no one ever writes a Java program succesfully, it’s just that the compiler gets tired of fighting back.

I have a tendency to catastrophize. It’s not that I’m having trouble seeing where my error is in this code (and it might be as simple as having to recompile the stupid code with the instructor’s home-grown Term class); it’s that I’m the stupidest person who has ever walked the face of the earth and a Bushman in southern Africa who has no idea that Coca Cola exists, let alone platform-independent web-enabled object-oriented languages, has a better shot at building up their IT career than I do.

If I’d been thinking when I was living in the dorms with my psychotic roommate, I would have punched him in the face when he blathered about how wonderful Pascal was. I would have done it cheerfully (and I can actually think of a couple of people who would, to this day, happily hold him down while I did so), explaining, "This is for all those programs I’m going to write that are never going to compile!"

On a more positive note, things are actually looking up for me at work. I’ve wormed my way in to the PDA development project, thanks mostly to the fact that the local lead developer likes me. When I asked him what skill set he’d like to see, he replied, "Familiarity with Code Warrior." I explained that I’d never touched Code Warrior, although I’ve seen the box on the shelf. He replied, "Oh, that’s okay, we’ve got a spare license and can install it on your laptop tomorrow. So be sure to bring it in." It was a positive note for me. On the other hand, I have a limited period of time now to learn enough C++ to make a Palm Pilot application work (and in that same period of time I need to figure out how to deflect enough work from me and on to another developer so that I’ll have time to learn C++ and get involved in the PDA development project); and this will make my experience with Java a lot more interesting. And I’m committed to learning Java, for a lot of very good reasons. It just means that the next couple of months are going to be filled with a lot of time on my computer, trying to get Java to compile and C++ to work.

Want fries with that?

Object Orientation and Object Obsession

The last time I did any serious computer programming (apart from playing around with macros in different Microsoft or Corel products) was when I was in high school. Back then, BASIC was spelled in all capital letters and lived on computers that ran CP/M as an operating system, and still had line numbers:

10 Input a$
20 Print "Hello, " a$
30 Goto 10

I owned a TRS-80 Color Computer 2 from Radio Shack, which had 64K of memory (only 32K of which could be accessed at any one time), with no hard drive but a dual floppy drive. It’s fun to point back at that little device and chuckle fondly, thinking, "How cute they were in their larval stage", but, really, those machines could often be deceptively powerful. I wrote a large program in BASIC on that computer which kept track of all of my appointments and contacts, had its own (very simple) scripting language, made advanced use of randomly accessing data from the floppy disk that served as the data disk, and built display screens "on the fly", like modern active webpage schemes do nowadays. Even though it was slow (and got slower as the appointment and contact databases got larger), it was, I think, pretty advanced; I had figured out how to write programs in BASIC that were "modular" such that the subroutines were generalized enough to be re-used over and over and over by different programs (even though every single bit of a program had to be loaded into memory instead of accessed in parts from a disk); I was treating my data as objects, more or less, and even borrowing some tips I’d picked up from working with Paradox with my uncle one summer and making my database more or less relational instead of completely flat.

In short, I was awfully impressed with myself at the time, and I still am, when I look back on that program and others that I wrote like it.

In college, though, for some reason, I decided not to pursue computer programming at all. I wanted to be a doctor, and thought that I wouldn’t need to deal with computers at all. Then when it became clear that I would never be a doctor (nothing will help cure such delusions better than doing volunteer work with sick people and realizing that you can’t stand the whining — that, and flunking a class in basic organic chemistry), I still didn’t go back to computers. I stuck with my philosophy major and never really gave a thought to programming or computers. I enjoyed working with them when I did, but I never really thought about computer work as a career.

But now that I’m looking at a serious career change, from the world of a Human Resources administrator to the world of a computer nerd, I’m starting the process of learning how to program all over. My experiences in recent months with HTML, DHTML, JavaScript, Perl, and Cold Fusion have reminded me how much I enjoy sitting down and bashing out something that makes the experience of using a computer more enjoyable and useful for other people.

But programming has also changed considerably since my high school days. Objects? Methods? Threads? Superclasses? Instances? Packages? Interfaces? Huh? What? I’m not worried about being unable to pick up these techniques and terminologies, and I’m pretty confident that I’ll be able to do so pretty quickly. In fact, object-oriented programming is much like the predicate logic and modal logic that I used to play with in college. I’m just going to have to get used to the idea that when I want to do something in a program, I have to create an object to do it with.

Cue segue into a cheesy metaphor between computer programming and human emotion.

Object-orientation can be both a good thing and a bad thing. In computer programming, object-orientation is good, because it really does make things easier to do, and it makes playing with information a lot easier (in fact, I have recently discovered that there’s a new breed of database design, "object-oriented database management", or OODBM, which tries to treat records of data like objects instead of relating everything to everything else). In life, object-orientation can be either a good thing or a bad thing. It depends on what object you choose to orient on.

Some examples:

My fiancé’s object-orientation and obsession is towards cats. This is fine with me; I like cats and am even willing to sleep in the same bed with one or two of them as long as they understand that they’re not to approach my face (I’m allergic to cats, you see).

I, personally, have an object-orientation and obsession towards my career. Actually, I’m worried that it may not be healthy in some ways. I’ve sometimes found myself so obsessed with my future hoped-for career that I get overly upset about my current job, and even find my self-esteem wrapped up in it. This is definitely not good, as I come home from a day of work to my fiancé and whine at her about how my job sucks and how bad my prospects for future career development are. Fortunately, Jennifer is wise enough to know that I am not defined by my career or by how much money I make; and she’s even clever enough to be able to convince me of that too, at times.

Then again, there is at least one person in the world whose object-orientation seems to be focused on making me appear bad in my fiancé’s eyes. I am not a wealthy man, and I have debts, and I freely admit that up front. However, I certainly have no intention of having my future wife pay for my debts, I will never borrow money from her (nor did I ever borrow money from this other person that was not offered to me and that I did not pay back within a day), and if the unthinkable happens and Jennifer and I ever get divorced, I fully intend to leave our house with nothing but what I brought in to it. People who know me, fortunately, know that I am responsible and mature enough to own up to my own debts and that I am determined to pay them off on my own without anyone’s help, and my fiancé and I have discussed these issues on more than one occasion. Unfortunately, this other person’s object-orientation and obsession seems to be focused not only on making me appear bad to Jennifer, but to outright slandering me in public (without even doing me the courtesy of leaving out my name, as I have left out theirs). It hurts me, but it also hurts Jennifer. It’s an instance in life where object-orientation is a bad thing.

Okay, I admit that this metaphor is stretching things a bit. Fortunately for me, I have never claimed to be a literary genius, which lifts from me the burden of making sense to you, my three or four devoted readers.

But I’ll draw forth another analogy here, which harkens back to my May 22, 2000 Letter to Jennifer; when I was 18 or 19 years old, I figured that I know everything there was to know about relationships and the human heart, just as I thought I knew everything there was to know about procedure-oriented programming. Nowadays, I know that, just as programming is a hell of a lot more complicated than I had ever thought it was, the mysteries of the human heart and its vagaries are a lot more complicated than I had even suspected back then. And now here I am, making a career change into a new field that I thought I understood, and making a significant life change — from single to married — in my own heart, which I also thought I understood. I don’t understand either programming or relationships as well as I thought I had, but I am enjoying the process of ex
ploration, discovery, and learning. All over again

Clear Cutting and Sweeping Away

Yes, I know that I used this very same graphic in my last journal entry; but I felt that it might be appropriate to use it once again.

This past Thursday — yesterday, in fact — was supposed to be a fairly normal day at work. Install a few applications on my users’ computers, do some routine maintenance on a couple of other systems, make sure that the database is up to date. That sort of thing.

I opened up my mail program and saw a virus warning. Now, I’ve been fed too many scare stories of viruses with names like "Good Times" or "PenPals" to ever believe a virus warning that comes to me via e-mail. This new one was called "ILOVEYOU" and was supposed to do all kinds of horrible things to your computer: zap your hard drive, wipe your memory, eat your processor, seduce your dead grandmother, all of the horrible things that viruses which spread themselves through e-mail do.

Surprise, though: the ILOVEYOU virus turns out to be real. Within fifteen minutes getting the first warning about this virus, I received eight copies of a single message — subject line, "I LOVE YOU" — from a co-worker who had received the e-mail, opened it, and run the attachment. And within seconds after that, everyone of my users, not to mention every computer in the building, had received the same e-mail from the same co-worker. Some had received it eight times, like me; others had gotten up to fifteen copies of the damn thing.

Fortunately, I’d trained my users well, and all of the other Technical Support Coordinators in Human Resources had, too. No one else opened the attachment, so while everyone received multiple copies of the e-mail, no other computers were actually infected. I have a vague memory of running from user to user, instructing everyone to shut down Outlook, until we had an idea of what, exactly, this nasty little program would do.

To add to the confusion, the University is actually between anti-virus software site licenses. About 18 months ago, somewhere in the arcane machinations which control the bureaucracy of the University’s Information Technology division, someone decided that Dr. Solomon was no longer good for the University, and every department had to un-install Dr. Solomon and install Norton Anti-Virus. Now, recently, NAV has fallen into disfavor, and we must now all switch to McAffee. Except that when ILOVEYOU hit, our licenses for McAffee had not yet been completed and our licenses for NAV had all expired. So getting anti-virus protection for our computers was an exciting experience to say the least. All I personally have to say is that I’m very happy that I am not in the position where I would have had to repair a broken Exchange server.

Which, in my opinion, is where the bulk of our own problem lies. The Human Resources division, like — apparently — just about every other major business in the world, including the English Parliament and the United States Department of Defense, is hobbled with the Microsoft suite of Office applications. We’ve weeded out any sort of diversity in our network, and replaced all of the sturdy independent applications — like Eudora, WordPerfect, Netscape, and so on — with Microsoft’s Juggernaut, the Office 97 package. This is sort of like clear-cutting an ancient old-growth forest in the Pacific Northwest and replacing it all with acacia trees all bred from the same stock. Yes, technically, you’re replacing the wood; but your new forest is obscenely vulnerable to a single attack. In a computing environment, it’s nice to be able to reduce your tech support expenditures by paying people just to learn a single package, but there’s a price to pay for such unnecessary functionality. Without locating and disabling the obscure default setting needed to make the system truly useful (a feature which all Microsoft products share), you make your system vulnerable to just this sort of malicious attack.

The lesson to be learned here, is the variety and diversity, whether you’re working with a forest or with a computing environment, is good.

Cue segue. I’m going to draw a really ugly analogy between human emotions and old-growth rain forests and computer networking environments. Wish me luck.

Sometimes, upon the end of a relationship, we find ourselves desperately wishing to get together with someone who was Just Like My Last Love: someone who acts the same, who looks the same, who does the same things… Genetically identical to our last love. We figure, after all, that if such a person made us happy once before, then they will again.

At the end of my last relationship, I spent some time doing just that. I wanted to find someone who was just as attractive, just as intelligent, just as sexy, and so on. I wanted my next relationship to be very similar to the last one, if not exactly the same.

But if all of your relationships are identical, you open yourself up to all of the same hurts and problems again and again. We’ve all heard stories of the women or men who enter abusive and dangerous relationships over and over and over again, never learning their lesson, and so on. I’ve never fully understood the tendency myself, but after watching computer networks fail all over the world because they were, well, genetically identical, I think I see the sense: if all of your relationships are the same, then you don’t have to learn new coping techniques or ways of communicating. And, sadly, if you’re too full of pain, then you probably don’t even have the energy to learn these new techniques. In a way, it’s simply a matter of economics.

But by varying your relationships — by keeping yourself open to all possibilities, even ones that you thought had slipped you by years ago — you keep yourself flexible, you can continue to grow and learn and enjoy, and you find yourself better able to handle your newer relationships.

This is the theory at least. Take it for what it’s worth.

On a more pragmatic level, there is a new relationship in my own life. There are some similarities between this relationship and the one that I ended just recently. The new woman in my life is very intelligent, very attractive, very sexy, but in very different ways than the last. I hadn’t intended to enter into anything new — in fact, I had planned to stay away from all hints of any new relationships for at least a year. This came as a complete surprise to me, and it has, indeed, been a very pleasant one.

Change is good. Diversity is good. I don’t want to imply that the last woman in my life was a bad person in any way, of course, nor that novelty is the reason for my feelings now. Hell, I don’t want to draw any comparisons at all, or analyze anything too deeply. I just wanted to point out the benefits of keeping yourself open to variety, change, and new — or old — possibilities.

There’s very little talk in the way of diversifying our departmental network. We’re sticking with the Microsoft behemoth, keeping diversity at a minimum, maximizing our exposure to deadly attack; and when such attacks come (because they inevitably will), we’ll be terribly vulnerable. By sticking to just what we know, we’re putting ourselves in danger.

Well, perhaps I’m stretching. All I can really say is that while my department’s computing environment has been clear-cut, I’ve been swept away. We’ll see who lasts longer.

Here’s hoping that it will be less than three weeks until the next time…