occasional webcam

Friday, December 21, 2001

Cabezal is closed until 2nd January.

Wishing you all a Merry Christmas and a prosperous New Year.


Thursday, December 20, 2001

Mark Pilgrim writes good stuff about the Model-View-Controller architecture, but misses one of the main reasons to use it: asynchrony. An MVC application is inherently capable of running asynchronously, with very weak coupling between the model, view and controller. If you're building an Internet-scale application, latency is horrible and unpredictable, and RPC-driven patterns make the latency problems visible.

This reminds me of the second time I visited Groove (almost two years ago now, the snow around Beverly was a foot deep, and we stayed in the nicest B&B ever). I was talking with Ray and saying something vague about a epiphany I'd found at LambdaMOO: that you can build sophisticated asynchronous groupware atop a realtime platform (MOO activity is mostly chat, but everything's persistent, and beside the realtime interaction in rooms there are lots of really powerful applications there ranging from mailing lists through to a byzantine political system), but not vice versa (Lotus Notes will never deal with simultaneous document manipulation in a seamless way, because the platform exposes nothing at all about presence or sessions or real-time users interacting). So I was well pleased that Groove's infrastructure is built on realtime awareness and a "live" distributed object model. I called this "synchronous" and Ray corrected me quickly: "No, it's all asynchronous". That took a long while to sink in, but it's absolutely true and really critical. All the network operations in Groove - their entire MVC-based model - are completely asynchronous: fire a message, and it'll be delivered, but please don't wait for a response before carrying on with your own local operations. This is the most asynchronous system I've ever seen, and it works because of message queues.

The groovey mindmap is back up and running - just. Several new and nasty bugs have appeared. The biggest is that Groove doesn't shut down properly after running anything with the Adobe SVG viewer embedded. I'm not sure who to call on this one: it's most likely an Adobe problem, but anyway I submitted a bug report to both Groove and Adobe in the hope that they'll sort it out. SVG is good, flexible, and standard, so I hope we can get SVG-driven Groove tools in wider use.

Talking about Groove reminds me of a recently-discovered feature: those funky COM-wizards now have a way to create real (co-creatable) coclasses - STA and free-threaded - using only XML and JavaScript. And to get the code distributed to devices that need it. It's pretty cool. I guess we'll have to wait a while for full documentation, though.

Finally, Cabezal is listed at groove.net "featured partners".

The Blendobox is doing very cool things with a QTVR user interface. (via langreiter.com)

Yes, Mac OS X looks lovely. And it's Unix. But it's still only running on proprietary hardware, so I'll stay with Windows and GNOME, thanks.

Doc coins a nice phrase: "Hotel California Lists, or HCLs, are my new label for email lists you can check out of, but never leave". I'm on one of those, from PCDJ.
Meanwhile, AudioMulch is much more fun than these DJing things - it's time to install the long-awaited new build.

Tuesday, December 18, 2001

Did you know that the Windows 2000/NT command shell can do command completion? Still nowhere near bash standards, but useful enough.

The SourceForge Most Active throws up some good stuff. CrystalSpace caught my eye - having been playing with 3D environments quite a lot recently. It looks good (check the screenshots); plenty of features, and seemingly very well designed.
The out-links are less reassuring. VOS is well-intentioned but doesn't seem to have thought much about the flaky network infrastructure and will have difficulties scaling (whereas Proksim/Quazal have already been there and back). A too-common warning sign was this: "The syntax of VOP is based on XML. It is not 100% strictly valid XML... It borrows the nested element/attribute model and syntax, but deviates from strict XML when necesary or convenient". Uh-oh.
Where do I go to say this one again? XML is good not because it's clean and efficient - plenty of times it's gnarly and crufty and painful. XML is good because everyone agrees how it works - with all the cruft. Because of public agreement, rather than because of elegance or cleanness, there's a wide playing-field of supporting components (free parsers, off the shelf, behaving pretty much as expected). And because there's a commodity infrastructure, we get innovation on top (this stuff, for example).

Monday, December 17, 2001

Maybe I'm getting paranoid. Bear with me for a minute or two.
What if this ("Getting the malware to the right person's machine will be a bit of a trial" says TheReg) was this ("eliminates all previously discussed security vulnerabilities affecting IE 5.5 and IE 6")? Installing the browser patches is essential, of course, given the massive security holes otherwise. But if the patches were spyware, how would you ever know? If you're running a personal firewall (I like Tiny), the browser is probably your most trusted application.
Paranoia aside, it's time to spend more time using Opera (and the wonderful Galeon, of course).

Thursday, December 13, 2001

The PinBoard just got a whole lot groovier. If you're running Groove, do install the latest build (here) and try dragging things in the preview pane. Try, too, with "navigate together" selected and several people in the space. It's really incredible - add a little smooth awareness, and suddenly many more possibilities open up. I'm so pleased with this tool. (Other people are too, which helps!)

So, the Ghost of Usenet Postings Past is now a reality. Egosurfing, I'm first there in 1993. Not that I really wanted to be reminded...

Wednesday, December 12, 2001

Seen the Segway? Meet the Megway - human-scale transportation from 0sil8 Heavy Industries.

Tuesday, December 11, 2001

Google now has 20 years of Usenet, online, searchable. Incredible. (Meanwhile: their predecessor and erstwhile competitor, the once-great Altavista, is reduced to silly, annoying, intrusive moving cartoon advertising on the front page. Did anyone tell them it doesn't work? And the grandaddy of them all, Lycos, seems to be some anonymous portal or other. With a dog.)

Thursday, December 06, 2001

Reflections - a challenging little flash game. Hours of fun! (via vowe)

"Workspaces with Soft Edges" (.doc, .pdf)

Tuesday, December 04, 2001

On the subject of software design versus evolution, here's a superb treatment of the "Big Ball Of Mud" anti-pattern. This is the sort of thing I wanted to find at the Portland Pattern Repository (but for some reason I kept getting lost in a maze of twisty little wiki-spaghetti...)

KPMG not only have a silly musical Flash movie homepage, they also seem to have people with nothing better to do than this.

Then I spotted a link to "The Gluetrain Manifesto" in Dave Gurteen's letter, and mistook it for a typo. Indeed not...:
  1. Markets are conversations. Conversations are markets. Markets are he as you are we and we are all together.
  2. Markets consist of human beings, not demographic sectors. Demographic sectors consist of human beings, not markets. Human beings consist of bazillions of tiny little animalcules, all whirling around together...
As it says, "La gente se reconoce un tal por cual y el soņolencia de esta voz".

I was writing about Differential GPS and location-based authentication (or even location-targeted encryption, which sounds a good bit harder) when IE crashed. Oh well.

Monday, December 03, 2001

(via decentralization) the uServ project at IBM is a neat system to give transient content (files on peer machines) persistent location addresses (Web URLs).

One paragraph from their paper: guess the protocol they're talking about...
"This problem is not one unique to uServ, but also affects systems such as [...other stuff...]. As [...this standardised facility...] and services impacted by [it] become more common, we expect that operating system libraries, [...] servers and their configuration, and browser implementations will adapt by properly abiding by the [...] protocol."
And the protocol is: this (RFC1034, 1987!)

(via diveintomark): Compare two very different software development strategies: NASA (expensive, precise, almost "perfect", with functional specifications weighing in at around 50% the size of the code) and Linux (ad-hoc, evolution over design). I've always been on the side of evolution, for the simple reason that it's easy to spend enormous amount of time building exactly the wrong functionality. With incremental development - starting with the sketchiest ideas of the required functions, building something to play with, asking the customer where they'd like to take it next - the formal specification phase doesn't turn a committee's guesswork into tablets of stone. Lots of Notes/Domino systems are built incrementally because it's possible to build them this way: evolvable data structures, very quick deployment, and little separation between the user environment and the development environment.
My experience with the UML seems to show its value in communicating the design, as much as in specifying and modeling the system; at Agora we learnt the value of use-case driven designs and specifications by teaching the client our language (to some extent). It worked because we found or created a common language for our private conceptual models of the system. This is something of what Schrage means by "shared space", and something of why Groove is a good model-sharing platform.