a glob of nerdishness

February 25, 2012

A new old bloggishness

written by natevw @ 10:22 pm

After years of threats and murmurs I’ve finally replaced this here thing with a new version of itself. It has a simpler engine, and an updated look, and a new URL. But it’s still just a glob of nerdishness.

I hope you’ll update your feed subscription to http://n.exts.ch/?format=atom for the most uninterrupted service.

Oh, and if you’re reading this, my sincere thanks for tuning in! Feel free to say “hi” over in the comments; long ago I forgot how to view visitor statistics on this host and have had to write like nobody/everybody’s watching ever since.

February 9, 2012

CHDK-like intervalometer on a Canon 350D (Rebel XT) from Mac OS X

written by natevw @ 10:46 pm

An up-coming new hobby reminded me of the CHDK (Canon Hack Development Kit) project. I realized that my old Canon 350D body was ripe for some experimentation, since (due to a flaky shutter release button) I use it only as a backup to my T1i these days.

As it turns out, my Canon 350D (a.k.a. Rebel XT) digital SLR camera is not supported by CHDK. This means it’s outside of the normal CHDK ecosystem of motion detection, BASIC/Lua scripting and the like.

However, there is a way to hack the 350D to enable a smaller handful of “bonus” features and settings, including an ISO extension to ASA 3200 and an intervalometer mode useful for things like time-lapse photography. I had a few hiccups getting it going — proceed at your own risk! — especially from Mac OS X it seemed, but here’s how I did it:

  1. First, find a small (4GB or less) empty CF card and format it using the camera’s menu — this should give you the FAT16 filesystem needed for the next two steps.
  2. Grab the bootflg2.zip file attached here and copy the “bootflg2.fir” file in it onto your card, preferably via the command line. (NOTE: I had trouble when I just copied it using the Mac OS X Finder, which creates a hidden ._bootflg2.fir metadata file alongside. This extra file seems to confuse the camera in the next step, so make sure you delete this file if it appears via Terminal.)
  3. Now follow the instructions in the ReadMe.txt file included in the bootflg.zip folder for how to trigger the “hacking” of your camera’s built-in firmware so it will load the additional bootable code we’ll be dealing with in the next steps.
  4. Now download and use the MacBoot card preparation tool that fills in for the Windows-only CardTricks step. Make sure to choose the “Make DSLR-bootable” radio button, which (as explained above) is different than the normal CHDK process. You can use the same card as before or a new one(s).
  5. Once you’ve setup each CompactFlash card to enable the bootable custom firmware, you’ll need to actually put a version of on each card you’ll be taking pictures onto while the custom controls are enabled. The latest version of these files I could find was 350D-20101011.zip (via the forums). Basically, put the included “autoexec.bin” file on any cards you’ve made DSLR bootable via the previous step.

There’s some more detail and links in the instructions buried within the banner ad–splattered CHDK Wiki page for the Rebel XT, as well as the best overall summary of how to actually use the custom menu features enabled by the custom code on your CF card about halfway down the page. If you have questions, the best place to get help and find even more details is probably this forum thread.

Not quite plug-and-play but on the bright side, there’s very little fluid dynamics or tax regulations involved. Now when I plug in a compact flash card I’ve made bootable, I get even more control over my exposures than the camera already provides out of the box.

With this hack running, I can also set my camera to just keep taking pictures, say, every 10 seconds — should be great for time lapse and remote photography situations. If I want to disable all the experimental “power user” features, I just turn my camera on with a non-bootable card in the CF slot, and it goes back to its normal featureset.

September 9, 2011

Goals 2: Lost in Zen York

written by natevw @ 5:00 pm

So the question is why?

Obviously, our goals are the why we have other goals.

but what’s The Goal?

I mean, why have the goals in the first place?

To recap: we have goals, and goals whose goal is to make those goals possible, but What’s. The. Goal. ??

To back up a bit: do we have big goals that we attain by setting little goals? Or do we have little goals that we achieve by big goals?

Or both?

I’ve now written “goal” so often, it’s feeling like ghoul and reading like gaol. Which is either a typo, or a British correctional facility.

goal goal goal goal
goal goal
goal goal goal

Or only one?


Zen and the art of zen writing…maintenance.)

We may disagree on The Goal. Even though neither of us probably’s actually really figured out — learned? — what it is yet, even.

(Do they really still spell jeeaol that way, in the English translation of English?)

At least I haven’t, which is probably why I’m a bit dogmatic.

(fully figured out the goal)

To be continued.

p.s. — it’s not Learning.

June 26, 2011

The Continued Adventures of ShutterStem

written by natevw @ 12:33 am

The working motto is that ShutterStem is “trying to make taking photos fun again”.

And it’s this nebulous dream, and that’s okay for now.

Some moonbeams for holdy paws:

  • so iCloud is a relief. I doubt they even sync metadata, but at least Apple finally woke up and realized that they needed to do something about the iMac sitting at home not being useful most of the time.
  • sync was gonna be the killer feature that made the world beat a path to ShutterStem’s door, but giving everyone a private server without needing everyone to be a devops ninjas and/or having to make hardware etc. etc. is a Hard Problem even with a CouchDBs at ones’ disposal.
  • so it’s nice that iApple have tackled the low-hanging fruit and the 90% may soon have something practical, useful, and just works, while still meanwhile I “trying”
  • what is an ShutterStem? then?
  • the medium-term goal is just a collection of tools that shows off why I heart CouchDB and how it can help a small niche of photographers who insist on doing some things the hard way (=my dad and me and you if you want) get things done a little more easily and better…ly
  • so you’re rewriting stuff again and this will never be finished?
  • probably? look. this is not just an audacious dream of a platform for photos, but it is also a platform for a bunch of audacious ideas about how the web should just connect people to extensions of their own selves and to extensions of each other, rather than be the warrantlessly searchable home of all our eggs in one basket. this kinda stuff takes time, filing out all the paperwork through the proper channels and whatnot if you aren’t impressed with ill-fated shortcuts

French Revolution?! Where were we. Oh yeah…

  • photos fun again?

So I’ve had this vague notion that my photography hit some something and then wasn’t fun anymore. That’s really all this little ShutterStem hobby is about…playing with the slightly more “revolutionary” side of some neat technologies to somehow somewhere get back to the days where I were outside taking pictures that were fun to look at again and again. It doesn’t matter that App Stores are evil or any other stupid politics… I just wanna help make some photo app that kinda surprises and delights even in its nichey nerdishness.

So what’s the wall, where maybe should I push for revolution?

I wonder if it’s…if it is related to my capacity for mental inventory? I have a bunch of gadgets…but I know where each one is, and all its accessories. I have piles of books…but I can picture each one on the shelf in my head. I have tons of deadtree and digital documents…but I can generally track down the one I’m looking for. I even know where, within our two-year old’s scattered arsenal of real and supposed toys, the better part of half our kitchen utensils likely lie….

But I might as well be backing up a bazillion blurry photos, because that’s the haystack that one day my brain stopped looking for needles in. And I wonder if that’s when photos stopped being fun?

So besides being OpenDoc, besides being Unhosted, besides being W3C or RFC-worthy or maybe instead of any of all of that, ShutterStem just needs to help me [help anyone] INTERNALIZE THE INVENTORY. Helping as only computers can help. ing.

  • Q. Does that mean I’m starting over with yet another prototype(s) instead of shipping some sort of v1.1?
  • A. Meh.
  • If you’re sticking along for the ride I’d hate to bore you.

November 16, 2010

Fourth generation iPod touch camera focal lengths

written by natevw @ 9:16 pm

Late one night soon after I bought my fourth generation iPod touch, I did some sloppy measurements to try figure out the 35mm equivalent focal length of each of its two cameras. Here is a sloppy summary of my findings.

View from the iPod

The display on my MacBook is 11 5/16 inches wide (287.3375 mm). It fills the back (”720p”) camera width at a distance of 14 3/16 inches (360.3625 mm). It fills the front (”FaceTime”) camera width at distance of 11 inches (279.4 mm).

iPod focal length setup

Using some basic trigonometry:

a = 2 arctan (d/2f) # a = angle, d = dimension (my "width"), f = focal length, or, subject distance

…we can find each camera lens’s angle of view:

2*Math.atan2(287.3375, 2*360.3625) = 0.7587331199535923 radians (43.47 degrees)
2*Math.atan2(287.3375, 2* 279.4) = 0.9498931263447237 radians (54.42 degrees)

Standard 135 film is 35mm wide, and it is on this format I wanted to figure out the iPod lens equivalent. I massaged the angle of view calculation into a form that could yield a focal length based on an angle:

tan(a/2) = d/2/f

For 35mm equivalent, I plugged in 35 for d (”dimension”, my “width”) and solved for focal length as a function of angle:

tan(a/2) = 17.5/f
f = 17.5/tan(a/2)

So, the front (”720p”) camera has a focal length equivalent to a 44.9mm lens on a 35mm film camera body (or a 27.44mm lens on an APS-C body). The back “FaceTime” camera is wider, equivalent to a 34.0mm lens on a 35mm film body (or a 21.25mm lens on an APS-C body)

Then I looked at the EXIF metadata to see what it says about the camera. For the 720p camera, the metadata records a focal length of 3.9mm. If my 35mm equivalent focal length calculations are correct, this means a crop factor of 11.26 and thus a 3.11mm sensor width.

Now for the FaceTime camera, the EXIF metadata records a focal length of 3.9mm. Again? So allegedly this would be a 8.72 crop factor and 4.02mm sensor size. However, this camera is lower resolution (640×480 versus 960×720) and I have a hard time believing that it is a larger sensor. (If it were, the per-pixel area would be significantly larger and I’d expect much better quality and low light performance than the back camera.) I suspect the focal length metadata is (or at least was when I first looked…I should check again on the latest iOS) simply wrong for pictures taken with the FaceTime camera.

January 22, 2010


written by natevw @ 8:33 pm

It’s been a busy week!

The biggest event was announcing the departure of my friend and Calf Trail co-founder Hjon from the company. It’s been in the works for a while, but this week we officially transferred the iPhone half of our work over to Hjon’s new LLC: Pseudorandom Software. (If you use FogBugz, be sure to check out his great Inbugz app. Despite keeping busy with other jobs, he’s got some useful new features in the works.)

The other big announcement was Sesamouse, a free utility to send real gestures and touches from the Magic Mouse. Translation into dev-speak: Sesamouse gives legitimate applications access to the Magic Mouse’s otherwise-crippled multitouch hardware features. It contains the private/undocumented API gunk within its own process, interpreting gestures and sending the system its results. Applications that use the publicly supported NSEvent and NSTouch APIs then work with the Magic Mouse automatically. Accomplishing this involved many hours staring at hex dumps and learning to read assembly, with a helpful boost of UTSL. Quite a fun challenge!

In the midst of all this, I also made some great strides on another iPhoto-related app this week. It currently lacks the finishing touches, but my wife and I already have fun testing it. Plans call for a beta release next week.

I’m hoping to give Calf Trail’s lineup of Mac products a big boost during the early part of this year. That way, even if sales don’t pick up, I’ll have some good stuff sitting out there while I’m busy finding paid work. I’ve been thinking a lot about the last two years’ investments…but that’s a topic for another post.

January 12, 2008

Bookmarking with del.icio.us: Now I’m a believer.

written by natevw @ 6:08 pm

I’m almost embarrassed to admit it, but I just registered at del.icio.us, the socially/taggy bookmarking site. Why it took so long, I don’t know. Years ago I heard about it but wrote it off as some fad. Why would I want all my bookmarks online anyway?

Since then I’ve switched operating systems (which to my mind happened in the distant past!) and switched browsers and gotten my first modern laptop. I’ve also begun to realize what information overload means, but still don’t want to lose recollection of great sites that might have taken a bit of serendipity to notice in all the noise.

I had already given up using the built in browser bookmark folders. (I do use the bookmarks *toolbar* for more frequent destinations.) I’ve got no idea how to categorize something as chaotic as my web surfing in the first place, and any method I pick just gets so messy. The static nature means that things stay in place long past relevancy, and I’m bad at knowing when that time has come. Now that I’m using both a laptop and a desktop they would never be on the right machine anyway. Not to mention the quandary that came about when I started this blog: “Do I have anything worthwhile to say about this link, or must I keep it to myself?”

Del.icio.us seems to tackle all those problems. When I bookmark a link, I’m also sharing it. By nature of their centralization, I can access them from any machine I’m on. (As a friend pointed out, “the cloud” is a great place for bookmarks since you need web access to use them anyway.) Like a blog, there is a timeline element so that recent bookmarks are up top while older ones can fade away. To top it off, the semi-habitual yet often-random nature of web safari trophies is an excellent application for tagging.

I hope to eventually make this blog format less disgusting. When I find the time to take the ugly out, integrate with the rest of the site and organize to suit my personality — someday, someday — I hope to include this new discovery into the mix. Until then, feel free to follow my bookmarks as I settle in to a new groove.

December 21, 2007

I quit.

written by natevw @ 11:11 am

Yesterday was my last day at my old job. It’s a decision I had been considering for a while now, and one that’s been settled in my head since the end of August. I still wonder, though, how I’ll remember this week looking back.

Over the past year, I came to realise that writing in-house software, regardless of the problem domain, was never going to stimulate my AD/HD-addled brain in a wholly satisfying way. That wasn’t reason enough to quit, though. I had a great boss, comfortable enough pay, camaraderie with some interesting co-workers, and the work still offered good challenges often enough to make it worth doing. Not all was rosy (my job description was in transition from “independent contractor working from home” to “employee commuting to an office building almost an hour away”) but life was good.

In short, the job had its upsides and downsides, like most of life. I didn’t really quit my job because the downsides outweighed the upsides, though there were plenty of days when that’s how I felt. I quit my job because of its opportunity cost. I’ve been wanting to start my own company ever since I was a twelve-year-old, craving augmented buying power but thwarted by those feckless child labor laws. I think my motivations have matured a little, but the dream never died.

As my interests changed — from computers, to music, to photography, to fleeing the torment they call “higher education”, back to computers — I collected a lot of neat software ideas. But ideas are like opinions: valuable, just not in a way that puts food on the table. (Unless you’re a patent troll…I digress.) Out of all my ideas, only a handful seemed to have much feasibility or market potential, and out of those, only one has consistently held my interest.

Since I first latched onto it in the Fall of 2004, I’ve watched the idea slowly move towards mainstream while I tried to do schoolwork and while I drove to my quasi-cubicle. I tried to fit it in as a hobby, but never got the momentum to bite off any sizeable side-project in my “spare time”. Trying to pursue two nearly-overlapping software lives was distractingly complicated. Now my mission is simple: Create the best software for organising photos geographically. Ever.

August 8, 2007

iWork misused by PHB

written by natevw @ 6:45 pm

Looks like Scott Adams doesn’t think the sleek page layout features in Numbers will change much in the business world:

Numbers doesn’t lie

Obviously, the pointy-haired boss wouldn’t be using such a hip computer, but this week’s spreadsheet theme is especially fun after the iWork announcements. (See the original at dilbert.com while it’s still available.)

August 4, 2007

MIDI Tesla coil

written by natevw @ 4:35 pm

A video of a musical tesla coil was on the front page of YouTube today. It’s not the only one; there’s a nice one of the Nintendo Mario game theme with a coil for each part (see also: a guitar for each hand).

To get sparks that long, one needs very high voltage electricity. The primary job of the Tesla coil is to step up (transform) the voltage coming out of the wall enough so that it can come out of the dome. It accomplishes this by taking advantage of resonance, usually at relatively high frequencies. The coil in the first video link above resonates at 41 KHz, which is beyond the range of human hearing. So how, then, does this music thing work? In short, the spark itself is being turned on and off so that the plasmafied air is vibrating in the range of human hearing. (The guitar thing works with practice and a good clamp.)

The tunes are controlled via a standard MIDI interface. While large sparks are cool to begin with, and I’m still entranced with MIDI after many years… I wonder if it would be possible to drive the spark with a more complicated audio signal? I remember hearing polyphonic music from Apple ][’s and ///’s, which also had 1-bit (click-based) speaker controllers.

Next Page »