March 2008 Archives

And so begins the first in a series of postings where I detail how I can sometimes be a cheap bastard. To start things off I bring your three recent examples:

.Mac Trial account surfing
The GTD software I was using only did sync'ing through .mac and rather than fork over the $100 per year I instead just created a new trial account every three months and copied the single backup file across. I just couldn't stomach giving Apple more of my money to store less than 25KB of my data on their servers. The iPod belt clip I bought when I thought I'd lost mine (but now just sits gathering dust) should more than cover the bandwidth and harddrive storage costs. I no longer trial-surf as my current software doesn't support sync'ing yet.

MAKE Magazine subscription
When MAKE Magazine was just starting out they used to offer a T-shirt with their yearly magazine subscriptions. My mother-in-law got me a subscription for Christmas but neglected to ask for the T-shirt. When I called to renew the subscription a year later and also order a boxed set of MAKE's first year I asked if they could throw in a T-shirt since I didn't get one the first time. The guy on the phone was so dismissive of the idea that I reacted by cancelling my whole order and hanging up. I haven't read MAKE magazine since last November. I miss it. Stupid T-shirt.

Haggle with a poor studentI saw a 20mm Nikon lens being advertised on Craigslist recently and contacted the seller to show my interest. I talked him down from his $410 asking price to $250 even after finding out he was a student selling his camera gear so he could buy textbooks. I still cringe a little thinking about this.

Well, those are mine. Anyone else have examples of their recent cheap-bastardisms?

It seems to me the ideal camera is one which doesn't involve a series of tradeoffs but instead allows one to dictate the photograph they intend to take.

With current cameras, if you want a shallow depth-of-field (DOF), you need to have your aperture wide open. To have your aperture wide open means more light so you need to adjust your shutter speed to compensate. If you shutter speed is already at its maximum (or faster than you would prefer) then you need to adjust your ISO speed to make your film/sensor less sensitive.

If you are less concerned about DOF but would rather freeze those sprinters in their place, then you need to make sure you shutter speed is set fast enough to avoid any motion blur. Once shutter speed is determined, then comes aperture to compensate, then possibly ISO to compensate even further to make sure you have enough light for your shot. It is all about juggling light.

This whole tradeoff process becomes even more pertinent in low-light situations where there is even less light to be juggled. Regardless of what kind of DOF or shutter speed you desire, you will inevitably need to increase your ISO to get the shot your desire (or use a tripod to keep your camera still for that 0.5s exposure -- or, god forbid, use your flash!). One of the serious downsides of an elevated ISO is a graininess in the resultant photo that, for reasons beyond me, has been mirrored in the migration from film to digital sensors. Is there some scientific reason why both both an ultra-sensitive sheet of chemicals and an ultra-sensitive array of electronic light-sensors need display graininess in roughly the same respect? The most recent digital cameras are finally exhibiting less graininess at higher ISOs, but this is a fairly new development and they are crazy expensive.

Rather than dealing with Aperture, Shutter Speed and ISO I would prefer to have just two big dials on my camera simply labeled depth-of-field and motion-blur. Two dials. That's all I need. Graininess can be added as needed in Photoshop later. Don't make me worry about all the dang tradeoffs, instead just let me craft the photo I want and not worry about having to tweak, test and compensate for the light levels and the sensitivity of the sensor I happen to be holding.

If I want a nice highway-overpass shot of long lines of blurred brake-lights and head-lights all in focus, then crank up the motion-blur and crank-open the DOF. If I instead want a super-crisp capture of that water droplet falling against a soft blurred background, then drop the motion-blur right down to nothing and lower that DOF nice and narrow.

I definitely think we're moving toward this type of camera interaction, but we're still a number of years out. Cameras sensitive enough to even allow this ignorance of trade-offs are out of reach to anyone except high-end digital photographers. Ironic, no?

If you are a fan of Flickr and happen to use iGoogle you may want to check out a Flickr Gadget I recently wrote. It looks like this:

The gadget currently offers three tabs/views. You can see either the latest photos from your Flickr contacts (requires specifying your flickr userid in the settings), a sampling from recent 'interesting' photos, or specify keywords to search across all Flickr photos. You can view larger versions of the thumbnails overlaid in the gadget or jump right into Flickr proper.

I enjoyed creating the gadget and would love to hear any feedback or ideas for improvements.

To add the gadget to your iGoogle page just click the screenshot above or install with this button:

Having one's email address appear plaintext on a website is something most people try and avoid. Spammer's actively harvest email addresses from the public web and very few want their address on yet another spam list. In situations where it is unavoidable, people often use techniques like spelling out their address (Eg. user AT example DOT com) or adding in extra text (Eg. user_NOSPAM@example.com) or a variety of other approaches. Unfortunately these are easily detectable and extractable with some simple regular expressions and don't do much more than maybe prevent copy-and-paste of your address for legitimate users and maybe force spammers to add another regular expression to their script.

Some quick searches with Google shows how common these approaches are and also how easy it is to detect suchpatterns.

A slightly better approach, although not always feasible depending on the input restrictions, is to use JavaScript to write out the address. Something simple like:
<script>
document.write("us");
document.write("er@ex");
document.write("ample");
document.write(".com");
</script>

If a spammer were to process each scanned webpage with a JavaScript engine before extracting the addresses then the above wouldn't work, but the overhead (technically and CPU) is such that I don't see this happening anytime soon.

A quick post to try out the new Google Translation API. This API allows web developers to do dynamic text translation from within a webpage. Specify some text, set the language to translate from/to and then display the text that Google returns. Let's see if it works on this very appropriate Richard Feynman quote. You can also check out the Official Google blog post announcing the API. Note this won't likely work if you are reading this within a feed reader.

English

There is a computer disease that anybody who works with computers knows about. It's a very serious disease and it interferes completely with the work. The trouble with computers is that you 'play' with them!

While digging through my blog archives to see how bad the linkrot has gotten I came across a link that is worth revisiting. I first blogged about The Homeless Guy back in 2003 and I'm happy to see that he is apparently still posting almost daily. He is an engaging writer and offers a perspective that I personally don't have much experience with. His recent post about getting to stay a night in a cheap hotel points out to me just how much I take for granted each and every day. From warmth, to sleep, to privacy. Eye opening. Adding his blog to my reader list.

I subscribe to over 150 blogs and until a few months ago I had them categorized by subject and context. I had a 'work' set, a 'play' set, a 'tech' set etc. With so many feeds and such a crude organization it often meant I would get overwhelmed with input and eventually click 'Mark All As Read' every few days. Although this removes the glut, it also removes items I would have liked to have read if I could have found them.

Back in 2007 Jason Kottke and Matt Wood had posts describing their own feed reading organization and I've since adopted something similar and it has made all the difference. The idea is to organize feeds by how you read them instead of the subject of the blog. Here is my current set of folders:

MustRead - Friends, family and blogs where I never want to miss a post. Around 5 - 30 posts a day. I check for unread items multiple times a day.

DangGood - Blogs I love to read but if I fall behind a few days it is no big deal. Around 20 - 100 posts a day. I check for unread items around once a day.

RiffRaff - Blogs I like but if I never read them that is ok. This set includes high-volume blogs and there are currently thousands of unread items in this folder. I typically end up reading this group in desperate moments of boredom or long plane trips (yay for Google Reader offline mode).

Perhaps - Only a handful of blogs in this folder. A staging area where the blog is new and I'm not sure where it should be categorized yet. I could likely merge OnTheFence and Perhaps, but the separation is somewhat useful.

OnTheFence - Only a handful of blogs in this folder. Blogs that I'm considering removing get moved here. If my interest doesn't increase, they get removed.

Since adopting this posting structure my feed reading efficiency has increased drastically. No more is the feeling that I am missing posts that are hidden in the pile. It allows me to keep on top of the people I really like to read, and it means I always have ample reading material for down-time and plane trips.

I've had the SONOS music system (3 zoneplayers, 1 controller) for almost 2 years and am still extremely happy with it. It has replaced our radio and stereo and has resulted in us listening to way more music that we had previously. From CBC during the week to Car Talk and This American Life on the weekends to lullabies piped to the bedroom when Orion is going to sleep, it totally meets our audio needs.

That being said, there is definitely still room for improvement. Here is a short list off the top of my head of what I'd like to see in future revisions:

Locate Lost Controller
The controller is wireless and, like my cordless phone, I move it around the house and often lose track of it. I would love to see an option (perhaps just in the downloaded software) that triggered the controller to beep so I could find it. I know it can beep since it does so when I first wake it up.

Podcasts
Let me easily listen to podcast feeds via my SONOS. SONOS can already stream internet radio and remote MP3s as well as perform tasks on a schedule... it seems an easy addition to throw in some feed parsing to the mix. As a bonus I'd like to auto-download the podcast audio files, but I'd settle for simple streaming right now.

Controller Audio Input Jack
The most common external source of audio I use is an iPod/iPhone. Either my own or when someone visits. I currently have an extended RCA-to-headphone cord snaked across the top of my cupboards and then hanging down in the corner. When I want to send audio to the SONOS I am bound to this one spot. Although the controller isn't likely powerful enough to handle the audio processing, I'd love to be able to connect my iPod to the controller and have the data available to any ZonePlayer.

Stream to ZonePlayer
I've often been watching a movie on my laptop and thought it would be great to hear the audio through the SONOS. It seems my computer should be capable of packaging the audio and sending it directly to a ZonePlayer on the same network but unfortunately this isn't allowed. Instead I need to manually connect a cord from the laptop audio-out to the SONOS audio-in. Bleh.

Computer as ZonePlayer
Each time I run the software-based controller software, I find it strange that this software that works just like an audio-player never sends any audio to the computer I am running it on. I would love if there was some way of making my desktop computer a software-based ZonePlayer and then I could do away with iTunes altogether. SONOS would be my only interface to my music regardless of where I am.

Better Error Reporting
The SONOS does its best to hide all implementation details from you. Like a Mac, this is great until something goes wrong. I've had intermittent problems with one of my ZonePlayers freezing and disappearing from the network and so far I have found no way of querying the ZonePlayer to see what is wrong. Is it an IP conflict? Bad RAM? Corrupt MP3 or data stream? Some sort of a syslog dump would be so useful.

The developers at SONOS made some great improvements between v1.0 and v2.0 of their core software. Hopefully I'll see some of the above in v3.0.