Wget Stuff

Yeah, well my blog posts have dropped off drastically lately. It’s probably mostly due to my recently having taken on maintainership of GNU Wget. I’ll give an update on what I’ve been doing with that.

Bug tracking

One of the first things I did was to go through the TODO list on the Wget repository, and issue reports on the mailing lists, and transfer it all to a bug tracker, so we can actually see what needs fixing, and what we’ve fixed, and keep it all semi-organized somehow. In spite of reservations, I decided to move them all into GNU Savannah’s bug tracker, because Wget already has a presence on Savannah, so it would require a minimum of setup. On the other hand, as I was already well, Savannah’s interface positively sucked. It’s cumbersome to set up bug submission form fields, it’s cumbersome to arrange their order, it’s cumbersome to search for specific kinds of bugs, …but at the end of the day, it does the minimum that I decided I needed, and required relatively little setup. Maybe someday we’ll move to Bugzilla… *shrug*

Moving the repository

Another thing I did pretty soon after taking ownership of Wget, was to move hosting of the Wget source code repository from dotsrc.org (formerly known as sunsite.dk; they still host our primary mailing list) to my own VPS (the one this blog runs on), under the domain addictivecode.org. I didn’t do this just because I’m a control-freak and want absolute power over everything (though this may be the case 😉 ), but after several weeks of trying to get the attention of the dotsrc staff so I could get commit access to the repository (and actually freakin’ write code for the project I was supposedly maintaining), I decided enough was enough, and used svnsync to create an identical copy of the Subversion source code repository, so I can give myself access. 🙂

New mailing lists

Another motivation for moving the repository was that I desired to have a mailing list for receiving commit notification, so everyone who’s interested can see what development is going on. Mauro Tortonesi, the previous Wget maintainer, related that he’d tried to get the dotsrc staff to put such a thing in place, but to no avail. So, I created a list for this purpose, which also receives bug report change notifications from Savannah; and another very low traffic one for communication between just the developers who have commit access.

The Wget Wgiki

Next was to complete the migration from a web presence at dotsrc.org to gnu.org. The original plan was to have the entire web presence hosted at the gnu.org site; however, at the same time, I was scheming about putting a wiki in place for collobarative definitions of specifications for future major improvements to Wget. When I finally got around to slapping MoinMoin onto my server (which I chose primarily because of familiarity due to my involvement with Ubuntu), I began to realize just how much better it would be to host as much of our main informational content on the wiki. So, the end result is that the dotsrc site no longer exists (or, more accurately, redirects to the GNU site); and the GNU site is a basic informational stub, that points to the new wiki site (dubbed The Wget Wgiki), which holds all the real information.

Development schedule planning

Another thing I started doing early on was to draw up a project plan (Gantt chart) to try and target when we would release the next version of GNU Wget, 1.11. Since it was pretty much just me and Mauro doing active development—who both have day jobs—I tried to be extremely generous with the amount of time it would take us to get things done. Wound up with a target of September 15. I’m confident we would’ve made it, too: we were on-target in terms of development, but there ended up being some legal issues with the new version 3 of the GNU GPL, and the exemption Wget needs to make to allow linking with OpenSSL, an incompatibly-licensed library that handles encryption for things like HTTPS. We’re still waiting for the final concensus from the FSF legal time.

At the moment, we’re not code-ready anyway; but we would’ve been if we hadn’t been somewhat demotivated by the fact that our code-readiness or lack thereof isn’t going to impact when we can release. I chose to work more on the wiki instead of code at that point, and on evaluating decentralized SCMs as potential replacements for Subversion. Now that I’m doing most work on a laptop, a DSCM is convenient. So far, Mercurial seems like a good bet, but we’re still discussing it on the list. Several folks prefer Git, but Git seems to be heavily Unix-centric, with limited support for other platforms; given that Wget is also used on other platforms, there seems to be some merit in preferring a more multiplatform solution; but we’ll see.

All You Need Is Hate

Lyrics to All You Need Is Hate, by The Delgados (on their album, Hate). I love this song!

This was how I broke the best
Indifference, overblown with confidence and ignorance
It all made sense
And then I watched them take the test
I believe it’s better to inflict than to attempt relief
You ask me what you need
Hate is all you need

Hate is all around find it in your heart in every waking sound
On your way to school, work or church you’ll find that it’s the only rule
Build a different world, hate will help you find what you’ve been looking for
Hate is everywhere, inside your mother’s heart and you will find it there
You ask me what you need hate is all you need

This was how I won the west
Charity, a joke that friendly cities think that we believe
Or so it seems
We kicked and punched and stabbed to death
And everyone applauded my fine actions I was overcome
You ask me what I’ve seen
Hate is all I’ve seen

Hate is in the air
Come on people feel it like you just don’t care
Everlasting hate feel it in the people where it’s warm and great
Come on hate yourself everyone here does so just enjoy yourself
Hate is everywhere, look inside your heart and you will find it there
You ask me what I mean
Hate is all I mean

For any of you to whom this is not obvious, no, they don’t think you should just hate everybody, and neither do I.

I found this awesome album a year or so ago, when I fell in love with the theme song to an anime series named Gunslinger Girl. The series is okay—I never got around to finishing it (someday, mebbe)—but the theme song, The Light Before We Land (on the same album as All You Need Is Hate) was awesome. Unfortunately, the drums are distorted somewhat, which marrs an otherwise terrific song.

Firetop Mountain

Back when I was working at Transmeta, a couple of coworkers introduced me to a terrific play-by-email game called Firetop Mountain. It’s a fun game of intrigue, of magical duels, of predicting your opponent’s moves while obfuscating your own, of reverse- and reverse-reverse-psychology. Your mage casts spells by making sequences of gestures (there are six possible gestures) between his two hands. Most spells only require the use of one hand, so one can be working on two spells at once; though some spells require a little cooperation between the hands.

By combining these simple gestures, mages can cast magic missles or fireballs, blind their opponents or make themselves invisible, cause injury or fatal illness to their opponents, summon one of six different types of monsters, cast storms of fire or ice, take possession of an opponent’s monsters, and even manipulate their opponents’ minds, or time itself. Naturally, there are also a variety of defensive spells, which mages can use to thwart their opponents’ attempts at gaining the upper hand. Mages are also each equipped with a dagger, for inflicting damage the good old-fashioned way. 🙂

Normally, once having joined the Firetop Mountain server, the server will automatically notify users when a new open challenge has been made (you can also challenge specific mages). However, the Firetop Mountain mailing list seems to be down currently, so it’s necessary to manually check the current challenges to see what’s available. Fortunately, I have a friend or two that I can simply keep challenging again after every duel.

If anyone who reads this decides to check it out, my user name there is “Sillig” (an interesting Middle English word that originally meant “holy” or “saintly”, but whose meaning and spelling later changed to become our modern word, “silly”). As you can see from the challenges link above, I have a couple mages waiting with open challenges (at the time of this writing, natch).

Darwin Awards on DVD

So… it looks like they’re releasing a movie on DVD based on the famed Darwin Awards. Winona Ryder co-stars. Should be interesting…

If you’ve been living in a cave and haven’t heard of the Darwin Awards before, it’s an honor bestowed upon people who have selflessly (if inadvertantly) removed themselves from the human gene pool through acts of sheer stupidity, and are therefore doing the human race a service by presumably decreasing, if ever-so-slightly, the quantity of genes in the pool that result in stupid people. There are a few rules that must be met in order to qualify for a Darwin Award, the most important of which (IMO, at least) are:

  1. The victim/awardee must have displayed an “astounding misapplication of judgment”, and
  2. The victim/awardee must have removed perself from the gene pool; that is, phe must no longer be capable of procreating. The usual way this is accomplished is via the removal of oneself from among the living; however, it is sufficient to have damaged one’s reproductive organs in such a way as to meet this requirement. 🙂

Beauty and the Beast

The family has started watching the late 80s television series, Beauty and the Beast, seasons one and two of which are currently available on DVD, about a female news reporter whose life is saved by a man who is part lion and is part of a small society that lives in secret far below the streets of New York city, and share an empathic bond from that moment forward. Sara and I both loved the series growing up, but then it just sort of quietly disappeared; I don’t know if the series finished up or it was cancelled, but they didn’t play any reruns, and I barely heard a whisper about it until I happened to notice season 2 available at my local Fry’s Electronics store.

While watching the initial credits, I noticed that Vincent (the lion guy), is played by Ron Perlman, whose name rang a familiar bell, so I looked him up in IMDB. Turns out, there’s a reason I recognized that name: he’s been in several movies, some of which you’re sure to have at least heard of. He’s been in Hellboy, Highlander; several notable video games including Fallout, Chronicles of Riddick: Escape From Butcher Bay, and Forgotton Realms: Icewind Dale. The most striking to me (but one you’re probably not as familiar with), is the french film The City of Lost Children, which is a really well-done, artistic and charming (and surreal and bizarre and disturbing) movie, co-written and co-directed by Jean-Pierre Jeunet, who also brought us Amélie, the delightfully twisted cannibalism-themed Delicatessen, and… Alien Resurrection!

A Lack of Basic Understanding

As I mentioned previously, I have recently subscribed to Answers magazine, produced by Answers In Genesis, famous for their recent opening of the Creation Museum.

I received my first issue a couple months ago. The chief reason I subscribed was that I wanted to keep abreast of anti-evolutionary arguments, and Creationist reactions to recent scientific discoveries as they occurred. The issue I first received was almost entirely dedicated to the stories of the global flood and Noah’s Ark.

I was rather disappointed to discover that there was actually rather little in the magazine for me to actually evaluate, as most of the writing offered no references to back up their claims and assertions; thus, there was nothing for me to reason about—only rhetoric. I have just received the next issue, which I have not yet opened; I’m hoping there will be more interesting arguments in that one, and hopefully some references to back up a few of the claims.

However, I was struck by this very brief snippet of an article (it was, IIRC, less than half of a page in length). I think it illustrates rather well the extreme lack of understanding of basic principles of evolutionary theory or mechanics, or even terminology:

The textbook authors recognize that the resistance is already present in the bacterial population (Fig. 15.5) and then claim that selection for resistant bacteria in a population is direct evidence for evolution. Selecting for something that is already present does not provide support for the information-gaining change required for evolution.

Of course, this text completely ignores the question, how did the variations between resistant and non-resistant bacteria arise in the first place? No biology textbook will claim that the selection itself is how an individual organism becomes stronger: selection only explains why the percentage of resistant bacteria will tend to get stronger. But, evolution does explain how the variation arose that allowed some of the population to become more resistant than the others.

Of course, I have to wonder about a group who struggles with the idea that a colony of bacteria can develop minute changes allowing some of them to become resistant to antibiotics, but clings to the concept that lions and house cats evolved from the same animal “kind” (which was represented by a population of two to seven on Noah’s ark), and dogs and foxes from another, in the last 4,000 years, while, of course, rejecting the idea that evolution could have caused any transition from one “kind” to another.

The article also claims that evolutionary biology textbooks say there is support for the claim “that molecules can change into completely different kinds of creatures.” So much for proof-reading.

It appears I may have been a tad optimistic in expecting to find some shred of reasoned argument in this periodical…

RTFM

Today’s xkcd comic seems to sum up rather well, the attitude many developers seem to have regarding the user experience. Moral: just because the user didn’t thoroughly familiarize perself with the documentation, it does not mean the program is excused from Doing The Right Thing.

Soda Can Caffeine Contents

Did you know that Coca-Cola has less caffeine than either Pepsi or Diet Pepsi, but that Diet Coke has more caffeine than any of those (by at least 8 mg/12 oz)? As does Dr Pepper, which has a few mg less than Diet Coke; and as commonly known, Mountain Dew has all those beat. As might be expected, generic brands tend to have really sucky caffeine content (12.7 mg/12 oz for Sam’s Cola). The Journal of Food Science has a comparison of caffeine content from a variety of sodas; unfortunately, the article is available online only to subscribers; but the abstract (I found from Digg) at least is somewhat informative. I’d like to get my hands on the full article, but don’t feel like subscribing just to get at it.

On a related note: what do you think the difference between Diet Coke and Coke Zero? My initial assumption, when Coke Zero first came out, was that they had replaced the asphartame (“NutraSweet” brand) with sucralose (“Splenda” brand), but a quick inspection of the ingredients on the bottle proved this to be wrong. So I spent some time wondering: what’s different, then? They both use asphartame, they both have zero carbs, zero calories: what makes Zero, Zero, and not Diet? (There is, BTW, a completely Splenda-sweetened Diet Coke; it’s still not as good as regular Coke, perhaps due to what I’m about to explain about the Diet Coke formula, but IMO it’s better than NutraSweet.)

Well, according to Wikipedia (Coke Zero, Diet Coke), the answer is that Diet Coke is not based on the same formula as regular Coca-Cola, but instead uses the same formula that the ill-favored and short-lived “New Coke” was based on. It’s not Coca-Cola with all the corn syrup replaced by asphartame, but rather New Coke before all the asphartame was replaced with corn syrup! So, the answer is that Coke Zero fills the “Coca-Cola with all the corn syrup replaced by asphartame” gap.

Of course, if you’re like me, you’d prefer a variety of Coke that fills the “Coca-Cola with all the corn syrup replaced with actual cane sugar once again” gap. For now, I’ll just have to continue to make do with the occasional bottle import from Mexico, when I’m out at a Mexican restaurant that offers these.

GNU Maintainer Me

This morning I was officially appointed as the maintainer of GNU Wget (one of the tasks on my to-do list is to update that page to the current, more modern GNU look, but for now, I’ve at least got my name on it 🙂 ). Wget is a very versatile command-line application for fetching web files, and can be used to grab local copies of web sites, or sections of web sites. I’ve used it many times for a variety of reasons; quick fetch of a web file to disk, grabbing a portion of a website so I can view it offline, web debugging….

It’s a fairly high-profile tool in the GNU and Unix worlds, so I’m proud to be able to be a part of it. It will be a big time investment, which I never have a whole lot of, but I am very, very motivated. I spent the weekend categorizing and prioritizing the things that need to be done on wget, so I have a fairly solid idea of what needs to be accomplished.

Here’s the announcement on the wget mailing list.