Pannier Shoulder Bag
With a pair of cheap carabiners and a strap scavenged from an old duffel bag, you can comfortably carry a bike pannier over your shoulder. Pass the pannier’s handle strap through the carabiners to prevent the bag from dropping if the carabiners are jostled off the rack hooks. (I find this isn’t much of an issue, but parkour commuters may want something more secure.)
When it’s time to mount the bag on your bike rack, slip the carabiners off the hooks and loop the shoulder strap under the cover flap to keep it clear of your wheel. This setup is specific to the panniers I’ve got, of course, but I’m sure you can work out something similar with any model.
Do the hooks or rigid irregularities on the back of the pannier make it uncomfortable to carry? No; unlike a backpack, a shoulder bag hangs pretty loose, so nothing digs into your back or side. Of course, this is just intended as a convenience, so if you’re concerned with ergonomics you should look for a pack expressly designed for the purpose.
Posted on Thursday, March 11th, 2010.
New Old Bike
Got a bargain on a vintage 3-speed Schwinn today. It’s a 1968 “Racer”, made in Chicago.
Needs new tubes and brake pads, but otherwise it seems pretty solid. It’s the perfect practical configuration for doing errands around town: fenders and chainguard to stay clean, a rack to carry things (although it may need a little tweaking to fit my favorite panniers), and an internally geared hub. The cushy seat and relaxed posture are nice, too.
The internally geared hub is an intriguing novelty to me. It works, but behaves very differently from the derailleurs I’m accustomed to.
Posted on Tuesday, March 9th, 2010.
Haiku Reviews 3
A Programmatic Approach to Perfect Happiness by Tim Pratt (via Escape Pod 239)
Yes, the androids dream –
of equal rights, kinky sex,
and we human sheep.
Here we meet Kirby, robotic consort to the insatiable April, as he observes the symptoms of his adolescent step-daughter’s infection with an attitude-altering “happiness virus”. It is at first a matter of some concern to the couple, but thankfully it amounts to little more than a welcome respite from Wynter’s typical prickly temper. After a tense encounter with April’s ex, however, we realize that Kirby may be more than a mere observer. He’s wired for pleasure, yes – but who’s programming who? (Full text at Futurismic.)
Learning to Fly by Garth Upshaw (via Pseudopod 183)
Rodents, wings, and angst
with practice casts rats in flight
and traps lass in night.
I think anyone who has ever enjoyed poking around the library stacks has imagined discovering a dusty old tome full of forgotten knowledge. The teenage protagonist of Learning to Fly has found such a book, and has made a habit of sneaking out after curfew to practice its spells. She finally gets it down, but she gets more than she bargained for. Lord Rat is a crafty old bastard.
The Mermaid’s Tea Party by Samantha Henderson (via Podcastle 93)
Maid and sailor, prey,
serve sirens tea and escape
from their slaver way.
Shipwrecked by mermaids, a plantation owner’s young daughter is marooned by the “fishy bitches” on an island with another captive, the self-styled pirate Handsome Jack. The sailor was spared for his ability to tell fearsome tales, and Cassandra has bought some time by promising to serve tea to the mermaids if they recover any from the flotsam. (Mermaids get a kick out of lampooning high society.)
The story is not really about how the two defeat their captors, but about how the grim link of the slave trade connects Cassandra’s childhood naiveté with Handsome Jack’s circumspect remorse. Jack dies before the pair is found. His body is perfunctorily discarded by the rescuers as that of a lecherous knave, but we are left with the impression that his acquaintance has inspired Cassandra, the Pirate Queen, to chart a righteous new course through life.
Sir Hereward And Mr. Fitz Go To War Again by Garth Nix (via PodCastle 92)
Sworn to cull stray gods,
a knight and his wooden aide
slay shades and bear loss.
The titular characters (a man and a sorcerous self-motivated puppet) are mercenaries. As the story begins, they are en route to a city where they hope to find relaxing employment; it seems their gigs often develop into events of calamitous proportions. They have just barely arrived in Shûme when a minor gaffe leads to a duel between Hereward and Jessaye, a lieutenant of the city’s Temple Guard. They are well-matched, and the fight foreshadows romance.
Mr. Fitz soon learns something ominous about Shûme’s god, and we learn that the pair has a higher allegiance than to any local potentate. They execute their order’s mandate, but at cost to the prospect of Hereward’s love – and any hope of rest. What are the casualties of duty?
A great narration by Paul Tevis made this one a real treat to listen to. (Full text at Jim Baen’s Universe.)
The Clapping Hands of God by Michael Flynn (via StarShipSofa Aural Delights 122)
Affection, postponed,
becomes preventable grief;
act, or sacrifice.
A survey expedition passes through a gateway to a new world and sets up camp to stealthily observe the inhabitants. As might be expected, given the characters’ mission, the worldbuilding is enjoyably thorough. It is culture – both that of the natives and that of the humans – that is the central subject here. The expedition’s leader is challenged to maintain objectivity as his crew habitually anthropomorphizes the alien society. As a crisis facing the locals approaches its climax, Hasan succumbs to the anthropomorphic view: he hesitates to enforce evacuation, and even permits assistance to an alien who has struggled industriously to locate the crew. As a result, a woman he admires dies.
As Tony might say, a truly crackin’ narration by Mike Boris.
Down on the Farm by Charlie Stross (via Tor.com Story Podcast 11)
Men of the Laundry
hack math to weave their magic,
wrung out on the Farm.The Matron, machine,
guards the stark minds held inside –
jail, weapon, or womb?
You can have your Harry Potter; I’ll tend to my English wizard needs at the Laundry, “that branch of the British secret state tasked with defending the realm from the scum of the multiverse, using the tools of applied computational demonology”. The protagonist is sent to investigate anomalies at the service’s “funny farm”, which is nominally a secure hospice for those damaged in the line of work. There is, perhaps, a bit more to it than that. (Full text at Tor.com.)
Posted on Sunday, March 7th, 2010.
Curved Drop Shadow without Border (A Modified Plug-in for Acorn)
This is a very slightly modified version of the “New Image with Curved Drop Shadow” plug-in that ships with Acorn. The original plug-in adds a narrow white border with a gray frame to the image in addition to the curved drop shadow. I removed the code that adds the border, so all this version does is add the subtle shadow (illustrated in the screenshot below).
Download New Image with Curved Drop Shadow without Border.jstalk (1.5 KB; unzip and install in ~/Library/Application Support/Acorn/Plug-Ins
; restart Acorn). I’m not sure what license terms apply to this plug-in, but the JSTalk plug-in and the original Python filter were written by Gus, inspired by the screenshots in an article by Sebastiaan.
Posted on Saturday, March 6th, 2010.
Keep Working with Full Screen Movies on a Second Monitor
Do you have a big external monitor for your Mac laptop? If so, you might want to watch a DVD or a video file on it while you continue to work on your main monitor. With the click of a checkbox, you can keep the video playing full screen while you use other applications.
In the DVD Player application preferences, check “Remain in full screen when DVD Player is inactive”:
In the QuickTime Player 7 application preferences, click “Remain in full screen when player is inactive”:
It’s a little tricker to set up the same configuration in iTunes, but you can play many iTunes videos (including television shows and movies purchased from the iTunes store – but not rentals) in QuickTime Player. Right-click a movie in iTunes and select “Show in Finder” to locate the file.
Posted on Saturday, March 6th, 2010.
Comment Improvements
Recent traffic has revealed some kinks in the comment system here. Specifically, line breaks were getting lost, so nicely-formatted replies appeared as dense blocks of text. It turns out that this was a result of the overzealous action of HTML Tidy in the comment spam filter. Those responsible have been sacked. Now you plebeians can use whitespace, too!
You can subscribe to an RSS feed for the comments to a specific post by appending /feed/
to the post URL. Most browsers should detect this option and list it wherever news feeds are normally sold. Void where prohibited.
Posted on Thursday, March 4th, 2010.
More Haiku Reviews
These aren’t really reviews so much as partial summaries (and spoilers).
Fuel Pressure by Dennis Egan (via Variant Frequencies 90)
Fatal asteroid
inspires escape for a few;
justice, undermined.
I view this as a parable about the value of communication and the risks of sabotage. Do you fully understand the actions and intents of those you would oppose, and have you made your meaning clear to those who would oppose you? Sometimes, the aims of rebellion can be achieved through cooperation. And sometimes not.
Naught but Ash by Anne Stringer (via Variant Frequencies 92)
No smell of spilled blood
plants doubts about a hanged man,
death, and those he killed.
Mob rule has no patience for details – and the Devil is in the details.
Got Milk? By John Alfred Taylor (via Pseudopod 160)
In gross communion,
doctor, wife, and world drink;
man’s black milk compels.
Some have asked why men have nipples. Here, the question is what a man should do if he sprouts a third or fourth and it starts to secrete some sinister oily goo. I’m not really sure; seeking medical care seemed like a good idea, but when your condition subverts most sensibilities and exerts dominion over all you know, your options are limited.
What’s realistic about this delightfully perverted dairy tale is that the real fright isn’t the abomination but the actions of the normal people who must confront it.
Chinatown by Greg van Eekhout (via PodCastle Miniature 47)
A thousand-year soup
brings business and greedy fiends;
brothers save the broth.
I love the idea of a soup that’s been kept simmering for generations. Eat some of it and add something to it every day; think of all the experience represented in that concentrated flavor.
Anyway, when the antagonist and his simian aides come to demand the soup, the cafe’s proprietor calls on her many brothers to defend the desired pot. Although they are each introduced with some peculiar power, it is simple smarts that save the day. In this way, the story’s neat delivery of a lesson reminds me of a fable.
Moral: common sense often offers a clever solution.
Wind from a Dying Star by David D. Levine (via Escape Pod 238)
Return home, Old John:
your tribe accompanies you,
in hunger, to Earth.
Here’s a far-future story of spacefaring “humans” who travel back to their place of ancestral origin, enduring hardship in order to provide companionship for their eldest, Old John. Sacrifice and revelations ensue.
What is the balance of material and emotional needs? The characters in Wind from a Dying Star must negotiate physical and social scarcity. As Escape Pod host Steve Eley notes, “the greatest crime in this tribe is to allow anyone to be alone.” Space is big, and it is mostly empty.
The Gambler by Paolo Bacigalupi (via StarShipSofa Aural Delights 121)
Celebrity pap
gives serious news long odds
in blitz media.
Initially I was concerned that this was one of those cyberpunk packets that reads like a gadget blog (you know the type – all hot and bothered about the internet, software licenses, and human interface accessories), but I plowed ahead and found it to be a good – even touching – story.
A gentle Laotian journalist, escaped from an oppressive regime, writes thoughtful environmental articles for a media conglomerate more interested in traffic generated by Russian rap scandals. Chastised, he has an opportunity to cash in on exclusive access to a Laotian starlet. But, annoyed by her complicity in the cycle of trash news, and inspired by his father, a gambler and resistance pamphleteer, he bets on another article about botany.
(Speaking of StarShipSofa, my Hugo post has attracted some discussion. I guess that’s what happens when you write something topical of broader interest than AppleScripts for Yojimbo. Hmm. Anyway, take a look!)
Posted on Sunday, February 28th, 2010.
A Hugo for the StarShipSofa
September 2010 – Be warned: in this post I proudly join those quoted below in exploding past the sense of shame a normal person might feel when begging people to vote for them in a popularity contest! Fear not, science fiction fans – the future’s big enough for all of us. Anyway, hearty congratulations to StarShipSofa and all the other Hugo award winners and nominees. I look forward to reading (or, yes, listening to) those I haven’t already read.
As you might deduce from my recent reviews, I’ve been listening to a lot of podcasts recently. I’ve discovered that the world of genre fiction podcasts is a happening place. These aren’t second-string stories: you can hear current work from good authors. Getting published in audio form on a popular podcast is getting published, period, if many authors’ bibliographies are any indication. Some podcasts, like Escape Pod, are even paying markets (modest though they may be). In short, what started as a way to pass time at the laundromat has blossomed into enthusiasm for the form, despite my occasional difficulty paying attention to the noise in my ears.
One podcast, StarShipSofa, is particularly special. It’s an “Audio Science Fiction Magazine” that features nonfiction articles, interviews, editorials, and other material in addition to the bedrock content of interesting stories. It’s all tied together by host Tony C. Smith, and produced with the help of a team of volunteers. It’s a community effort that keeps you abreast of what’s happening in the SF community.
For that reason, there is a grassroots campaign underway to get the StarShipSofa nominated for a 2010 Hugo Award for Best Fanzine.
Awards are just awards, but the reader-bestowed Hugo Awards really are a pretty big deal. A podcast has never been on the ballot for a Hugo in any category, but a growing number of StarShipSofa contributors and community members argue that the time is nigh to recognize the role shows like the Sofa play in sustaining the genre.
Amy H. Sturgis on the grounds for eligibility:
Technically speaking, electronic publications have always been eligible for the Hugos. The year 2009, however, brought two new and exciting developments for those of us who support new media: first, the audiobook METAtropolis […] was nominated for a Hugo in the Best Dramatic Presentation, Long Form category, a first for a straight-to-audio production; and second, the World Science Fiction Society Business Meeting ratified a constitutional amendment that added the words “or the equivalent in other media” to various Hugo Award category definitions, thereby formally acknowledging what had always been the case de facto, that electronic publications were eligible. [See here for a somewhat stodgier explanation of the pertinent amendment from WSFS representative Vincent Docherty.]
Larry Santoro on podcasts, readerships, and community:
The podcast communities echo the groups that gathered in the 20s and 30s around such figures as H.P. Lovecraft and pals. They are a shadow of the “Futurians,” a group of science fiction fans-cum-writers-cum-agents and editors-cum-publishers who formed the soul of the Golden Age of Science Fiction of the 40s. People such as Isaac Asimov, Damon Knight, Virginia Kidd, Judith Merrill, Frederik Pohl, Donald A. Wollheim, James Blish, Jack Gillespie, Cyril Kornbluth and others were the Futurians. [The rhetoric I deployed in annoyance against certain old-school stories certainly does not apply to the rest of the era!]
Matthew Sanborn Smith on why the good ship and her crew deserve recognition:
One of the greatest programs out there comes together from all over the globe every single week because of nothing but love. And whether you’re a contributor or listener, you’re a part of that. If that’s not a fanzine, there’s no such thing as a fanzine. If the Sofa never wins an award it will still have achieved something unique in all of science fiction history: It will have been our home.
But let’s win an award anyway.
Robyn Bradshaw on the experience of enlisting with the StarShipSofa:
Before getting involved with StarShipSofa, I never read genre magazines or went to cons or anything – I just bought lots and lots of novels that I read quietly in my basement “and washed my hands afterwards” (to misquote Robert Heinlein).
Now I am writing promo blurbs, narrating short stories, doing audio reports, emailing/ blogging/ friending/ tweeting all over the place, and working on the show’s next book project.
Kind of makes you want to get involved. I’m not presently in a position to pony up the nomination dues, but I’m going to keep listening to the StarShipSofa, and perhaps one day I will wander down to the spaceport and ship out.
Posted on Saturday, February 20th, 2010.
XML Parsing in AppleScript
I recently wrote a script that posts bookmarks from Yojimbo to Pinboard. Now that I have a nice system for posting links, I find that I’d like even more integration. For instance, I’d like to be able to keep Yojimbo in sync by downloading any links I post to Pinboard via other interfaces.
The Pinboard/Delicious API provides a variety of methods for retrieving link information, but there isn’t a straightforward way to parse the results in AppleScript. In my posting script, I just search the response for code="done"
. This is sufficient to tell if the add method succeeded, but methods that return more detailed information need more rigorous handling.
Incidentally, AppleScript supports direct interaction with SOAP or XML-RPC web services; see the documentation here. However, the Pinboard API uses a different architecture, REST (sort of).
Essentially, a query is represented as a URL, with parameters, and the XML results are returned by the server like the content of any other web page. (I use do shell script
and curl to make the request and get the raw results; I don’t know if there is a better AppleScript idiom for general HTTP transactions. URL Access Scripting is dusty and requires writing temporary files.) The task is to extract the relevant bookmark information from the response.
As it turns out, the System Events scripting dictionary includes an XML suite, pictured above. Some experiments based on the examples given in this discussion at MacScripter confirm that it can be used to parse data returned by the Pinboard API. So, all the pieces necessary to implement a more sophisticated AppleScript bookmark syncing system are available.
Posted on Saturday, February 20th, 2010.
LEGO Remix
I’ve started a Flickr group called LEGO Remix. It is dedicated to the fine art of the alternate model – something original created with the pieces from an official LEGO set. You have to be frugal and creative with your parts usage to make a good alternate model. It’s my favorite building challenge. The LEGO Remix group is intended to encourage this aspect of the hobby.
(The icon is supposed to be a DJ. He’s… remixing some beats.)
Posted on Tuesday, February 16th, 2010.