November 28, 2002

Happy thanksgiving

Much to be thankful for. Yes, the glass is way more than half full.

November 26, 2002

Forensic debuggers and visualisation

Gavin points to Green Hat Journal, who asks:

Imagine distributing an instrumented version of your program to 100 alpha customers. Every time the program commits an error, the user presses a button to generate a program trace and sends it to your server (WinXP does this for crashes, but they collect very little data). You collect hundreds of errors in a giant DB, with very detailed data on every program instance. Is it possible to automatically data mine these crashes to precisely identify the problem in the source code? I'll call this forensic debugging (FD).
Yup. Done, deployed. Groove has this subsystem called CSM:
If a problem occurs, the Groove software automatically notifies Groove Networks' Customer Service Manager (CSM) server about the problem, and then works with it to fix the problem. The information transmitted to the CSM server includes the execution state of your computer at the time the problem occurred.
I gather the database is pretty big. Now, mining that for long-term trends is one of a class of related things which interests me. How do error conditions manifest over time? How does a large source tree grow over time (whch areas have most churn, and how does that correlate to reliability)?

QVis could be a very interesting tool for this type of dataset. Must try it sometime.


Microsoft announces MSI with Groove.

The Groove Networks software solution integrates Groove Workspace with SharePoint (TM) Team Services from Microsoft, giving customers a team Web site solution that supports online and offline use, works across company firewalls, and synchronizes information automatically.
There's coverage in Information Week, TechWeb, InfoWorld and CW360 (who could use some link education!).

For me, this is the fruition of a major project. I've come to like SharePoint for its straightforward (even webloggish), flexible Web-based collaborative environment. And we've built tools in Groove which let you securely disconnect all of that from the server, without losing any of its value. I'm especially proud of our work with custom lists: one of SharePoint's strengths is the ability to very easily create and modify schemas for custom forms, and we synchronize the schema right into Groove (the toolset reconfigures itself on-the-fly). Incredibly powerful technology, but more importantly, really really easy to use.

"When users disconnect from the network they can continue working with SharePoint Team Services Web sites to carry out a range of tasks including updating documents, adding items or events to calendars, or participating in discussions".

The IW article has it best: "Getting Out Of Isolated-Workplace Ruts":

Dana Gardner, an analyst with Aberdeen Group, says there's no other product on the market that can combine a powerful centralized collaboration tool such as Sharepoint with the decentralized, offline capabilities of Groove. "There's nothing this comprehensive for the user and easy for an IT department," Gardner says. "You get the best of an intranet combined with the best of an extranet."

November 25, 2002


S.B. Chatterjee noticed the Groove Web Services WSDL posted last week, and asks a good question: "Where are the XSDs?".

Don't worry; they're there, too (referenced from the WSDL, just not linked from the webpage). For your convenience, here:
Core.xsd, Accounts.xsd, Events.xsd, Spaces.xsd, Subscriptions.xsd, Tools.xsd, Transceiver.xsd, vCard.xsd, Contacts.xsd, Discussion.xsd, Calendar.xsd, Files.xsd, FilesBase64.xsd, FilesDIME.xsd. Schemas go leór.

November 22, 2002


John has written up lots more detail about the service model in Groove Web Services. Essential reading.

Groove Web Services

The WSDL files for Groove Web Services are posted on the Groove devzone website. Go play.

You'll be able to write Web Services code, using these service definitions, to talk to Groove 2.5 client (peer) devices. Enumerate, read, create, update, delete. Access can be local (for "tempuri.org" read "http://localhost:9080/") or remote (accessing your Groove client from anywhere). From .NET, PHP, perl, Radio, whatever.


origami boulder company (via Chuq). No comment.

November 18, 2002


Matt gets quoted in today's Boston Globe, business section front page, above the fold. Talking about applications for the Tablet. There's a great graphic: people carrying these things, networked together with sci-fi beams (just dotted lines, really).

In other Microsoft news: SPOT (small personal object technology, apparently). Little edge devices, pervasive wireless communications, information appliances; sounds familiar. Matt and John and Michael have been playing with PocketPC-plus-Web-Services quite a lot.

Marc Canter says "Fine - they stilll need cool software to drive it - and they can't write cool software".

I know some people who can...

Sez here...

Who invented the internet?

OK, maybe that was just too easy. Who is the inventor of Lotus Notes?

Aah. Must Try Harder.

November 16, 2002


It's snowing

November 15, 2002


Dan Bricklin has written a lengthy and thoughtful review of a Tablet PC. Excellent (he does write really good, useful reviews - also see his recent Treo articles). Bottom line: it's a keeper. "The big change is the environment in which the PC works. There are finally lots of real reasons for tablet computers... I can't see ever buying a portable laptop that isn't a convertible -- the benefits are too great for me".

So, make time to try these things. There are some Microsoft events over the next few weeks (see Groove too!). Bug any friends and colleagues who have one. Get to a shop and spend some time playing.

November 14, 2002


Via Stuart W: StarLogo.

Increasingly, researchers are choosing decentralized models for the organizations and technologies that they construct in the world, and for the theories that they construct about the world. But many people continue to resist these ideas, assuming centralized control where none exists -- for example, assuming (incorrectly) that bird flocks have leaders. StarLogo is designed to help students (as well as researchers) develop new ways of thinking about and understanding decentralized systems.

November 13, 2002

Clinton speech

An hour or so of Bill Clinton: really intriguing, engaging viewing (so much so, I only just realized I missed the mandatory West Wing). I'm still a newcomer to America, and constantly surprised by the highs - and lows - of this still-foreign culture. (Start ~20 minutes in. Via jrobb).

Q: Why did the right wing despise you so?
A: Because I won...
An interesting experience (meta), beside the content. Kids sleeping. Wireless laptop, fullscreen. Better than TV.


Some diversions (here):

We do indeed have computers being bought by individuals for themselves; they are "personal computers". The problem is that many of us didn't want computers in the first place... It's as if we had asked for a bit of part-time help and were given a bureaucracy.


Starting to think about building a few web services client applications. Although the .NET runtime includes the C# and VB.NET compilers, my main target environments right now are more familiar languages: PHP, JavaScript.

For PHP there's NuSOAP. Looks just fine. More playtime later.

For JavaScript, on Windows? PocketSOAP suits fine - but doesn't have runtime WSDL proxying. I want something which will parse out WSDL to put the right methods onto a script class at runtime. Any ideas?

November 12, 2002

More language:"To achieve adjustment and

More language:

"To achieve adjustment and sanity and the conditions that follow from them, we must study the structural characteristics of this world first and, then only, build languages of similar structure, instead of habitually ascribing to the world the primitive structure of our language."
A googlism explains it well, of course :-)

"A distributed system is a

Les pains de Picasso, by Doisneau"A distributed system is a system in which a computer you don't know about renders your own computer unusable" (ppt, pdf) - nicely put.

More language fun

Ho ho. Stumbled across this from Jim Bowery:

This brings us to the present -- a world in which Javascript-based technologies like Tibet promise to not only salvage the object oriented aspect of the Internet from the birth defects of Jobs's spawn, but actually provide an advance over Smalltalk in the same lineage as CLOS and Self.
JavaScript is an "ugly duckling" of a language, but here's the clearest exposition I've seen of why it's so powerful.


OSAF gets a writeup in cnn.com:"Tech legend takes on Microsoft":

Kapor knows he's now created some major expectations... "Almost everyone that's tried to do that has died," said Kapor...
Now I know why Groove spent as long as possible in stealth mode...!


Sam points to Lambda who points to a great paper which I've not read for a while: "Growing a Language":

If I want to help other persons to write all sorts of programs, should I design a small programming language or a large one?
I stand on this claim: I should not design a small language, and I should not design a large one. I need to design a language that can grow. I need to plan ways in which it might grow - but I need, too, to leave some choices so that other persons can make those choices at a later time.
Meanwhile Dylan's learning Squeak e-toys; that seems to be a nice way to start "in the middle" with abstractions which don't leak too much. Certainly, via its Smalltalk heritage, growable (as we'll see much more, I'm sure, when David Reed and Alan Kay start telling the world about their project).

Right now, though, I'm fascinated by the blurred line between language and platform. And I've still not exhausted JavaScript. Groove has this unique model of distributed, transactional system "that, in essence, distributes *method calls* as opposed to data". We expose that through services, interfaces, APIs. Sometimes-leaky abstraction layers. If you put the abstraction into the language itself, would that make it waterproof? Is there a way to keep the value of a hererogeneous (language-agnostic, not-too-sandboxed) development environment, but provide access to waterproof abstractions - not necessarily interfaces or classes - in such a way that you don't need to think about them?

Meta means that you step back from your own place. What you used to do is now what you see. What you were is now what you act on. Verbs turn to nouns.

November 11, 2002

Multi-Paradigm Design

Sam Gentile has a good article entitled Multi-Paradigm Design and Generic Programming in which he reminds us: "Object Oriented Design is just one subset of the solution domain and not always appropriate for the problem at hand... In the hands of an experienced designer, there is a whole lot more power and flexibility afforded when designing with more than one design paradigm.", and introduces the nice idea of Policies.

How much paradigm-shock can you take at one go? For overload, try this:

[Prototype-based Multiple Dispatch] begins by reexamining what it means for a method to be applicable to an object. It essentially reverses the decision... Instead of finding a method from an ordering of which all arguments have types that are subtypes of their respective parameters in the method, PMD considers the set of methods which each argument object supports and then attempts to find one that they all hold in common.


Sadly, Agora is no more.
Thanks to the wayback machine, here's the Rendezvoo manifesto (April 2001).

November 08, 2002


I don't know who it is, but KPIG is really stompin' right now. Great stuff.

Complexity and decentralization

Kevin Werbach interviewed (much about Open Spectrum), has this to say:

I think we're at something of an inflection point where the technology is decentralizing because it has to. You simply cannot for example build 'Everquest' and serve billions of people in online gaming on one computer. It just doesn't work... Every enterprise is now on a path towards making their computing infrastructure meet the same demands that Sony has to meet today for supporting millions of players on Everquest.
Indeed. Some of this is the same theme as IBM's "on demand" brouhaha.

But "computing infrastructure" still sounds like big blue iron crunching numbers. It's not. It's stuff like the Dynabook, "communication with others of ideas, data, working models, as well as the daily chit-chat that organizations need in order to function". Decentralized because correspondents are everywhere. Distributed (and redundant!) because you left some of it on the desk upstairs...


Of course I'd like a Dynabook. "Enough power to be entirely shaped by software".

400 weeks

sjl: Netscape was born 400 weeks ago. Gosh, how time flies, especially Internet time!

November 07, 2002

More tablets

Here's the Groove press release: Got Ink?. Ray's quote:

The combination of WiFi networks, the Tablet PC and secure, smart applications such as Groove give users the freedom and flexibility to get their jobs done regardless of location, and organizations the ability to reduce their overall coordination costs, without sacrificing security, or control.
and more detail. Can you spot my handwriting in the screenshot? (heh!)

I'm expecting more lukewarm reviews than ga-ga. But even the NYT says

a touch screen can be a useful enhancement. You can use a Tablet PC standing up - not something people do every day, to be sure, but handy in certain lines of work.
And although
You can't simply mark up a Word document with circles, arrows and crossout lines, as a proofreader might with a red pen
that's exactly what you can do with Acrobat.

Keep taking the...

Tablet PC day today. Several lucky people here get all the new toys; Matt has been using one of the Acer machines daily for a while. Cute meta-laptops.

Tablet is really quite important, in an incremental way (which is why I think it may succeed where others have failed). Of course one of Microsoft's great strengths is in lowering "transition cost", making disruptive changes more palatable; with the Tablet edition of XP, ink arrives incrementally. Already there are signs of some really good applications; vertical solutions for healthcare, of course, but also some fun games and demonstrators. And Groove. Groove is such a good fit to the platform.

November 06, 2002

Squeak and Croquet

Croquet looks interesting enough. Choice qotd:

Until real software engineering is developed, the next best practice is to develop with a dynamic system that has extreme late binding in all aspects.
There's a learning curve before I can discover more about their decentralisation strategy, but it seems to share some philosophies with Groove. So I'm delegating the learning curve to Dylan: "can you play with Squeak, and build us a presentation in Squeak about Squeak, by Christmas". Let's see!

November 05, 2002

What is


November 04, 2002


Dave says

an enterprising developer should be able to integrate Groove capabilities with website authoring for Radio and/or Manila.
Yes, but you can do that already (talk to Radio or Manila's SOAP services from a Groove shared space, to move Groove-authored content out). Did I misread? What I'm talking about is the reverse: pushing Radio-fed content into Groove...


SATN has an RSS feed.
And Ned Batchelder has a weblog!

November 03, 2002

My own work, natch

Just in case anyone thinks the stuff I say here has any bearing on Groove's plans and work-in-progress, I better make this clear. Groove Networks Inc pay me to work for them. I love that. But at this website, I pretty much say whatever crosses my mind. Even when I'm firing on all four neurons, that doesn't necessarily mean what comes out here is meaningful or significant.

So I can talk about SharePoint because my head's filled with the stuff daily - I know more about CAML than I'll ever need again - even though I didn't instigate the current integration work, and even though I'm hunkered down building some of it, it's still cool. Others do have more vision. (STS reminds me of nothing so much as Lotus Notes R1.1. But that's a different story...!)

And I love the possibilities of Groove Web Services talking to local SOAPy apps like Radio. It would be such a cool thing to do, someone better do it, otherwise I'll have to waste a weekend or more doing it myself. But I only just now understood that it was possible...

Draw round, put another log on the fire. Let's get telling some stories. They might not be true - yet.

GWS and weblogs

Groove hasn't yet been a great place to read (and work in the context of) aggregated RSS newsfeeds, even though I tried to build something suitable a while back. But with GWS the door is wide open. Take a local application which can subscribe to RSS feeds and which can make SOAP calls. Ping the local Groove installation via SOAP when there's new news. Punt the articles into a Groove space you're sharing with friends and colleagues. Bing! Any takers?

November 02, 2002

Groove Web Services

Jon Udell has plenty to say about the forthcoming Groove Web Services:

The results are nothing short of spectacular.

As we watched GWS technical lead John Burkhardt build a WinForms GWS client in Visual Studio .Net, we realized that we needed no further explanation to do exactly the same thing in wxPython on a Macintosh or in PHP on a Web page.

Good writeup, and kudos to John and Matt and the team for building what looks like a really powerful, clean, smart piece of glue. Unfortunately I've had no time to build anything with this stuff yet (although I played briefly with some of John's sample code, which will be available in the GWS GDK when it ships). Looking forward to putting some Groove-aware pieces of PHP or Perl onto this (linux) webserver as soon as.

Sharepoint RSS

Busy day today, chopping firewood. But time enough to knock up a RSS generator for SharePoint 1.0 (I have SharePoint running on this laptop - not that it gets used for anything except R&D). If you're running a STS site, this should let you subscribe to your lists with your favourite aggregator (Radio, AmphetaDesk, Aggie, etc).

The script is here; save and install on your server, and call with http://yourSTSwebsite/_vti_bin/owssvr.dll?Using=sts2rss.html&list=[listname]

Let me know if you use it :-)

Update 2003-05-19: If you're looking for a RSS generator for SharePoint 2.0 (Windows SharePoint Services, aka WSS), my script won't work - but Harry Pierson has built one, and it works good.

November 01, 2002

Microsoft's Weblog Software


Microsoft has created a weblog tool that is designed to run inside the firewall at a company. It's browser-accessible from any 4.0 or higher web browser and doesn't require Windows on the client. It leverages their strengths by integrating with Office, and there's no per-user client access fee. Then imagine if this weblogging tool were deployed to millions of users, all before anyone in the weblog community took notice.
SharePoint Team Services, indeed. This is a very flexible (and, dare I say it, fairly elegant) little application, and it's a great weblogging tool.
Unfortunately, out-of-the-box SharePoint doesn't support RSS, let alone TrackBack or anything fancy. Also, adding "comments" is an exercise left to the user (not very hard, but not easy to do right). I think building an RSS feed would take only a couple hours' work - anyone done such a thing?
The one player which seems to be fully aware of both the weblog space and SharePoint's potential is Ray Ozzie's Groove Networks, which has fully embraced the SharePoint platform while being completely aware of the attention and activity around weblogs. Aside from Groove, most weblog software companies are either unaware of or unwilling to acknowledge Microsoft's participation in the realm, with the few discussions of the tool mentioning it only in passing, or in reference to Groove's relationship.
Heh! (I'm not sure this isn't just a lucky coincidence - I'm working on the product and haven't had that discussion with other people here; it only very recently occurred to me how good a weblogging tool we're building)

Vista is an experimental prototype whose purpose is to quickly explore various design and feature ideas for Chandler, our networked personal information manager
There's plenty of detail here.