So, I'm playing around with writing a different backend for my Pyblosxom blog. It uses Markdown syntax, but is unlike the two other Markdown Pyblosxom plugins I've found. It's closer to the reStructuredText plugin, defering all the computation to the freewisdom implementation of Markdown in Python.
Tue, 27 Nov 2007
Thu, 22 Nov 2007
After nearly 3 years in the oven, it's baked.
From the manual:
Screw it! Making thumbnails for the Web used to be painstakingly slow if you wanted to apply borders, drop shadows, transformations, alpha channels, and so on. Or if it was fast, you ended up with a boring field of rigid columns and rows. Thumbscrew allows you to quickly and easily chew through a bunch of images, applying scaling, random rotation, border, and drop shadow to each – even resizing the original, and processing the batch as a whole afterwards.
Images can come from a variety of places:
- Drag images (or folders of images) in from the Finder
- Paste images from the Clipboard
- Paste or drag in URLs to images
When images are being processed, the image well in the main window will be briefly replaced with the original, and as the thumbnail is created, with the thumbnail. A progress bar at the bottom tracks overall progress of the batch.
After a batch has run, a batch file is created in ~/Library/Application Support/Thumbscrew/Batches/ and the selected post-flight script is run with this file as its only argument.
What it looks like:
![]()
What it does:
Not much in the way of new features:
- Manual included and accessible from Help menu
- Proper handling of Paste keybindings (command-V vs. command-option-V)
- New appcast URL.
Get it while it's hot.
Wed, 20 Jun 2007
Amber and I took a little trip to Morehead, NC to do some Atlantic wreck diving with Olympus Dive Center. It was time to try out Amber's new housing for real. We also took the Coolpix 5400 and its housing, so we could both be photogs. The shots came out pretty well.
Wed, 06 Jun 2007
The new version is out. It adds SparklePlus support, which will let you auto-update (at intervals, or manually), and if you choose, you can share back some anonymous profiling information (processor type, OS version, &c) so I can better know my user base. There is absolutely no personal information sent back (other than what I already know: you've got enough taste to use a Mac).
Also, I've finally got my post-processing script support finished. You can script the batch any way you like. Thumbscrew finishes a batch by calling the selected script directly, with one argument, the path to the batch file:
/path/to/script_file /path/to/batch_file
All the scripts live in ~/Application Support/Thumbscrew/Scripts, and all the batches live in ~/Application Support/Thumbscrew/Batches. Thumbscrew ships with a sample script, save_to_desktop.py, that copies the batch file from the batches folder to the Desktop:
#!/usr/bin/python
import sys
import os.path
batch_file_path = sys.argv[-1]
desktop_file_path = os.path.join(os.path.expanduser(u'~/Desktop'),
os.path.split(batch_file_path)[-1])
inp = open(batch_file_path)
contents = inp.read()
inp.close()
outp = open(desktop_file_path, 'w')
outp.write(contents)
outp.close()
Since the script is called directly, the only thing to watch out for is that its executable bit is turned on. The batch file is an XML document with information about the batch:
<thumbscrew_batch name="20070605223040">
<image name="Untitled14">
<version name="original" path="/Users/zbir/Pictures/Thumbscrew/Untitled14.png"/>
<version name="thumbnail" path="/Users/zbir/Sites/images/thumbnails/Untitled14_thumbnail.png"/>
<version name="resized" path="/Users/zbir/Sites/images/photos/Untitled14_resized.png"/>
</image>
</thumbscrew_batch>
Also, when images are pasted into Thumbscrew, it gives the pasted image a name, and stores it in ~/Pictures/Thumbscrew, so if you're making thumbnails or resized originals that should be living where the original does, it won't be relegated to an unfriendly /tmp directory.
Last, but not least, I've changed the icons a little, from our recent trip to Borneo. The application icon is being worked on, as well, and will show up in a later release.
Tue, 05 Jun 2007
I got Amber an Ikelite housing for our D200 for her birthday. We plan on taking a lot more and better photos on our dive vacations. We waited until our insurance policy was accepted before taking the plunge to test it.
I think I somehow managed to still end up with schmutz on the sensor, as the blobs visible in these shots are also visible with another lens. Good thing I got a kit with multiple swabs and Eclipse.
Mon, 04 Jun 2007
This weekend, Amber and I decided to bike the 30 miles or so to Pocahontas State Park and camp overnight. We planned on making extensive use of their pool facility, though events conspired against us.
We managed to get everything we wanted onto both bikes, without requiring additional backpacks or trailers. Tent, two fleece sleeping bags, change of clothes, toiletries, food, and water. I brought my Garmin eTrex Vista Cx to give us the directions I snarfed using gmap-pedometer and GMapToGPX, loaded onto the eTrex via LoadMyTracks.
I tried to choose a route that would keep us to less-used byways, but I obviously don't know Richmond half as well as I thought I did. River Road (becoming Hugeonot Road) is a major road, heavily trafficked, and with extremely narrow shoulders. Amber was anxious at several points, and we ended up walking the bikes a good deal along this leg.
Bufort and Providence Roads were a bit more bucolic, though still with narrow shoulders.
It wasn't until we came upon Courthouse Road that things got very comfortable. Wide bike lanes almost the entire way to Pocahontas. We ended up deviating from our planned route which would have us skirt the entire eastern side of the park, to come to the entrance along Beach Road on the south, and instead came down an access fire road that fed directly into the park's trails, bringing us out into the main park area by the pool. We still had to bike a few miles to the camp office to check in and find a site, but a few extra miles on forest path beats a few extra miles on paved road, any day.
While we were there, the Richmond Symphony Orchestra were performing a free concert at the Heritage Amphitheater in the park. Once we got the camp set up (remarkably simple as light as we'd packed), we walked down some trails to get to the concert, taking the camera and a light dinner with us.
We got back to camp around 9 o'clock and were preparing for a decent snooze. Not to be had. In efforts to pare down, we chose not to bring camp mats or a thicker sleeping bag. The provided tent pads at the site were shallow beds of pea gravel, convenient for making a smooth place to pitch the tent, but not so convenient for sleeping on. Ow. Furthermore, while it was nearly impossible to sleep with the ruckus of families nearby, once the rain started, the white noise put us right to sleep. The next morning, it showed no signs of letting up.
While discretion might be the better part of valor, a cell phone is the better part of being stranded 30 miles from home in the rain. We waited until a respectable hour, and called our neighbor David to come fetch us in the Pathfinder. A humble end to a new experience, but one I'd do again.
Sun, 04 Mar 2007
Tue, 23 Jan 2007
This could turn into a real series. My office chair went a little kerplooie. It's an old wooden office chair with casters. The casters are new, but one of the caster sockets had been chewed away by an errant collar. We've got two other similar office chairs around the house. It's a sickness, I admit: bags, pens, gadgets, chairs. All three were in need of some loving.
The mechanism underneath the chair is so simple, and rock solid. I really feel sadness at all the plasticky knobs and levers in a modern chair. Steel and wood for me. So, I set up my workspace down in the basement (yes, it's sitting on top of an empty keg).
I used a two-part polyurethane epoxy to fill in the entire space and belt-sanded it close to flush. A detail sander brought it flush and took care of the overfill around the edges.
I reused the collar, bending each of the teeth back out to better grip the polyurethane, and I forced a tight fit by adding a sliver of bamboo to each socket. I used a mallet and a piece of scrap wood to drive each of the casters in place, and all are very firmly attached, but turn effortlessly.
Back in the office, none the worse for wear.
Thumbscrew's been making some rounds. Thanks, everyone!
FreeMacWare: "This is a great way to make a thumbnail if you are going to post the picture online. It’s fast too."
which was picked up by TUAW and Mike Power
The Apple Blog "ThumbScrew rocks my world, and I'm so happy to hear that it's been updated"
Random Murmurings tried to tie it together with flickr.
Hit Any Key: "Thumbscrew is one of those handy little photo tools that can make you look good, and fast!"
pedersondesigns: "My new favorite application."
Stability of Our Times: "One cool Mac app: Thumbscrew. Great fun and ease!"
MacReviewCast: Right around the 24:22 mark, listen to Jeff Powell. "Real small, single purpose app, very well done. ... One of those apps that tries to do one thing, and does a pretty good job of it."
ReelSmart: "makes a very cool thumbnail image instantly"
And those are just the sites in English!
Italian: ZeroNáve and inblogtecno
Spanish: Applesfera, Comando + Q, and Think Wasabi
Mon, 22 Jan 2007
We were tidying up the downstairs office yesterday (wow, two offices), and I stumbled upon this gem, straight from my childhood: An Apsco Giant. Just sitting there in a drawer! Unused!
So many memories of school. The familiar buzz and whir of metal on metal. The smell of graphite and wood shavings. The tidy bouquet of sharpened pencils.
Now, it's mounted neatly on the wall next to my desk, forever at hand to refine a supreme writing instrument.
