I have an odd fascination with Visual Programming languages, and while I’ve gotten so far as sketching out some UI concepts and object models for a text-processing focused, web-mashing, visual programming environment, I’m a long way from having anything that works. Much to my surprise then when David Ascher dropped a link to the Lily project on his blog today. Holy cow this is sweet. Think PD or Max/MSP written in JavaScript, running in a browser, with modules for popular Web API’s and JavaScript frameworks (ex., “Amazon, Flickr, Wikipedia, Yahoo; UI modules that wrap widgets from YUI, Scriptaculous, JQuery, Google Maps….”)
Check out one of the demo’s here:
(Via: Lily: JavaScript, visual programming, fun.)
For anyone else who needs it, I found a user script (here) that re-enables the metadata on Google Image Search. (The “redesign” of Google Image Search no longer includes the image size, format, and dimensions.) The script requires the Stylish Firefox extension.
(Via: Google Image Search Has a Cleaner Look)
There’s a lesson in there that I’ll leave as an exercise for the reader.
Just the other day I had a friend mention a desire to scrape tour schedules in MySpace so that he can find out when artists he’s interested in are in town. (He eventually decided it was too much hassle and would like someone else to do it, which is why I’m able to mention it here.) It’s a cool idea, though the OnTour Dashboard Widget takes it to perhaps another level.
The Widget monitors tour information in OnTour.net and compares it to the music you have in your iTunes library. The downside being, of course, that you have to hit F12 to get a notification. But otherwise, the interaction model is perfect — meaning that you don’t need to change your behavior at all, yet you gain new value and information. Brilliant.
(Via Lifehacker)
Found another mobile-python hacking gem: The PaperKeyboard project is attempting to use an S60 phone’s camera to recognize character input on a printed, paper keyboard. The project includes proof-of-concept code using Python for S60. The author has opened a discussion on the PyS60 boards.
While we’re on the subject, the Guardian posted an opinion piece yesterday titled “Python: the full monty for mobile applications” which suggests that Python might be just what the mobile market needs to attract hobbyist hackers to mobile phones.
I can’t believe I hadn’t heard of this before today:
“Numbers stations are shortwave radio stations of uncertain origin. They generally broadcast people reading streams of numbers, words, or letters (sometimes using a phonetic alphabet)…” (Via wikipedia.)
I was pleasantly surprised that Google offered an API to Google Calendar, but I’m much more eager to hear whether an API will be available for Google Spreadsheet. The potential there seems huge! The “Hello World’s” could be “Web servers that upload traffic summaries nightly”, or “Screen scrapers that build price-comparison spreadsheets.” This is Grade-A mashup material!
Once you have an API you can also take this thing MUCH further by writing a database driver library or ORM that can map queries to rows and build spreadsheets per-table for your database. Obviously you’re not going to be replacing a large, loaded database with this, but think about swapping out “Google Spreadsheet Storage” for small tasks that you might otherwise use sqlite for. Especially if there’s a driver that integrates right into your web framework. For example, let’s say your new “In Private Beta” web app has a “Sign up to be notified about our launch” form on the front page. Where do you want those email address to go? You probably want it in a spreadsheet anyway, so why not have the web app just post it into a private Google Spreadsheet automagically? Having the web-based spreadsheet UI also means you can review, edit, and export the data in a slick, phpmyadmin-like way!
It’ll take you 20 minutes to get through all of these, but Ray Ozzie’s Live Clipboard Screencasts are worth taking a look at if you’re interested in syndication, microformats, and mashup’s.
(via: Dave’s Wordpress Blog)