Amazon S3 - a large, far away, widely distributed gadget
Amazon S3 counts as a gadget, right? :-) I’ve been using it professionally for a while, and of course many of the services we take for granted until
us-east-1 goes down use it too. Turns out that you can hook it in to a homebrew website without very much work…
The other day I traced a period of terrible performance (8s network latency getting out of the house) to a visit from
Googlebot-Video/1.0 fetching an old
AVI file from a post-hoc image stabilization project (now made mostly redundant by youtube’s builtin stabilization feature.) The file was about 50M, and anyone interested in the project really wants the less-compressed original, shoving it to youtube really doesn’t help… but it turns out that that’s tiny by Amazon S3 standards, and the free tier covers it just fine.
There were a surprisingly small set of steps; I’m posting them here with the actual domains involved, since they’re visible and public anyway, you just need to convert them to your own needs…
- Create yourself an AWS account. (You already shop at amazon, right? Just log in and create one…)
- “Better get a bucket.” Go to the console web page, pick S3, hit “create bucket”. Name it something obvious; in my case,
avi.thok.orgalthough something more generic like
s3.thok.orgwould have been a common choice. Do this first, because the bucket namespace is global and isn’t checked against DNS registration at all, so there’s a very faint chance someone already has a bucket of that name; at this stage, if you find a collision you can just pick a different name, like
git clonethe github version and run it from the checkout - the one in ubuntu doesn’t actually handle puts with redirects.)
- Configure it:
s3cmd --configureand get the Access and Secret keys from the console under “security”; don’t bother to configure encryption or https because these are files that are already available by http, you don’t want to deal with certificates, and you’ll check the md5sums later.
- Copy your files. Note that s3 doesn’t have directories per se; you just put the path with slashes in place as you go, so
s3cmd put --no-encrypt kicx1440.avi s3://avi.thok.org/me/publish/europython/day2/kicx1440.aviworks just fine, without having to do anything about
- Make them world-readable. By default S3 is, correctly, private;
s3cmd setacl --acl-public s3://avi.thok.org/me/publish/europython/day2/kicx1440.avimakes that single file public. At this point, there’s a long convoluted url that will fetch this file, and you could stop here and just change the html that points to it, but let’s handle this cleanly…
- Configure it:
- Edit your DNS zone and add
avi IN CNAME s3.amazonaws.com.Carlton Bale gets credit for having the first google hit that actually said this would work. Once you’ve pushed this through,
curl -L -v -I http://avi.thok.org/me/publish/europython/day2/kicx1440.aviworks - note carefully, the
-Igets curl to do a
-Hwas already taken?) so you get back headers, not 100m of video. You should see the
Locationheader taking you over to S3, and then a convincing
ETag(md5sum of the file, in this particular case) and
- Edit your apache config and add
RewriteRule ^/(me/.*\.avi)$ http://avi.thok.org/$1 [R,L]To pick this apart:
RewriteRuleis the apache swiss-army-knife of URL mangling.
- The first bit is a regular expression that matches the entire “path” (
$for end) and grabs everything after the leading slash (thus the slash is outside the grouping parentheses.) Within this part of the path, it has to start with
me/and end with
.avibut can have anything at all in between; if we wanted literally all AVI files, we’d drop the
me/part, but I have some small ones elsewhere on the site that I didn’t want to bother hunting down and uploading.
- The second bit is the new URL -
avi.thok.orgto point to the
CNAMEwe set up above,
$1is the first set of parentheses in the match (so,
- Finally, the last bit is what to do with this big of hatchet work;
Rsays to make it a redirect (and because our result starts with
httpit automatically becomes an “external” redirect, in this case a 302, ie. “don’t try to fetch this url, just tell the client to go away and find it themselves.” You can’t get theyah from heah, but you can get there from over there… the
Lis for “last” and just says to stop trying and don’t do any more rewriting on this particular result.
- Don’t forget to actually
/etc/init.d/apache2 reloador however your system spells that. At this point, you can
curl -L -v -I http://www.thok.org/me/publish/europython/day2/kicx1440.avi(note that we’re actually starting with the primary domain here, where the original problem started) and follow our
HTTP/1.1 302 Foundand then amazon’s
HTTP/1.1 307 Temporary Redirectand the bandwidth problem (remember the bandwidth problem? This song’s about a bandwidth problem) is now gone.
[R=307]and make the first hop a Temporary Redirect as well. Not sure if that’s correct, yet, but given that this all started with a search engine bot that wasn’t aware of the human-readable “slow (home)” and “fast (MIT)” alternate links, it’s worth looking into.
thok.orgwere more of a CMS, automatically noticing avi files and pushing them to amazon would be a good transparent trick. For a total of five files on a home website? Not actually worth the trouble, even if the logs say I have at least a month before the bot comes around again :-)
- actually process the logs by object size and see if anything else should get this treatment; in practice, these files got noticed so they’re the right starting point, and this isn’t anything you’d mistake for a major site.
“Chromebook Air” and a trip to Santa Clara
Put my mobility and gadget obsessions to the test by going to Pycon 2013 in Santa Clara. Didn’t take the X220t Thinkpad, just grabbed a Samsung Chromebook a couple of days before leaving (and installed crouton on it.) Crouton gives me a
chrooted Ubuntu Precise environment, into which I poured my normal desktop coding and photography workflow. I added a 32G SD card with a couple of months of photography and my latest master index, which let me process pictures as I went; the one other useful addition to my pocket pouch was a dual-end mini-micro USB cable because most of my cameras are Canon, and so I still need Mini-USB when everything else is MicroUSB. I also happen to prefer short cables for reducing pocket clutter… but made up for it by carrying a 2ft A-A cable in the bag with the camera chargers.
The other trick was to remind myself that I was, after all, going to Silicon Valley, where they already have all the gadgets, and though “I can’t Amazon-Prime things to my hotel” is a very
#firstworld definition of “roughing it”, clearly making several visits to Fry’s Electronics would be just as good… and in fact, when I “accidentally” took a thousand pictures my first day in town (at Point Reyes) the next thing I picked up was a 64G SD card to upgrade my local picture backup… and a knife to open the package with :-)
I did prepare the Chromebook before leaving, with an old Apple sticker; rather than causing comment, I think it served more as camouflage, at least at a distant glance. On closer inspection, of course, the $250 Chromebook is relatively flimsy (hold it up by a corner and the touchpad isn’t clickable anymore, for example) and the screen is very much not IPS (let alone Retina) which isn’t really a problem in conference and hotel settings, but was kind of unpleasant on the flight. Interestingly, I didn’t need to plug in power the entire length of the BOS to SFO flight, nor the return, even with (Gogo) wifi turned on the whole time.
That brings up “why
crouton, instead of just installing ubuntu?” - first of all, I do like the idea of a limited self-sysadmining laptop, and have made on-and-off use of the CR-48 since they shipped, though I haven’t been able to make the leap to programming on it (I did try koding, and it’s just Not Emacs) and second, I hadn’t figured out how the “12 free Gogo coupons” was implemented, and figured it was easier to just use the ChromeOS-side browser for that. Just a little thing, but
crouton worked well enough that it didn’t really get in my way.
Another nice thing about the Chromebook was that I didn’t especially worry about it; if it got damaged, the SD card would probably be fine, and I could probably just hit BestBuy and grab another one :-) There are a lot of workplaces (not mine, sadly) where being able to salvage a business trip by expensing a laptop that costs less than two nights in a hotel room could be a huge win.
I even picked up a cheap HDMI cable at Fry’s - having not noticed that the conference hotel TVs were (coincidentally Samsung branded) analog panels, with VGA inputs, no digital ones. (The “vacation” part of the trip did have HDMI-capable TVs in the hotel rooms, but part of sucessfully shooting 4000 pictures in a week was getting out and shooting and using the laptop for backup and picking out highlights, and deciding to leave serious tagging and uploading until I got home when I had time to do research and identification (after all, there were a couple of inches of snow on the ground when I got home; California was beautiful, New England hasn’t actually managed spring yet.)
Other trip gadgets: I had a rental car, so I got a small, cheap, and hard-to-recommend allegedly-2.1amp 12V-to-USB adapter that couldn’t keep my Gnote at equilibrium, let alone charge it, while using it as a navigation system. Still looking for a sane answer there. More helpful was the 12V camera-battery charger with little clip adapters for each different battery type, that let me top up the camera I’d used most on a given day; while it was a nice and performant gadget, I would have been better off actually being disciplined and keeping a charged backup battery for each camera every night. (Since it’s 12V and 120V, it might be sensible to bring only that charger next time, for the slight benefit over the multiple 120V chargers I’d otherwise carry, though on closer inspection, one of those was also 12V capable already.)
Finally, the trip was to go to Pycon 2013, so I brought back more linux boxes than I went with :-) So far the only interesting thing I’ve done with the RasPi is to hook it up to a tiny keyboard and project my trip-report slides at work. The idea that you can reasonably “rummage around on your desk to find a linux box” the way you used to rummage around looking for a spare ethernet cable is highly entertaining :-)
Programming an Open Source Flashlight
After a year and a half, the HexBright Kickstarter actually delivered. Personally I think it was entirely worth the wait - the developer is clearly kind of obsessive and it’s wonderful the way the internet supports (and/or exploits :-) that. Mechanically, it is very impressive, I’ve been carrying it for a couple of weeks - it’s definitely my large flashlight of choice though I’m still wearing my Fenix E11 as well.
I’ve only done moderately well at using the stream of technology that KickStarter has supplied me, so it was notable that I was able to get “up and coding” for the HexBright in a couple of hours… On an ubuntu box,
$ apt-get install arduino $ git clone https://github.com/dhiltonp/hexbright.git $ less hexbright/README.md
and follow the instructions. (Note that if you’re on
precise rather than
quantal or later, you want to grab the
precise-backports version of
arduino-core - 1.0.1 is the lowest tested version, though there are some patches that sort of work with 1.0, at least they work well enough to build and upload
tactical.ino, a basic brightness-and-flashing firmware.)
tactical firmware is a good starting point; the main loop is only around 35 lines of code, and if you just want to do custom flashing patterns (sliding rate changes, or morse code or something) you’ve got the right starting points at hand. I just made the pulse rate drop by 10ms every 1/2s which is obnoxious to look at but does visibly do something :-)
My next step is to drop the
arduino GUI and just use
avrdude directly (since that’s all the GUI does anyway.) There’s an
arduino-mk package that I suspect will help with that. As someone who worked at Cygnus on G++ as an embedded systems cross-compiler in the mid 90’s, though, I’m a little boggled that I’m using a standard prepackaged 32 bit compiler to upload code into my flashlight :-)
Another mobility path (Asus Transformer TF300T)
Woot had the Asus Transformer TF300T on sale cheap recently, and I’d always been enamored of the form factor - I’d played around with Android/x86 on the EEEpc briefly, even without a touch screen, and I’m certainly one of the people stalling on getting a MacBook Air because it really should have a screen which is a detachable (retina) iPad :-) Likewise the Motorola Atrix was pretty tempting when it first came out (I got to poke at one and conclude that it wasn’t quite there yet but was a good direction, it certainly wasn’t enough to switch me over to AT&T at the time.) The TF300T is an interesting pile of neat features:
- runs Jelly Bean (shipped with ICS, over-the-net upgrade immediately on unboxing; slight chance that this implies a possible upgrade to the next Android too…)
- decent mac-ish keyboard that solidly latches on - the assembled Transformer really does feel like a laptop
- extra battery in the keyboard
- SD slot and USB port (meets my “can use to caption pics from the dSLR” target)
It has a touchpad, which is a negative as I’ve pointed out before - but there’s a top-row key to turn it off entirely, so it doesn’t end up bothering me (and yet I can turn it back if I must have it… or I can just touch the screen which I keep forgetting :-)
Oddly the Jelly Bean upgrade was more trouble than benefit: my two primary “content production” (as opposed to consuming/surfing) apps, Flickr and Tumblr, report themselves as “not compatible with your device.” I’m actually writing this on the TF300T, using the website and Chrome - but I’m at home with solid network, and making use of tumblr’s “save as draft” feature - and I’m still worrying about not actually having persistence or auto-save. (Still going through the exercise, of course; writing speed is certainly 100% anyway, the keyboard is Just Fine as long as I don’t think about it too much :-) (Update: The Tumblr app now has tablet support, though it’s still inconsistent about rotation.)
Having carried the Transformer for another week, I’ve taken a few more steps:
- installed a 32G microSD card (in the “tablet”, there’s an empty SD slot in the “keyboard” too)
rsync for androidand some scripting to keep the last 90 days of photography on the card (mostly to be able to show it off from the tablet, but that may become more)
- picked up the relevant “micro HDMI” cable, I’m typing this in front of a Toshiba 21.5” LCD (another Woot! - $99, great price for another monitor “just to have around”, usually I use it on VGA with an old thinkpad, but it works pretty well with this - sometimes a little glitchy in “scale” mode, no problems at all in “crop” mode which just drops the bottom-of-screen Jelly Bean control bar.)
- also picked up the SD and USB adaptors that plug in to the tablet itself - they’re redundant with using the keyboard slab, but seemed like they might be convenient and would be easier to get ahold of now rather than down the road.
It’s definitely working out as “mobile typewriter” - just slightly less overhead than the GNote+bluetooth approach, at the cost of making one pocket a lot bulkier. Was also useful for getting some quick cat pictures up on Flickr after all, even without the native app - the Web UI uploader is just fine, stick the card into the keyboard (haven’t tried USB-to-camera yet), select the image from
/Removable/SD, add some tags and a description, done. Winter is upon us (no really, just because it was 55F two days in a row, doesn’t mean, umm…) so I won’t be getting as many excuses to go out “in the field” and want to immediately push wildlife shots to Flickr, but I might do a few more for practice anyhow.
Another thing the transformer is letting me experiment with is the whole idea of a “MacBook Air with a removable iPad screen” - the TF300T is a fine prototype of that, and it turns out that
- having the touchpad does help, especially with the button to turn it off
- reaching up and touching UI elements on the screen isn’t that bad after all - as long as it’s a sparse thing, I wouldn’t want to do something screen-UI-intensive that way, but most apps with that property are games anyway :-)
- having the extra battery “mileage” is the real benefit of such a combination
- noone at Google is sitting down and trying to work this way, there are still a bunch of ways in which the UI is a touch UI first and other paths are clunky (though I haven’t found any that are entirely missing.)
I haven’t tried SSH or VNC from here yet; oddly, I’ve kept finding plenty to do that doesn’t need either of them; it’s not that I don’t need to do those things, but if I’m forcing myself to spend time using the transformer, I can use the time well, just a little selectively. (I really need to come up with a decent programming solution - in fact, I should try Koding again, see if it works better from here than from the CR-48 ChromeBook…)
Spark WIFI, MakeyMakey, paper computing
Spark WIFI light fixture looks plausible, if only because the Belkin WEMO already exists at a comparable price point. (The Spark is indoor only, and what I actually want is either an outdoor-socket-capable one, or an indoor light switch replacement, ideally one that can be dropped in as one of a pair of three-way switches, which would actually be tricky…) sponsored, not yet funded
I finally used my Makey Makey - basically a very sensitive closed-circuit detector that comes with a pile of alligator clips, and pretends to be a USB keyboard - the reference standard demo is the banana piano - anyway, I just moved into a new office, and traded up from a well-worn Comfy Chair to a standing desk (with advanced pneumatics, very easy to move up and down.) Stories about standing desks run the gamut from “it changed my life and I need a new wardrobe” to “meh, everyone here just leaves them at the lowest setting and uses chairs”. Clearly I need DATA… and a quick prototype showed I could hang some (zinc-plated) chains from the desktop, clipped to the Makey Makey, and have them trigger a key press whenever the desk was lowered enough for the chains to pool up on the base. That part was easy - the problem is that because it acts as a keyboard, it’ll “hit space” when it gets a connection, but I want to treat it as a distinct channel…
libusb was a messy failure, but in the end, the Python EVDEV bindings and in particular
InputDevice.grab came through, barring one memory leak that I may be able to work around. (Github link to follow soon…)
Finally, the classic “choose your own adventure” book is sort of like following a program, or at least walking a tree - well, in that spirit, there’s a KickStarter for doing Hamlet in that form - and if that weren’t cool enough, the list of “Amazing People Who Are Doing Pictures For This Book” is about 2/3 comic artists that I read, and 1/3 ones that I probably should :-) If you haven’t gone over there to look yet, do it for this quote: “But I’ll warn you: Shakespeare’s choices didn’t lead to the best ending for the characters.”. Paper and e-book versions. (Ok, that “paper computing” bit was kind of a stretch, I just needed an excuse to included it here, it’s Just That Cool.) sponsored, funded, still aiming for stretch goals
Android Phone as PDA/Laptop Replacement
I’ve had a dream for a long time of carrying a useful computing environment on me, without being encumbered by it. The first interesting piece of hardware was the Cambridge Z88 (the TRS-80 Model 100 was plausible, but expensive and pretty large; it was the laptop of its day, and at least a decade after for some niches… but the Z88 was the size of an issue of Byte Magazine and ran for days on some AA batteries, by virtue of tricks like turning the CPU off between keystrokes.) I took it on various trips, fought with uploading and downloading over the serial port… In the end it was difficult to develop for, even harder to develop on, and laptops ended up covering the “real work” niche - eJournal or space age typewriter replacement didn’t catch on that broadly.
They did, however, catch on narrowly, there were fascinating glimpses in the mid to late 90s of how various (particularly UK) science fiction writers actually used science fictional working environments; Charlie Stross had various early mini-laptops, Warren Ellis pioneered the “hang out in the pub and drink and smoke over a PalmPilot and foldout keyboard” model - which became my benchmark for portability, the idea that you could pull two or maybe three pieces of hardware out of your pockets (small enough pieces that people didn’t suspect that you were smuggling or shoplifting) and suddenly be able to Do Real Work without needing an office or other chunk of Corporate (ie. Too Expensive for Individuals) Infrastructure. (I didn’t actually care about being “live”, though even PalmPilots had web browsers; from day 1 it was clear that the Net was as much a source of simulated productivity as actual, and that Real Work involved getting ideas out of the brain and onto “paper”.)
The years rolled by, producing a spectrum of Palms - the Sony ones with built in camera and keyboard marked the end of the 20th century, just in time to get entirely displaced by cell phones. This was actually a horrible time for the PDA space - the entire hardware-in-your-pocket space turned around and started building telephones, which certainly provided value to a much broader range of people - almost literally everyone as we can see today, “not having a cellphone” is just strange in 2012 - but the design effort was now going into antennas and batteries, screens got worse, keyboards got far worse (when T9 looks like a good sophisticated option, you know you’ve gone very far down a strange path.) At the same time, laptops were getting smaller and cheaper, skimming off the less demanding majority of mobile writers, luring them with nice screens and the ability to run modern (not to say good) word processing tools, and all you had to do was carry a backpack, and stay near an outlet. (I’m no exception - being able to run a compiler while hanging out with people was a big deal; in the early 2000’s, being able to fix bugs in the taxi on the way to supporting a sales call for your startup was a huge deal.)
Then Apple changed everything.
Note that I’ve never owned an iPhone (though I have an iPad) - I still have to acknowledge that the iPhone kicked an amazing competitive “arms-race” back in the right direction. All of a sudden, portable devices with long battery life, gigahertz processors, and lots of storage were The Thing, and an entire industry pivoted from trying to interest people in flippier flip-phones to trying to catch up with the idea that you had an awesome computer in your pocket, with a sophisticated development ecosystem (ok, that took longer, but it was inevitable) and oh, by the way, it takes care of making phone calls too, when you’re not using it for everything else in your (online) life.
Very rapidly, my niche was back under the big tent with everybody else and billions in R&D were going my way. Sitting in a coffeeshop and poking at your phone was a mundane thing. Writing and publishing to the internet was suddenly something everybody was doing (and while I’ll sneer at facebook and foursquare updates right along with the rest of my disdainfully elitist peers - it’s still writing and, to the extent that it’s pushed out specifically for others to read, still publishing, and it still needed the tools I wanted.)
I almost missed it.
I’ve kept an eye on the tools and toys, of course. Poked at various ways of hooking keyboards up to phones, played with various design sketches for better ways to connect the hardware (I’ve got pictures of a wood-and-styrofoam mockup that hooks an IBM Model M clicky keyboard up to an original model Oqo - which I used as my “work laptop” for weeks, but entirely failed to be more portable than the Toughbook I’d been using beforehand - the Toughbook actually had a handle and hooks for a shoulder strap right on it) but I never really sat down and did it, I just poked at the gadgets.
Turns out that “poking at gadgets” is almost as much of a distraction from Real Accomplishment as arguing on the internet. I got a hint at this a while back when laser printers first got cheap - I plugged one in to my linux box, and printed, and it just worked. (I did end up tweaking the default from 300dpi to 600dpi… 6 months later even that much wasn’t necessary; I guess I’m not a victim of the ESR curse.) Having done that, I noticed that the documentation said the printer worked on Solaris too, and almost went and tried it to see if it really did - which led a friend of mine to comment “it’s like a cat, with a mouse that’s already dead - you’ve just got to bat it around a little and see if it will start being fun again?”
This also took a while to sink in. Part of the problem is that I’m actually very good at poking at gadgets, and I work in a field where that’s encouraged, or at least tolerated as a sign that you’re the sort of person they need to have around to get the computers to actually be useful. This usefulness leads directly to a decent income, which (combined with decent shopping skills) means no end to the stream of gadgets to poke at (as you’ve seen in this blog already, KickStarter is the biggest distraction I’ve had since Amazon came along.) The end result is that I’ve basically felt no pressure at all to get back to the original goal of “being usefully portable”. At the same time, I’ve gotten relatively picky about working environments; I learned on typewriters so I’ve hated most modern non-IBM keyboards, and I find mice to be a dead end that we just haven’t escaped from, so I turn trackpads off - the Mouse Stick is just minimal enough, it’s nearby when I must use a mouse, and at the same time my hands don’t have to leave the keyboard to use it; this is rather incompatible with the huge level of compromise that goes in to making portable keyboards, let alone pocketable ones.
Thus it is that I’m sitting in front of a Galaxy Note (the I-717 phone, not the larger tablets) looking at a very readable 25 lines of this posting, and typing on a Motorola KZ450 - a bluetooth keyboard with Mouse Stick - that is itself only barely thicker than the phone, yet has enough travel that I’m typing full speed and full accuracy relative to my ThinkPad (with the caveat that typing English is much easier than typing Code, but this keyboard looks up to the challenge.) As far as writing goes, there are no compromises here - I’m not thinking in letters, I’m basically thinking in sentences and while I do expect to go back and edit, the “data entry” part of the path is not a limiting factor. There’s no interruption between intending to write and writing and having the words appear on-screen; I have actual flow going on, and I’ve been writing for an hour and a half without feeling like I’m doing a special exercise or straining or contorting myself - I’m just writing. At my stopping point, I’ll save-as-draft (in the Android Tumblr app I’m using), turn off the keyboard, put the GNote back in my shirt pocket, unfold the stand back into “keyboard cover” configuration and clip it back on to the keyboard - stuff the keyboard into a jacket pocket, have a last sip of tea, and walk away.
(In the interests of full disclosure - this is a test run; I’ve had the keyboard for a week and kept failing to sit down and use it, so I’m at a worktable at home, the tea is a late-night decaf k-cup brew, the network is my local wifi. That said, the test was a complete success; the only “challenges” were figuring out that I needed to hit “back” to get the on-screen keyboard to pop down, and that save-as-draft wasn’t a missing button, it was a setting under options that changes the “publish” button to one that just says “save”. Also I have no idea how to do a word count here, but a quick scroll and sample tells me I’ve gotten around 1500 words down. NaNoWriMo it isn’t - but it is something and I’m going to have to sink my teeth into it for real now…)
Update: I’m at Pycon.CA and although I did bring two laptops and the iPad, they’re back at the hotel - I’m actually attending with only what I have in my pockets. Of course, I’m wearing a ScottEVest (winter model from a couple of years back - the newer models have fewer pockets and lower build quality, unfortunately) so I have a lot in my pockets; during the talks I primarily take notes in S/Memo, using a ThinkPad wacom-stylus, which is basically the electronic equivalent (in size and look) of a Moleskine; I occasionally hop out into Chrome to check out a URL mentioned in a talk, or hop into Plume to broadcast a choice quote on the conference hashtag. Since we just have chairs, and not tables, that’s been about the limit during lectures; I’m skipping the OpenStack lecture (no discredit to the speaker, I went through the slides in advance, and it looks like it isn’t going to cover anything I didn’t pick up in a major cloud service evaluation I did for work a year and a half ago, so it’s a good time to take a break) to hang out at the “bar” which has tables and decent chairs. I have the keyboard set up, and an Energizer “Energi To Go” battery pack boosting the Galaxy Note, and have only had one person stop by to comment on the setup. (I’m not alone in the bar; four people with conventional laptops, and one organizer reading a paperback book.) Overall it has been a pretty effective conference and blogging setup. The weak point in the short term has been photography; simple “tweet this picture” doesn’t work at all, plume uploading to twitter just gives “media too large”, so instead if I want real time pictures I shoot them with the pureview 808, share-to-flickr, wait for the upload to finish, then come back to the Android flickr app, pick that picture and hit share-to-twitter, add the comment and post. This is still kind of silly :-) and fails to support completely casual photo streaming. (I should try just shooting from the flickr app on the Note, but the 808 is a lot more almost-camera-like.)
I’m still pulling all of the cameras back to the laptop and managing the archive with kphotoalbum there. The next big step will probably be to use rsync-for-android (which actually works on ICS, it failed entirely under Gingerbread) to push/pull the most recent year of images onto the phone, and thus use it to synchronize the devices and push them back to my archive; then I can cherry pick things to twitter, and later pull things back to the laptop when I want to do my conventional kphotoalbum-based tag-heavy workflow. The other “next step” is to look into using git-annex to manage the diverse photo pools, but I’m stalling on that until the work from the kickstarter project goes mainstream.
Update 2: hit “edit” in the web interface, and preview shows proper markdown rendering, so re-saved. Will have to try to use the mobile website instead of the app for future writeups, I’m more likely to remember to do tags that way…
Welcome to the future!
Pycon.CA and Upverter
I’m at Pycon.CA this weekend (the first native Canadian python conference, in Toronto.) It’s more about code than gadgets, but I want to call attention to one of the sponsors, “Upverter” - I’d kind of ignored them previously as “some cloud thing” but it turns out that they’re actually rather “gadget-interesting” - they’re basically trying to be web based circuit design, github, and tinkercad combined. Haven’t had a chance to see how complete it is, but they’re definitely putting a lot of effort into it - I would not be surprised if sometime soon we see a kickstarter gadget where the electronics is designed in Upverter and the mechanics in TinkerCAD… The browser has been the universal platform for a while, but I don’t think anyone saw it becoming the Universal *Design* platform, for the construction of real-world devices - perhaps the next generation of Raspberry Pi class of devices will be designed and built in a browser on a Raspi-class machine :-)
TinyDuino and TinyLily The former just smaller than a quarter, the latter just smaller than a dime, yet they have pluggable modules (“shields”) for a variety of features; the “Robotics Kit” pledge level is a couple of TinyLilys with a bunch of motor-drivers (1.8A H-bridge chips on washable circuit boards (pledged, funded, still available)
They’d pair really well with RadioBlocks which are a bit bigger (no handy coins for scale) and do 802.15.4 mesh networking using Open Source firmware, and draws 14mA at full power - so you can run it off of the data pins of another device, as long as one of them is set to “1”. (pledged, funded, less than an hour to go!)
It’s nice to see the modern “legos of computing” actually getting down to the size of lego bricks, and getting cheap too. Not quite at the level of “stick some coin cells, chips, and humidity+sunlight sensors into ping-pong balls and shake a bag of them over your garden” but definitely heading in the right direction, where it’s not completely ludicrous to think about “ubiquitous computing” ideas like that at the hobbyist level…
KickSoftware: bugs, sheet music, soundtracks
BugKick is an AGPL’ed bug tracker (with a hosted option.) Not that we need another bug tracker (especially given my Codes Well With Others ranting) and especially not one written in PHP… but the kickstarter itself is only aiming for a tiny amount of funding to do a couple of months of polish work (and presumably to find out if anyone cares) which would be a novel data point in the kickstarter software funding curves. (not yet funded; not backed)
Liederboard is an HTML5 sheet-music scratchpad with visions of user generated content :-) It made the initial funding target, has delivered some features already, and has a decent tech blog about the progress and goals. Not open source, but an interesting example of reaching a niche audience with a somewhat unique piece of software, and putting it all together and actually funding it. (funded to initial target, long list of stretch goals available; not backed)
Mission: Escape uses the GPS in an iPhone to track your driving, and produce an on-the-fly soundtrack for your commute. That just sounds like a lot of fun :-) (not yet funded, not backed)
The “tricorder” may come sooner via Kickstarter than via the Ansari/Qualcomm tricorder X-prize competition, a variety of well-connected sensors have gotten funding recently. The Public Laboratory Spectrometer is the most recent (still open, until October, but already past 200% funding) project to do optical analysis of materials; what makes it interesting is that it’s taking advantage of the cellphone’s builtin camera - and that they’ve already got a community of crowd-sourced observations and presentation tools, and some very close-to-home measurements (baseline measurements of various coffees at Tosci’s :-) They’ve still got a way to go to connect spectra to actual materials, though they’ve come up with wonderfully clever tricks like using the Mercury lines from ubiquitous CFL bulbs as calibration points. (Backed)
I mentioned the IO Rodeo Educational Colorimeter Kit last week, but forgot to point out that even though they KickStarter is done, the kit is available in their online store along with a bunch of other Science! gear, like optical sensors for measuring the wing-beat rates of flies…
In an entirely different sensing range, we have the Safecast pocket open source radiation sensor - designed by Bunnie and more sensitive than most commonly available devices, with sample logging, USB download, and local display of Alpha/Beta/Gamma events. Designed in response to the Fukushima event, it could also provide interesting data in conjunction with the EPA “Where You Live” program - I happen to live a couple of miles from the Starmet Superfund Site and the more “eyes” watching such things, the better.
Mobile robot platforms using cellphones as the communication link (and local “brain”) are almost mundane at this point - adding simple but sophisticated sensors to them enables a lot of interesting environmental science, with locally developed data…