TagPy 0.92 released

In order to fix Debian bug #438556 (a crasher that made almost all of the ID3v2 infrastructure useless), I have just release version 0.92 of tagpy. Go get it while it's hot.

Not enough Flash video yet?

Then go watch something sad and then laugh.

PSI Smilies in Gaim/Pidgin

Thanks to Debian, I got pidgin 2.2.0 today, and with it, its new atrocious smiley theme--eyebrows and all. This prompted me to make a smiley theme out of Psi's old smileys, which I still remember liking the most.

You can download that theme here: NOT FOUND: 1=PSI Smiley Theme for Pidgin/gaim

And this is what they look like:

psi-smileys.png

Fermat's Last Python Script

def fermat(n):
    """Returns triplets of the form x^n + y^n = z^n.
    Warning! Untested with n > 2.
    """
    from itertools import count
    for x in count(1):
        for y in range(1, x+1):
            for z in range(1, x**n+y**n + 1):
                if x**n + y**n == z**n:
                    yield x, y, z

Nicked from the earthbound kid.

What they don't tell you about VTK XML binary formats

You might have been trying to implement the new-style VTK XML file formats. And you might have realized that what they tell you in the file format "specification" is just incomplete. Well, here are a few bits of information missing from there:

Binary Blob Header: In front of every binary blob, base64 or raw-binary, appended or not, there is an UInt32 length indicator. If you do not have this length indicator, you might get error messages like

Cannot read cell offsets from XXXX in piece 0 because the "offsets" array is not long enough.

Note that if you are encoding in base64, that length header must be encoded separately, so that the end result looks like XXXXXX==XXXX... (note the two equals signs indicating the early end of the length header block).

Compression Header: If you use compression, the following header applies instead:

struct {
  uint32 blocks; 
  uint32 blocksize; 
  uint32 last_blocksize; 
  uint32 compressed_blocksizes[];
};

Again, this header is encoded separately from the data. This was figured out by Thomas Svedberg. Thomas adds that the following works for him:

struct {
  uint32 blocks = 1
  uint32 blocksize = total data size
  uint32 last_blocksize = total data size
  uint32 compressed_blocksizes[] = compressed data size
};

Offset Field Meaning for base64: The "offset" field on DataArrays with format="appended" is not a binary offset, it is the base64 character count from the underscore that starts the AppendedData section.

Vector Element Order: If you are encoding vectors (i.e. anything with NumberOfComponents="3"), and suppose your vectors are X,Y,Z,..., then the encoded data stream has the ordering X[0], X[1], X[2], Y[0], Y[1], Y[2], Z[0]...

Books, Books and more Books

I've found it sad for a long time that I've read many books in my life, but my memory of them is slowly fading, and I would at least like to keep a list around. As you have probably guessed, you would not be reading this if I hadn't stumbled on a cool site that lets me easily put together a catalog of books that own or have read.

And that site is: http://www.LibraryThing.com. And if you care what kind of books I read and own, here's my library. That list is still pretty incomplete, but I hope to add more over time.

Singing the praises of <link rel="next">

Here's a chicken-and-egg problem for you. And you can be part of the egg. I'll show you how in a minute.

I bet you've noticed that bajillions of websites have little links that say "next" and "previous", right? Like previous page, previous item, previous whatever. And sometimes there's "up", too. As in "up" to the parent directory, "up" to the category containing this item, and so on. And every time you come upon a web page like that, you ask yourself, "so where is the link that takes me to the 'next' page?" Wouldn't it be nice if that button was always in the same spot, preferably on your browser user interface?

You might be surprised to learn that a solution to this already exists. The HTML standard specifies the <link rel="next"> and <link rel="prev"> header tags. But how can you make them show up in your browser? Easy: Use the Link Widgets Firefox extension. By installing and using that, you've become part of the egg. Now the chicken is that more sites need to start using the <link rel="..."> tags. There are already enough of them to make the extension worthwhile, for example Google, or any Drupal site (such as this one :) ), or anything generated by latex2html, which includes surprisingly large swaths of web documentation. But the more people have the UI to use these links, the more sites will include the markup, making the whole thing more and more useful over time.

And making the web more useful is not a bad thing, is it? ;)

New release of Boost.Bindings tracking Boost 1.35 CVS

I've rolled a new release (20070826) of the Boost.Bindings library to track what's currently going on in the Boost CVS tree leading up to release 1.35. What's released works with current CVS as of 8/26/2007, I assume it will also work with the final release. I suspect that it will not work with boost 1.34.1 and older.

Additionally, this release has a configure script and a Makefile to enable it to be installed with the familiar ./configure;make;make install procedure. Using this is completely optional, the library will also work without installation, as before.

D*mn sp*mmers

Ok, the spammers yet again figured out how to circumvent my anti-spam measures. So yet again, I've disabled anonymous commenting. Only this time it's final. And I have a mess of seven bajillion comments to clean up.

I'm just so sick of these people: :barf:

Trip to the Northwest

For the first two weeks of August this summer, Frank and I went on a two-week trip through the northwestern United States. The trip was nothing short of amazing to me, and I'm having a hard time adjusting back to the dull (by comparison) life in Providence. We saw some really amazing nature, and had tons of fun. Naturally, there are pictures available. Thanks to Google Maps, you can also take a pretty precise look at our route: (You have to zoom out a couple times to see the whole thing.)

<br/>View Larger Map

Yes, we did indeed drive all that. 3300 miles altogether.

Here's a brief summary what we did each day:

August 1

  • Arrive at PDX. To me, this was a flight that visited every corner of the US. (by going through PVD->BNA->LAS->PDX. Thanks, Southwest. :P Anyone wondering why I arrived with a headache?)
  • Shop at Target.
  • Find camping in Scappoose, WA.

August 2

  • Shop at Fred Meyer in Scappoose.
  • Establish that coffee with each breakfast is a good idea.
  • Establish that dry milk with cereal is not a good idea, but a necessary evil.
  • Repack the car to make stuff more accessible.
  • Drive along US-30 to the WA coast, including Cape Disappointment. Cross the Astoria bridge.
  • See Mount Saint Helens from a distance.
  • Return inland and crash at Mt. Rainier for the night, seeing a photo presentation at the campground in the evening.

August 3

  • Go hike the Skyline trail at Mt. Rainier in total fog. At first, that was fairy-tale lovely (while there was still vegetation and animal life to gawk at), but as soon as there were only snow fields and dirt, that was pretty boring.
  • Drive the National Park road, and actually see Mt. Rainier.

August 4

  • Leave Mt. Rainier for Seattle.
  • Stop at a suburban McDonald's to score some wireless. Book a kayak trip for 8/6. Book a hotel for Seattle.
  • Check into said hotel, take well-deserved showers.
  • Head into Seattle, find parking way outside town, about 15 minutes walk from the Space Needle.
  • Ride the Seattle Monorail, see Pike Place Market, find it underwhelming. Walk underneath WA-99 to find Seattle's "waterfront". Ride the ferry to Bainbridge Island and back, see Mt. Rainier in the distance.
  • Visit Pioneer Square, find it underwhelming. Go eat African food.
  • Return to the hotel, getting stuck in traffic for about an hour (at 11pm, no less).

August 5

  • My birthday, yay. :)
  • Get up bright and early, shower! ;)
  • Leave hotel room, taking parts of door frame with us. (Well no, the door had a latch that was supposed to keep the bad guys from coming in. But when I opened the door without opening the latch, it simply pulled the door frame off the wall. Real secure, that.)
  • Figure Seattle's got not too much more to see. Move kayak trip from 8/6 to 1pm today, leave Seattle via I-90 East at 9am.
  • Arrive in Leavenworth, WA at River Rider, ready for a cool kayaking trip by eating the provided (yummy) BBQ.
  • Have tons of fun kayaking down the Wenatchee in inflatable duckies.
  • Drive onward down the Wenatchee river, pretty. ;)
  • Reach the Spokane KOA by nightfall.

August 6

  • Leave Spokane, WA.
  • Go shopping at Safeway in Cœur d'Alene, ID. God, Safeway is awful.
  • Eat lunch at Cœur d'Alene lake, pretty.
  • See wildfires somewhere in Montana.
  • Reach the Fish Creek campground at Glacier NP around 6pm.
  • Go swimming in Lake Dogulas.

August 7

  • Hike the Loop Trail up to Granite Park Chalet. Be deadly afraid of bears, yell "Hallo" all the time.
  • Pause at Granite Park, continue on to Logan Pass.
  • See some white mountain goats (?) and a bighorn sheep (yes, they're called that for a reason.). Be even more scared of bears. :)
  • Arrive at Logan Pass, take Glacier's cool new shuttle back to the Loop.
  • Very cool, but very exhausting hike. I was longing for a shower and convinced Frank to go find pay for showers at the West Glacier KOA. Also illegally used the hot tub there for a while. (So sue us. ;))
  • Drop into bed nice and early.

August 8

  • Drive the Going-to-the-Sun Road to the eastern exit of Glacier, shoot plenty of pictures.
  • Leave Glacier NP on US-89, follow that to the entrance of Yellowstone, seeing endless prairies, Great Falls, MT and Lewis & Clark National Forest, which itself is really pretty.
  • Arrive at Yellowstone by nightfall, only to be told that all park campgrounds are full.
  • There's a commercial campground with all the bells and whistles, and a government campground with the bare necessities (vault toilets) to choose from. Disagreement arises over which to pick. Frank gets his way, and we live comfortably with showers, running water, laundry, electricity at the site and gasp wireless internet.
  • Make noodles in celebration.
  • Tease Frank for being a capitalist.

August 9

  • First day in Yellowstone. See Mammoth Hot Springs, find them stinky and unremarkable. While they might've looked way awesome int the past, they don't so much when there's not much water.
  • See the Golden Gate, Sheepeater Cliff and Norris Geyser Basin. Weather turns to the usual National Park Weather in Norris.
  • Head across to Canyon Village, hiking down to every viewpoint at the (very cool) Grand Canyon of the Yellowstone. The last one was best, but also the most strenuous, involving stairs: Uncle Tom's viewpoint.
  • Ate dinner in the park, return to campsite via Tower in pitch darkness. Think about running over grizzlies in the car.

August 10

  • Second day in Yellowstone.
  • Drove into the park via Tower and Canyon village, seeing Tower falls on the way in. A bit further down the road, there was the Mud Volcano area, and much to our surprise, there were bisons all over it. One crossed the walkway about 10 meters ahead of us. Lots of signs that say, "more people get hurt by bisons than grizzlies." But bisons just look like big cows. They must be harmless. :)
  • Wildlife jam a little bit down the road, bison walking across one car ahead of us.
  • Lake Yellowstone's pretty, too. A crow (raven maybe?) came really close to us while we ate lunch and showed no fear of people at all.
  • Finally arrived at Old Faithful, saw it go squirt (which is actually more impressive than it sounds here, definitely worth seeing--even though that's where the crowds are).
  • Walked around the geyser basin at Old Faithful. More of the same, but still worth seeing.
  • Ate dinner somewhere at Firehole creek

August 11

  • Saw Midway Geyser Basin on the way out of Yellowstone to the south. That one is actually not more of the same, it's really impressive, big and blue. And not stinky.
  • Drove through Grand Teton National Park. Went swimming in Jackson Lake.
  • Drove through Jackson, WY. Tries to look like an old western town, doesn't really fail miserably. Somewhat Touri-Nepp. :)
  • Drove through more of WY and ID. Saw Bear Lake by nightfall, ate a cold can of ravioli for dinner.
  • Reached UT, got gas, saw wildfires over Salt Lake City. Hit I-80 west towards Tahoe.
  • Played Battle for Wesnoth, Gianna Sisters and many other things while driving.
  • Found a parking lot, slept in the car at 4am.
  • 900 miles in a day. Dude. Far.

August 12

  • Licked our wounds from the long overnight drive. Found the Tahoe State Recreation Area campground, way cool--with hot (pay) showers and a cool attendant.
  • Drove around Lake Tahoe.
  • Saw the Stream Profile Chamber at the Taylor Creek visitor center just south of pretty Emerald Bay.
  • South Lake Tahoe's not so pretty.
  • And the casinos start right when you get to the NV state line--in a town sensibly called Stateline, NV. Yay for inventive city naming. :)

August 13

  • Mountain biked the Flume trail from Incline Village. Very cool. Very exhausting. :D
  • Ate ribs and steak at a local restaurant for dinner. Actually, the ribs were too much. Took them home in a box.
  • Fell into bed dead-tired.

August 14

  • Kayaked around for four hours on Lake Tahoe starting from Tahoe City. Covered quite a bit of distance, and ate lunch out on the lake--ribs on the water taste twice as good as ribs on land, even if they're cold. Yum. :) Also got horribly sunburned, because I didn't put sunscreen on my legs. They're still peeling as of 8/29. Bad. (But still worth the fun.)
  • Drove to Mountain View and ate dinner with Hendrik at the Google cafeteria.
  • Hung out with Hendrik, played DDR and looked at our photos on his bedroom wall--using his projector.

August 15

  • Repacked the car in preparation of my flight out that night.
  • Breakfast again thanks to Google, Inc. :)
  • Drove south on 101 to Santa Clara to see a bunch of logos on building walls, including Intel, Yahoo, Sun.
  • Drove back north to see Stanford.
  • Continued towards the Golden Gate on I-280, drove to the Marin vista point and back, walked halfway across the bridge. Foggy, cold and windy. And very cool, yet again. :)
  • Chilled in Golden Gate Park.
  • Checked Frank into his hotel.
  • Met up with Hendrik, saw Coit Tower, drank coffee (except Frank, whose coffee got pooped into), ate pizza. Headed towards Twin Peaks, where the wind and the evening sun provided plenty of entertainment. Ate quesadillas for dinner at Taqueria Can-Cun.
  • Headed to SFO, and back home via ATL into BOS.