Friday, March 4, 2011

Tool Building

I've put what is probably an unreasonable amount of time into building my own software tools - not particularly novel tools, necessarily, just glue to create support my own idiosyncratic ways of working.  For example, back in 2003 I had a Sony Clie; as a way of attempting to understand what the big deal about blogging was, I put together a working mobile-photoblog with a .forward file and 50 lines of shell script - I could take a picture from the Clie, add text and a title to an email message which would go to my posting address.  Even had a handful of readers.  About the same time I started turning my README files into blog input (I was already doing plenty of writing, so why change my habits when I could build tools around them?)  This led to some kind of gross ad-hoc parsers for the kind of text-shorthand I used, which at least worked as a way of getting them on the web.

These days, I've come to believe it's worth some amount of effort to use the tools other people come up with, rather than inventing everything from scratch, satisfying though that is.  For example, MarkDown syntax appeared in 2004, is close enough to what I was doing already that simply hand-re-writing my README files into it would be trivial, and gets me away from having spent 7 years on and off tweaking regular expressions to generate what I have now. Of course I can argue that spending that time is why I now know that MarkDown is what I wanted in the first place, and it was a good playground in which to develop skills with various bits of Python... but it's getting in the way more than it is helping, at this point. I've actually got a prototype that takes the RSS of this blog, upgrades it to MarkDown with some extensions, and generates the corresponding page on my own site... eventually this will point there instead, and "gadgets and tech" will go back to being a category and not an entirely separate project.

This isn't the only bit of consolidation I've been doing - I finally have all of my photography in one collection, a single 33M KPhotoAlbum XML file with tags and metadata for over 80 thousand pictures.  There are still a bunch of older captions (from bins, the old perl gallery tool, and from some ad-hoc software of my own) that need to be folded in, but not an enormous number of them.  This has allowed me to dig up a few interesting things from my earliest photographic efforts, so it hasn't just been a filing exercise; it has also been a good way to see the progress in both camera tech and personal skill over a decade.

Pycon 2011 is in Atlanta, GA, next week, and while I hope to do a bunch of coding while I'm there, I don't want to build up quite as much of a backlog of future projects and wishful thinking as I have in the past - while by habit I do seem to be a builder of infrastructure, it's primarly bespoke personal infrastructure, and doesn't really increase my development velocity that much - I want to make things happen.  We'll see if I actually pull that off :-)

Sunday, January 30, 2011

Post-XMAS tools - Toro 1800 Power Curve Snow Thrower

Burned out an (admittedly underpowered) older, smaller electric snow thrower after two years, and replaced it with the newest Toro 1800. It's an amusing bit of "we live in the future" that one can use Amazon Prime to get a snowblower delivered before a predicted snowstorm :-) I've now used it to clean up after 3 major snow storms, totaling an "official" five feet or so, just in the last month.

Nice features of this particular snow thrower:
  • Extension handle so you can repoint the ejector nozzle while still holding the push handle (you can't change the vertical angle that way, just the relative direction, but that's often all you need.) 
  • Lots of power (for an electric) - the one that I burned out would stall out in wet or thick snow, the 1800 is usually only limited by being able to push the unit itself - the only thing I've ever had actually stop the blades was a fair sized chunk of solid ice.
  • Light enough to carry up and down stairs (so I can easily use it off the driveway from the basement garage, then bring it upstairs for the front sidewalk.)
Annoying "features":
  • The grab-bar safety interlock seems to be trying to require two hands; this makes it a little harder to lean and push the unit at the same time, and also fails to leave you a hand free to manage the power cord. 
  • Louder than my earlier unit - still in the "large vacuum cleaner" range, doesn't come anywhere near a gas-engine blower, but it's still louder than cars on a nearby street.
As far as electric snow throwers in general are concerned, I prefer them over gas-engine ones for noise, smell, and vibration, even if they fall short on snow-berm work (I've generally used a shovel to break up the berm and then the snow thrower to disperse the chunks, which works pretty well.)  They're also not necessarily faster than hand-shoveling, especially with a large shovel - but since they don't involve any lifting I am so much less fatigued and strained after the cleanup effort that I don't mind the extra time, and the New England snow storm pattern is usually a day or two of mess followed by at least a day of sunshine to clean up in, or at least it's seemed like that for the last couple of years.

Of course what I actually want is a Robomower-class unit that goes out and starts clearing before the snow has stopped, with a protected (heated?) docking station of some sort, but we're not quite there yet...

Friday, December 24, 2010

Pre-XMAS toys - Sony Liveview, Google CR48

Picked up a Sony Liveview from (will figure out how to link it later.) Would be very cool if it worked reliably, but it seems to have sufficiently low-power bluetooth that a couple of laptops worth of WiFi oppress it thoroughly (and it doesn't even work as a watch face if it hasn't got an initial pairing.) Nice concept, though: OLED screen with few enough pixels that you can plausibly squirt UI "frames" over bluetooth, not at animation speeds, but certainly at basic interaction speeds. The "google maps where-am-I" widget is a simple example of this - the idea of looking at a wristwatch for "where" instead of "when" is a very sci-fi-worthy concept...

Filled out a little survey at google, along with (presumably) a few million other tech geeks, after seeing it mentioned on twitter... much to my surprise, one (of the reported 60,000) CR48 "google chrome laptop" showed up. It's an interesting exercise in reduction and simplicity; I'm still working out how to *code* from it (this will probably involve Mozilla SKywriter and a lot of glue, but they seem to have abandoned the mercurial backend, and I want SVN and/or Git instead anyway, just based on what I want it to be compatible with) but for everyday surfing, blogging, social network interaction, bill paying, shopping, news, speculative writing, it works just fine... and I can see people for whom it would be a great tool. In fact, I'd love to have it as my work laptop - as long as *everybody* got one and they killed off any infrastructure that didn't work with it (there are still a couple of IE-only tools, though I don't personally have to use any of them, and everyone who does use them wishes that they would die.) I think that'll actually be a pretty good model at some point - after all, that's what we were going for *back in 1985* with Project Athena :-)

As far as gadgets go, it's not really that interesting to talk about the cr48 itself; you apparently can't go buy one, and other than the battery it's just a pretty stripped down machine (without feeling like a netbook.) The two startlingly distinct things about it are the time to wake up -- as a linux user, having the system come back, *with working wireless*, in seconds is novel, and has made me willing to spontaneously close it to give more attention to people around me, in ways I don't with my normal laptop -- having no persistent connections helps with that too, but it does feel a little strange. The other bit is the Search key. Instead of caps lock, which is sufficiently pointless that one can reasonably argue that computers should *never* have had one, the same button just opens a new browser tab. That seems simple, even trivial - after all, you can just hit ^T and get the exact same effect - but getting into the habit of smoothly hitting search and typing a sentence or idea and flowing smoothly into a set of results *feels* very powerful. I don't know how powerful, yet, but it's the first browser-specific thing that's ever given me a hint and the kind of power I get from emacs :-)

I'll write more about Chrome on a Laptop as I spend more time with it. There are certainly things it doesn't solve right now (it's almost useless for a digital photographer, and it's not going to run ROS/Kinect any time soon - if nothing else, there's not enough *storage*, ROS is huge) but thinking about the set of things it *does* solve well may lead to insights on what might be better approaches for the things outside of that box...

Saturday, October 2, 2010

Nexus 1 - features I've wanted for *years*

The Nokia 6630 was the first phone I had that could do real networking - it had an HTML browser (not just a WAP one) and Python-for-S60 could talk to phone APIs and the network.  Still, T9 wasn't great for entering URLs, and while it was cool that I could get real web pages, it wasn't really a good surfing platform.  What I wanted at the time (and made various attempts to implement) was to surf on my laptop, find something I wanted to have on the phone for later (google maps link, most commonly, though "something to read later" was also useful.)  On my G1, I actually achieved a crude version of this - from the browser, select the URL, then run a helper that took the cut buffer and made a QR-code out of it, then run the zxing (Zebra Crossing) barcode scanner on the G1 to read it off the laptop screen and open it in the browser (Goggles seems to work for that too but Zebra Crossing is more direct.)  Still a couple of steps; I thought about just pushing links to with a "phone" tag and then having the phone look at those, but that didn't really get me a proper queue.

Finally, running 2.2 on a Nexus 1, there's "Chrome To Phone" - a Chrome extension that lets me just click once, and almost immediately my phone chimes and opens the web page, without me even touching it! That's the workflow I was looking for - although the current Android web browser is actually pretty good for surfing anyway.

Another bit I'd wanted was to be able to use a decent keyboard to blog from the phone.  The Nokia Wireless Keyboard did *work* with the 6630, but it wasn't a particularly nice keyboard (from the perspective of someone who prefers the Type M) and the spacing was a bit small... and the 6630 blogging clients weren't really there (best choice was to aim Nokia Lifelog at livejournal, which I did for a while.)  On the Nexus 1, I'm actually posting this using Blogaway and the Apple Bluetooth Keyboard (whcih isn't a Type M but has good spacing, a lot more travel than it *looks* like it has, and when it comes down to it, I can type very fast and comfortably on it which is what really counts.)  So perhaps I don't need USB host support to talk to real keyboards after all :-)

The final bit that I'm looking for in my mobile communicating toolset is to go from any of my cameras to flickr, with captioning.  So far, FlickrStackr on the iPad (with the same Apple Bluetooth Keyboard, and the Camera Connection Kit) is the option I've used to upload a dozen or so pictures from the field - they bypass my normal workflow, but for highlights or timely shots it works really well.  It's also the first thing that's made the iPhone look tempting :-)  So I'm still on the lookout for ways to go from camera (or at least SDHC card) to Nexus 1, and thence to Flickr.  But I'm quite pleased that the other bits all came together over the years.

Friday, September 10, 2010

Neato XV-11 field test

The Neato XV-11 arrived; after a full charge, it ran around the un-cleaned-up first floor of my house with very little trouble - it had a little trouble climbing some sills between tile and wood floors (which the Roomba just bounced off of, the XV-11 seemed have a more directed set of attacks that eventually worked.) It also found most of the places it could go before coming back for a charge (with a 3/4 full dustbin, though it left some small scraps of paper - not too surprising for suction on hardwood. It also wasn't very effective on birdseed on a doormat, though I'm not sure anything else will be either.)

There were a few areas it seemed to just avoid - I wonder if there are magnetic bits underneath them (nails in beams, perhaps) and it would be nice to have a diagnostic from the unit that actually reported such, maybe by blinking the backlight on the display or something.

It is a bit loud (more broad-spectrum than piercing, though) but the whole point is to let it operate unattended, and after this first pass, I'm much more willing to leave it alone in the clutter than I would be with the Roomba. It's also interesting to see it explicitly shut the "vacuum" off and display "returning to charger" as it quietly heads "home"; it helps make the case that it knows "where it is".

It'll need more observation... and eventually, video of the XV-11 and one of the Roomba's attacking the same floor :-) But for now I'm happy with watching it attempt "real" work that isn't set up to challenge it...

Wednesday, August 25, 2010

Even More Robots (with lasers!)

Looks like the Neato Robotics XV-11 is shipping (review sites are getting their preorder units, Amazon lists it as "2-3 weeks" but is taking normal orders.) This is the first real competitor to the Roomba - while iRobot has been doing an excellent job of evolutionary/incremental improvements to their flagship consumer robot, the only really significant change since it came out in 2002 was automatic docking for charge - I now have one unit that runs in my bedroom every single day, and it handles that quite well with minimal attention - the switch from IR to RF for control didn't really do the end-user any good. The XV-11 appears to be going all the way in an attempt to leapfrog it - actually mapping the space, keeping track of what it's done, appearing to follow a plan - basically behaving like a smart robot, instead of a cleverly-dumb one. (Roomba's random walk is effective in simple spaces, and was a clever bit of engineering optimization back when CPU actually cost something... but I have a large, cluttered, "open plan" space that the Roomba generally gets lost in which will be the XV-11's first challenge.)

Of course, one of the secondary advantages of the Roomba was that it encouraged keeping a space uncluttered - but it'd be nice to have that as a choice, rather than a limitation.

Sunday, August 22, 2010

Emergency Chai Flashbacks

The (long gone) Someday Café in Somerville is noted for having been the reason Chai escaped from Seattle - somewhere I have a Time Magazine blurb about it, we're talking early 90's here. I used to be "that guy" who showed up with a hat and a beat up Tosci's mug (once we determined that it wouldn't melt, they were happy to steam directly in it - yay for having Real People behind the counter :-) Especially in early winter, when Davis Square was entirely composed of slush, I'd use the subway tunnel to cut across the square and back to my office. I still have fond associations of Oregon-style Chai with miserable New England weather :-)

The *reason* these 15 year old images are flashing back to me now is that my local grocery store (Crosby's) stocks K-cups, and I got a K-cup machine as a gift (I'm not sure K-cups are what you want if you *like* coffee, but if you just need a cup some mornings - self-medicating, if you will - so you can rush out the door instead of lingering over a proper cup of tea - the low end machine is a nice thing to have tucked in a corner of your countertop somewhere.) Today I saw that they had Chai Latte cups, and on a whim, I picked up a box.

Much to my surprise, they're *perfect*. Good enough to inspire the flashbacks above (ok, perhaps it helped that I was out shopping in the rain - I'm still in New England after all :-) I really didn't expect that. I mostly figured I'd use this once in a while for have-to-get-up-at-7am-for-a-concall-with-dudes-in-Berlin coffee emergencies; that was how I convinced myself that the ludicrous amount of packaging per serving was acceptable. These Chai cups may change that...