Rexx – King of Languages

Howard Fosdick wrote about one of my favorite languages, Rexx, on OnLAMP earlier this week.

For many years, I did almost all my programming in Rexx, mostly on VM/CMS but occasionally on TSO or OS/2; it was a language well-suited to the environment and to the kinds of problems I had to deal with, especially when augmented with tools like WAKEUP (providing event handling) and RXSOCKET (TCP/IP socket access), as well as the invaluable CMS Pipelines. One of the best features of Rexx was its ubiquity on VM/CMS; because it used system hooks, it was available as a macro language for any program which needed one — and so it was far easier for a developer to use Rexx than to make up a unique language.

Back in 1989, Almaden’s only connection to Usenet was an AIX box, which dialed out once a day and fetched the day’s postings. I wanted real-time access to Usenet, especially (this was long ago, before spam was invented, and so there was some actual content on Usenet), but our only connection to the ARPANet was on VM. So I wrote some Rexx code to gateway postings through VM to the AIX box (and back); it was probably about 2000 lines of Rexx and needed four virtual machines to run (CMS was single-threaded). Since the postings were traversing VM, it also seemed like a good idea to gateway them into our VM-based conferencing system — and at one time, that traffic accounted for 25% of the network traffic in IBM.

Rexx was the native macro language on OS/2, as well, and at one time, my OS/2 Gopher client had a hook to allow writing Rexx macros. Unfortunately, I never figured out any use for macros in a Gopher client, and so I never documented the hook (I think I removed it before the official release of the Gopher client). But Mike Cowlishaw took great advantage of the OS/2 support of Rexx when he wrote the OS/2 Gopher (and later Web) server, GOSERVE — of course, he was also the author of Rexx, so it was a natural decision for him!

I don’t use VM/CMS much any more (I still have an account, which I use once every 90 days to change its password); I still do have a mission-critical Rexx program which converts my paystub into QIF form so I can import it into Quicken. And my preferred text editor, Kedit, uses a 90%-subset of Rexx as its macro processor.

These days, I tend to write in Python — it has much the same “feel” as Rexx, and it makes it easy to get to SOAP, XML parsers, and the like. I tried Perl for a while, but didn’t like the style of the language. I’m playing with Ruby a bit, but haven’t really gotten down to writing anything real, and I can get by in PHP when I need to (for example, in customizing WordPress). But I still miss Rexx.

One last ending

It’s been fun here on, but it’s time for me to move to my own domain.

Please come and visit me at my new home, Read This Blog!, because everyone is entitled to my opinion.

Where’d the week go?

I’ve been running heads-down all week, making some progress on several fronts, but not enough on any of them.

At work, I’ve had three major projects going this week:

  • writing what I hope will be a significant report to the CIO’s office
  • building a combination blog and status report aggregator for my team (in other words, working with a colleague to put WordPress on a machine that he controls, playing with the theme, and pointing people at it)
  • trying to migrate a wiki from MoinMoin to MediaWiki in hopes of getting it off the machine in my office before what I thought was going to be a lab-wide powerdown for the long weekend. There is no clear path between the two wiki syntaxes; I got partway there by writing a new formatter for MoinMoin, one which produces something close to MediaWiki markup, but the results still need manual fixup. But the good news is that they don’t plan to turn off power in my wing after all, so there’s no urgency.

At home, I’ve been spending too much time doing work — e-mail is never-ending, it seems. But in my spare moments, I’ve also been working on building a migration path from Manila to WordPress (well, most likely to RSS2.0 so that I can use the existing migration tool in WordPress from there); I’ve learned a lot about Python’s SOAP support in the process, since I’ve had to get around some non-well-formed XML produced by Manila (pages with subscribers or trackbacks are the ones affected). I’m not quite there yet, but I have hopes of moving content this weekend.

That, of course, assumes I do anything with the laptop at all this weekend; last night, I was sufficiently beat by the time I got home that I left it in the briefcase instead of working. And I enjoyed not working so much that I didn’t even check my mail this morning until I arrived in the office — and, sure enough, the world did not stop spinning because I waited. I’ll have to keep that in mind next week.

It looks like a great weekend for geocaching, too — temperatures are going to be very pleasant, and we don’t have anything on the calendar after services tomorrow (Diane’s reading Torah, so we have to be there). I picked up a Zire 31 at the Shir Hadash gala earlier this month with the specific idea of using it for paperless caching — it’s time to act on the idea.

Hmmm…3:37 on a Friday before a three-day weekend…I think that’s close enough to a full day for me!

Car update

State Farm called yesterday to tell us how much they’d give us for the totalled Prius; the number was quite reasonable, but we’ll still be well short of the price of a new Prius. I was pleasantly surprised that they also will repay us for the unused registration and for the sales tax on the car (well, for the amount they cover) — I hadn’t thought of that at all.

So now we’re on the waitlist at three dealerships so far, and I should call some others over the weekend, on the extremely limited chance that there’ll be a blue BC available locally.

Still getting set up

Thanks to Ed Costello, I discovered that I had a backlevel of WordPress, one which didn’t properly create the RSS and Atom feeds. So I updated the site yesterday, and that should be fixed.

I’m amazed that people have actually found this blog already; I wasn’t planning to advertise it until I’d figured out how to migrate the content from Defenestration Corner. I guess I’d better get busy on that!

It’s only a movie…

Diane and I went to the movies bright and early this morning; the IBM Club had bought the Century 21 Theatre for a special showing of Revenge of the Sith. We got there too late to get great seats, but we weren’t forced to sit at the very front of the theatre, so it wasn’t too bad.

There was one interesting byproduct of going to a private showing — no commercials and no trailers. The first thing on the screen was the Lucasfilm logo, followed by those magical words: “A long time ago in a galaxy far away…”.

It’s a shame nobody can tell George Lucas when he’s going overboard — I thought that the battle scenes went far too long, and the first hour of the movie dragged a bit. But eventually, I got into it and quite enjoyed the last 75 minutes. I was pleased that George took care of the loose ends (like C-3PO’s not remembering Tatooine in A New Hope), even if he was less than subtle in a few places.

We’ll probably go back and see it again — I want to watch all six movies in order, and I’ll be very surprised if there isn’t a boxed set available in time for holiday buying. And a rewatching of Spaceballs and Hardware Wars is in order, too.

Moving in

I’d been thinking of moving my blog to its own top-level domain (and onto WordPress) for a while, but I couldn’t decide what domain to use. Until this weekend, when the name “ReadThisBlog” popped into my mind. I would have liked to have had, but it’s parked at Network Solutions — but should do just fine.

As time permits, I’ll move my old content here, but in the meantime, please visit Defenestration Corner for a historical view.

I’m still playing with the format here, too — what looks good on a 1400×1050 screen isn’t so great at 1024×768 (and I don’t want to think what it looks like at 800×600). So expect changes.

A month of endings

So far, May has been a month of endings:

  • Enterprise and Jack and Bobby broadcast their final episodes
  • Episode III finally arrived, bringing the saga to a triumphant middle (or so I’ve been told — Jeff’s seen it, but we won’t until Sunday)

And now our 2002 Prius has come to the end of the road. The insurance company called this afternoon — the estimate from the body shop had reached $13,000, and they hadn’t even taken the dashboard off yet, so they decided to total the car. I wasn’t surprised, but I’m still not happy about it. We’ll find out next week how much they’ll pay us for the car, and whether they were able to rescue the CD that was in the player.

I had hoped that if the car was going to be totaled that they would have told me yesterday, because Kehillah was auctioning a 2005 BC at the first annual gala, and we would have bid. But we didn’t know, and decided to be optimistic that the 2002 could be fixed. Oh, well; if we had bought, we would have wound up with two silver Priuses, and that might have been confusing.

We’re now on the queue for a Seaside Blue 2005 BC, and I will be calling more dealers over the weekend in hopes that there’s one available in the wild.

Progress on the car front

This morning, I visited Hertz and swapped the Cavalier for a Prius. I am much happier, even though the car is missing some of the bells and whistles that our new Prius has (like the Smart Entry/Smart Key system, the navigation system, and Bluetooth). But it’s wonderful being able to sit in the car without hurting!

And the insurance company called me — they needed me to contact the towing company to have the car moved to the body shop of my choice. Since I have no body shop experience, I asked them for a suggestion, and they suggested Swanson Collision Repair, which, by strange coincidence, is in the same building as Hertz. So I called the towing company, who told me I’d have to come in and sign a form before they could move the car; fortunately, they were only a few blocks away. And as long as I was there, I grabbed everything I could out of the car (including one of our garage door openers!), and took a picture of the damage:

Ouch!: I’m waiting to hear whether they’ll repair the car or not. I hope they let me know soon.

Still nasty

The insurance company called us today, wanting to know where the old car had been towed to, and what our favorite body shop was. Unfortunately, I didn’t get the message until after the adjuster had gone home for the day, but I left answers to the questions (we don’t have a favorite body shop, so I’ll let them pick one) on voicemail, and maybe things will happen tomorrow.

Hertz will have a Prius for me to rent tomorrow morning, which will definitely be an improvement over the Cavalier. I mentioned my dislike of the seat, and the person at Hertz said that they advise customers to bring a pillow — I find it hard to believe that Chevy could design a car which is so uncomfortable. Maybe that’s why GM is losing billions?

And Jack and Bobby got cancelled today; it wasn’t much of a surprise, given the ratings, but it was still disappointing news. Wonder how long before it shows up on DVD?