Fri, Oct 21, 2005
DirkRiehle told me a funny story at WikiSym about Google's swimming pools. There are two, they're about 10 feet long, and they're "endless pools" -- the equivalent of a swimming treadmill. What's really funny is that MountainView required the company to have an on-duty lifeguard for these little pools. Apparently, it's quite a funny sight to see a lifeguard watching people swim in these tiny pools. (JYJ)
Dirk has a description and a picture of the pools at his most excellent, A Geek's Tour of Silicon Valley web site, but unfortunately, he doesn't have one with the pools occupied and a lifeguard on duty. (JYK)
The first person who points me to such a picture wins two cookies. Better yet, post it on Dirk's site (which runs on a Wiki). (JYM)
/personal | Posted at 1:33am
Thu, Oct 20, 2005
At WikiSym 2005, we had a BoF on WikiStandards, organized by StephanSchmidt, coauthor of SnipSnap. Discussion was spirited, as you might expect, but I think we accomplished a great deal. (JY4)
We began by reviewing a list of things that could be standardized, which was old hat for a lot of folks who've been thinking about this stuff for a while. We quickly decided to move on, because we weren't going to come to agreement in any short period of time. So we decided to agree on a NeutralSpace where we could have the discussion. (JY5)
That discussion was more controversial than I expected. MeatballWiki has been the primary forum for the Wiki community to talk about interoperability, and I and others didn't see any reason for that to change. Some folks felt very strongly about WikiSym being more neutral, and so we ultimately decided to have our standardization discussions there. My guess is that a lot of innovation will continue to happen on Meatball and other places, while the drafting and discussion of standards will happen at WikiSym. (JY6)
So here's the deal. If you're interested in WikiStandards -- and that should be everyone in the Wiki community -- subscribe to the wiki-standards mailing list. There's already been some excellent discussion, and I think we're going to see some real specs soon. (JY7)
/tech/wiki | Posted at 11:37pm
WikiSym 2005 was awesome. Massive props to DirkRiehle and the program committee for throwing an outstanding event and drawing tons of great, great people. With WikiMania last August and WikiSym this past week, the Wiki community is really starting to gel. And it's about time. Can you believe Wikis are 10 years old? (JXD)
Now the bad news: I walked away with some action items. How do I get myself into these messes?! (JXE)
The first action item can be traced back to an ad hoc meeting that happened at WikiMania regarding WikiSpam. On August 6, a group of Wiki developers -- me (PurpleWiki), AlexSchroeder (OddMuse), BrionVibber (MediaWiki), ThomasWaldmann (MoinMoin), SvenDowideit (TWiki), JanneJalkanen (JSPWiki) -- along with JohnBreslin and JochenTopf, got together to discuss ways we could collaborate on fighting WikiSpam. Our goal was to identify the simplest possible first step and not to get mired in process discussions. (JXF)
Since all of us were already maintaining URL blacklists, we decided to merge them and host it as a SourceForge project. We agreed on a standard format (which I'll document and post soon), and we agreed to send our respective lists to Alex, who already has scripts to slice, dice, and merge. (JXG)
One of my action items then was to create the SourceForge project. I did that immediately, but for some reason, the project was rejected. Thus began a month-long go-around with SourceForge support where I tried to discover why they had rejected the proposal. In the end, the project was approved, and I never got an answer as to why it was rejected in the first place. At that point, I was mired in other work, and so I never followed up. (JXH)
WikiSym was the kick in the butt I needed to follow-up. On Sunday, SunirShah hosted an antispam workshop, which about 40 people attended. First, Sunir reviewed techniques (many of which are listed at MeatBall:WikiSpam). Then we broke out. (JXI)
In my breakout, I described what we had agreed on at WikiMania. Then PeterKaminski described a very cute idea he had for making it easy to fight WikiSpam. In a nutshell, Peter suggested we write a simple drop-in replacement CGI wrapper that would filter a POST payload for spam and call the real CGI script -- be it a Wiki, a blog, or anything else -- if the payload were spam-free. Such a wrapper would enable users to install spam-protection for any CGI script without having to write a single line of code and without having to do any complex configuration. It wouldn't require any special access to your web server, since it would just be a CGI script. And you could easily add other spam-fighting measures, such as throttling and IP blacklists. (JXJ)
I thought it was a brilliant idea. So Peter and I sat down afterwards and whipped it up. Took about an hour. It's called Eaton, it works, and it's PublicDomain. PeterKaminski has already blogged about it, and there's some important commentary there from JayAllen, the creator of MT-Blacklist. (JXK)
It's a proof of concept, and it won't scale. It can and should be improved, and I'd encourage folks to do so. Nevertheless, it's pretty cool. Bravo to Peter for a very clever idea. (JXL)
By the way, the first person to figure out the origins of the name "Eaton" wins a cookie. (JXM)
/tech/wiki | Posted at 1:27am
Sun, Oct 16, 2005
With WikiSym about to start, I want to close the loop on an obscure WikiMania item I posted last August. I mentioned something about Fleischbutter. Several folks emailed me asking what it was. (JX8)
It's exactly what it sounds like, folks. The literal translation is "meat butter." More information is available here (thanks to SamuelKlein for spotting this). If folks have pictures of this legendary German dish, please post them there. (JX9)
Speaking of legends, my friend DaveArnold recently forwarded me a valuable resource regarding the Flying Spaghetti Monster. I encourage you all to spread the word. (JXA)
/personal | Posted at 9:49am
Sat, Oct 15, 2005
IdentityCommons has a nifty new logo: (JX4)
More info on IdentityCommons is available at: (JX6)
/collaboration/idcommons | Posted at 11:07pm
Fri, Oct 14, 2005
At BAR Camp, I ran into KragenSitaker who had an idea for a variant on PurpleNumbers called QueerNumbers. Kragen recently blogged the idea (spotted by MatthewOConnor). (JWJ)
In brief, PurpleNumbers are wonderful, assuming the author has generated them. If the author hasn't, you can use a proxy, such as PurpleSlurple. The problem with PurpleSlurple is that the addresses aren't stable. If the author inserts a paragraph into the document, the PurpleSlurple address will point to the wrong place. (JWK)
QueerNumbers solve this problem by generating stable (maybe) identifiers based on some content analysis. Using this algorithm, you can address granular content on any page and feel fairly confident that the link will go to the right place. The level of confidence is still up in the air, as Kragen notes in his blog post. (JWL)
Kragen referenced some work on lexical signatures for persistent naming of Web pages. (Ironically, Kragen didn't have the link, and the original link is broken!) That work was ThomasPhelps and RobertWilensky's RobustHyperlinks, and it's good stuff. (JWM)
Some additional prior art: DougEngelbart once told me that his lab had explored the idea of generating granular addresses through a hashing algorithm similar to Kragen's. (Great minds think alike!) If I recall, their algorithm was less sophisticated than Kragen's, and I don't think they got too far with the idea, but I'll have to double check with Doug to be sure. (JWN)
About four years ago, I met a fellow named AlonSchwartz through Doug. Alon had founded an Israeli startup called BrowseUp, where he had independently come up with ideas such as granular linking and BackLinks, only to discover that Doug had thought of these ideas a half century earlier. Alon was delighted by this discovery and tried to convince Doug to join forces, but Doug wasn't interested in getting involved with proprietary software, and BrowseUp eventually suffered the fate of most DotComs. (JWO)
BrowseUp's product was a proxy server and browser plugin that gave you granular linking, backlinks, and link types to existing web content. It was pretty cool, and it's too bad it never got much attention. Alon used a hashing algorithm to generate unique granular addresses that he claimed were over 90 percent stable across different versions of a document. Of course, he wouldn't tell me what the algorithm was, because the product was proprietary. (JWP)
I think Kragen's onto something good, and I hope he'll turn his idea into code soon so that we can start playing with QueerNumbers in earnest. (JWQ)
/tech/purple | Posted at 11:21pm
EvanHenshawPlath thinks that PurpleNumbers are ugly. He's not the first. (JW1)
A bit of history. The original PurpleNumbers were a dark purple. Then MurrayAltheim came up with a brilliant idea. Let's make them lighter! So he did. That was better, but it wasn't enough. (JW2)
As ChrisDent and I started taking the identifier scheme to the next level, blogs started becoming popular. PermaLinks, as rabble and others have pointed out, are granular addresses. Because our new identifier scheme was uglier by design (universally unique IDs can get quite large), we decided to jump on the blogging bandwagon and use hashes instead. (JW3)
Then a funny thing happened. PeterYim, a long-time Engelbart follower and an avid PurpleWiki user, complained. A lot. He said it was too hard to figure out what the links were. And as much as I tried to ignore him, I couldn't. He was right. Or, more accurately, we were wrong. So we changed it back. (JW4)
Our decision to go with hashes was wrong specifically in the context of PurpleWiki. Wikis are wonderful because you can LinkAsYouThink. This is possible because page names are automatically linked, and it's easy to remember page names. We added syntax for easily linking to PurpleNumbers (for example, PurpleNumbers#G3). The problem was that when we replaced the addresses with hashes, we made it harder to LinkAsYouThink. (JW5)
With WikiSym coming up in a few days, I've had Wikis on my mind big-time, and I recently had an epiphany. It turns out I was wrong about being wrong. (JW6)
The identifiers underlying PurpleNumbers are designed to be stable, unique, and meaningless. In other words, not human-friendly. The notion of linking to PurpleNumbers via our extended Wiki syntax isn't tremendously useful, even if the identifiers are easily visible, because they're impossible to remember. You're rarely going to LinkAsYouThink, because you'll most likely have to go to the page to check what the number is. If you're going to do that, you might as well just cut-and-paste the link, the status quo of the web. (JW7)
PhilJones almost stumbled onto something quite profound in his commentary last May, but he couldn't quite put his finger on it, and Chris and I consequently jumped all over him. We were right, of course, but Phil was onto something. (JW8)
In a Wiki context, here's the right way to use PurpleNumbers. By default, PurpleNumbers should look pretty. So far, the best scheme I've seen for this is SimonWillison's nifty CSS hack. If folks want to link to a PurpleNumber in a Wiki, they can do it the way you do it anywhere else -- get the link address by clicking on the number (or hash or paragraph symbol or whatever), and copy-and-paste it into your document. (JW9)
However, the Wiki should add an additional feature: the ability to add a human-friendly label to any paragraph. Some Wikis implement this capability by using special WikiText tags, but you should be able to implement this using AJAX goodness. (JWA)
In other words, suppose you're reading a Wiki page, and you find one paragraph particularly compelling. All you do is click on the paragraph and add your human-friendly tag. Let's say the page is DeepThoughts and you enter the label indeed. The label should appear next to the paragraph, and anytime somebody wants to link to that paragraph, they just type DeepThoughts#indeed. (JWB)
Here's where it gets cute. Doing this feels like tagging. You're just tagging granular content instead of documents... which is what PurpleNumbers are designed to enable in the first place. So, make the label a tag across the entire Wiki. In other words, if you click on the label indeed, you get a search page showing all paragraphs on the Wiki that have been tagged indeed. If you really want to be cute, you can make it a TechnoratiTag so it gets crawled. (JWC)
This makes cosmic sense. Both Wikis and tagging work when labels are not unique -- the exact opposite requirement of PurpleNumbers. You want namespace clash, and Wikis and tagging give you that. This way, you get the best of all worlds. You still have the immutable, unique PurpleNumbers, but now they're not so ugly. You also get LinkAsYouThink granular addresses and granular tagging. Everyone wins. (JWD)
(By the way, rabble, looking forward to seeing pretty PurpleNumbers in typo!) (JWE)
/tech/purple | Posted at 10:25pm
ScottMcMullan uncovered this great quote on the craft of building, one that's as applicable to software as it is to buildings: (JVV)
The Craftsman type of building is largely the result not of elaboration, but of elimination. The more I design, the more sure I am that elimination is the secret of beauty in architecture. By this I do not mean that I want to think scantily and work meagerly. Rather, I feel that one should plan richly and fully, and then begin to prune, to weed, to shear away everything that seems superfluous and superficial. (JVW)
--GustavStickley, More Craftsman Homes (1912) (JVX)
/tech/programming | Posted at 9:40pm
Open Sources 2.0 is out. Contributors include yours truly (my chapter's also available online), MitchellBaker, DocSearls, StevenWeber, SonaliShah, and many, many others. Buy it today. (JVL)
/books | Posted at 5:42pm
Mon, Oct 10, 2005
A few weeks ago, EvanHenshawPlath was explaining to me his epiphany about 43people, where an aggregation of different services tied together by SocialNetworks was starting to look very compelling. He then said that the next natural step for the folks at The Robot Co-op was calendaring. If anyone knows about calendaring, it's Evan, who started a calendaring company with KellanElliottMcCrea in a past life. (Evan, you need PurpleNumbers in your blog. Everyone needs them, dammit!) Trying to find relevant event information works much better when tied to SocialNetworks. Folks are starting to recognize this en masse, and the industry is reacting accordingly. (JV3)
In an ideal world, SocialNetworks wouldn't be tied to a particular site. Instead, that information would be distributed, and users would control the distribution. I'd love to tie my Google searches with my social network profile at LinkedIn, for example. That's not going to happen unless Google acquires LinkedIn, or unless there are specs and a culture for distributed data sharing. (JV4)
The culture is the tricky part. For as long as I've known him, RossMayfield has had an email signature that says what recipients are allowed to do with that email. (The choices are "bloggable," "ask first," and "private." I think "ask first" is his default.) That, my friends, is a link contract. (JV5)
AndyDale has been working on the technical details of distributed data sharing with his XDI work. XDI is hairy stuff, but it's graspable. Recently, Andy blogged about the form that link contracts and data sharing agreements might take. VictorGrey has said many times that we need a CreativeCommons for data sharing agreements -- simple, understandable, reusable, and legally enforceable contracts for our data. (JV6)
That's just a start. What will the user interface for specifying these agreements look like? Will users pay any more attention to these then they already do to Terms of Agreement on web sites? (JV7)
/collaboration/idcommons | Posted at 6:18pm
GailTaylor once explained to me her philosophy of designing large-scale events. If you have a large enough group, you will generally have all types of people, from obnoxious type-A personalities who dominate the conversation to thoughtful facilitator-types (whom she would call YellowThreads). (JV0)
If you're designing an event for such a group, facilitation is more a result of your design than of designated facilitators. The trick is to mix people up and create an environment where folks facilitate themselves. Active facilitation of a large, diverse group is a pretty good indication that you've failed in your design. It's not that it can't work, it's just that you're not maximizing group potential. (JV1)
Gail told me a story about an event she facilitated for a large company, where several of the higher-level executives were being uncooperative and impeding the entire process. Her solution? She didn't admonish them or intervene with their breakout groups. She simply assigned them to their own breakout group and let them go. By the end of the event, everyone had achieved their objectives successfully except for that small group of executives. More importantly, these folks realized and acknowledged first-hand their failures and failings. (JV2)
/collaboration | Posted at 4:51pm
Yet another lesson on collaboration from the world of sports. In yesterday's LosAngelesTimes Sports page, KenWilliams, GM of the ChicagoWhiteSox, explained his working relationship with the team's manager and the rest of the staff: (JUR)
"While you want people to push in the same direction, not to the point where they're acquiescing," Williams said. "If you've got a situation where you're waiting for Kenny to speak, that's a dangerous situation." (JUS)
(The LosAngelesTimes needs PurpleNumbers, dammit!) (JUT)
There's a valuable lesson in Williams's words that applies especially to large-scale collaboration. All too often, when folks in large communities want to rally around some concrete project, they say, "We should all agree," when what they mean is, "You should all agree with me." If the latter happens, more power to you. It generally won't. (JUU)
Effective collaboration happens when people push towards a common (and finite!) goal together. If they have to be pulled, it's not effective. (JUV)
/collaboration | Posted at 4:34pm
MikeMell and I were IMing today about a project we're working on together, and he said off-hand that he'd like to be more rigorous about writing unit tests. His comment struck me, because I've been hacking PurpleWiki again after being away for literally months, and once again, unit testing has made my life considerably easier. (JUO)
I've written about unit tests before, using PurpleWiki as an example. Writing them can be a serious pain, especially when you're on a coding roll, and I've been known to cheat. But the more you refactor or code intermittently (as I'm prone to do), the less inclined you are to cheat in the future. (JUP)
Unit tests are the ultimate in peace of mind. There's just no reason not to use them. (JUQ)
/tech/programming | Posted at 3:54pm
Tue, Oct 04, 2005
Today, my nephew, ElliottMarcellusWatras, turns one. In honor of his first birthday, he's guest blogging today. -EEK (JU6)
A few weeks ago, I was napping peacefully in the car, when I heard this clicking noise. I opened my eyes and saw this strange looking fellow taking pictures of himself and staring at me. As soon as I woke up, he started gurgling at me inarticulately. I was wondering how this freak got into the car and was about to use my newly acquired motor skills on his crazy butt. Then Mommy explained he was my uncle. Shakespeare once wrote that blood was thicker than water. I'd be a fool to ignore the Bard, so I decided to give my uncle a chance and to get to know him better. (JU7)
Uncle and I had a pretty good time together. He gave me this sweet bowling set for my birthday with stuffed animals for pins. I couldn't quite get the hang of actually rolling the ball, so I pretended I was Godzilla and swatted away the pins myself. Then he taught me how to give him a five. At first, I thought he had gone nuts again, but the experience grew on me. (JU9)
I showed my newfound affection for uncle by head-butting him repeatedly. For some reason, he found that hysterical, so from then on, I greeted him every morning with a head-butt. (JUB)
Uncle let me play with his iBook. He started telling me about how Firefox was the best browser out there. I tried to tell him that while usability played a critical role in its success, the real potential is in Mozilla as a platform. Uncle responded by singing a silly song. I can't believe people pay this guy for his brains. I did enjoy the song, though. (JUD)
Mommy, Daddy, Uncle, and I went to Camp Washington for some CincinnatiChili. I got hungry, so I powered through a package of oyster crackers. Daddy said he had never seen me eat solid food like that on my own accord and that I was one step closer to becoming a man. Then Daddy and Uncle started getting teary-eyed. Apparently, the man gene sometimes skips a generation. Then again, you wouldn't know it from watching them eat. (JUF)
Uncle saw me flirting with some two- and three-year old girls at the zoo, and he told Mommy and Daddy that I would be trouble when I got older. Then he and Daddy started arguing about where I got my "player" genes. Mommy just looked pained. I used to think she only got that face around Daddy, but apparently not. (JUH)
All in all, Uncle was an okay guy. I especially enjoyed chewing on his glasses. (JUI)
Okay, back to my nap! (JUK)
The day after I got home, I called my sister and asked to speak to Elliott. Upon hearing my voice, he started head-butting the phone. I love that kid. Happy Birthday, Elliott! Can't wait to see you again. -EEK (JUL)
/personal | Posted at 2:55pm
A blog about collaboration, community-building, and the various goings-on at Blue Oxen Associates, with occasional digressions on food and other vital matters.
May 2009 (3)
April 2009 (2)
March 2009 (3)
February 2009 (4)
December 2008 (1)
October 2008 (2)
August 2008 (1)
June 2008 (2)
April 2008 (1)
March 2008 (2)
February 2008 (10)
November 2007 (14)
October 2007 (4)
September 2007 (3)
August 2007 (7)
July 2007 (2)
June 2007 (7)
May 2007 (10)
April 2007 (14)
March 2007 (17)
February 2007 (12)
January 2007 (9)
December 2006 (3)
November 2006 (11)
October 2006 (23)
September 2006 (20)
August 2006 (22)
July 2006 (5)
June 2006 (19)
May 2006 (8)
April 2006 (5)
March 2006 (12)
February 2006 (10)
January 2006 (6)
November 2005 (14)
October 2005 (14)
September 2005 (10)
August 2005 (21)
July 2005 (2)
May 2005 (10)
April 2005 (7)
March 2005 (3)
February 2005 (7)
January 2005 (8)
December 2004 (5)
November 2004 (11)
October 2004 (7)
September 2004 (1)
August 2004 (9)
July 2004 (16)
June 2004 (1)
May 2004 (3)
April 2004 (8)
March 2004 (8)
February 2004 (12)
January 2004 (8)
December 2003 (12)
November 2003 (12)
October 2003 (3)
August 2003 (15)
July 2003 (20)
Blue Oxen Associates
The Watering Hole
Hyperscope
Blog Roll
(via Bloglines)
extisp.icio.us