iVideo: Video capture for iSight

Just came across iVideo on freshmeat. I downloaded it to see what it does, and lo and behold: it captures DV video from my iSight camera!

I just captured a short (9 second) but huge (180MB) video clip, and it looks like it’s a standard DV file (QT Player opened it – I didn’t try importing it into iMovie, but that shouldn’t be a problem).

With this and evoCam, there are a few options for iSight users to record and publish stuff from the camera.

WWDC Is Now Over. Now to implement…

First, a little haiku:

conference is over.
brain is full. too much info.
rush now to write code.

It was a completely amazing conference. King and I have been talking about some stuff that is making my head spin a bit. Seriously, this is going to take some time to sink in.

The next version of the repository is going to kick some major ass. Distributed searches. Natural language queries. Automation out the wazoo. Focussed helper apps to, well, help out…

I’m building my first Cocoa app, trying out the Panther build tools. I’m taking a stab at an ALOHA-like metadata entry application.

While I’m doing that, I’m going to rewrite the theming engine in the new repository to be composed of a set of frameworks that are based on the D2* rule system. And build a little visual rule editor/manager ala the D2* assistants.

Throw in some of the cool Flash ui widgets we just saw at SFMOMA, and this is going to be one sweet platform for sharing resources and community stuff.

Man. This is going to rock. Time to fasten the seatbelts.

WWDC Continued

WWDC continues to rock. Totally like drinking from a firehose… A LOT of info here. King and I just met with some WO folks about some issues we’ve been facing on the next version of CAREO and they were extremely helpful (thanks Andreas, Bill & Scott!!!)

Some interesting sessions this afternoon, then down to Cupertino for the Campus Bash. Should be fun. I’m bringing my camera so I’ll continue to look like the typical tourist.

WWDC2003

We arrived at SFO just fine yesterday. Took the BART from the airport to Powell, and it turns out it was the first day for the airport leg of BART to be open. Celebrations and camera crews everywhere. Weird.

Walked around downtown SF last night. Man. Those hills are one heck of a workout. Climbed to the top of Telegraph Hill, then went to the top of Coitt Tower. Great view, but oy my legs.

Sitting in Moscone West now, getting ready for the Early Bird session on Cocoa programming. Should be interesting.

Oddly enough, the network connection from here is quite slow/intermittent. I get 100% signal strength on Airport, but it seems like we’re all sharing a 56K modem (or, perhaps, a Bluetooth connection to a cell phone?). Hoping the connectivity gets a bit faster. If not, no big deal though.

UPDATE: Just sat down in the session room (to a sweet dual 1.2GHz PowerMac with a freakin’ amazing 23 inch flat panel display…) and the net connection from there is very fast. Looks to be an issue localized to the Airport network.

Simple vs. Advanced Search

Tim Bray just posted some of his experiences in building a web search engine, and how people use simple vs. advanced search.

It’s a good (and short) read. I’ve noticed a similar pattern of usage, although I don’t have any form of statistics to back it up. Looking through the logs in CAREO, hardly anyone uses the advanced search page. I think I’ve only really used it while building/testing it… Simple search does everything I need.

XStreamDB and CAREO

I’ve got XStreamDB up and running, storing over 2000 IMS metadata records, as well as a few DublinCore and RSS files to test out multi-schema queries.

It works like a charm. It’s got full text indices on all metadata stores (I’ve created roots for each schema – analogous to tables in RDBMS land). I’ve added a “Meta” root that will store audit-type info for each metadata document (creator, creation date, permissions, …) and have whipped up a simple XQuery statement that will retrieve all metadata documents associated with a given Meta document (using GUIDs to identify assocations – again, analogous to table joins in RDBMS land).

Once I’ve added the proper value indices on the various XPaths representing the guid, it works. And it’s stunningly fast. Sweet.

Next, I have to work up an EOAdaptor to get simple queries running within WebObjects. And, implement some semantic path mapping (so I can just say “Search for all documents with the term 'earth' in their title” and the EOAdaptor will map that out to “in IMS docs, look in /lom/general/title/langstring/text() for the term 'earth' ...

XQuery is stunningly powerful. I’ve got it returning a proxy document representing search results, with common elements from all schemas I’m testing (title, description, location, format…) Works great.

P.S. XStreamDB uses shell scripts to start both client and server apps. They work fine, but are a hassle (you have to open a shell, cd to the proper location, invoke the script…) Anyway, I wanted to minimize this (I don’t mind doing this once in a while, but it gets tedious after a while), so I wrote a shell script to call the other shell script, and wrapped that in a Platypus app. Now, I have double-clickable applications to launch both client and server. Available to anyone that wants them.

Ubiquitous Computing, Periphery, and Knowledge Management

This link to an article on Micah’s weblog came to me via Bruce Landon’s Weblog for Students. The summary is a nice overview of how peripheral knowledge (i.e., not “core”) helps us to understand our way through the world.

First, the more the periphery is engaged, the smarter we are . No amount of conscious working out can replace the intuitions of the expert. The smartest people are the ones who have built up the thickest periphery, and can apply it quickly to new problems. A fully engaged periphery also goes by the name of “flow state”, familiar to athletes.

Second, we are constantly moving items into and out of the periphery . Millisecond by millisecond what was just periphery becomes center, and then back again. To move perception in and out quickly is a source of great power and comfort.

Third, take the periphery away and we are crippled . Imagine looking at the world through narrow tubes taped to our eyes, blocking peripheral vision: you would stumble, and be constantly surprised, and tire quickly. Digital technology in the PC is like those tubes: it presents a view excessively stripped of periphery.

Now, for me, that gives some perspective on the value of things like “code smells” and intuition – it’s just my periphery kicking in and helping me (subconsciously?) add context to what I’m seeing/doing/reading/… Beefing up your periphery would enable you to access a broader range of contexts – intuition kicks in more often.

The other interesting thing that popped into my head is this: A weblog may be a way for me to manage my peripheral knowledge. Note, I didn’t say share my peripheral knowledge, since I firmly believe that knowledge can’t be shared, but I can use a weblog as an external personal tool to internally manage my own knowledge (core, peripheral, superfluous, ….)

ps. check out the linked article for some great diagrams of the spread of messages, genes, etc…

Working on XStreamDB WebObjects EOAdaptor

I’ve got some time to play with XStreamDB now, so I’m working on the EOAdaptor that King started, trying to flesh out the functionality for use in CAREO/Extreme.

The fun part will be mapping EOQualifiers normally intended for SQL-ish things into invoking XQuery-ish things… It may not be difficult after all, but there is definitely a learning curve in my near future.

It does have a good “code smell” – letting EOF do all the heavy lifting involved with caching, locking, sharing the records, and having the code that invokes the queries be relatively transportable to other technologies (once appropriate adaptors are written).

Once the EOAdaptor is in place, it will be extremely useful for driving all kinds of XML-based applications (the LC website would probably be overhauled to use XML, too, and since we’re talking frameworks and adaptors here, it probably wouldn’t even be a major undertaking)