Monday, November 23, 2009

Twitter Retweet Follow/Unfollow

I really have only one thing to add to the ongoing discussion of the new Twitter Retweet integration, other than the obvious, that I use a third party client so I don't really care.

I am noticing that when somebody in my network retweets somebody who is not in my network from the Twitter home page, I see:
  1. the retweet,
  2. a message telling me "Wondering who this is? Someone you follow thought this was worth retweeting, which is why you are seeing it in your Home timeline."
Is this valuable? Perhaps! The obvious reason is that I may want to follow the person who is being retweeted... but the more obtuse value? I may want to unfollow the person who is doing the retweeting, based on the people with whom they keep company. This may actually be more valuable to me in the long run.

If Twitter gave me the option to follow the person I am not following, or unfollow the person I am following, I would absolutely love this feature.

Saturday, November 21, 2009

More Semantic Silliness

<object>
<span property="dc:creator">Dan Brown</span>
<span property="dc:title">The Du Blinci Core</span>
</object>

...in which Tom Hanks plays a singleton node who discovers that he is somehow miraculously able to hold content, assisted in his search for meaning by Audrey Tautou, who along the way learns to re-purpose several hitherto erstwhile under-appreciated property attributes.
Sir Ian McKellen turns in a riveting performance as a priest who is actually an xml spy utilizing a Saxon transformer-implementation.

This perhaps is a film I would enjoy....

Friday, November 20, 2009

Sketches for a Group Membership Vocabulary

(Or the Strange Tale of RDFa and the Room with Two Doors)

I am sketching these ideas out here because I think they may be useful at some point, and I would really appreciate feedback; if this sort of vocabulary is already available somewhere, please ping me and let me know. And I'm going to save the RPG analogy for the end, because I know these can be deterrent. [ed. whatever! skip to the jump; it's funny!]

An activity I have had to address on several projects now involves profiling or gate-keeping groups of people or objects for the purpose of authorization or processing. For instance, in a CRM application, it might be necessary to tag potential customers as prospects, clients, inactive, etc. Or for a workflow application for a working group, it might be necessary to track people who are actively developing, people who have left the group, but are still useful resources and so on. I have yet to see a reasonable vocabulary for tracking these people. If such a vocabulary exists, I am sure it has many uses in a variety of contexts.

This vocabulary would have the following component(s):

Membership Status (mg:status):
This is the status of an individual, group or artifact within a larger community, given the following states, which should be mutually exclusive:
  • unknown - this is a nicety and not essential. Undefined.
  • prospect - potential only to be a group member.
  • candidate - selected by an automated process to become a group member, but not one yet.
  • nominee - recommended to become a group member by an existing member.
  • initiate - has completed self-registration etc, but not yet a group member.
  • member - an active member of the group.
  • banned - removed from group by process with proviso of reentry.
  • permban - removed from groupt by process with no proviso for reentry. TERMINAL.
  • alumnus - a non-active former member of the group. TERMINAL.
  • permanent - a member that can never be removed from the group. TERMINAL.
This list is likely not complete, but it represents a fairly typical group workflow model. When you enter the system, you are unknown, and are "promoted" to membership. At this point, you are ripe for the picking. At some point you may reach a terminal, but the majority of people will probably reside in the prospect and member categories.

So here is the RPG example:
A group of adventurers is exploring a location, when they reach two doors, one red and one blue. At this point, with respect to each of the doors, the two rooms could be described using the following RDFa-like pseudoterminology:

<room id="behind_the_red_door">
<member id="adv1" property="mg:status" content="prospect"/>
<member id="adv2" property="mg:status" content="prospect"/>
<member id="adv3" property="mg:status" content="prospect"/>
</room>


...and similarly for the room behind_the_blue_door.

Now, one of the adventurers discovers a key to one of the doors. At this point, this adventurer becomes content="candidate", whereas the other adventurers become content="intitiate" - they have an understanding of how to enter, but only the first adventurer has the key. However, since the door is now unlocked. Sicne the door is locked, only candidates can enter. When the first adventurer unlocks the door, the state of the room changes such that now candidates and initiates may enter (the state of the door in this case might be handled by a separate vocabulary - also this example hinges painfully poorly on the assumption that once unlocked, a door cannot be relocked).

At this point, adv2, the knight steps forward and enters the room:

<room id="behind_the_red_door">
<member id="adv1" property="mg:status" content="candidate"/>
<member id="adv2" property="mg:status" content="member"/>
<member id="adv3" property="mg:status" content="intitiate"/>
</room>


Naturally, the brave knight discovers that the room is full of a poisonous gas, and sensibly flees. The group of adventurers investigates the second door:

<room id="behind_the_blue_door">
<member id="adv1" property="mg:status" content="prospect"/>
<member id="adv2" property="mg:status" content="prospect"/>
<member id="adv3" property="mg:status" content="prospect"/>
</room>


Fortunately, the same key unlocks this door as well, and the door is unlocked. The knight is less enthusiastic, so the curious wizard enters the room.

<room id="behind_the_blue_door">
<member id="adv1" property="mg:status" content="candidate"/>
<member id="adv2" property="mg:status" content="intitiate"/>
<member id="adv3" property="mg:status" content="member"/>
</room>


So far so good. Mind you, this room is full of a tasteless and odourless poisonous gas, but nobody seems to have noticed. The wizard beckons to his companions to enter the room:

<room id="behind_the_red_door">
<member id="adv1" property="mg:status" content="candidate"/>
<member id="adv2" property="mg:status" content="alumnus"/>
<member id="adv3" property="mg:status" content="initiate"/>
</room>
<room id="behind_the_blue_door">
<member id="adv1" property="mg:status" content="member"/>
<member id="adv2" property="mg:status" content="member"/>
<member id="adv3" property="mg:status" content="member"/>
</room>


And now the diabolically cunning design of the room becomes painfully clear, as the combined effect of the gases in the two rooms becomes apparent, and the unfortunate knight, who has membership || alumnus status for both rooms, turns into a pillar of salt.

<room id="behind_the_red_door">
<member id="adv1" property="mg:status" content="candidate"/>
<member id="adv2" property="mg:status" content="alumnus"/>
<member id="adv3" property="mg:status" content="initiate"/>
</room>
<room id="behind_the_blue_door">
<member id="adv1" property="mg:status" content="alumnus"/>
<member id="adv2" property="mg:status" content="permanent"/>
<member id="adv3" property="mg:status" content="alumnus"/>
</room>


So ends the story of "RDFa and the Diabolic Room with Two Doors."

Thursday, November 12, 2009

My Morning Archive

I am currently listening what I consider My Morning Jacket's finest live recording, live at the Palace in Louisville, KY, 2005-11-23, recorded nearly four years ago. I can tell you several things about MMJ:
  1. Michael Mahemoff has written about Ajax design patterns, and has used MMJ as the intro to a podcast on the subject; also, follow @mahemoff on Twitter if you are so inclined.
  2. MMJ are fans of the movie Ghostbusters, and have often played the Ghostbusters music pre-show. In the recording to which I am listening, they refer to "busting ghosts."
  3. The recording I am listening to fits nicely onto a single CD if you strategically remove one song, otherwise, it splits nicely into a double CD. You supply the cover art.
The recording to which I am listening does not in fact have cover art, because it was downloaded from a selection of many live recordings archived at Internet Archive (archive.org) with the consent of the band. It was captured from a live radio broadcast, and contains a minimum of audience noise or flubbing. In my opinion, it is clearly superior to the live album released by the band's record label. I have listened to this recording around 100 times.

If you want to download the recording, check out archive.org. It will be there, because the Internet Archive is an archive of artifacts; nothing ever goes out of print on IA. In fact, Internet Archive is wholly remarkable, largely because of the vision of one person, Brewster Kahle. Look him up on Wikipedia. You could even use the Wayback Machine at IA to do so, because the entire internet is backed up there. This is kind of misleading. It's actually also backed up by the same organization as a secondary backup in Alexandria. How cool is that?

Also, the Internet Archive is poised to deliver some amazing things in the future, as well as the past. If you are not paying attention to IA, and you are interested in the future of culture, books and reading, pay attention, and do some research on the Open Content Alliance, archive.org, Open Library, Book Reader and Brewster Kahle. You will not regret this.

Tuesday, November 10, 2009

Tab Sweep 2009-11-10

For whatever reason, I have been reading up on Provenance Models recently (semantic models and vocabularies for tracking sources of truth, ownership and creative process), also a directory of book trade people on twitter and a post-modern literary review. Because this is NaNoLnkMo for me, and because I believe URLs should be human-parsable, I am not going to link to these. I am however going to close these tabs now so I can get some work done.

[http://eprints.ecs.soton.ac.uk/16148/1/opm-v1.01.pdf]
[http://dig.csail.mit.edu/TAMI/harveyj/provenance-final/paper.pdf]
[http://www.highspotinc.com/blog/2008/12/a-directory-of-book-trade-people-on-twitter/]
[http://www.fictionweek.com/fwliteraryreview/fictionweekliteraryreview.html]

Sunday, November 08, 2009

Instant Metafiction

It has been a hectic month so far, for a variety of reasons, and I'm glad that I deferred/diverted my plans for National Novel Writing Month this year. Kudos to all of you who are participating, and particularly to those of you in the Weblit community who are simultaneously keeping up with serialized writing. This is quite frankly an amazing achievement!

Several months back, I invested some time (okay, a weekend) in developing a framework for what I call "Instant Metafiction" - which I was planning to use for NaNoWriMo this year. I have mentioned this before, but, because I want to capture the project properly before moving on (and eventually taking it to the next level), I am going to describe it in a fair detail here.

The idea was to make it possible to create a finished product resembling metafictional works inspired by David Foster Wallace's Infinite Jest and Mark Danielowski's House of Leaves, which are characterized by narratorial insertions like footnotes, endnotes and sidebars. To do this, I would use a source document conforming to the DocBook document specification, typically used for technical manuals, which provides ample opportunity for annotation.

Using this approach, I could then use the standard transform package to generate a final metatext as an ePub version, an XHTML version, or a PDF version from the same source. Using DocBook would facilitate two other things, scheduling and crowdsourcing.

Scheduling is handled by using Blogger as a backend. Like many 'blogging platforms, Blogger allows you to date a post in the future. When the day arrives, the post is published. Conveniently, Blogger also uses labels, so I was able to label all posts I wanted to serialize with the same label. With a handful of lines of XQuery hosted on Google AppSpot (using Java and Saxon 8 to run the XQuery), I could now take the Atom syndication from Blogger, and convert it into DocBook.

Crowdsourcing is also handled by Blogger. Like any 'blogging platform, Blogger allows comments, which are then published in a separate syndication. A small modification to the XQuery used to extract the main Atom feed allowed any comments authored by me to be added to the DocBook source as a sidebar element (I had by this point chosen to focus on sidebars instead of endnotes for sylistic reasons).

By ignoring any other comments, the final metatext remains my own; however, if someone comments on a chapter, I can comment back with a response. And this response gets integrated into the metanarrative as a sidebar. In this way, as people read the narrative, the story is deepened. I am not sure how successful this would actually be, but it seemed like fun, and the tools are all free.

Beyond a weekend project using free technology, this approach offers several advantages - using an existing CMS can be limiting, as it is hard to extend its functionality unless you are familiar with its plugin hooks, and you are hosting your own deployment. This was not something that appealed to me. To my mind, integrated crowdsourcing may be a very important facet for serialized online literature, as it encourages deeper engagement, and it breaks down the barrier between author and audience. And it is something print literature just cannot do.

I would be happy to discuss any of the ideas and approaches described above further. This is definitely a project I will revisit in the near future, when time is more plentiful. I am just looking for a good excuse to do so.

Friday, November 06, 2009

Memory and Games: Book as Single Page Application

From time to time I find myself finding a use for Jeremy Ruston's TiddlyWiki. TiddlyWiki is what has been dubbed a "single page application" or SPA, because what it really amounts to is an HTML page, complete with a JavaScript active layer which allows one to add, edit, show, hide and reorder content layers. When you have made the desired changes to your TiddlyWiki, you use your browser to save the entire file. I have found TiddlyWiki to be especially useful for creating information on the go using a USB device.

One of the things I appreciate about my workplace is the "leave one; take one" bookshelf, where recently I discovered a copy of an old Steve Jackson game book called "The Crown of Kings" - sort of like a Choose Your Own Adventure book, except you roll dice a lot, and you keep track of your Stamina and Skill statistics; you fight monsters as you explore. I believe there were four or five books in the series, and you could carry your "character" over from one to the next. The sort of thing you couldn't publish as a book in this day and age, because this sort of technogy has been subsumed by FaceBook and iPhone applications.

But this book does something that completely blew me away, that I have never really seen in a web application: it relied on memory. See, when you start the game, you consult an appendix which contains all of the various spells you can learn, indexed by a three letter code, along with Stamina cost and effect. At various points in the story, you are given a choice of several three-letter spell codes you can cast. You select a spell by its code, and go to the appropriate page, where you pay the cost and the resulting effect takes place.

But the trick is this - you can only look at the appendix one time, at the beginning of your adventure. And if you forget what all the spells do, you can injure yourself, or do something foolish. The game does not actually test your ability to be a warrior in real life, but it does test your problem-solving ability, and it tests your real life ability to remember important details.

Well, any book can be like this. If a book forces me to flip around, I need to remember what page I was on, in order to return to it. This is a disadvantage of a print book, of course. Book applications remember things for us. Browsers bookmark for us. We do not need to remember as much. I honestly do not think this makes either medium beter, just different.

But this got me thinking about how different forms of memory work. Imagine I can add annotations to a book I am reading. I get a pencil and I scribble notes in a margin. Over the years, these fade, or I lend the book to someone else, lose it on the bus and buy a different edition, which has been annotated by someone else.

Now imagine I can add annotations to an online book. I can add semantic tags to deepen the meaning and store the details of these tags in a data store for my next reading. I can share this information with other people, adding to the meaning of the book as a whole, without actually changing the book's narrative. If I am an author of the book, I can even retag the book to change the book's narrative.

But what if I add semantic data to the book that is purely transient... it evaporates as soon as I close the book, but it persists as long as I have the book open, as I flip through the chapters. How would that be?

I imagine something slightly more interactive than your average book, but less interactive than the simplest of video games. Perhaps a detective story, where you are the detective, and as you add semantic data to the narrative, the narrative reveals itself in more depth. And then, what if two people could arrange to read the same book, at the same time, so that the narrative evolved along two separate axes?

This would be a book as a single page application.

Thursday, November 05, 2009

Inspirations: these are our stories

I have mentioned before that being a CBC lovin' Canadian, it just wouldn't be Christmas for me without the Vinyl Cafe. When I lived in the States, NPR and the Prairie Home Companion filled the same need. Radio plays and this kind of entertainment fill our need for oral history. These are our stories.

But I also like stories about swords and sorceresses, steampunks and spaceships. I grew up with the original Hitchhiker's Guide radio show, before it was a book or a PBS marathon, and any number of terrifying radio plays about criminals and evil twins, which I probably should not have been listening to. These are also our stories.

Edit: this post was unfinished... I got too creeped out thinking about the story about the guy who shares his heart with his evil unborn twin, and... umm...

Wednesday, November 04, 2009

NaNoWriMo and Weblit-tletown: What's in a Name?

I am so happy for everyone enjoying National Novel Writing Month this year! I wish I could take part, but I rebelled against it due to time constraints: I wish I had more. Instead, I wrote an open letter to the weblit community, asking them/you to follow up NaNoWriMo this year with a contribution to an Audio Collection of Holiday Weblit. The two projects are very different, see. NaNaWriMo encourages a "Don't look back until you are finished, lest your writing turn to a pillar of salt" attitude, whereas the Audio Holiday Weblit project encourages a "tell an entertaining story, but make it short and sweet" attitude.

I am so prepared to be shocked and blown away by the weblit community with both of these projects. As I said before, if you read it out loud, they will listen, and I honestly believe this. I also believe in things like Internet Archive, Creative Commons, and Huffman Coding, though I have yet to see any of these in real life. Internet Archive, for instance, lends any project credibility, because it allows you to turn a collection of things into an artifact, just like that. Not great for distribution, mind you, but great for credibility.

What's in a name? I have mentioned that I am taken with the name #weblit-tletown (as in "of Bethlehem"), because it is festive and vocal. Is this a sucky name? You tell me. There is a great discussion taking place at weblit.us at this very moment about why people use pseudonyms when they write. Many good reasons. This weekend, I am going to compile and publish a list of stakeholders (ie people who plan to contribute a recording) - please use whatever name you choose, and correct me if I slip up. It can be confusing. Apologies in advance!

Tuesday, November 03, 2009

Audio Fiction Content Guidelines

Okay, so here's the story so far...

Hallowe'en came and went, and I was frustrated that while I had time to discover some great seasonal weblit fiction, I did not have time to read it, so I posted an open letter to the weblit community requesting that, this winter, we collect our holiday stories into an audio collection of some sort and distribute it, so cool people can listen to your voices over the holidays and share them with the people they care about.

My plan is to write a post each night in November, breaking the project down into various topics in order to facilitate a discourse, and I hope that by the end of the month, we will have reached consensus about all the important points of the project, and we can roll the November energy into December and have something available for download mid month. This is entirely doable, because you are all talented people, and because I believe this is a valuable thing that needs to be done.

I want to table two issues, then finish with a few suggested guidelines about content.

1) Writing this out every night is meant to build momentum, but also, I want to organize like an agile scrum team (google as necessary). Everything I have seen of the weblit community demonstrates that you work individually, but also through constant collaboration. With this in mind, PLEASE leave comments whenever and wherever you like. I will find them. Then, each Sunday in November, I will assemble and report progress. This week, for instance, I will compile a list of involved parties.

2) The next step is to reach out to the reader community. One of the dangers with collaboration is that we create walled gardens and mutual admiration clubs. Writer. Reader. When you read one of your stories out loud, you become a reader.

Content Guidelines

Roughly speaking, 1000 words is about 10 minutes read aloud. Any longer than this and we run the risk of losing audience attention. Short and snappy is going to be our best approach. 15 minutes at the very most.

Audience appropriate means no swearing, rough language or sexual content, and violence should be limited to snowballs and abusive ghosts. There is no need to censor ourselves, but there is also no need to place a limit on our audience. Plus, holiday, festive etc.

I will repeat that people excel at downloading mp3s, but, semantically, like pdfs and epubs, audio files are walled gardens - they don't let meaning out - so I think we need to provide the source text of our stories to make the whole package searchable. This could be as simple as a supplemental RSS or Atom stream, or all sorts of Dublin Core and Open Provenance. This will be determined.

And of course, these are just some opinions that I am trying to flesh out. When all is said and done, we will put our voices together and we will see what happens. Please add your two cents.

Monday, November 02, 2009

Is Audacity Enough?

I am going to keep this short, cover some technical issues, and attempt to further open a dialog. For more background on what I am talking about, please refer to the previous post - suffice it to say that I want to try and give weblit a voice this holiday season, and I am going to post each night this November in order to sketch out a plan of how we might be able to do it. And please, please comment... it will only encourage me.

1) Do you have experience with grass roots recording? In the past, I have recorded using a cheap microphone and Audacity, a freely available tool which allows you to record, edit and splice mp3s. It is nothing too fancy, but it works, it is cross-platform, and it is available under a GNU GPL license. Ideally, I am thinking that results will be best if everyone involved in a project like this uses the same tools. Please leave a comment if you can recommend a different recording tool, but remember, keep it simple and freely available. I would love to recommend a tool with built in audio processing like compression and reverb, so that we all sound great, but, I don't have much experience in this area. If you do, please speak up.

2) Distribution and contribution: torrent or stream or podcast, or some combination of these... part of the reasoning behind using mp3 as opposed to ePub or PDF is that people already know how to distribute mp3s. People excel at distributing mp3s. I am thinking a torrent would be ideal, but again, speak up. Many options are available. This will most likely become a separate post, but I want to raise the question here. As far as contribution goes, obviously, there is the contribution that the weblit community would be making; in addition, however, I would love to allow donations as long as these 1) are earmarked exclusively for a charitable organization chosen by consensus, and 2) all money raised in this fashion is accounted for transparently. Not necessary, but it would be great to be able to demonstrate value in this way.

3) Length: I am thinking 10 minute stories would work well, and I'm not sure what this would be as a word count. Depends how fast you read, right? But a dozen contributers at 10 minutes a piece is two hours, which strikes me as a reasonable benchmark.

4) Endorsement: again, I am imagining something grassroots and community oriented, however, also something that extends beyond this community. One option would be to try to contact higher profile authors who are also friendly to the creative commons cause for guest spots. Painting with broad strokes here, but this would be one way to reach out beyond the immediate weblit community.

5) How do you define weblit? Additionally, I believe it is important to make available the source text in an appropriate format along with the audio feed, since audio is not searchable, and presents a semantic walled garden. Again, I would like to open this topic up for discussion.

6) Lastly, because I am keeping this short, what's in a name? My initial request is for weblit to share its voice, and I think this is a sufficiently engaging meme; however, code names are cool. In keeping with the holiday theme, I am kind of taken with #weblit-tletown (as in "of Bethlehem"), because it is still tagged as "weblit", contains a truly awful play on words, and as far as code names go, it is sufficiently inscrutable. Or perhaps it's just stupid, and I admit, I have a terrible sense of humour. SO, come up with something catchier.

I really believe that this is a valuable thing to be working towards, and I am prepared to develop this idea for at least the next month, and we'll see where it goes. But please, leave a comment, negative or positive. I want to hear your voice.

Sunday, November 01, 2009

November! Stuff! Nonsense! Weblit, let me hear your lovely voice!

I'm going to keep this short, because my plan is to write something every night of November, and I don't want to run out of de profunduses and bons mots. At least, not until December. I have written previously about my plan to cheat National Novel Writing Month by crowdsourcing metafiction, and well, yes, I still plan to do this, just not right now, as I want to focus. my attention. on other things.

And as mentioned, the crowdsourced metafiction was a cheat, while at the same time a tribute to several novels I love, notably Nicole Brossard's Mauve Desert (google it, get it, read it); which I didn't want to sully with too much nonsense.

But I'm very serious about the "Weblit I want to hear your lovely voice!" thing, so I will repeat it again, and not shut up about it until someone actually tells me to shut up about it, and so, it is this:

If you love weblit, there is at least a fairly good chance you love Hallowe'en, because, well, who doesn't? and Hallowe'en indulges the weblit spirit of DIY, of creating a persona, and of getting paid through contribution and merchandising. Possibly with candy. And if you love weblit, you probably also love to tell a story, and there have been discussions elsewhere, in a ton of different places (I'm seriously not going to link to anything this month - it's going to be NaNoLnkMo for me - just saying) about the role of online writer as storyteller, return to an oral tradition, Mikhail Bakhtin and the carnivalesque (totally use bing this time, just to shake things up a bit) and so forth.

And yet, when I twitter and yahoo! around for some SPOOKY STORIES this All Hallow's Eve, I find that I have barely enough time to read two TERRIFYING TALES, before I am called upon to adjust a scabbard and straighten a butterfly fairy's wings, and we are out the door in search of medlar confits. When what I really want to do is snag a podcast or torrent, and download an hour's worth or so of NAUSEATING NARRATIVES, which I can then listen to while I am otherwise employed as haberdasher.

So.

What I am humbly requesting that all you weblit folk do is this: grab a microphone and the appropriate technology, and record a 10 minute story which you have written for the next holiday season, ChrisKwanziKah or whatever you want to call it, in your own voice, and make it available under some sort of creative commons non-commercial license. Then we'll collect all your stories and create a torrent or live stream them.

If you read them, we will come. Laeti triumphantes! Seriously. I think this is really important.

And then when that works, we'll start thinking about next Hallowe'en.