Merged


$ git-log --author="Bob Copeland" v2.6.26..master  | git-shortlog

Bob Copeland (10):
ath5k: Fix loop variable initializations
ath5k: convert LED code to use mac80211 triggers
omfs: add filesystem documentation
omfs: define filesystem structures
omfs: add inode routines
omfs: add directory routines
omfs: add file routines
omfs: add bitmap routines
omfs: update kbuild to include OMFS
omfs: add MAINTAINERS entry

Woot! I had an 11th patch, for ath5k, but the maintainer fixed it independently. Very nice to finally get omfs in and not have to maintain that sucker out of tree.

Pegged

I moved my main server from the old house to the apartment this weekend, which immediately presented the problem of too many wires and not enough legroom under the desk. Taking a cue from lifehacker.com, I’m jumping on the pegboard organizer bandwagon. The picture to the right is the underside of the desk, with a section of pegboard attached via hanger bolts and wing nuts. Right now, only a couple of power strips and a router are zip-tied to it, but I plan to add the Vonage router, the wireless router, various power bricks, and a few loops for cable runs. Pro tip: affix the pegboard with temporary screws while you add the hanger bolts, or else the bolts might be just crooked enough to drive you nuts, so to speak.

Train haxored

I was wondering why the $7 trade-in limit for SmartTrip farecards went into effect, along with numerous signs imploring us to only buy cards from the vending machines. I thought maybe it was a MetroChek scam, but no, it was the result of scissors-and-tape hackers.

New Banshee Plugin

Thanks to a few hours of hacking during the holiday weekend, I have a new version of the Karma plugin for Banshee (and a newer version of omfs too). I’m too lazy to write my own release notes so read someone else’s! Thanks, Ben.

swing rant

Never ever write a Java gui application with the requirement that you check fields before letting the user tab off of them. What a nightmare! Your only two tools, without rewriting large parts of Swing yourself, are FocusListener and InputVerifier. FocusListener is great for the case when you have two such fields. Set up bad data in each field, then watch the focus traversal war as a focusLost() method reclaims the focus for one component, causing focusLost() in the other component to fire. Fun. Then you have InputVerifier, ostensibly designed for this very purpose. Ignoring the fact that buttons still fire without the verifier getting called, now you have the awesomeness of not knowing what the target component would be. Want to build a view with multiple fields that get validated as one? Good luck with that.

Recommend fail

Amazon:

We recommend: Pony 8510BP Cabinet Claw (2-Pack)

by Pony
http://www.amazon.com/dp/B0000224BN/ref=pe_ar_x1

List Price: $73.77
Price: $54.39
You Save: $19.38 (26%)

Recommended because you purchased or rated:
* Align-Rite DG-101 Drill Guide with 3/16-Inch Holes for 12-Inch Drawers and Doors


New business idea: a collaborative filtering engine that lets you, the user, customize the idiocy away. Actually, eTantrum’s music recommendation app (Linux version only) had sliders to control the weights of various things. Still an awesome idea.

Update: yeah, amazon lets you customize it too. I still want sliders though!

resize wtf

I get amused whenever I see another open-coded version of this in our codebase, a method for determining the resolution of a scaled-down image while maintaining aspect ratio:


while (x > targetx || y > targety) {
x *= 0.99;
y *= 0.99;
}

It’s pretty easy to discern that it will take a lot of iterations to accomplish this task. In fact I put it around 250 * log (x/x') where x’ is the target width. That’s maybe as many as 2000 FP multiplies depending on the difference in sizes between source and target image.

I guess computing the smallest scale factor and using it once was just too hard…

Meh

I’m playing with date conversions today, and again I’m struck by how much the Java Calendar should be held up as an example of the over-engineered API. Has anyone ever used anything besides the Gregorian calendar? They were so proud of it when it hit 1.1.

I should have two patches hitting kernel 2.6.26, one entirely cosmetic and one that fixes a real bug on Atheros wireless cards. Akpm did pick up the OMFS patchset so hopefully that will go in .27 timeframe, though the jury is still out on whether it hits mainline.

In other news, take that, Skype!

XMLization

The libpam-mount configuration file has changed to a new XML format.

Aaaaaaghhh, no!!!!

I want my hexadecimal dollar

I’m taking the GRE this week as part of a foolish endeavor to possibly get more learning. Wow, have I forgotten lots of high school math. In preparation for the subject test, which I still haven’t signed up for, I picked up a copy of volumes 1 & 2 of TAOCP. I think these will be much better books once the MMIX versions are out in a few years. For now, they are hilariously antiquated as far as any of the MIX stuff goes. 6-bit (binary or decimal!) bytes, no stack, self-modifying code, punch cards, a weird assembly language that encodes the target registers in the opcode. It makes x86 look like a good ISA. Of course as Knuth says, the concepts themselves are timeless. And it does have me wanting to find a reason for using coroutines, so that’s something.