TrailBlaze: Or, How I Burned My Weekend
Go.
Alright, so I suppose that deserved an explanation. Here’s where I got started: Rachel Adamec asked us to prototype something to help bikers share favorite rides (she owns some crazy mapping software and is generally pretty incredible at finding routes). I immediately thought of the Google Maps API, but I had some serious unresolved questions regarding its SVG/VML capabilities. Nothing answers those irksome little questions like a little experimentation.
As it turns out, the API has really been turning a corner lately from pretty thing to serious, serious application development platform. I don’t refer here to the addition of Mapplets (someone still needs to explain to me why exactly the few examples they’re showing are so wonderful next to what’s already been done), but to the convergence of the already-cool and ever-expanding basic portfolio of drawing, eventing and smart overlays with some really nice beautiful feature sets sitting on top of XML-RPC. Just this weekend I’ve been discovering the awesome that is Geocoding and the new GDirections class that does exactly what I was just thinking Google maps really ought to do: let you trace routes and not lose the result. I bow to their coding zen.
Damn, is this ever an exciting time to be a web developer. At home, crazy mapping stuff. At work, crazy DOM scripting stuff. Everywhere the thought of more craziness to come, be as it may at the price of having to learn web controls all over again when XHTML 2.0 and XForms are released.
About the worst I can say is I now know far too much about the woes of in-browser waveform audio, after being forced to run a full-scale browser detect (*hissssss*) in one of my experiments at work. Oh, and 3 to 5 times a day I’m still stumped by some stupid bug that mysteriously cropped up in whatever I was working on. Kelcy points out I don’t seem to mind as much as I feel I do–I had me quite the concentration binge Sunday.
New CAPTCHA Proposition
Die-hards may recall a previous discussion of the merits of rebuses for CAPTCHA (a CAPTCHA is a completely automated public Turing-test to tell computers and humans apart–e.g. to distinguish blog contributors from spam-bots trying to post ads in the comment section).
In brief, the thing about current-generation CAPTCHAS, which typically involve recognizing visually distorted words embedded in an image generated by the webserver, sort of work now, but optical character recognition algorithms are constantly improving. Neural networks are pretty good at this sort of thing, and there’s no way to prove their task is AI-strong, because all existing metrics for artificial intellegence are just situationally dependent heuristics.
And the thing about alternatives like rebuses, image tagging and KittenAuth (click on the one that’s a kitty!) is they draw on a finite stream of content published by humans, so it’s hard to be certain you could generate enough unique challenge questions for visitors to solve.
So the question is, what’s a source of challenges involving content in some way touched by humans, that will continue to present challenges best solved by a human, at rates scalable to match the resources of spammers?
How about something like “Please examine the following 20 messages and determine which ones are spam.”?
I’m still sorting it out in my head, but it seems to me that spammers have made this a pretty tough challenge for a computer; decent solutions exist (like the Bayesian filters used in e-mail clients) but these are notable for their lack of statelessness. Culled from the inboxes of a diverse group of persons, culled perhaps even from the limited set of spams that evaded the filters and were identified by humans, spam can look (statistically) a lot like legitimate messages outside the context of one person’s inbox. But you know it when you see it: the intent to sell, layered over with innocuous-seeming phrases in vaguely plausible patterns, sprinkled with non-sequitur and laced throughout with overtones of all the horrible things you wish you could do to the anonymous spammer with your choice of an aluminum bat, a tire iron or a wrench.
The really intriguing question for me is, what sort of memetic-evolutionary process might ensue? What’s the organic equivalent to this?
An Exercise in Contrast
This morning I am at my 9-5 job, seated in a cushy chair before a ginormous 1900×1200 screen and burrowing through an odd mix of JavaScript, stylesheets and m-files. Last night I played tetris on a miniscule laptop while discussing future plans over Thai dinner with a few other wide-eyed twenty-somethings. And before that I spent most of the hours of Friday evening, Saturday and Sunday with Kelcy, hunched over our personal laptops in the very classroom where I learned I was not meant to be a math major, cursing and cheering and chowing down on the food graciously made available, and churning out a combined 500+ lines of buggy, ugly pygame code that when run will produce something uncannily similar to the board game Abalone. It was an experience and a half–definitely a positive introduction to OLPC work.
Commercial programming can be plenty fun and interesting, but this was different. Nevermind the awards given out on Sunday, which were more like door prizes than an actual objective of the weekend; nevermind the stress and occasional fits of lunacy brought on by extreme mental exhaustion; consider the possibility of thousands, or hundreds of thousands of children, playing a game that we wrote. That, and the comradeship, and the exhilaration of having learned an entirely new platform (or in Kelcy’s case, a new language) in three days, is the sort of fun and interesting I’m thinking of. It fills one with renewed hope to see that not only are people out there, doing all this wonderful work with open-source technology and trying to save the world; a lucky few even wrangle a living out of it. And many of those are right here in Boston, spreading their infectious zeal for social entrepreneurship.
Now I definitely don’t want to leave town come fall–which is a little bit inconvenient given my current work/school options.
A Few Thoughts on Commercial Coding
Wednesday June 06th 2007, 9:18 am
Filed under:
Yours Truly
I meant to give a little time last night to relating my first impressions of The MathWorks, but wound up wasting what was available on trying to get the wireless up (Kelcy and I are at present feeding off of a single shared ethernet cable with no splitter). I got here a few minutes early, so:
The campus is both bigger than I’d credited it when seen from the highway and much smaller than it seemed on my first day trying to navigate inside. Like my previous job, the campus is a collection of labyrinthine multistory buildings packed with offices and cubicles, and this is but the flagship location. It has an ample but expensive cafeteria and other support facilities. Unlike previous jobs, the office refrigerator is stocked with Sam Adams and Martini & Rossi as well as the usual sodas, juices, and packed lunch odds and ends. The security presence is also here, but it’s quite unobtrusive. The communications tools have a more up-to-date feel: newsgroups, wikis, a custom bug-tracking application. My corner of the building is full of Web 2.0 nuts. Bitchun.