Code4Lib 2007

I’m sitting in a very nice conference venue in Athens, GA. It’s the first conference I’ve been to that has desks for everyone to work on and plenty of power sockets. Imagine what you see at the G8 Summit, or other political meetings.

Keynote today is Karen Schneider, Florida State University, blogging as The Free Range Librarian.

In her presentation, entitled “hurry up please it’s time”, though I didn;t work out why, she declares that the sector is “in a state of emergency” with “sucky” library software, having given its most precious collections away, and having lost sight of its own direction.

She believes this is solvable, of course, and talks about a renaissance period of artisan librarians building the tools to do the job themselves. We see the world the same at Talis, and continue to build up our Developer Network to help with that as well as working to open up our ILS, other ILSs and most importantly the data.

She raises issues that I hope we all already recognise, such as:

users are not going to your catlogue first to find information, it;s somewhere down there with asking your mother… and asking your mother is probably easier… and more accurate

and that

If you can do the same thing for less money why would you not do that? I would say you have a moral obligation to do that, in some cases you have a legal obligation to do that.

Her examples of renaissance software include Evergreen, Umlaut, Scriblio and Solr.

These pieces, and librarian-built software, is important because it does four key things: it starts to restore the power balance [with vendors]; it helps reinstate the direction of what we do; it puts an emphasis back on the library [and the librarian] and it sends a message that we mean business.

These are great points, with which I agree, which is why we’ve been running our own competitions to support and encourage librarian-build innovation.

Finally, it was great to see her handle a phone ringing in the audience with:

I don’t think that’s mine, at least I hope not…

Isn’t it sad that phones aren’t contextual, they have no sense of where you are and when to be quiet…

Like the ultimate toddler.

I always think the way a speaker handles the audience, with phones ringing, questions and so on, is a great way to see who they really are.

More Touch UI Videos

I wrote last week about the increasing visibility of multi-touch UIs, most recently with Apple’s iPhone. This week I’ve found some more to share…

Ksan Lab have a nice demo of Virtual Painter up on YouTube giving a nice view of the natural style of interaction allowed by these devices. The gestures used here are different to those seen in some of the other demos. It (or the demonstrator) seems to favor single-finger use.

Here’s another great demo that combines touch with physical tokens to give a great Conservation Lab demo, it seems to be pitching at a Point of Information styles application.

Then, of course, there’s TouchTable which is much larger than a lot of what we’ve seen and is designed around a shared experience – I can imagine this having huge potential in so many applications from meetings (war rooms) and team gaming either co-operative or not.

But if it’s large that you want then iBar should be up your street. It’s not too clever, having a rather limited display repertoire, but still the size is impressive.

Lemur from JazzMutant is designed specifically as a medi controller, so the dispaly is geared to ui artefacts rather than a desktop, but the different types of interactions are impressive. That’s being shown off here in one mode and here as a sequencer.

Natural Interaction are also showcasing stuff like an interactive table called tabulaTouch, showing tabulaMaps. They stick to a lot fo the more common UI gestures that we’ve been seeing (I must find some names for them). They also have a Minority Report style UI.

Then there’s the Diamond Touch work that allows simultaneous multi-user touch input and looks very slick again – this time working with a fairly standard OS interface. There’s a nice touch when the team “accidentally” spill the coke on the screen. Diamond Touch comes out of MERL, so stands a good chance of hitting the shelves.

But of course there’d be no show without Punch, and I finally found some touch UI work from Microsoft, coming on VIsta Tablets. I could have cried watching Hilton Locke demoing this; the cursor doesn’t stick with your finger! Even doing the demo is broken. Apparently people new to touch input will find it really intuitive ’cause “pretty much everyone uses a two button mouse”. That’s right, they’ve put a finger controlled mouse on screen! That sucks in so many ways I just can’t start.

HD-DVD and Blu-Ray broken

When I said the other day in comment on Steve Jobs Thought On Music that DRM doesn’t work I really meant it doesn’t work.

The “Processing Key” of the AACS (Advanced Access Content System) protection system used on both of the new HD formats has been captured while in memory in clear text.

The Processing Key is part of a sequence of steps, but basically allows you to calculate the Media Key that is then used to play the content.

Let's not talk about instances.

One of the things that interests me is approaches to architecting SaaS, Software as a Service. Recently I’ve been thinking about approaches to multi-tenancy; at a very high, “I wonder what… would do”, kind of level – nothing deep, nothing tested (yet).

My thoughts started with the fact that everything is nested in different levels of containers. Each line of our own code runs within some context that we create within our application code, that in turn runs inside a container, this might be the OS or it may Microsoft .Net, the PHP runtime or a J2EE or Servlet container, which in turn runs inside the OS, which in turn runs inside a machine, which in turn runs inside a data center…

In the beginning we wrote software and put it in boxes, the tenants of our software took it away and installed it somewhere. They had to make their own way and isolation of tenants was only a licensing issue. The tenants were responsible for keeping their own installations separate and we only had to ensure that no-one was deliberately sharing systems and not paying us for it. Oracle are pretty much still in this place – using licensing to making sure no-one uses their software that is. Working out how much someone was using the software was a case of counting their CPUs, or employees, or customers or something like that every year or so.

Many tenants have never really been that happy about having to make their own way though, so a whole group of companies sprang up to offer Facilities Management contracts – multi-tenancy at the data center level. Each tenant still had a whole load of machines dedicated to them, but now they were someone else’s problem. Isolating tenants became a problem for sysadmins and network engineers. Usage was still a case of counting CPUs, you just had to be sure to count the right ones.

With so much kit, mostly idle, it was inevitable we’d see forays into virtualization and this is working well, but still isolation is left at the (virtual) machine level, a problem for sysadmins and networking. Usage can still be at the same level as before but there is also the option of starting to pay for the computing power you use as the hardware can now be shared. Costs can go down as the overall usage of the hardware goes up and managing becomes a case of keeping track of contention ratios, well understood from network access at ISPs.

At this point the application still only needs to work with one tenant at a time, all configuration, logic, logging, tracking, and so on is separated by the virtual machines.

Still, there’s a big overhead to running lots of VMs and you can’t really load-balance and so on, although VMWare are making great leaps in this space with the ability to move running VMs from one machine to another.

Finally we start to get close to what I’d really call SaaS. The shared hosting providers. With these providers we start to have multiple applications running inside a single container, the same instance of the operating system, web server and physical machine. A standard package might be Apache, with a virtual host, PHP, MySql and so on. For your own software running multi-tenant you could run one instance per customer inside the container of your choosing: Apache, Tomcat, WebSphere, ASP.Net or Mono perhaps. At this point the application still only needs to know about one tenant inside each instance. Isolation of tenants is handled by the container, usage can be as well. The payback is that there will be an overhead to pay for having several instances of your application running.

Then finally we have applications that are natively aware of multiple tenants. That is to say the application logic has been written to take account of which tenant they’re working for at every step: authentication, access control, data access, configuration, skinning, logging, usage tracking, prioritization and so on. There is only one instance of the application running  for all tenants. Or rather, multiple instances are running for reasons of scaling, resilience and load-balancing etc rather than to facilitate multi-tenant running.

So what to do? Which container should I let handle the isolation?

Steve Jobs, Apple, Thoughts On Music

Yesterday, Steve Jobs posted an excellent short piece on apple.com talking about the future of music stores, players and DRM. He doesn’t address many of the detailed points about DRM, but talks about how it’s not working. Only 3% of music on the average iPod is DRM protected. Personally I have over 6,000 songs on my machine none of which have any kind of DRM as they were all ripped from CDs that I own; I have no DRM protected music and no “stolen” music.

Steve’s posting focusses right on the nub of the issue – why cripple consumers with the restrictions of DRM (and cripple the industry with the costs of DRM) when it simply doesn’t work.

Why would the big four music companies agree to let Apple and others distribute their music without using DRM systems to protect it? The simplest answer is because DRMs haven’t worked, and may never work, to halt music piracy.

Bruce Schneier explains why it will never really work in his posting on Separating Data Ownership and Device Ownership.

The [DRM] security problem is similar, but you store your valuables in someone else’s safe. Even worse, it’s someone you don’t trust. He doesn’t know the combination, but he controls access to the safe. He can try to break in at his leisure. He can transport the safe anyplace he needs to. He can use whatever tools he wants. In the first case, the safe needs to be secure, but it’s still just a part of your overall home security. In the second case, the safe is the only security device you have.

Steve seems frustrated by the lack of evidence used in this debate. James Boyle over on Google TechTalk: 7 Ways To Ruin A Technological Revolution give some great insights into intellectual law as well as content-ownership culture. He discusses the lack of any kind of empirical debate also.

For a detailed discussion on DRM (written for librarians), the ALA’s Digital Rights Management: A Guide for Librarians is worth the effort.

found via Andrew Hankinson on web4lib where Leo Klein points out that “the Content Owners would prefer bankruptcy to DRM-free content”.

Update: Jonathon Coulton has picked up on this too. I only bother to mention it as he has written some fantastic songs, including Code Monkey.

More Multi-Touch UI

So, the Apple iPhone makes a big deal of its multi-touch gesture interface. I can see why, it’s pretty slick, but there have been larger, desktop scale, demos of this kind of thing around for a while.

A lot of them look like they’re getting close to saleable. TactaDraw, from Tactiva looks amazing, and is a showcase of their TactaPad hardware – they seem to have some industrial design work left to do on the device.

Perceptive Pixel are planning to market “the most advanced multi-touch system in the world” and judging by this excellent video they’re not bragging too much. The product comes out of earlier work.

Reactable, on the other hand uses devices rather than gestures, they have an introductory video, a basic demo and a free improvisation example.

I’m interested in this kind of thing partly for work and partly for play. You can imagine the possibilities of DJing with this stuff. Final Scratch already integrates traditional decks with MP3 DJing and there are other hardware devices too, I own a Behringer BCD2000.

With cheap, modular components it’s inevitable that a plethora of physical devices are around, including real interesting ones like this LED Mixer.

But the multi-touch gesture interfaces have the potential to make all of these obsolete. Imagine the interface you could create using those Reactable controls, with a handfule of “records” that you could instantly assign any MP3 to? Or a large version of the TactaPad, with virtual decks on screen – an obvious way to work.

The world of gaming often benefits from devices like this first and World of Warcraft is an obvious target. This example combines multi-touch gesture commands with voice recognition to command forces quickly and accurately.

If you were wondering why Vista has invested so much in completely re-engineering the UI model and going true 3D, or why OSX did the same and why the Linux community have built Beryl, this is why. We are on the brink of seeing some really good physical interaction capabilities coming out.

I wonder what might become possible if we combined some of this with RFID and Physical World Hyperlinks?

But on a lighter note, we’ll all need to beef up.

By the way, if this stuff interests you, we’re looking for an interaction designer.