connolly's blog

Fun with Policy Aware Web at UMD, AFS/SVN at CSAIL

Submitted by connolly on Mon, 2006-01-23 11:13. :: | | |

My January travel took me to MIT for a one-day DIG meeting where the main thing I can remember is discussion of CSAIL's support for SVN over AFS, and moving development of tabulator and dbview there so that students can commit without write access.

Then it was off to DCA for a Policy Aware Web project meeting where we reviewed the status of the demo, which is moving along nicely aside from a persistent problem in the cwm proof generation/checking stuff, somewhere near a unification algorithm. We developed a 4-party federated authorization use case involving OpenID and stuff. Stay tuned to see if we can build it...

I spent most of Friday afternoon trying to get ssh+svn to write to an AFS volume. I could get my kerberos credentials to go accross the ssh connection, but I can't seem to get the right AFS credentials while I'm at it.

postscript: Chris helped me get it working. The undocumented trick was setting the option "GSSAPIDelegateCredentials" to "yes" in my ~/.ssh/config.

Arpeggio in D, a little three chord ditty

Submitted by connolly on Mon, 2006-01-09 17:58. ::

I ran across Ping on improvisation the other day. It seems he learned to play mostly from sheet music. I mostly learned by playing in a music group at church. I learned a few chords in a classroom setting, but mostly, I would sit down in the church group and George or Rudy would lead the group and I would try my best to follow. My crowing achievement was one day when neither of them was available; it was just me and a gal on flute, and we pulled it off. Unlike my friends with real talent that learned to play better than I ever will in their first year, it took me at least five years to achieve that level of competence on folk guitar. I need to hear the song and see the chords before I can play it. My ear training is proceeding very, very slowly; it took me years to learn to tune my own guitar.

I have picked up several guitars over the years, but it was years of wishing before we got a piano for our house this year. It was out of tune enough that I could tell, and I had to leave it that way for a month while it settled. On the day of the tuning appointment, I was tidying up the piano room a bit and I couldn't help but sit down and plunk around a bit. The piano tuner came in and asked if I was the piano player in the house; I said no, not really; my son was taking lessons; I just fake it, using my basic three-chord guitar sense. I was relieved that he didn't sneer at this approach, but rather agreed that they should teach chord progressions and the like to beginning piano players. In Ray, there's a flashback that shows him learning more that way.

Anyway, I found Ping's piece on music just as I was running out of steam for technical work, so I headed down to the piano and worked on a few of the easier pieces of my guitar music. I goofed or got frustrated with one or something... and then I wandered into this 1-5-1 bass arpeggio* thing in D... first just I/IV I/IV... then before long the V chord (A) shows up... and after that got monotonous, a Bm bridge showed up. And then I could hear a melody in my head. I can't play well enough to do both the melody and the bass line at the same time, but going back and forth, I sorta worked it out: a bit of sheet music

On the one hand, it's so simple that it's sort of embarrassing to call it an original composition. But it's not every day that my muse visits me this way, and I'm so in the habit of sharing in the Web that I started thinking about all the issues around music markup in the Web.

I'm not talking about mp3 vs ogg; I'm talking about sharing something editable:

There are very few data formats I trust... when I use the computer to capture my knowledge, I pretty much stick to plain text, XML (esp XHTML, or at least HTML that tidy can turn into XHTML for me), RCS/CVS, and RFC822/MIME.

I use JPG, PNG, and PDF if I must, but not for capturing knowledge for exchange, revision, etc.

GarageBand is a blast; I'm really afraid of becoming addicted to it and locking up all my music in there. Version 2 has support for western music notation. Plus, it lets you record tracks separately and mix them. So I gave that a whirl; you can listen to arpeg-d.mpg, mistakes and all; but there doesn't seem to be any way to get the music notation out of GarageBand. The extraction of data created in GarageBand does not appear to be an easy task -- Dent du Midi FAQ.

This is not the first time I have been in this position; I wrote a few songs in college and transcribed them on my Macintosh SE circa 1988. When I recovered the files a couple years ago, I searched for a more modern format and found ABC music notation that is editable and convertable to postscript sheet music and MIDI; fortunately, the Studio Session format documentation survived and I could write a a python ditty to convert my data.

So tonight I captured Arpeggio in D for sharing:

... and a makefile to tie them together. I haven't really decided on the melody for the bridge, and abc2midi doesn't grok the bass cleff extension so the bass should sound two octaves lower. But there you have it.

* reading up on musical terminology, I see that I'm perhaps misusing the term arpeggio; it's really a broken chord.

see also: advogato item, notes on debian linux and music tools

On Google, Jabber, and Jingle and good and evil in IM and IP networks

Submitted by connolly on Tue, 2006-01-03 16:32. :: |

The 14 December jingle announcement gives a hint into google's approach to adding voice to their Google Talk offering. Actually, it gives quite a bit more than a hint; it comes with a jingle spec and an open source library implementation.

Google Talk has had pretty good "do no evil" karma since it started. The dominant commercial IM services (AOL/Yahoo/Microsoft) are each a world unto themselves. Your AIM screen name is just jim47 or whatever, not like an email address, and while clients like trillian and gaim can connect to them all, that's not something the big three encourage. Google Talk uses gmail addresses and the Jabber/XMPP protocol, which has the same network topology as email. While google isn't opening their service to actual server-to-server federation until they get a better handle on some operational issues (think: spam), they are using open protocols and they actively support gaim development.

Apple's iChat uses Jabber at some level too, though I haven't worked out the interoperability issues in practice. I think the last time I tried was before the Tiger release of OS X, when the Jabber support was much more under-the-covers.

The popularity of multi-protocol clients like gaim and trillian surprises me: after all, you can't have one chat room with AIM and MSN messenger users connected. Evidently this just not a big deal. "IRC and instant messaging are very different paradigms," says the Adium X: IRC Howto. I guess I'm just too old school to get it; in the internet relay chat usage that I'm used to, channels (aka chat rooms) are the norm and private channels are the exception. I gather IM is the other way around. I have played with Jabber's support for bridging to other networks, but I have yet to find a reliable combination of:

  • a jabber client with bridging support that I can figure out how to use
  • and either
    • server software with bridging support that I can figure out how to use, or
    • an existing service with bridging support that I can use and trust (since my credentials pass thru their service)

The Jabber protocol has lots of pieces and extensions an such. There's a whole JEP process, in addition to the XMPP process where jabber technology feeds into the IETF. I don't quite have my head around the whole thing. I discovered that there are older and newer protocols for doing chat rooms in jabber that don't mix well. I wonder which of them, if either, the IETF has endorsed. An XMPP summary shows JEP-0045 for Multi-User Chat but no RFC. And I don't see XMPP among IETF Working Groups any more. I wonder what's up. The xmppwg mailing list archives show pretty recent activity.

The $2.6Bn aquisition of skype by Ebay shows the value of networks of IM and voice users. Skype has a novel topology based on the same p2p designers that did Kazaa. As I understand it, they mostly use the p2p network for firewall traversal, which is the biggest problem, in practice, with deploying consumer voice chat. They keep the protocol details to themselves, though, and they have the only implementation, as a consequence. They have a centralized user directory too.

In my visit to the 62nd IETF in Minneapolis, MN, I learned what a sore spot firewall traversal is in Internet standardization. "Just use IPV6 and don't waste your time with those kludges" goes the one side; "but NAT works today" goes the other. Ugh. And since W3C started working more actively with developing countries, I hear more about the political aspects of IPV6. In the 1st world, we can dismiss claims that IPV4 addresses are running out as technically overblown, since we can afford to pay for the management fees and the NAT boxes. But the scarcity is a real economic issue in the developing world; plus it concentrates power in a way that engenders distrust.

Back to network topologies... the fact that Jabber has the same topology as conventional (SMTP) email means that it's subject to the same sorts of spam issues. I wonder if anybody has considered the IM2000 approach of redesigning the mail system as a pull delivery rather than as a push delivery system, so that recipients no longer bear the costs of receiving and storing unwanted messages. In an IM2000 world, senders have to hold still long enough to deliver a message, which makes it much easier to hold them accountable for nastiness.

frbr:embodiment is enough without frbr:embodimentOf, no?

Submitted by connolly on Wed, 2005-12-28 12:25. ::
In #swig discussion today, I (re?)discovered Ian Davis's FRBR and RDF. Nifty stuff, but this business of making two properties for each relationship (embodiment and embodimentOf) seems like a bad idea... an AntiPattern, even. Let's see if HasPropertyOf stands the test of WikiConsensus.

I tried to note this as a comment on Ian's item, but comments are closed. I wonder why.

upgrade to CivicSpace?

Submitted by connolly on Wed, 2005-12-21 18:05. :: |

Hmm... the list of CivicSpace modules looks pretty interesting; TinyMCE is already on my breadcrubms todo list. Maybe just grab them all at once?

The RSVP module looks interesting; does it work across sites somehow? or is it centralized?

Drupal, OpenID, and the Mac OS X Keychain

Submitted by connolly on Mon, 2005-12-19 16:12. :: | | |

Managing passwords via email callback is hampered by anti-spam mechanisms. I just helped a breadcrumbs user whose password message from drupal was classified as Junk by Mac OS X Mail.

Meanwhile, I did enough research on the Mac OS X keychain to trust it. Support for OpenID in drupal is already in the OpenID wish list and I've see some progress.

It's not obvious to me how to connect the keychain to OpenID, but I'm sure there's a way. Any suggestions?

Connecting DIG Student Projects to the MIT UROP listing

Submitted by connolly on Mon, 2005-12-19 00:51. :: | | |

A couple MIT students have found their way to the #dig channel and asked about UROPs during IAP. I'm still learning about student rhythms at MIT; I was never a student here; I got my degree at U.T. Austin. My ten years with W3C has exposed me to the terms UROP and IAP before, but I have paged most of it out. Let's refresh our cache, shall we?

The Independent Activities Period (IAP) is a special four week term at MIT that runs from the first week of January until the end of the month. IAP 2006 takes place from January 9 through February 3.

IAP overview

In UROP info for supervisors, I see there's a form for listing projects. Hey... it would be cool if the student projects category here in this blog were automatically syndicated via that form. A meta-student-project?

Meanwhile, we do have a few notes on student projects among our DIG info for MIT students.

I'm not sure how items syndicated from Danny/Eric via the WordPress plug-in can get categorized; I suppose we can do it manually, after-the-fact?

I see a bunch of UROP openings for this time of year. The Building Games to Acquire Commonsense Knowledge project looks cool.

NOTE: It is expected that UROP students are supervised in the laboratory at all times, per the Institute's "no working alone" policy .

UROP safety isses

Sounds a bit like a "no coding alone" policy that I've been pushing around W3C and DIG, since discovering the value of pair programming, or a variant of it.

Brought my hockey skates with me this time

Submitted by connolly on Thu, 2005-12-15 11:06. :: |

A couple years ago, my flight to BOS for some meeting (the TP?) got me in at about 8:00 on a Tuesday night. I arrived with no plans for the evening, and couldn't scare up anything interesting to do. When I got to CSAIL/stata the next day, I found a flyer about csail hockey on Tuesdays. Darn! If only I had known!

On another trip to BOS about a year later, I managed to get out on the ice with them. The format was great: there's one group that knows what they're doing (the "B/C line"), and another group that tries not to fall down too much (the "D line"). The B/C line goes out there for 2.5 minutes and then a whistle blows and they all clear the ice, and the D line (including me) fumbles around for a 2.5 minutes, and the cycle repeats. After an hour of that, I was totally exhausted.

I was using all borrowed equipment, and I think the skates didn't fit me well.

So this time, I brought my skates. Yes, that meant trusting the airline with checked baggage, something I haven't done for years.

This trip took me to Montreal for a big W3C membership meeting and then to CSAIL for a TAG meeting. There's a rink in 1000 de La Gauchetière across the street from the meeting hotel, and I got in a couple hours on Saturday. Then during the TAG meeting lunch break on Tuesday, I did some skating at MIT Johnson ice rink.

the MIT hockey team takes the ice That evening, I watched the MIT varsity hockey team play a pretty exciting, high-scoring game; it ended in a 5-5 tie (see mobolg photos).

And finally, at 11pm Tuesday night, I played CSAIL pick-up hockey with my own skates. This time, there was no separation of D skaters from B/C skaters. I figured out that my main job was to get out of the way when they started skating real fast (I know from coaching little-league soccer what a waste it is for two attacking players to be taking the same lane). I think I made one or two useful defensive plays, and when the puck was passed to me a handful of times, I think I passed it to one of my team-mates more often than I gave it to the other guys.

Though I didn't feel as completely wiped out as last time, I did get a good work-out, and since the game ended around midnight and I got back to my hotel around 1am, that 7am alarm for my flight the next morning came pretty early.

tags pending: travel. Hmm... how to connect to earlier episodes: to Edinburgh for September TAG meeting, Atlanta in November for XML2005.

Toward better documentation of some schemas for the W3C digital library

Submitted by connolly on Wed, 2005-12-14 13:09. :: |

In the W3C formalized digital library, we supplement the dublin core with a formal model of the W3C Rec-track process and various other schemas.

They were orginally written in N3, and published as RDF/XML. We've tried using CSS to make the RDF/XML browser-friendly, but in N3, it's a royal pain to make a hypertext link from a description of a class or a property, and I'm not even sure it works at all with RDF/XML+CSS. I pretty much prefer using XHTML as the source of most of the knowledge I record, and now that GRDDL is maturing, I revisited my work on representing RDF schemas in XHTML.

And since converting from N3 to XHTML is something the machine can do for me, I'd hate to do it any other way.

To convert the class relationships to an indented list, I want

  • all the implicit class relationships, not just the stated ones, but
  • only the direct super/subclass relationships, not the indirect/redundant ones

My working solution, classReport.n3, uses this rule to get the class relationships implied by RDFS semantics:

@forAll C, C2, SCHEMA, X, P, V.

  SCHEMA a Schema; copy ?SC.
    log:conclusion ?F
} => { SCHEMA rdfsClosure ?F }.

... and here are the rules for making the tree:

  SCHEMA a Schema; rdfsClosure ?F.
  ?F log:includes { C a rdfs:Class }.
  C log:racine SCHEMA.
  ?F log:notIncludes {
    C rdfs:subClassOf [ rdfs:isDefinedBy SCHEMA].
} => { SCHEMA root C }.

# direct subclasses
{ ?S a Schema; rdfsClosure ?F.
  ?F log:includes { C rdfs:subClassOf C2 };
     log:notIncludes { C rdfs:subClassOf [ rdfs:subClassOf C2 ] }.
} => { C rdfs:subClassOf C2 }.

I use a utility classDef.n3 to connect classes to schemas:

{ ?C a rdfs:Class.
  ?C log:racine ?DOC
} => { ?C rdfs:isDefinedBy ?DOC }.

Note this only works if you use the HashURI pattern.

I'm pretty happy with the result so far, though I've only got classes, their labels, and the subclass relationships, so far:

  • Advisory Committee representative action
    • A.P. review
    • Org. Joins
    • PR review
    • nomination
  • Notice to AC
    • Activity Creation
    • Activity Proposal
    • CFI
    • CFP
    • Call for Review
    • Rec. dd
  • Activity Statement
  • supersed Work
  • a W3C Technical Report
    • Candidate Recommendation
    • W3C Note
    • W3C Proposed Edited Recommendation
    • W3C Proposed Reccommendation
    • W3C Recommendation
      • first Edition of a Recommendation
    • W3C Rescinded Recommendation
    • W3C Working Draft
      • Last Call WDWD in Last Call
      • WD not longer in development
  • Working Group action
    • CR req.
    • Impl. Evidence
    • Last Call Ann.
    • PR req.
    • WD req.

Toward richtext syndicated feed

Submitted by connolly on Wed, 2005-12-14 12:25. :: | | |

Our RSS feed is plaintext, so when it's syndicated in Planet RDF and the like, there are no links or pictures or even paragraph breaks.

From #swig discussion, I gather that the state-of-the-art is to use nasty escaped markup, but I'm not up for that. The RDF Core WG didn't spend 18 months getting the details of parseType="Literal" right for nothing, did we?

I don't know if there are drupal modules available that Do The Right Thing, and due to my PHP angst I don't really want to know. But maybe there's a motivated student out there... ?

Syndicate content