June 30, 2003
Sunday was our first trip to a real ballgame: Sea Dogs roundly beaten by Altoona Curve. I have no idea what happened. "4-for-5 with four homers and a double, four RBIs and four runs"? Whatever. Nobody seemed to mind.
Sun, sports, relaxed entertainment. All in all, a great family day out.
June 25, 2003
Breakage likely over the next day or two... site is moving to a new server. Cabezal.com email will hopefully be working again shortly.
Well, that was straightforward enough. This helped.
News to Groove
June 24, 2003
is a W3C-Recommendation. The Primer has today's date. It's been under development for a while (somewhere near three years, I think).
Important new things: value-adding intermediaries; a REST pattern; and more. This is actually a really nice concise description of REST:
One of the most central concepts of the World Wide Web is that of a URI as a resource identifier... For example, a very important - indeed predominant - use of the World Wide Web is pure information retrieval, where the representation of an available resource, identified by a URI, is fetched using a HTTP GET request without affecting the resource in any way. (This is called a safe and idempotent method in HTTP terminology.) The key point is that the publisher of a resource makes available its URI, which consumers may "GET".More of that under BeesAndAnts.
in some circles “RSS” has become a synonym for “Reliably Spiteful Squabbling.” Kofi Annan and the Dalai Lama might be able to achieve consensus, particularly if they could get Don Rumsfield to credibly threaten peacemaking backup with the 3rd infantry, but life’s too short...
Those VB types
The value here is not so much in attracting Visual Basic developers to Java... The real value is in giving non-Java developers and those who are not going to learn any programming language the power to create applications and services through simple tag and script-based development models and highly-customizable components and services that can be imported, integrated, and managed within simple lightweight tools (as opposed to full enterprise IDEs)... these folks – you know, the people in the world who aren’t geeks like you and me – ought to have a better baseline option than Visual Basic and VS.NET.Right on. Some random data points from my POV: InfoPath, Squeak eToys, Notes, Hypercard. DHTML.
June 21, 2003
Tash has some good pictures.
Patterns for language
Christopher Alexander on patterns:
The idea that materialized in the published pattern language... was done in a way that would allow this to happen on a really large scale. And, what I mean by that is that we wanted to generate the environment indirectly, just as biological organisms are generated, indirectly, by a genetic code.(via Jon Schull)
Dates And Such
Proof that brilliance in software development is orthogonal to brilliance in software specifications development.
Java as a language for the masses
Carlos Perez: Java Is a Language for the Masses. Fascinating. With Java, there's apparently been a conscious design decision to reduce language malleability. (And the same would apply to .NET: the namespace becomes a shared vocabulary). Quotes Willam Grosso saying
The single best measure of whether a programming language is worth using is: how well does it support communities. The social aspects of the language dominate the technological aspects of the languageIf "worth using" equates to "widely deployed", that would be likely true. Certainly "worth learning" does correlate with "being the default programming language", if only for economic reasons.
Do download Grosso's presentation for some more arguments.
On some level I totally, completely agree: when I'm thinking about building a "platform" level of APIs (which isn't really part of my day job, but I kinda stray onto that territory sometimes). If you're building a platform, the only sensible thing is to build it for the greatest possible, longest lived, most approachable developer familiarity (above, say, performance). One of the reasons that Web Services APIs are a Good Thing.
Brad DeLong: "When I worry
Brad DeLong: "When I worry that America's politics may come to look like Argentina's, I'm worrying about what will happen a generation hence when voters say, 'You never told us that the tax cuts meant that it was unlikely we would get our social security benefits. We want our social security benefits. Now you politicians figure out a way to give them to us.'"
June 20, 2003
From Virtual Methods: Toucan Collaborate
Toucan Collaborate is a suite of productivity applications for Groove Workspace.Very nice too. Take the tour.
"Friends are the ultimate exploit"
The offline ties between players also serve as an important component in the enjoyment of the game... Sometimes the offline/online similarities mesh even more, as when a gaming society in a small Swedish town decided to take on EQ. It is not at all unusual to find groups of friends move from one game to another. In such situations the game simply becomes a new environment for a preexisting social network to inhabit.If you want to see smart mobs in action, MMOGs are a great place to look.
June 19, 2003
I haven't used SVG for ages, although there's a demo-type thing I want to build with it sometime (a "coordination navigator" with GWS->DOM->XSLT->SVG, hopefully about twenty lines of "actual code"). Anyhow: last I looked, SVG was incredibly super-powerful, hence you'd only expect a small handful of conformant-or-very-close implementations (eg. Adobe, Batik).
Nooooo. Things have changed somewhat. Implementations abound. There's SVG support not only in Illustrator, but Maya and even Visio. A major-looking Corel toolset ("dramatically speeds up the development and maintenance of data-driven, enterprise-class graphical applications for Extranets and Intranets").
These are over twenty years old, so I wonder why I never came across them before. Good aeroplane-trip reading.
Following the receipt of contributions from a collaborator, the need arises to select some of these proposals and combine them... A design environment should make it easy to examine overlapping designs and to select pieces for combination into a joint design. A layered design facilitates this since coordinated sets of change have been localized into layers.
And then some more:
An Experimental Description-Based Programming Environment: Four Reports (Ira Goldstein and Daniel Bobrow, CSL-81-3, Xerox PARC, March 1981) 3.18MB PDF
June 18, 2003
Groove and Microsoft
Microsoft's SharePoint products and technologies... collectively represent the new foundation for Microsoft's collaboration strategy. But Microsoft also has a relationship with another collaboration tool vendor, Groove, and that relationship is worth examining.A good survey of some of the touch-points. He doesn't go into ehough detail about the awesome practical synergy of the Groove/SharePoint mix (heh, it's true!), nor about how we'll pull InfoPath, Exchange and RTC into a dizzying out-of-the-box realtime KM dance (ohwait, I just made that bit up).
June 17, 2003
There and Back
I've spent a couple of evenings exploring There, and still don't know whether it'll be just huge or just a pictureque backlot with really cute chat-bubbles and conversation-gestures.
Jessica Hammer has a nice observation: "if you plop people down in an environment that's too open-ended, most of them won't enjoy themselves". Maybe that's true, but surely in the long run, scalability will win out.
Two aspects to scalability. One, as Alan Kay says of Croquet, "the key to the idea would be to have it be scalable, without requiring servers". Second, to not lay landmines for unwary users by encouraging them in unsustainable beliefs (privacy or ownership, for example).
Mobile phones' killer app
Russ has found the "killer app" for mobile phones, and it's IRC. Y'know, he could be right.
I never yet owned a cellphone. In the USA that's not so unusual - but in the UK it was becoming downright antisocial not to carry around at least one.
But, well, what are they good for? Ha.
June 16, 2003
There's a third way, and it's interesting enough to tell. .NET. Watch out: I think I just took the red pill.
The .NET framework includes "JScript.NET": a (fairly complete) implementation of ECMAScript on the .NET common-language runtime. And if you just install the runtime, you do get the compiler. Still the ugly duckling, but it's way faster than the old cscript/wscript.
My anagrams code now runs in 7 seconds. And the arraytest code stressing "for(key in table)" is very dramatically improved:
Maybe this really is the best of all worlds: a dynamic language, compiled, with a rich class library compatible across environments. That class library is the learning curve ahead; now, there's no chasm to cross before I start climbing.
Here we go. Office 2003 Refresh on the Horizon:
Technically, the Technical Refresh is not a Beta 3, as in past instances of such a major refresh. Testers should plan on some hefty downloads of the update, which Microsoft does not plan to update widely on CD. The main 'refresh' for Office 2003 is about 139MB, 77MB for InfoPath, 53MB for FrontPage and 27MB for OneNote.
That should choke the pipes for a while, then...
June 15, 2003
(Updated version with a threefold performance boost. But still slow!)
Performance is just awful. Seventy seconds (on my P3/700 laptop). Am I doing something really wrong? Is there an order-of-magnitude improvement to be had with a clever algorithm?
After mulling on it, I don't think so.
In the end, I have to just conclude that JScript's hashtable implementation (which is fundamental to the language, since it's the basis for method dispatch) totally sucks. Some associated timing (spurred in part by Tim Bray's recent article): JScript "for( key in table )" turns out to be really really slow. Stunningly, incredibly slow:
If you can build an array (keyed by number) instead of a hashtable (sparse), it's many orders of magnitude faster to count "for( x=0; x < array.length; x++ )".
In desperation, I turned to Google, and found that Alan Green has a close-equivalent Python implementation running near one second. It's a relief to see that I'm not obviously a dumb programmer. But is JScript performance really this awful? Please, someone, say I'm missing something...!
June 14, 2003
PragDave's Code Kata
These are good. PragDave has a running series of 'Code Kata':
A kata is an exercise in karate where you repeat a form many, many times, making little improvements in each. The intent behind code kata is similar. Each is a short exercise (perhaps 30 minutes to an hour long). Some involve programming, and can be coded in many different ways. Some are open ended, and involve thinking about the issues behind programming. These are unlikely to have a single correct answer.
Evolutionary SharePoint - Peter O'Kelly takes a quick tour through the past, present and future of Microsoft's SharePoint product suite.
WSS is presented in a nicely integrated Office 2003 interface. Outlook users, for instance, don't need to be aware of WSS details; they'll simply work with the new meeting workspace and shared attachment features as natural extensions to Outlook, much as the users of the earlier OSE could use Web Folders in a conceptual model very similar to the one used for local hard disk folders.
June 13, 2003
Dead Languages Society
On the trail of generators (that's definitely recommended reading if you ever use Python or process XML), I happened on a dissection of SNOBOL. The code sample is, um, interesting. As the author says,
Snobol 4 is a dead language in the same sense that Latin is a dead language. i.e. there are still folks out there who use the language in various ways.
June 11, 2003
I've spent the last couple of days at home, one foot swollen twice its normal size. Weird. Can't drink, can't walk anywhere, so I'm cooking up some code.
A couple of years ago, I looked at XSLT, and quickly put it down again: too verbose, too difficult to debug (all that declarative stuff); waaay too slow. But now I revisit it, things aren't so bad. InfoPath (and FrontPage, apparently?) are XSLT-wizards; you get a "90% HTML, 10% XSLT" mix. On the other extreme, my play app's stylesheet is "95% XSLT, 5% HTML" - and still really concise and readable.
The stylesheet is working against a (reasonably big) DOM object model which dynamically updates itself from a variety of web services. That's fun.
Question, for anyone (remember, this is just a back-burner stewing in the corner): if you had a command line interface to Groove, what should it be able to do? What sort of commands would you look for? What shell-type facilities (pipes, etc)? Assume that the main UI is "tail -f" over a stylesheet over a DOM.
New on MSDN: Introducing InfoPath Development. A good introduction to the object model and development environment.
There are plenty of neat things about InfoPath. A few which aren't mentioned in this overview:
June 05, 2003
June 02, 2003
Here's one of those "wow" moments. Excel and Groove.
Ashok has been working towards this for a long while - building custom data-oriented tools in Groove, edging towards more generic data structures, then a tool presenting a spreadsheet-like grid, then a subset of a real spreadsheet... and, finally, the real thing. Excel, groovy.
This means you can share any spreadsheet, securely and immediately, with others in a space. Changes made by any one user are directly applied to all the others. Such immediacy! Such flexibility!
Nice work. And I have no idea how it's done. Must be magic.
[ /* more blogroll to follow */ ]
The views expressed on this weblog are mine alone and do not necessarily reflect the views of my employer.