The Sky Is Falling!

A very sad day approaches.

Those of you old enough to remember Gopher may proceed to shed a quiet, ASCII-art tear. Gopher document type 0.

For those of you that don’t know what Gopher is, here’s my quick summary:

* It existed before the web.
* It is an extremely simple protocol designed to be an Internet-wide filesystem, though the bit that let you mount the Internet like a disk never quite happened, though still could. (actually I think I saw a FUSE gopher implementation recently)
* It pretty much does everything that WAP does, but about 50 times simpler. Why smartphones invented WAP instead of just using Gopher is still a mystery to me.
* XML-RPC is usually extreme overkill when you could use a simple protocol like Gopher

Now how many of you remember Veronica and Archie?

Christmas Is Almost Here

It seems like Christmas started on Saturday this year. We had a nice snowfall, with a not-so-nice 40MPH wind accompanying it. We got drifts, and had whiteout conditions outdoors for a little while.

Sunday morning came and I went out early to see if we’d be able to get the car down our driveway. At about 1/4 mile long, shoveling the whole thing is not a practical option. Fortunately, I got most of the way down the driveway before the car got stuck, so I only had to shovel a little bit.

Sunday was our big Christmas choir day in church. We started off with Star of the East, and old Christmas tune. Research into the church archives revealed that it was first performed by the adult choir in the 1930s — and it was sung in English. Mrs. H. F. Voth was quoted as saying “they sang from the heart and meant it sincerely.” It was fun to sing this old song.

Later on, the whole church sang Oh, beautiful star of Bethlehem, another old tune that isn’t heard so often anymore. One of the older people in church told me later that song was special to her because she remembered carolers singing it at her house years ago.

The service ended with Nun Ist Sie Erschienen (score, mp3, story), a tune sung in our community for many years. I fondly remember my grandpa playing this song on his harmonica. Maybe it’s just stuck in my head for some reason, but it seems it was one of his favorites. This particular day, the pianist — who was my band teacher when I was in school and is now retired — improvised a beautiful accompaniment to the song. We sang it four times: twice in German, and twice in English. One of the older women in the congregation, whom I normally can’t hear because she sits in front of me and down the row in choir, was singing with such strength that I could hear her clearly from my seat.

Moments like that bring home the timeless nature of Christmas to me.

Ice Photos

For those of you wanting to see some pictures from the recent ice storm, here you go.

The morning:

img_4166.jpg

This bush sorta got short and flat:

img_4173.jpg

A tree branch:

img_4183.jpg

And another:

img_4185.jpg

Then, at noon:

img_4200.jpg

Then the snow came:

img_4229.jpg

If you have trouble finding the driveway… well, good thing we’ve got reflectors.

img_4253.jpg

The rental generator that kept us warmish:

img_4262.jpg

More snow:

img_4287.jpg

You can also see the whole set on flickr.

A Clarification

You may remember my post Monday in which I told Mother Nature to “bring it on”.

I would like to clarify that remark at this time. I would have preferred Mother Nature to interpret this in the President Bush sense of “please don’t hurt us”, rather than the “let’s just knock out power to the entire plains region”. A nice little romantic power outage Tuesday evening would have been nice.

We lost power at 3:10 on Tuesday according to my workstation’s logs. It’s still out, and our rural electric cooperative is estimating it will be another week until it’s back, though that’s better than the Dec. 22 date the state’s much larger for-profit utility is giving people. We were lucky enough to be able to find a generator to rent on Wednesday morning. $35 a day isn’t cheap. But on the other hand, we don’t have a flooded basement due to not pumping out the sump pump, our food isn’t spoiled, and our pipes aren’t frozen.

At work, our Internet connection went down Tuesday morning. We use a fixed wireless connection, and this was the first time our ISP’s radios have been tested in ice. Some antenna designs performed flawlessly. Then there were the antennas we had. 80% packet loss or worse. It wasn’t safe to get up on the roof to deice them until Wednesday afternoon, and even then we couldn’t get all the ice off. Finally today the connection was back to normal.

That two weeks after someone — yes — dug through Sprint/Embarq’s apparent only fiber-optic link into town. Took down all long-distance calling into or out of the town, most cell towers, as well as all access to 911 (since dispatch is in another town) for about 8 hours. If we had still be using wired T1s, we would have been out of service with Internet as well.

All told, 200,000 households or business customers of the state’s largest utility have been without power. Dozens of other utilities have also had significant outages. Ours alone lost 700 power poles and there are substations in need of repair all over the eastern part of the state. And we weren’t even the hardest hit.

On the generator, we can generally pick any three of refrigerator, server, workstation, or furnace to run. So sometime warm, I’ll upload the pictures I’ve taken so far. We have one nice CFL-powered electric lamp we’re using, flashlights, and a kerosene lamp. It’s amazing how after just a few days of this, we’re starting to want to go to bed earlier. Or perhaps that was because I haven’t had the chance to get a lot of sleep lately…

When we look out the house to the east, we see pitch black. Normally we can see some yard lights in the distance. Not this week. Nothing at all to the east. To the west, we can see yard lights tantalizingly close — only 2 miles away, fed from a different location. Ah, the joys of being at the very end of a utility’s network.

All this despite the fact that this storm wasn’t really all that bad. The roads were never really terrible, and there weren’t as many trees down as there were in the ice storm of 2005.

I heard a comment on the news today from an Iowa Republican who had followed the GOP debate yesterday. She mentioned that Romney made a comment like “Well, guess there’s no global warming in Iowa with an ice storm like this, huh?” She pointed out that if Iowa was still as chilly as it used to, it would have been a snow storm instead of an ice storm. I agree.

Attention Junkmailers

We love to hear from you. I’m sure that’s what you’re thinking, anyway, as you prepare volumes of paper to send to our mailbox.

But just so you know, let me explain just how much we love the material you send us.

When we get one of your catalogs, it will get added to the junk mail pile. Every so often, I will go through this pile. I will contact the company behind each and every mailing, asking them to remove me from their list and not rent my name further. If I have extra time, I will probably also write that note on your postage-paid envelope and pop it in the mailbox. I will also add your name to my list of companies that send me junk mail, so I can avoid doing business with you in the future. If you have sent me junk mail in the past, rest assured that I will find some creatively enjoyable way of dealing with your refusal to honor my removal request.

After I have processed your piece of artfully-crafted handiwork, possibly trying to sell me pink laptops or a shirt with the word “femail” on it — whatever that means — I will deposit your catalog, along with dozens of other similar catalogs, on the kitchen floor.

This is when the real fun begins, because now it’s Jacob’s turn to process them.

He will usually start by ripping out every page from the catalog. He’ll start slowly and carefully, ripping out pages one at a time, savoring the wonderful rrrrriiiiippppp noise as he goes. But then he’ll get faster, going for two pages at a time, then more, until finally he just will lunge for paper by the handful to crush, tear, or otherwise mutilate.

After that, there are many things he might do to your fine piece of unsolicited advertising. Perhaps he will enjoy drooling on it — a satisfying fate for your 4-color catalog, don’t you think? Or perhaps he will grab some of your pages, carefully emblazoned with your logo, and tear them into as many tiny bits as he can. Or maybe he will simply gather your work together on the floor, then spin himself around on top of it, scattering the remnants as far and wide as possible, cackling all the while. He may also smear bits of food on them if he ate recently, or perhaps he will simply resume tearing pages apart.

But whatever he does, rest assured that he will treat your catalog with the care and attention it deserves. No catalog will survive intact, and as many pages as possible will be ripped apart and left in bits. He does, after all, have a great attention to detail.

After Jacob is done, we will gather up what remains and put it all in our recycling container.

Oh, and under no circumstances will we actually make a purchase from your catalog.

Here are two pictures of the scene.

img_4160.jpg

Notice the careful concentration in this photo. Obviously he knows that Dell has been ignoring my removal requests for some time, and is taking note to tear their pages into the smallest possible bits.

But it’s not all hard work — processing your catalogs is fun, too.

img_4163.jpg

American Priorities

Number of people killed on Sept. 11, 2001: 2,974
Number of suicides in 2004: 32,439
Number of people killed on American highways in 2006: 38,588
Annual deaths from obesity: 300,000
Total deaths from cancer in 2007: 559,650
Total deaths from heart disease in 2004: 871,500
 
Total military spending in FY2008: $1228 billion
Funding for health research & improvement (NIH): $29 billion
Total support of Amtrak (safer, cleaner than highways): $1.6 billion
National Highway Traffic Safety Admin. spending in FY2008: $0.8 billion
 

WHAT IS WRONG WITH THIS PICTURE?

Viper

Well, now this is quite the experience.

I’ve been trying Viper for the past few days. Viper, for those that don’t know, is usually described as a set of Vi bindings for Emacs.

After reading the nearly 100 pages of documentation and trying it a bit, I have realized that this is not really an accurate description. Viper is a port of vi to Elisp.

But that doesn’t really do it justice. Viper seems to have pretty much everything going for it that Vim does, and then some. It is extensible with Elisp, and works with all the Emacs major modes (indentation and so forth). Yet it also is a very authentic Vi implementation, yet more customizable than Vim. And, in my opinion, more capable than Vim too.

On the one hand, this is a really neat combination: the power of the vi editing commands with the power of Emacs and Elisp for indentation, customization, etc.

On the other hand, it makes my head hurt. While Viper and Vim both are supersets of the vi command set, they don’t always implement extensions (such as multiple windows) the same way or with the same keys. Of course, you could remap them in both, but it’s a bit jarring to run Viper in expert mode, press C-w to start creating a new window, and have it run the Emacs cut command. (You can run Viper in a more limited mode where it does not recognize any regular Emacs keys if you don’t want that)

It’s just weird. It mostly looks like Emacs. It is modal like Vim, and responds to all Vi and most Vim commands. It has an additional mode: the Emacs mode. Also if configured to run in expert configuration, Emacs commands are accepted most places. Yes, you can move with h, j, k, l and C-n, C-p, C-f, C-b all at the same time.

The main drawback I can see is that Viper mode doesn’t work well with Info mode, which has other bindings for keyboard shortcuts… so all of a sudden, hjkl don’t work in info mode.

I don’t know yet if I’ll use viper much, but it is a slick program.

A little more on Vim and Emacs file handling

Yesterday’s post about switching back to Emacs saw quite a few comments from people (most of them useful, even). I learned a few things.

My biggest gripe about Vim was that for the file types I worked with most, its indentation and syntax highlighting was inferior to that of Emacs. I’d like to illustrate that with an example.

Let’s consider one of those file types: XML containing DocBook markup.

Vim has a DocBook mode. It doesn’t autodetect DocBook files, so I have this at the top of each one:

<!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : -->

Now, why should Vim need a separate DocBook mode? DocBook is just XML or SGML, and these things have a well-formed nature. Well, part of the reason is that /usr/share/vim/vim71/syntax/docbk.vim has a ton of lines like this:

syn keyword docbkKeyword chapter citation citerefentry citetitle city contained

Yes, they are hard-coding all the DocBook element names into the editing mode. It’s probably used for completion, highlighting, maybe indentation. I’m not sure, really. I remember that editing these files without the DocBook mode was much more painful anyway, but that was 8 months ago and I can’t quite remember why.

Now, what about Emacs? I don’t know if Emacs even has a DocBook mode, mainly because I don’t have to care. The Emacs psgml mode actually parses the DTD for your XML or SGML files. It knows exactly what the valid tags are from doing so. This means it has full functionality not just for DocBook, but for any XML or SGML file with a DTD.

Not only that, but it knows more about the files than Vim does. For instance, both Emacs and Vim can do completion of various things. Vim </ C-x C-o (ooo, sounds like Emacs!) can complete my closing tags. But it can’t autocomplete my opening tags, and it certainly isn’t aware

Not only can Emacs autocomplete opening and closing tags, but it knows exactly what tags are valid at a given place in the document (thanks to the DTD) and will only consider those tags for completion. Moreover, depending on how you have configured it, it could also insert spots for you to add any required attributes. So, for instance, if you’re editing XHTML and autocompletion gives you an <img> tag, it would add src="" in it for you, as a reminder that src is required.

There are a host of other smart things that Emacs can do with XML or SGML documents. For instance, you can get a list of all tags valid at the current point with C-c C-t or Shift-RightClick — useful if you’ve forgotten the name of a tag for a moment.

The difference isn’t as great with everything. But it sure is noticable as I work with XML and Haskell files.