99% Chimpanzee - 1% Human

Wed, 08 Feb 2006

Ohhhh, Archie!

The arch is done. We've also run wiring into the closet, and installed the base of a trapeze light in the ceiling. Once we're done with the final painting, we can install brackets and a countertop, and have a full-fledged coffee bar upstairs.

DSCN7304 DSCN7305

DSCN7306 DSCN7307

[10:38] | [/home] | [#] | [G] | [Comments: 1]
This Blog Sucks

"Sorry about that," he said to the sound of a half-dozen RSS readers screaming painfully.

Tried to update my blog and got everything marked as new. GAH!

One more reason I'm writing my own again. In Zope 3. Stay tuned, if you're into that sort of thing.

Also, I've disabled comments. Blame the comment spammers.

[10:29] | [/home] | [#] | [G] | [Comments: 0]
Urbanna Oyster Festival 2005

Took a trip down to Urbanna on Saturday to take in the local wildlife (after the Amish Oyster Roast, it really doesn't compare). Although, to be fair, we had neither Shriners nor funnel cakes nor really disgustingly big turkey legs.

DSCN6967 DSCN6969 DSCN6970

DSCN6972 DSCN6973 DSCN6976

DSCN6977 DSCN6978 DSCN6979

DSCN6982 DSCN6992 DSCN6993

DSCN6995 DSCN6998 DSCN7000

DSCN7002 DSCN7003 DSCN7008

DSCN7011 DSCN7015 DSCN7021

DSCN7022 DSCN7023 DSCN7024

DSCN7025 DSCN7026 DSCN7027

Sound advice.

DSCN7029

[10:26] | [/play] | [#] | [G] | [Comments: 1]
Fall Update

Heading into Fall, I thought it would be a good idea to recap recent events:

We bought a new car while visiting friends and relatives in Indiana.

DSCN6571 DSCN6573

While we were out, we had the downstairs floors refinished. Stripped, stained, and polyurethaned.

DSCN6575 DSCN6576 DSCN6577

DSCN6578 DSCN6579

Found a strange little weevil-type bug who wouldn't sit still long enough to get its picture taken, until we turned it over on its back.

DSCN6591

While cleaning the basement out of over four years of cruft, found a clock face that came from a Richmond jewelers. Along with the proto-linoleum floor covering, this makes two incredible finds that conveyed (intentionally or unintentionally) with the house.

DSCN6595 DSCN6596

I helped my neighbor David build a child-cage, er compost bin, and discovered a weird little caterpillar.

DSCN6598 DSCN6602

I gained a bit (that wasn't meant to be a double intendre).

DSCN6604

For our third anniversary, Amber and I toured a few Virginia wineries, and came back with a large cache of the vino. Also, a ton of grapes isn't as big as you might think.

DSCN6630 DSCN6631 DSCN6633

DSCN6636 DSCN6646

The dryer broke down and we repaired it ourselves, saving (we estimate) at least $200 in labor and countless months of therapy from looking at repair-man-crack.

DSCN6648 DSCN6650 DSCN6652

Peppers were the only vibrant intended life form in the garden this year. Habañeros, especially. After trying (unsuccessfully) to dry some earlier, we strung some up with Jalapeños and Hot Bananas. We'll see how they perform in chili later this winter.

DSCN6653 DSCN6656

Saturday, while doing some outdoor chores, Amber pointed out a huge Praying Mantis, which was kind enough to pose. Over and over and over and over again. He (she?) also wanted to climb on the camera, and attempts to do so made me screech like a little girl.

DSCN6660 DSCN6661 DSCN6664

DSCN6666 DSCN6669 DSCN6676

DSCN6681 DSCN6689 DSCN6691

DSCN6693

Last, but not least, we're having an Oyster Roast next weekend. We'll have five bushels of oysters, fresh from the Bay, four kegs of beer, barbequed pork butts, live music, and good people. The more, the merrier, but let us know. More info can be found on our site.

Amish_Oyster_Roast

[10:26] | [/play] | [#] | [G] | [Comments: 0]
He's No Han Solo, but He's Wearing His Pants

Saw Serenity tonight with Amber. I enjoyed it. Mostly. It obviously had a very high production value, good fight scenes, and I absolutely loved Jayne's tee-shirts (I expect them to show up on www.founditemclothing.com before too long, please, please, pretty pretty please), but there were a few points I just had to mention, including the title of this post:

"Any questions?"

"Yeah, does Han Solo know you raid his wardrobe?"

"You'll get the answer to that next Saturday."

We Hain't Done Had no Book Larnin' These Here Last Five-Hunnert Year, I Reckon.

I hain't had nothin' twixt my nethers 'ceptin' it take a batt'ry.

That's an honest-to-goodness quote [*] from the movie. Really.

Okay, Wild West in Space. It's a great motif, but it was sooooo overdone in the dialogue. None of the actors seemed comfortable talking this claptrap in an affected drawl. Some of the scenes were great. Everything about the bank robbery felt true. It worked within the universe.

Tatooine was a planet on the outskirts of everything. We understood immediately that Luke was a hick farmboy, not content with his lot. And yet, no need for the Arkansas in-bred delivery. The dialogue, even when it wasn't utterly contrived and cheesy, was thick with this kind of clumsiness. Except for Whitey. Wash was the only one that didn't clutter up the scene with, "Aw, gosh, gee shucks, ma'am, twarn't nothing, oh, golly."

Wheels Are a Good Thing.

The nice thing about having wheels underneath you is that if you can't make the VTOL your feet were designed for, and you have to make it in on your belly, you'll be able to roll to a stop. Take a tip from NASA; they might not look as neato-keen as feet, but they might just save your ship. I'd point out that Star Wars also makes this kind of mistake, but that took place a long time ago, in a galaxy far, far away, while this ostensibly takes place 500 years in the future.

All Together Now

I'm happy to see that psychotic, cannabilistic monsters can still get it together to fly a spaceship. Reavers are bloodthirsty psycho killers (qu'est-ce que c'est?) bent on murder, rape, carnage and voting Libertarian, but they can still manage to be social enough to pilot giant cities in space?

I get it. The Alliance is Law, and the Reavers are Chaos, and the only good guys are the ones who play it right up the middle. If I were still 15, this might even make me write long, painful essays about Michael Moorcock and Man's ultimate need for a pantheon of anti-heroes, but I'm not 15, and I just feel like I've been manhandled by a deadly assassin. Not rough enough to kill me, just enough to make me angry.

Fontastic Voyage

Seriously, Pa-fucking-pyrus?

Dear_Joss

[*]Well, okay, slightly embellished. But really, "twixt my nethers"?
[10:26] | [/play] | [#] | [G] | [Comments: 3]
I've Got a Press Pass, and I'm Not Afraid to Use It

I got a heads up about the Serenity Blogger Bonanza, and agreed to post about the film (before and after) to secure two press tickets for an advanced screening. Here's their synopsis:

Joss Whedon, the Oscar® - and Emmy - nominated writer/director responsible for the worldwide television phenomena of BUFFY THE VAMPIRE, ANGEL and FIREFLY, now applies his trademark compassion and wit to a small band of galactic outcasts 500 years in the future in his feature film directorial debut, Serenity. The film centers around Captain Malcolm Reynolds, a hardened veteran (on the losing side) of a galactic civil war, who now ekes out a living pulling off small crimes and transport-for-hire aboard his ship, Serenity. He leads a small, eclectic crew who are the closest thing he has left to family –squabbling, insubordinate and undyingly loyal.

I can tell you from the beginning: I've never watched Firefly when it was airing, and I don't have the interminable patience required to download these things illegally, but I get the basic gist: cowboys in space. Hey, that works for me. And the production value (as far as can be gleaned from the trailer) seems top-notch. So someone explain this to me: How in the hell can Joss Whedon not afford to buy (or better yet commission) a better font for his pièce de résistance than Papyrus? That bargain basement, applicable-for-anything-remotely-exotic-and-therefore-applicable-to-none default fantasy poseur of a font? C'mon.

Okay, that's my book cover judgement. I'll reserve the rest for after the show.

[10:26] | [/play] | [#] | [G] | [Comments: 0]
New Toy

I'm a slave to my desire for gadgets, and am powerless against the nearly insurmountable nostalgia for a World That Was™. I have a Newton 2100, a Commodore SX-64, and I recently had a (failed, sadly) opportunity to provide a good home for a Symbolics 3650 Lisp Machine. Now, I have a NeXTstation Turbo Color.

DSCN7291

An unflattering shot, but I'll get more as it gets situated.

[10:26] | [/play] | [#] | [G] | [Comments: 2]
Spodcast

My friends Jared, Spadge, and Stut have been doing their weekly podcast, Spodcast, for over a month now, and it's brilliant. Such a marvelous, conversational tone, I find myself preparing to talk back to them all the time. Download them from the site, or subscribe to them from iTunes.

Jared was kind enough to put me up in his flat two years ago when I went to AppleExpo in Paris. We'd only known each other online (via the osx-nutters and macosx-talk mailing lists and IRC), and he and his girlfriend Vic showed a great generosity while I was there.

[10:26] | [/play] | [#] | [G] | [Comments: 1]
100000

In a half-hour or so, I leave my safe little 5-bit world, and jump like an excited electron into the next valence band, a new bit bucket. 2^5 years ago I showed up on the scene..

It's been a prety cool year. The house has nearly doubled in size (hopefully more in value), the job is going well. A new car for the commute always helps. My Mac software seems popular enough for a simple app, and I'm wealthy in friends, food, and drink.

Here's to the next bit (the last bit anyone's achieved for the vast bulk of human history). I'm looking forward to celebrating my 8th-bit birthday.

[10:26] | [/play] | [#] | [G] | [Comments: 0]
Indiana: The Amish Invasion

Saturday was a drizzly, foggy day coming through the Blue Ridge Mountains, but we finally pushed through to Indiana early afternoon in our trusty URBNAPE. Arrived at Matt and Angela's just in time for cocktails and yummy Indian food

DSCN5965 DSCN5970 DSCN5971

Sunday, the Amish got busy. Matt and I replaced a picture window in the living room, while Amber the Green Thumb tackled some yardwork with Angela. She was born to ride a tractor! She also took time out to show off a freaky looking caterpillar.

DSCN5974 DSCN5977 DSCN5978

DSCN5981 DSCN5982 DSCN5983

This morning, we ran out for breakfast and a quick stroll through downtown.

DSCN5994 DSCN5995 DSCN5996

On our way out of Bloomington, we stopped at Oliver Winery and loaded up on the booze. On on, Amish!

DSCN6000

Arrived in Indianapolis to visit my sister and brother-in-law and their two beautiful chirrens. Pictures forthcoming.

[10:26] | [/play] | [#] | [G] | [Comments: 0]
Lazy Weekend

So, in addition to the extra large hammock in the backyard, we installed the two small hammocks on the screened-in porch, and spent a good chunk of our weekend lazily relaxing in them. Typically with Margaritas, and a good book. I snapped a few photos so all can tremble with suppressed rage and envy.

DSCN5370 DSCN5371 DSCN5378

Good reading, too.

DSCN5380

[10:26] | [/play] | [#] | [G] | [Comments: 0]
The Maze and Black Hills

Today's dive was the Maze, a really steep wall on the north side with a large cave entrance. Spotted a huge Black Grouper at a cleaning station, and a cute, but shy, turtle that stayed just out of reach.

DSCN4991 DSCN4995 DSCN5001

DSCN5005 DSCN5006 DSCN5021

Second dive was at Black Hills again. No sign of the injured turtle from the other day, but saw a bizarre Orange Filefish.

DSCN5024 DSCN5031 DSCN5044

[10:26] | [/play] | [#] | [G] | [Comments: 0]
Thumbscrew: The Masses Have Spoken

Okay, you mangy, teeming millions. I have heard your cries, though they sicken me. "Give us GIF! Give us GIF! Have pity on the throwbacks still using Internet Explorer!" Your wails and gnashing of teeth have not fallen upon deaf ears. Turns out, it was stupid simple to implement. BEHOLD! Thumbscrew supports GIF!

thumbscrew-supports-gif

I'm warning you, though. It ain't pretty. If you need any kind of color fidelity, you're better off with JPEG and an opaque background color. These GIFs, while small, are uggs. With a capital UGG.

You can do transparent

1200_thumbnail

Or opaque backgrounds

caribbean_thumbnail

Okay? Happy? If you really want to make the world a prettier place, encourage your friends and colleagues to switch. At least to Firefox, if not to a Mac.

By the way, I'm still getting the Web page thing done. I know a lot of you probably don't use it, but I do, and I need it if I'm going to keep talking to you crazies. Expect a new version by Friday.

[10:26] | [/software] | [#] | [G] | [Comments: 2]
Thumbscrew Mentioned on Call for Help

Amazing! My little app was mentioned on the Call for Help with Leo Laporte show. An exerpt from the transcript:

>> Leo: HAVE YOU EVER -- I'M JUST GONNA TAKE A WALK OVER
HERE. (Mellow instrumental)
>> Leo: HAVE YOU EVER WANDERED AROUND ON THE COMPUTER, ON THE STUDIO
FLOOR, AND SAID, "I'M GONNA TAKE A LITTLE --" HAVE YOU EVER WANTED YOUR ONLINE PHOTOS TO LOOK UNIQUE? N "LOOK UNIQUE?" THIS IS --

>> Mikey: LOOK DIFFERENT!

>> Leo: MIKE HAS A FREE FILE TO MAKE ALL YOUR PHOTOS ONLINE LOOK
JUST... A LITTLE DIFFERENT, KIND OF ASKEW.

>> Mikey: ASKEW ALMOST. (Laughing)

>> Leo: WHAT IS THIS PROGRAM?

>> Mikey: IT'S CALLED "THUMBSCREW."

>> Leo: OH, I LOVE THUMBSCREW!

>> Mikey: IT IS A GREAT PROGRAM.

>> Leo: I USE THUMBSCREW.

>> Mikey: AND IT ALLOWS YOU TO -- ns up]

>> Mikey: WHAT IT DOES IS IT TAKES THE IMAGE THAT YOU HAVE, A
PHOTOGRAPH OR EVEN A DRAWING OR WHATEVER YOU HAVE IN YOUR COMPUTER, AND YOU CAN TURN IT -- IT'LL MAKE IT SLIDE SIDE TO SIDE.

>> Leo: AND YOU CAN PUT A FRAME ON IT.

>> Mikey: PUT A FRAME AROUND IT, COLOURED BACKGROUND. ns down]

>> Leo: THIS IS, BY THE WAY, A FREE FILE FOR MAC ONLY UNFORTUNATELY.

>> Mikey: EXACTLY, YEAH.

>> Leo: SO DON'T GET YOUR HOPES UP, WINDOWS PEOPLE. I'M SURE THERE'S
SOMETHING LIKE IT --
>> Mikey: THERE SHOULD BE SOMETHING LIKE THAT, BECAUSE THIS IS A
FANTASTIC PROGRAM, SO --

>> Leo: I USE IT ALL THE TIME.

>> Mikey: YEAH. SO I'LL JUST SHOW YOU HOW IT WORKS RIGHT HERE. YOU
TAKE A PHOTO -- THIS IS A PHOTO I TOOK THE OTHER NIGHT. ns up]
>> Mikey: AND I'M JUST GONNA DROP IT INTO THE THUMBSCREW WINDOW, AND
IT'S GONNA TAKE A SECOND.

>> Leo: AND IT DOES ITS THING.

>> Mikey: IT DOES ITS THING. (Both make funny sounds)

>> Mikey: AND IT POPS UP, YOU CAN SEE HERE, A LITTLE ONE. IT'S
CALLED "THUMB." IT'S RENAMED.

>> Leo: IT'S A THUMBNAIL.

>> Mikey: IT'S A THUMBNAIL OF IT. AND I'LL OPEN IT UP HERE. ns down]

>> Mikey: IT JUST NEEDS A SECOND TO LOAD UP HERE, BUT WHAT IT DOES
IS I'VE MADE IT SO IT MATCHES THE COLOUR SCHEME OF MY BLOG. SO THIS IS ACTUALLY AN UPSIDE-DOWN PICTURE, SO IT'S NOT REALLY A GOOD EXAMPLE, BUT I'LL DO ANOTHER ONE HERE OF --
>> Leo: YOU CAN SET HOW MUCH IT ROTATES IT BY, AND I'VE ACTUALLY --
I ALWAYS SET IT TO THE MINIMUM, BECAUSE I DON'T WANT IT TO ROTATE --
>> Mikey: YEAH, I HAVE IT LIKE, I THINK, AT 35 DEGREES OR SOMETHING
LIKE THAT, JUST SO IT GIVES IT A LITTLE BIT OF SOMETHING DIFFERENT. HERE'S A BETTER EXAMPLE OF --

>> Leo: YEAH, SEE THAT? ISN'T THAT COOL?

>> Mikey: OF LEO, MYSELF AND AMBER.

>> Leo: WE WERE SHOOTING POOL THE OTHER NIGHT.

>> Mikey: YEAH.

>> Leo: NO, WE WEREN'T. (Laughing)

>> Mikey: AND SO THIS MATCHES PERFECTLY WITH, FOR INSTANCE, MY BLOG
BACKGROUND OR YOUR ONLINE PHOTO ALBUM BACKGROUND.

>> Leo: SO YOU CAN CHOOSE A PICTURE --

>> Mikey: SO I JUST HAVE MY --

>> Leo: SHOW US HOW YOU'VE USED IT.

>> Mikey: I'LL SHOW YOU. I'LL JUST SCROLL DOWN.

>> Leo: I DO THE SAME THING. IN FACT, WHEN I DID THE LAST GEEK
CRUISE, I DID A WHOLE PHOTO ALBUM WITH THUMBSCREW, AND IT REALLY LOOKED NICE.
>> Mikey: EXACTLY. SO HERE'S AN EXAMPLE OF HOW IT FITS PERFECTLY
INTO MY BLOG BECAUSE IT MATCHES THE BACKGROUND EXACTLY. THE COLOUR'S THE SAME, THE BORDER, AND IT LOOKS LIKE IT'S -- I'VE HAD PEOPLE E-MAIL ME AND SAY, "WHAT IS THIS PROGRAM?"

>> Leo: "HOW DO YOU DO THIS?"

>> Mikey: AND IT'S REALLY SIMPLE, AND IT TAKES LIKE 10 SECONDS.

>> Leo: THUMBSCREW. YOU CAN DO A WHOLE BATCH OF THEM.

>> Mikey: AND YOU CAN DO BATCHES, EXACTLY.

>> Leo: JUST DRAG A WHOLE BUNCH OF FILES ON THERE.

>> Mikey: YEAH, YEAH.

>> Leo: THUMBSCREW -- I USE IT, AND SO DOES MIKEY. MIKEY LIKES IT.

>> Mikey: (Chuckling) (Mellow guitar music)

(Thanks to Jack for the heads up)

[10:26] | [/software] | [#] | [G] | [Comments: 5]
Thumbscrew 1.0b9

Few more bugfixes in this release:

  • .jpg instead of .jpeg
  • You can use a rotation of 0, and I added it explicitly to the list of values in the popup. A lot of people didn't seem to understand that the combo boxes can have arbitrary values typed in.

There is still some work to be done with the web page creation. I plan on working on it some more, but I know these are the issues that were being reported the most after the latest release.

Thumbscrew 1.0b9 (Fixed link. Thanks, Marco)

[10:26] | [/software] | [#] | [G] | [Comments: 8]
Thumbscrew 1.0b8

Apologies, all around. Some of the people who downloaded either of the last two betas were newcomers, some were upgrading. I'm sure all got left with a bad taste in the mouth. Not something I'd like to be remembered for.

I had been testing new releases against the preferences I use on a day to day basis, and didn't design some of the new features to be clever enough to handle the first-time user.

This release should work with existing preferences and new preferences on Tiger and Panther (I've run through various scenarios on my PowerBook and iMac with new and old prefs). I'm looking at PreFab Software's UI Browser software as a functional testing tool. With a little work, I think it has great potential for helping me avoid this kind of embarrassing situation in the future.

I suspect once I get this to a relatively stable point (hopefully this is it), I'll probably make far less frequent public releases. I'll keep updating the mailing list, though, and try to have a bit more constrained development flux.

Thumbscrew 1.0b8

[10:26] | [/software] | [#] | [G] | [Comments: 3]
Thumbscrew Bugs
"Goddamn bugs" -- Nick the Van Driver, Men in Black

So, I now know there are plenty of bugs to go around in the latest Thumbscrew beta I put out. I'll get to each and every one of them, but I was caught with my pants down. I had been testing with a fully fleshed out set of preferences and so didn't catch the problems that were occurring for the people who were starting up Thumbscrew for the first time (the spinning beach ball of death when trying to open the Preferences).

Well, that was a shallow bug, and fixed easily, but that uncovered others. Suffice it to say there's still a bit of work to be done before I send out 1.0b8, and it'll be a while since this isn't my day job. Amber promises I'll have plenty of time to work on it this weekend. I hope you can bear with me for a few more days...

[10:26] | [/software] | [#] | [G] | [Comments: 0]
Selecting Base Paths in Thumbscrew

I'm curious if any of you currently use the Web page feature of Thumbscrew. I use it mostly for my blog posts (I use PyBlosxom and use the reStructuredText plugin), and its development has mostly been to scratch my own itch. I've seen feedback both in private and on VersionTracker and MacUpdate asking about a few possible features:

  • incorporating FTP/WebDAV for actually posting the Web pages
  • relative links/base tag/DOCROOT or the like, so the page isn't riddled with /Users/foo/path/to/thumbnails/

Frankly, I'm a little intimidated by the first part. I'd be much more likely to put something together and send it to MarsEdit or some other app altogether.

The second has me interested, though, and is a bit more exciting from a UI point of view. Here's my typical workflow, and how I might approach this. After thinking about this in my head for a while, it seems to be an overly geeky solution.

So, here's my server setup. All my blog posts are somewhere within the hierarchy of /home/zbir/html/blog/ (organized by categories and whatnot). All the images are in /home/zbir/html/images/ (with subdirectories for photos/ and thumbnails/). This whole setup is mirrored on my laptop substituting /home/zbir/html/ with /Users/zbir/Sites/. A typical edited image stanza for me looks like this:

.. |DSCN5380| image:: images/thumbnails/DSCN5380_thumbnail.png
   :target: images/photos/DSCN5380.jpg

And the template that renders the final page on the server specifies a <base href="http://www.urbanape.com/"/> which allows me to use relative paths like that. It's so far been a small enough amount of work to just do a find/replace for the first part of those paths and wipe them out, but I would love to have Thumbscrew do it all for me.

One solution I've imagined is this. Say you take the two paths (one for thumbnails and one for originals), and find the full path that is at least shared between them. For my setup, that shared path would be '/Users/zbir/Sites/images'. Now, I could come up with a UI that presents those elements in a way that allows you to select the base path as far as your web server is concerned, like the Finder does:

Finder Breadcrumbs

In my case, 'images'. Once that is selected, then the paths formed when applying the template would trim off everything up to that base path.

Does this make sense at all? If no one really uses the Web page features from Thumbscrew, I'll probably implement something like this and just use it myself.

[10:26] | [/software] | [#] | [G] | [Comments: 3]
Thumbscrew 1.0b7

Wow, that didn't take long. When adding in the new code to allow pasting, I left a call in that was added in the Tiger APIs. Turns out it was unnecessary (at least as far as this version's pasting is concerned).

I've removed that bit and verified that this new version runs (and works with pasting) on both Panther and Tiger.

Thumbscrew 1.0b7

[10:26] | [/software] | [#] | [G] | [Comments: 3]
Thumbscrew 1.0b6

This newest beta of Thumbscrew 1.0 offers a few new features (I know, I know, you're not supposed to add new features during a beta...):

  • A rudimentary "base path" preference. It compares the directories of the thumbnail and resized original directories and provides any of their common ancestors as a base path. I say rudimentary, since it's not quite there, but enough to get feedback on.
  • An optional suffix for the resized originals.
  • Thumbscrew can now accept pasted images, URLs, and filenames. Still rough around the edges (some default now to "Untitled", for example, and it's not using Command-V, it's Command-Option-V), but we'll get there.

It also fixes a now long-standing bug. Several of you had reported that changes to preferences weren't being preserved or at least represented on subsequent runs. This is now fixed, so if you change prefs between batches, they're reflected properly.

Thumbscrew 1.0b6

[10:26] | [/software] | [#] | [G] | [Comments: 5]
ZopeEditManager 0.9.7

I'm pleased to announce the release of ZopeEditManager 0.9.7.

ZopeEditManager is a native Cocoa application that provides ExternalEditor functionality for Mac OS X users. Written using the PyObjC bindings, it extends the original work done by Casey Duncan, and makes it possible for Mac users to get the most out of this incredibly useful package.

This release fixes a few long-standing bugs:

  • When ZopeEditManager is quit, it will now try to cleanup the locks on all its documents, so they aren't left locked on the server.
  • A crash could occur when clicking the column headers in the main display.

You can download it in binary or source form.

[10:26] | [/software] | [#] | [G] | [Comments: 26]
ZopeEditManager 0.9.6b2

Fixed a slight discrepancy between how Panther and Tiger want to handle user defaults dictionaries (Panther allows them to be mutable, Tiger does not).

ZopeEditManager 0.9.6b2

[10:26] | [/software] | [#] | [G] | [Comments: 1]
Thumbscrew 1.0b5

I've rebuilt Thumbscrew on my iMac running Panther, and verified that it runs and works on both platforms. Thumbscrew 1.0b5

[10:26] | [/software] | [#] | [G] | [Comments: 20]
ZopeEditManager, Thumbscrew, and Tiger

So, Tiger's released. Stupid Amazon. They are still telling me it will "soon be shipping". Bastards. Nevertheless, I wait, patiently, patiently.

I received word earlier today that the latest version of ZopeEditManager doesn't run in Tiger. I'm pretty sure this is because it was last built with a pre-1.0 version of PyObjC. I've built another copy and have uploaded it here: ZopeEditManager 0.9.6b1. If I hear back from people who need it, I'll do a proper release with READMEs, source and whatnot.

Thumbscrew is also ready for a new beta release: Thumbscrew 1.0b3. It's similary austere, but it includes two new UI features: You can change the color of the border and you can set the suffix to be used for thumbnails. The subprocess handling is a bit stiff. It starts up one or two subprocesses depending on whether you've chosen to resize the originals or not, and it doesn't start up the subprocess if you change the pref, until you restart it. It's something I'll fix shortly. I'm looking for feedback, so please let me know how it works out. I'm particularly interested in how the subprocess plumbing works on machines other than my own.

[10:26] | [/software] | [#] | [G] | [Comments: 8]
Thumbscrew 1.0b4

Some time between Panther and Tiger, the Python CoreGraphics bindings became more picky about Unicode strings. Where the PyObjC bridge wants Unicode Every Where Every Time, CoreGraphics apparently does not.

I've uploaded the next beta. Feedback always appreciated. Thumbscrew 1.0b4

[10:26] | [/software] | [#] | [G] | [Comments: 1]
Thumbscrew Mailing List

Wow, almost a month since the last post. Many apologies! PyCon gave me huge amounts of energy to put back into Thumbscrew, but work has been incredibly hectic, and the house is nearing its own dénouement, so it's been a little on the back burner.

This past week, though, I was able to make the time to hack on it a bit more. The next beta is almost here. All the prefs are back and accounted for (not using the UserDefaultsController just yet), and I've added a much-requested pref to determine the suffix to be used for thumbnails. It's now using subprocesses to handle the busy work, and distributed events to communicate back to Thumbscrew.

In the process of just getting The Simplest Thing That Could Possibly Work™ working, I prevented using the background Thumbnailer as a viable standalone solution for people who wanted to script it. This isn't a long-term situation, just needed it up and running in the now.

Since I get sporadic feedback, and many of the feature requests are duplicates, I created a mailing list for anyone interested in communicating their wishes, comments, bug reports, &c.

http://lists.palladion.com/mailman/listinfo/thumbscrew-users

Alternately, you can send a message directly to:

thumbscrew-users-subscribe@lists.palladion.com

Hope to see the users joining so we can find out where Thumbscrew needs to go.

[10:26] | [/software] | [#] | [G] | [Comments: 0]
Thumbscrew Nears a b3

I did a lot of work on Thumbscrew here at PyCon, and it's really paying off. I've got the two subprocesses churning stuff out now, posting notifications, which the main program uses to update the display and progress indicator. I had to rip out quite a lot of code to get down to a simple reimplementation, so the Preferences stuff is all broken right now. This is actually okay with me, since I'll be using an NSUserDefaultsController to map the preferences into the UI, rather than hand-wiring all the outlets and actions. So it was going to need to be rewritten, anyway.

Now, when you accidentally drop your whole iPhoto Library onto Thumbscrew, you can stop it at any point. Hurray, coming soon to a desktop near you.

[10:26] | [/software] | [#] | [G] | [Comments: 1]
ZopeEditManager 0.9.6

I'm pleased to announce the release of ZopeEditManager 0.9.6.

This release allows ZopeEditManager to run under either Panther (Mac OS X 10.3) or Tiger (Mac OS X 10.4).

You can download it in binary or source form.

[10:26] | [/software] | [#] | [G] | [Comments: 0]
ListenUp! 1.0

Cleaned it up a little more, slapped on an icon (shamelessly pulled from somewhere in google-space), and here she is:

ListenUp_1.0

Mostly, I just made the fonts smaller so they'd be easier to see. I also rearranged the default columns to put the time on the left.

Here's the binary, and the source will be coming shortly. I think this would be an excellent tutorial app for PyObjC and I'll be writing it up and cleaning up the code as I do.

Download

[10:26] | [/software] | [#] | [G] | [Comments: 22]
Why Thumbscrew Won't Output GIFs

A lot of people ask me for GIF support for one of two reasons:

  • Smaller file size than the default PNG
  • More widely compatible with browsers on that other OS.

While I can understand and sympathize, Thumbscrew won't support GIF output until Apple's CoreGraphics does. That said, there are (to me) compelling reasons not to use GIFs for a photo thumbnailing application, especially one that generates drop shadows:

  • GIFs don't actually support an alpha channel, so even if you did get GIF output, you only get to replace one indexed color with a transparency. This would lead to ugly output unless you matched the background, in which case, why bother with transparency at all?
  • GIFs are not the best image format for photo-realistic content.

My advice to users who want smaller file size (or more widely compatible file format) is to use JPEGs with an opaque background color to match your site.

I will be evaluating pngcrush to see if it would at all be applicable. You all aren't the only ones who'd like to see the size of the PNGs come down.

[10:26] | [/software] | [#] | [G] | [Comments: 2]
Thumbscrew 1.0b2

Okay, okay. I have heard my users. You want it, you got it.

Thumbnails prefs

Two other bug fixes:

  • A slight bug in the Web page handling. It assumed all the thumbnails were PNG format; now it reflects the chosen format.
  • If you didn't have any preferred location for thumbnails or originals, it wouldn't have anything selected in the preference panes; now it selects Same as original.

Download

[10:26] | [/software] | [#] | [G] | [Comments: 7]
Thumbscrew 1.0b1

It's here. Ready to play. Cleaned and streamlined. Try it out, and let me know what you think. If you've used a previous pre-release version [1], you'll want to trash your preferences file before giving this a try.

Disk image

Download

The only caveat I can mention at this point is that the background worker thread does quite a bit more than I want it to. What this means is that it won't quit snappily if you drag in your entire iPhoto library. It'll keep processing, having queued up your request to Quit, "Yup, I'll get there. Once I'm done with all 19,000 images..."

It's the major bit of plumbing I want to fix before a final 1.0 release.

Main Window

Thumbnails Preference

You can choose other directories where thumbnails should be saved. Thumbscrew remembers these settings between running.

Originals Preference

You can scale down the original images to make them web-ready, and save them out to alternate directories.

Web Page Preference

Thumbscrew ships with a template that generates valid XHTML, but can use any templates it finds in ~/Library/Application Support/Thumbscrew/Templates/. These templates must be of a style that Nevow [2] understands. Currently, that includes HTML and XML.

Documentation about the template format will be included later, as well as further examples.

Activity Log

Thumbscrew reports on its progress, including how long it took to thumbnail how many images.

Web Page

The rendering of the template is presented here, and it can be further edited. Both the Activity Log and Web Page can be saved to the filesystem.


In addition, there are three hidden prefs that can be set outside of Thumbscrew:

  • TSRecursivelyProcessFolders - when you drop a folder onto Thumbscrew, it will ask you if you want to drill down and thumbnail all images found. Setting this to TRUE will prevent the dialog from asking each time. Default is FALSE.

    defaults write com.urbanape.thumbscrew TSRecursivelyProcessFolders -bool TRUE

  • TSThumbnailImageFormat - by default, Thumbscrew creates PNG files, since they support full alpha channels. I don't know whether it's CoreGraphics or what, but Panther makes these HUGE. It's the single most numerous request I got, so here it is: You can set the output format to JPEG, though in doing so, you'll likely want to set the next hidden pref, too. Valid values are PNG, JPEG (or JPG), and TIFF (or TIF). Default is PNG.

    defaults write com.urbanape.thumbscrew TSThumbnailImageFormat 'JPEG'

  • TSThumbnailImageBackgroundColor - by default, Thumbscrew sets the background color of the thumbnail image to white with 0% opacity. If you're creating JPEGs and want the thumbnails to match your site, you'll want to include a background color. Values are floats from 0.0 to 1.0, for each of Red, Green, Blue, and Alpha. For JPEGs on a white background, for instance, you would use -array -float 1.0 -float 1.0 -float 1.0 -float 1.0, while for PNGs with a transparent background, you could use anything for the first three, and -float 0.0 for the alpha channel. Default is (1.0 1.0 1.0 0.0).

    defaults write com.urbanape.thumbscrew TSThumbnailImageBackgroundColor -array -float 1.0 -float 1.0 -float 1.0 -float 1.0

[1]Like the one listed on DrunkenBlog
[2]That's pronounced Nouveau (for Matt)
[10:26] | [/software] | [#] | [G] | [Comments: 2]
Say Hello

This is the new face of Thumbscrew

Thumbscrew 1.0 Thumbscrew 1.0 working

Many users sent me feature requests that were jaw-droppingly obvious, so I added them. Users wanted:

  • Preferences to keep your settings between sessions

    Thumbnails Pane

  • An alternate place to save thumbnails

  • Better feedback when images were dropped

  • Folders supported in addition to a group of images (for instance, you can now drag in Albums from iPhoto)

  • Alternate thumbnail formats

  • Speed! Thumbscrew now uses CoreGraphics (Quartz) for its thumbnail processing, and threads for a responsive UI, and the results are outstanding:

    • Processing thumbnails is now over 10x faster than before
    • Gamma is preserved (meaning no more dark thumbnails - PIL on the left, and CoreGraphics on the right)

    Before and After

In addition to these improvements, I've added two new features that I think will provide a lot of value:

  • Rescale the original image (and save it to another location)

    Originals Pane

  • Generate a Web Page of the thumbnails created (in either HTML or reStructuredText)

    Web Page Pane

It's not yet ready for general release, but I wanted to let people know I've been listening to the feedback I'm getting. It will remain free for everything it currently does (plus the extra thumbnailing features), but I'm planning on charging a small fee to unlock the new features.

[10:26] | [/software] | [#] | [G] | [Comments: 9]
Thumbscrew 0.1.1

Man, how dumb do I have to be to release an app that doesn't do what it prominently claims? Yesterday's release was not obeying any Max Angle constraint placed on it due to a typo on my part. Fixed.

I was incredibly impressed by the feedback I got (both here and in private), and by the number of downloads reported by VersionTracker. Hope I haven't driven anyone away.

Updated binary and source.

[10:26] | [/software] | [#] | [G] | [Comments: 4]
Thumbscrew 1.0 - Good News (for you)

I had been planning on releasing the next version of Thumbscrew as a $10 shareware app, leaving all the 0.1.1 features unlocked and available for free. But before I could do this, I needed the release from my employer that says I retain rights to what I do after-hours.

I received and signed the agreement, so I retain IP rights to the software. However, one stipulation is that I not commercialize my private time creations while I'm currently employed, so I can't release Thumbscrew as shareware.

Bad news for me. Good news for you. I'm going to continue releasing it as freeware. I won't distribute the source anymore, but everyone [*] can use Thumbscrew's new features.

The only feature improvement since the last announcement is that I'm using Zope 3's Page Templates for the output of the web page, meaning you can completely stylize the output. The two templates included will offer reStructuredText or HTML output.

I've got a few last bits of tidying up to do before releasing it this weekend.

[*]Everyone running Mac OS X 10.3 and above. Sorry, Jaguarians.
[10:26] | [/software] | [#] | [G] | [Comments: 1]
LinuxWorld Observations

One of the most striking things I noticed was that nearly all of the Whore-your-info-and-register-to-win prizes given away at the booths were Apple iPods of one flavor or another (4Gs, minis, and shuffles).

Anywhere from a quarter to a third of the laptops in use around our (Zope.org) booth (100% in our case) were Apple PowerBooks.

Apple had a small 10'x10' booth with an iMac, Mac mini and Xserve (G5 and RAID) set up.

Got some new tee-shirts from Debian, ActiveState, Apress (the wonderful Apress booth attendant also got me a free review copy of Peter Seibel's forthcoming Practical Common Lisp (available online as well)), HP, and LinuxQuestions.

Attended the "For the Love of Free Software" .org Pavilion party on Wednesday night, and drank beers and ate food with the LinuxQuestions.org crew. Fun guys.

Most of the people who stopped by our booth did so for congratulatory reasons. More than a few of them inquired about the state of Zope 3 (we're still working on it). All in all, the mood was upbeat and people seemed to be excited about us.

No pics, sadly.

[10:26] | [/work] | [#] | [G] | [Comments: 0]
A Platypus in Penguinland

Today, I'm off to Boston to attend LinuxWorld Expo and spend the next few days as a booth babe for the Zope.org table. Our CEO is there today, and we'll tag team tomorrow, and I'll be on my own on Thursday. We both use Mac OS X, so it's even more funny.

Still, it's a few days away in a swank hotel, so it'll be good. Perhaps pics will follow.

[10:26] | [/work] | [#] | [G] | [Comments: 0]
Strikes and Gutters

So. Quite a weekend. We finished a whole slew of the half-completed projects upstairs. We installed one of the cabinets in the knee-wall, hung a low-voltage trapeze light above the stairs, attached a few bathroom essentials (more robe hooks, toilet paper holder, paper towel bracket, and anchored the medicine cabinets), capped the half-wall next to the stairs with a ten-foot piece of oak, and finished most of the bathroom paint.

Oh, and after we were done with a lazy seven-mile canoe trip on Saturday, the six of us pulled a dead man out of the river, and performed CPR on him until paramedics arrived. [ Update ]

So, how the hell was your weekend?

[10:26] | [/home] | [#] | [G] | [Comments: 0]
Be an Opener of Doors

Built another door jamb last weekend. Took longer than we had planned, but we're getting our technique worked out. The remaining jambs should go up quickly this weekend.

DSCN4258 DSCN4262 DSCN4263

DSCN4264 DSCN4269 DSCN4271

Despite the snow storm last Thursday and Friday, our daffodils are unstoppable – if out of focus.

DSCN4266

[10:26] | [/home] | [#] | [G] | [Comments: 1]
Floored, part four

First, an introduction to our new camera. We upgraded to a Nikon Coolpix 5400 (not quite the D70 we had been drooling over). Still, the biggest improvement is the presence of a hot shoe, so we can have nicely lit images, rather than the flat, washed-out frontal flash extravaganza. Also, bigger pics.

DSCN4068

(apologies for the timestamps on all the remaining pics - didn't realize it was writing them on the actual image)

We finished laying the hardwood floors this weekend! The eponymous Last Board was laid in the closet. Next comes (sing along with me, we all know it by heart now) sanding, staining, and polyurethaning.

We would get to that next weekend if only I weren't going to be in Washington D.C. for all of this week, working on-site for a client.

DSCN4157 DSCN4164 DSCN4171

DSCN4178 DSCN4182 DSCN4188

Yesterday, in celebration of getting the floors all installed, we went and saw The Life Aquatic with Steve Zissou, which I loved. It's a bit agoraphobic compared to Wes Anderson's other movies (in particular, Rushmore and The Royal Tenenbaums). The soundtrack is phenomenal.

poster1-2

[10:26] | [/home] | [#] | [G] | [Comments: 1]
Floored, part three

Happy New Year!

Big, big changes upstairs. Laying hardwood floors is mechanically very easy, but all the stooping takes its toll on your back.

Last weekend, when my dad was in town, we made the top step using my new router and router table. It came out beautifully. The top step is now three-quarters of an inch taller than all the rest, but we're now considering putting down a layer of oak on all the remaining steps, routing the ends to match.

We got a lot of help from our neighbor, Susan, this weekend. We wouldn't have got nearly as far without her!

We had hoped that when we diverged at the half-wall, that we'd have laid everything out just so so that when we reached the door between the bedroom and the office, things would just match up. Sadly, it was not to be. The boards are off by about three-quarters of an inch, so we laid a threshold between them. It came out very nicely.

The closet, on the other hand, meshed very well with the bedroom floor. We're almost done with laying it down, and can move on to sanding, staining, and polyurethaning.

DSCN3997 DSCN3998 DSCN3999

DSCN4003 DSCN4006 DSCN4007

DSCN4018 DSCN4027 DSCN4036

DSCN4044 DSCN4050 DSCN4056

DSCN4057 DSCN4058 DSCN4059

DSCN4060 DSCN4062 DSCN4063

[10:26] | [/home] | [#] | [G] | [Comments: 0]
Floored, part two

DSCN3969 DSCN3970 DSCN3972

DSCN3976 DSCN3979 DSCN3984

DSCN3985 DSCN3987 DSCN3994

[10:26] | [/home] | [#] | [G] | [Comments: 1]
Floored, part one

DSCN3936.JPG DSCN3938.JPG DSCN3939.JPG

DSCN3942.JPG DSCN3946.JPG DSCN3949.JPG

DSCN3950.JPG DSCN3955.JPG DSCN3960.JPG

[10:26] | [/home] | [#] | [G] | [Comments: 0]
Consume, Citizen!

DSCN3933

Since Saturday morning, we've been showering upstairs.


DSCN3934

Yesterday, we got a 26" Samsung Widescreen HDTV. We had originally (Saturday afternoon) purchased a 30" Toshiba Widescreen HDTV Monitor, but it wouldn't fit in our Chinese wedding cabinet. Rather than mutilate the cabinet to make it fit, we down-sized. The savings also paid for a DVD/S-VHS combo, which eliminated two other components. The picture is pretty incredible, and we felt the need to boost our DVD library by a few titles:

  • Harry Potter: Years 1-3
  • Hero
  • Master and Commander: The Far Side of the World
  • Shrek 2
  • Spider-Man 2

All in all, a very consumalicious weekend.


Durer Adam & Eve

In less materialistic news, the Virginia Museum of Fine Arts is hosting an exhibit of Albrecht Durer's work (I apologize, I know there's an umlaut in his name - I haven't yet been able to get PyBlosxom to play along nicely with Unicode characters). In between trying to get the first new TV to fit and getting the second, the Amish made a trip out to see it. Simply incredible. Now to get some prints. In particular:

[10:26] | [/home] | [#] | [G] | [Comments: 0]
Sanding, Staining, Now for the Hard Part

The previous two weekends were spent getting back into business with the upstairs. We moved up the washer and dryer from the basement, so we'll have them on the same floor where we'll be living.

Last weekend we sanded the floors and put down two coats of stain. It looks incredible. We're saving the Polyurethane for next weekend, when I'm back from Boston.

DSCN4203 DSCN4206 DSCN4207

DSCN4212 DSCN4219 DSCN4223

DSCN4226 DSCN4229 DSCN4231

DSCN4234 DSCN4236 DSCN4237

[10:26] | [/home] | [#] | [G] | [Comments: 2]
Sick and Tiled

A long, food- and friend-filled holiday weekend was just what we needed. We did so much work on the upstairs bathroom, and the end really is in sight.

DSCN3819

Wednesday night we had a small pre-Thanksgiving dinner party with our neighbors and their family. All the Amish were present. It was amazing. I managed to drink David's whole bottle of Gentleman Jack (replaced it on Friday). After Thanksgiving, Amber and I retreated into our shell and got much further on the bathroom.

The shower is now tiled, inside and out. We'll spend two nights this week grouting (damn you, grout!), and painting in preparation for our plumbing inspection at the end of the week.

We want to get the rest of the trim up before the fixtures are installed, since they'll be hella hard to paint with porcelain in the way. The only remaining trim is the quarter round toe rail at the bottom.

DSCN3823 DSCN3826

Too much grout awakens the Groutosaurus!

DSCN3833 DSCN3849 DSCN3889

DSCN3859 DSCN3863 DSCN3864

DSCN3838 DSCN3844 DSCN3850

DSCN3851 DSCN3858 DSCN3867

DSCN3876 DSCN3878 DSCN3881

The last tile is in place. W00t!

DSCN3883

Time for a beer.

Once the fixtures are installed and working, we will have passed all our permit inspections and be free and clear of contractors and inspectors. The upstairs will be ours!

DSCN3894

[10:26] | [/home] | [#] | [G] | [Comments: 1]
Kick Out the Jambs

Another busy weekend.

The house is now fully painted, so we're good on the outside. The shower walls are all tiled, and we started to grout, but it's an enormous pain in the butt to grout vertical surfaces. So we switched tack and worked on the bathroom trim. To get all the beadboard edges to line up nicely, you need to know where the trim around the door will be. To know where the trim around the door will be, you need to have a door. To have a door that matches the rest of the house, you need to go out to an architectural salvage yard, and buy and refinish some doors. And since you're buying a salvaged door, you'll need to build your own door jamb. There's a reason Lowe's sells pre-hung doors with their own jambs.

Luckily, we're getting pretty damn good at all this Harry Homeowner stuff. The door came out nicely. It's snug all around, with no conspicuous gaps, and it opens and closes smoothly. The rough opening seems to have been built in a natural dip in the floor, though, so we'll need to shave off some of the bottom of the door to let it clear when we have hardwood floors installed.

Also, maple trees in Autumn are spectacular.

DSCN3765 DSCN3767 DSCN3770

DSCN3779 DSCN3784 DSCN3788

DSCN3798 DSCN3799 DSCN3800

DSCN3804 DSCN3805 DSCN3808

DSCN3810 DSCN3811 DSCN3813

Special bonus pics. What the house used to look like from the outside.

200203272001338 200203272001601

[10:26] | [/home] | [#] | [G] | [Comments: 0]
To Build an Arch

This weekend was incredibly productive. Amber and I both took Friday off to fix a problem area in the shower floor. The last batch of cement we mixed had too much sand in it, and you could carve it out with your finger. Not good. So we patched that on Friday, and bought 1,100 tiles for the walls. To finish off the shower area, we built an arch over the entrance.

First, you need to have grilled cheese sandwiches and tomato soup. Mmm mmm good. Then, you need to frame the arch with two-by-tens, joined at a 90 degree angle, and rounded with a jigsaw. This gives you support for the greenboard, and the plaster. Flexible corner bead gives a nice, clean edge. While Amber was working on the arch, I got two of the five walls tiled.

DSCN3729.JPG DSCN3731.JPG DSCN3735.JPG

DSCN3738.JPG DSCN3744.JPG DSCN3745.JPG

DSCN3746.JPG DSCN3751.JPG DSCN3754.JPG

DSCN3757.JPG DSCN3759.JPG DSCN3760.JPG

[10:26] | [/home] | [#] | [G] | [Comments: 0]
Dressed for Winter

The final trim is up, and it looks great! Hopefully, we can get it painted this weekend and we'll be good as new (on the outside). We're hoping to be done with the bathroom in two we