June 30, 2003
Ballgame
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
Outage
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
Wildgrape NewsDesk now posts to Groove. Select a news item, press Ctrl+G, and the item is posted to a Groove discussion space. Very very neat. Download it and give it a try! June 24, 2003
SOAP 1.2
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.
Pie
(No, not that pie). This is important, necessary, timely. As Tim Bray says: 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
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
Dave Winer points to Brad Choate talking about RSS 2 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
Toucan Collaborate
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 Sopranos Meets EverQuest - Social Networking in Massively Multiplayer Online Games: 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
SVG
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"). And, most surprisingly, a standard (W3C Rec) mobile subset (actually two, "mobile" and "tiny") suitable for small devices: J2ME mobile phones, say. Wow. Historical addendum: SVG was used for the first-ever third-party Groove tool (RAG, injectable version at Cabezal, minor revisions since the original Agora version of Oct.2000 - screenshot here).
PIE
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. There is to Croquet as DisneyWorld is to, say, Stonehenge. There's a certain economic imperative which you just can't ignore - Julian Dibdell's article in Business2.0 gives a really good overview. 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
More Performant
In my recent JavaScript performance epiphany, I realized just how bad JScript performance can be. I thought I had two options: choose a better language, or resign myself to being a couple of years behind the Moore's Law curve. There's a third way, and it's interesting enough to tell. .NET. Watch out: I think I just took the red pill. Thus far, I've managed to avoid the wonders of .NET; I did install the runtime, and even the IDE, but never worked with it in earnest. 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.
Office 2003
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
Anagram kata
Here's my JavaScript approach to PragDave's Kata 6: Anagrams. Quite an eyeopener. (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.
Sharepoint
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
Incapacitated
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.
InfoPath development
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
Design patterns
Ned points to Peter Norvig's site which is chock-full of great things. Here's one: Design patterns in dynamic programming. There's an astounding amount of depth in there - much of it up to page 50 or so really resonates with why I like JavaScript (I'm still not sure there's anything I'd rather use, although Icon has some very nice concepts, and I'm sure Ruby would grow on me). June 02, 2003
Spread....sheet!
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. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
vcard
archives: January 2005 December 2004 November 2004 October 2004 September 2004 August 2004 July 2004 June 2004 May 2004 April 2004 March 2004 February 2004 January 2004 December 2003 November 2003 October 2003 September 2003 August 2003 July 2003 June 2003 May 2003 April 2003 March 2003 February 2003 January 2003 December 2002 November 2002 October 2002 September 2002 August 2002 July 2002 June 2002 May 2002 April 2002 March 2002 February 2002 January 2002 December 2001 November 2001 October 2001 September 2001 August 2001 July 2001 June 2001 see also: {groove: [ ray, matt, paresh, mike, jeff, john ], other: [ /* more blogroll to follow */ ] } The views expressed on this weblog are mine alone and do not necessarily reflect the views of my employer. RSS 2.0 RSS 1.0 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||