Software

An Example of Ruby Introspection

In my blog post yesterday about Java, I made positive mention of the Ruby programming language. I pointed out that by giving you the power to do some potentially dangerous and confusing things, Ruby also gives you the power to do some very cool stuff. Let me give you an example.

Let's start with a class called Person with a single attribute name:

class Person
    attr :name
end

Java is the Snubby-Nosed Scissors of Programming Languages

I've had to teach myself Java for my current contract. You may be surprised to find that with all the code I sling, I've not done any Java development up until now. Java is popular for enterprise application development, and I haven't done a lot of work in that space before.

I usually like learning new languages. I'm not enjoying Java at all. It's verbose and wordy, like a pedantic little schoolkid. It's like the snubby-nosed scissors of programming languages.

web-chpass Release

I just released a small update to the web-chpass program. This is a small, secure, robust utility that allows users to change their (Unix/Linux) login password through a web form.

No new features. Just a couple of small tweaks to the nipasswd program. Grab it if you want it.

Posted in

Movable Type Force-Preview Update

It's been three weeks since I released the Force Preview plug-in for the Movable Type blog system. I blogged about it upon release. Thought I'd give a brief update.

First, the good news: it's been completely effective at stopping comment spam. I've found that the moment the plug-in is enable for a blog, comment spam ceases. My girlfriend reported a single spam, probably hand entered, during the past three-week period. Besides that, nada.

Now the bad news: it's kind of a pain in the butt. You need to modify a minimum of two templates (your individual archive entry template and comment preview template), and more if you use the (now deprecated) comment pop-up. The instructions are pretty explicit, so it shouldn't be difficult if you've only got one blog. It's might annoying, however, if you have several. I had four blogs that needed protection, and only today did I get around to dealing with the last of them.

More bad news: I tried to register the plug-in with Six Apart, the makers of Movable Type, but they won't let me without signing up for Type Key.

My other concern is that trackback spam continues to be a problem, but it's not nearly at the level of the comment spam.

So, I recommend that people with existing Movable Type blogs who are frustrated with comment spam consider trying it.

Moribund Type

Sometimes, I feel like the last blogger left using the Movable Type blogging package. All of the cool kids have moved on to Wordpress or Drupal or something else. Even the Scripty Goddess, one of the first (and best) Movable Type resources, has moved on.

There are three things that keep me on Movable Type. First, I really like the static publishing model. Most publishing systems generate pages dynamically, which can mean a lot of processor and database overhead to serve a request. Not Movable Type. By default, when a web server receives a request for a Movable Type blog entry, it just serves a static html page from disk. The processing and database overhead are eliminated, which means even a dinky web server (like mine) can survive a slashdotting (like mine has).

(The tradeoff is the much reviled Movable Type "rebuild" function. That's a feature, not a bug. On a busy blog, the milliseconds of processing and database overhead across thousands of page view more than makes up for the rebuild.)

The Coconuts Problem...in Ruby

I'm teaching myself the Ruby programming language this weekend. I came across a Linux Journal column that discussed learning Python using the Coconuts Problem. (It has to do with dividing a pile of coconuts among desert island castaways, and calculating the initial size of the pile. The programming challenge is to develop a brute force solution to the problem.)

Posted in

Pundit-R BIOS Update Agony

I've spent the better part of the afternoon performing a BIOS update of my ASUS Pundit-R system. I finally found a procedure that works—and about ten that didn't. I'll describe how I did it, in the hope that it prevents somebody else from following my same path of agony. This procedure may be applicable to other systems, particularly those that use AMI BIOS and the AFUDOS BIOS flash update utility.

A Couple of web-nsupdate Implementation Hints

I recently released a utility called web-nsupdate that implements a lightweight dynamic DNS update service. Now that you've had a few days to download and unpack and install the package, here are some hints to help use it better: one on the server side and another on the client.

First, a hint for the server. In the installation directions (step 9) I describe how you need to modify the zone configuration to add a dynamic client. Here is a portion of the named.conf file that illustrates that change:

zone "example.com" {
	type master;
	.
	.
	.
	# add the lines below, one per host in the zone
	update-policy {
		grant web-nsupdate. name host1.example.com. A;
		grant web-nsupdate. name host2.example.com. A;
	};
};

Here is the hint: don't do it.

web-nsupdate: A Lightweight Dynamic DNS Service

Earlier this year, I changed my residential broadband network gateway to a Linksys WRT54G running the OpenWrt Linux distribution. Back in July, I wrote about why dynamic DNS is useful to in this sort of environment, and my frustration that the nsupdate utility is so ill-suited to it.

The solution I described was to run nsupdate not on the WRT54G client, but on a remote server that has the MIPS and MBs to run it. I implemented a package called web-nsupdate that runs on the server and receives requests from the client to set its host address. Requests are performed as a simple web transaction.

Where to Advocate Open Source?

Both non-profit and for profit organizations can benefit from open source software. Should open source advocates lump them together or treat them differently?

The question is not just academic. Yesterday, I met with some folks advocating open source software in Central Texas. Our immediate goal is to produce some event, possibly based on the Penguin Day concept. That's a type of workshop for non-profit organizations.

Syndicate content