occasional webcam

Wednesday, August 29, 2001

This sounds like a killer Groove app. Do check out the movie (51 megabytes..) if it rings any bells. What do you need? Groove (chat, voice conference, discussion, filesharing), PinBoard (top issues noticeboard, polling), EasyWeb (inclusionary publishing for "everyone affected"). Total cost per seat? Less than a hundred quid.

Crisis response isn't unusual; these people just happen to do it for a living, writ large. Business managers do the same thing every day. Now there's a value proposition.

They indicted Skylarov.

Fixed it. And discovered "g:Seek" in the meantime. That's this: the interval is anyone's guess.

Ohhh dear; there's an install problem with EasyWeb - need some willing vounteers to help nail this down. Coding is easy, but deploying it is another whole thing.

Had some fun yesterday with Groove's voice-over-IP; I'd not used voice much before. Maybe there's something up here, but I could hear Phil loud and clear; my voice to him kept breaking up badly. This over a direct connection (not relayed); DSL my end, him on cable 12 hops away. But when it works, "conference mode" is great. (Am I the only one, though, who gets totally confused by the user interface?)

Tuesday, August 28, 2001

EasyWeb Alpha2 ships.

One of the aims of this build was to be able to publish PinBoard automatically, with all the right dimensions and graphics. I guess that works, then. Also to produce a half-decent thread-map in discussions or similar tools. Sort ~80% there, I think.

Overall (if it's stable - fingers crossed!) EasyWeb is already way more powerful than InterNotes ever was, easier than Domino, and smarter than FrontPage or even NetObjects. I'm happy.

Sunday, August 26, 2001

The fearless Dr. Thompson does have a worthy successor, in eXile.

Friday, August 24, 2001

What a day. Two Groove employees visited my office! Smart guys, and they're really determined to make waves around here.

EasyWeb alpha2 (in development - due next week sometime) now has a proper templating language. Powerful stuff like this:

<foreach(@documents|sort(%Subject|uppercase)|reverse)>....
Very early documentation here.

So, the weekend looks hot. I'll have to mow the lawn.

Thursday, August 23, 2001

The appearance of magnetism. Amazing.
Anoto digital pens (or something). Very clever. Scenario Three: write your exams using one of these, it beams what you write to your mates and they can copy without even looking over your shoulder. Or something. (This stuff is smart, really. It's all in the paper).

Need money. Will work. Me? Complain? Bah!

"You'se a Viper" - been looking for this track for years. "Dreamed about a reefer five feet long..." And it's sung by Jonah Jones (him not him, I'm guessing) - this is not the version I knew. And there's much more great music in the same vein (all RealAudio).

Wednesday, August 22, 2001

Goodbye EMBED: Microsoft IE breaks Netscape-style plugins, and it sounds very deliberate. I though Cringely was paranoid, but no.
Elsewhere: well-written fluff about SirCam; the Good Easy; a brief (not!) tutorial on mistake-proofing (Poke-Yoke).

Windows RG (Real Good).

Why am I still here at 12:30? Because vowe pointed me at mingolf. Well excellent.

Tuesday, August 21, 2001

First "customer" reaction to easyweb: "Oh my god, it works!"... "I'm so excited!". (Of course they didn't pay real money for it. Yet.) This is a very little piece of the great re-wiring.

Meanwhile: amazing crop circles. Crop circles should definitely be on the list. Also amazing abandoned places - if you like that, lukelog has lots more links. This is fun (need a stylus, though).

Whew. Easyweb goes alpha. Now I just have to write some documentation!

Monday, August 20, 2001

It's a small small world. What is blogdex?

Today's a jacket-an-tie day. So I'm eating breakfast reading venusberg. And, scarily, the International Herald Tribune (via Seething Hatred). Last time I read a newspaper's about ten days ago. Does this matter?

Sunday, August 19, 2001

More for the todo list: bookmark disinformation. Hook EasyWeb up with Atomz. Read more of Gonzo Marketing (where is Dr. Thompson when we need him, anyway?).

Junkbot is probably the most addictive thing I've come across recently.
Second to the bread, of course. (More cardamom, next time)

Multimap and Streetmap both continue to amaze me. But not as much as the Royal Mail postcode finder. I just plugged in the house name and town; it immediately returned the postcode. Anyway, I wish I was there. Instead I'm making bread.

The bread's looking good though. Regular white bread, but with a few black cardamom pods chopped and mixed in. Just out of the hot press into the oven now. Mmmm!

Saturday, August 18, 2001

Photoshop Tennis. Taylor and Zeldman battlin' the decks.

New toy today: a video camera. But first, the real news: definitive proof that NASA faked the moon landings.

Discovered this crowd via voidstar. Their icon'll be somewhere on this page soon.

Friday, August 17, 2001

"Whether on a Mac or a PC, Microsoft Word and Excel spend more time waiting on me than I do on them." (here). Isn't it strange, we still end up waiting; now we wait mostly for the Internet, not for our PC? I used to have a separate machine (Compaq 386/20) just to do builds. Right now my build/test/debug cycles (even with groove's distinct lack of developer tools) are quick enough I don't have time to read inbetween. On the other hand, finding a Nitty Gritty Dirt Band track (don't even ask!) on Morpheus took all night.

EasyWeb (yes, that's its name) is running like a... well... mostly like a dream. Then occasionally it makes a funny noise and I go tinker under the hood. But mostly it's looking really fine. To test it and show off its capabilities at the same time, there's a demonstration site.

Miscellanea: the superbly readable page by Niels Ferguson, who found a fatal flaw in the HDCP video encryption system but can't take the risk of publication. The Industry Standard folds. I should blogify this page, but not today. Yesterday's JOHO is good reading. The Shape Of Song is impressive.

The website-publishing tool is getting closer to initial preview release; there's still plenty of work to be done in finishing the template-writing code. But it's hard to write good code (or do anything at all) when there's another obsession hanging in the background. That Agenda-inspired stuff just refuses to go to sleep. (At least with the web tool, I have a rich and robust Groove-aggregator, so half the problem is done already). The other half is assisted categorisation and prioritisation by collaborative use of Bayesian belief networks. Mindbomb.

Thursday, August 16, 2001

Tiny cow!

Tuesday, August 14, 2001

I mean, Blogger's great and all that, but it's server-based. When it flakes out: is that my problem? my ISP's problem? a blogger.com problem? Desperately wanting to move this into Groove somehow...

For this, XML-RPC isn't the way. Nor SOAP; they just distribute the failure point back into the cloud. With FTP, there's very little to go wrong (he says, fingers crossed, before blatting the entire Cabezal website with a single line of code). There's certainly no database, or active code, on the server.

You want what? The URL? (It's very very primitive just now. Please be patient).

I guess I'm the first person to be running a regular website with Groove. This is done using a little aggregator tool (my ever-expanding harness), listening to a Discussion tool - or, as many discussion tools / pinboards / outliners as you have in the space -, applying some HTML templates, and FTP'ing pages up to the server. Low-tech. The surprise is, it works quite well! Web publishing is the tip of the iceberg, though; now we have to think about stuff like deletions (...oops...), discussion threading and index.html (...er...), inter-document hyperlinks (...um...)...

Of course, it's not really a website maintenance tool, although that's the easiest way to use it (and it'll knock the socks off yer FrontPage). It's a systems integration tool. Want to publish content from Groove to [name-whatever-your-nastiest-system-here]? Automated FTP. Way to go!

Well, last night I eventually dragged myself away from keyboard and screen, went to see Iain M. Banks in Windsor, where he was reading bits from his new book, "Look to Windward". Sounds good. In a week or so I might have read it.

Sunday, August 12, 2001

Lots of work over the weekend, putting a proper data-model delegate into Pinboard, together with some OneTimeInitialize. And, to prove it works, hooked into a little aggregator harness. It'll be there in the next build (some time next week). All done in the free-threaded JavaScript host. (What a fun life, huh?)

Saturday, August 11, 2001

So Mitch Kapor is starting something up. Lotus Agenda mentioned in Scripting News.

"Give a brother some work. We got beats for days. I know you got dough. Call me". (I must have been listening to too much Everlast)

I'm really concerned about the half-million Win2k hosts out there with compromised root access. My ISP obviously isn't, but they should be. What to do? Microsoft currently recommends these machines be rebuilt. Whilst the scanning is slowing down, someone else (or maybe the original author) is preparing a massive distributed-denial-of-service infrastructure.

"The utility of an operating system is not proportional to the number of components whose development has been paid for (paid in developer time not dollars in the case of Linux), but is instead proportional to the number of connections possible between those components" [here]. This is the OS version of Reed's Law. It's also why the first crop of Groove tools are bad. How many ways can you connect to a chat tool? (Zero, probably).

Pinboard is a little tiny bit open: there's a generic data-model delegate (the main recordset engine), and a schema, and a reasonable amount of import/export/clipboard support. Right now there's a catch-22; there aren't many good ways of connecting into tools, so nobody has yet invested in building clients for that linkage. (Apart from the yourapp10 sample, that is).

And, what does this have to do with Lotus Agenda? Quite a lot, if my current next set of pipedreams pans out.

Way too much interesting stuff to read: Plan 9, RPC vs REST (whatever), statefulness vs. statelessness in distributed systems, and the like. Try starting here.

Friday, August 10, 2001

XML and binary. Continuation from a groovelog post:

First off, Groove storage and dynamics are separate. Storage deals with local databases (of XML and binary documents). Dynamics deals with distributed transactions on the system. The two are brought together with engines, which present a data-oriented or transaction-oriented API and tell dynamics how to route the transactions. The essential engine is RecordSetEngine, which looks (sort of) like a hierarchical recordset, with XML storage.

So, if I open the telespace database [PropertyList.OpenProperty(PROPERTY_TELESPACE_DATABASE)] I can put documents into it natively. With binary data that's very convenient. Alternatively (and more usually) just use the recordsetengine to create records with various typed data, and have them grooved (verb, huh?) through the space. Or, for efficiency, tell the engine to use dynamics at a more granular level [eg. RecordEngine.GeerateSetField(pDelta,name,value) where the pDelta is from the dynamics manager]. Three different things: storage, engines, and dynamics.

So, how do XML and binary data work together? Can you put binary data right into an XML document? .... yes, but not efficiently. The dynamics of binary data might be different. Certainly encoding the binary document in an XML-friendly text format is a big waste.

RecordSetEngine (and PropertyListEngine too, which is the other main groovey datastore) has a neat implementation of XLink which solves this dilemma. Basically, if you create a binary document in the telespace database, it'll stay on your machine (of course, because you use StorageMgr to create the document). But, if you create a record in the RecordSetEngine and a field's datatype is XML, the engine will look for Xlinks in that XML, and understand from the xlink whether it needs to move the binary document around.

Some code snippets as examples:

pDocument = TelespaceDatabase.CreateBinaryDocumentFromStream( pStream, sDocID )
- fine. Then:

pURI = pDocument.OpenURI();
pBinaryDocURL = g_StorageURISyntax.MakeRelative(pURI);
so we know how to address the binary document.

pEl = CreateNewElement( "urn:yourco.com:yourschema" );
pEl.SetLinkAttributes( pBinaryDocURL, sDocID, "",
GrooveXLinkShowOption_Replace,
GrooveXLinkActuateType_User,
GrooveXLinkSerializeOption_ByValue, false, false,
GrooveXLinkCompressOption_OnWire, "",
GrooveXLinkDeserializeOption_Replace);
pRecord.SetFieldAsElement( "fieldname", pEl );

... and the recordsetengine grooves the binary document along with the record. Plenty of control via the different xlink options. Getting at the binary document again is really easy, too:

pEl = RecordSetEngine.OpenFieldAsElement( "fieldname" );
pDoc = pEl.OpenLinkedBinaryDocument();
pDoc.OpenByteInputStream();
or whatever you need to do with the binary document.

Finally, pinboard is feature-complete. The latest new feature (which has kept me up a night for a couple of days) is voting. I think it's awesome.

Wednesday, August 08, 2001

Oh dear. The elevator test.
So you're in this lift, OK? And you get to explain everything before it reaches the top floor. And because this is one of those ideas from the States, they obviously call it "elevator" instead of "lift". But there's one other crucial difference between Dublin and New York: in New York they've got cars big as bars, they've got rivers of gold and, well, their lifts go much further than the fourth floor. They have skyscrapers. So their elevator pitches can be much longer than ours - but it's all swings and roundabouts because we talk much faster in Ireland anyway.

(from the e-jits "how to be an internet guru")

Breaking the Bank...

Friday, August 03, 2001

Something else for the investigate-properly-sometime list: Curl Surge. It demos well, and the language seems quite elegant. I've not dug far enough yet to see whether we can easily plug Surge inside Groove; if that's possible, it might make a good platform for the types of user interface I'd like to created.

Question: can you integrate Java applets into Groove tools?
Answer: yes, I think so. By embedding the applet on a local Web page and using the same loosely-coupled event passing used by PinBoard. But this won't solve the data access problem (ie. the applet can't talk natively to Groove's storage). Needs a proof of concept sometime...

This is a more "occasional" blog than I'd really intended; there just aren't enough hours in the day. Lots of interesting things to note.

Cabezal released PinBoard to beta test - there's been some great reaction already. And some challenging questions, such as: "Why would I want to use pinboard instead of a discussion?", which had me stumped for a couple of seconds. It's different... Cute, intuitive, flexible and easy to use. When I build the "alarms" functionality there'll be a much stronger differentiation; pinboard becomes a powerful to-do list. Another possible feature is "gravity" - let's experiment with that one, see if it's really as powerful as I suspect it will be.

Maybe Cabezal should co-opt the Cavebear slogan: "If we have it, you don't need it!". They're advertising some great products, too: check out the Get-A-Life Packs for Palm Pilot and their awesome Maximum Momentum Router.

Groove have started building a number of decent technotes. This is a really good sign. I hope they focus on the developer rather than the marketing-speak; it's sad to see in the (otherwise superb) Schemas note that "The XML schema was approved as a W3C recommendation on May 2, 2001 (see http://www.w3.org/XML/Schema). Like most specifications, this one is subject to interpretation and may be implemented in different ways by different developers. Groove has implemented only a small part of this specification, and its implementation may differ from others." whereas really Groove's schemas are just different. Apples and oranges.