Sunday, March 21, 2010

Working with Flex

For the past few months (since the start of the year), I have been working with Adobe Flex, in conjunction with a Java back-end leveraging Hibernate and Spring. The application under development is basically a public sector financial package, which does not specifically require RIA features, although UX has been established as a critical success factor.

I am following a fairly straightforward path to Flex, I suppose - early work with Action Script and other Adobe technologies lead me to Ajax, and then to Prototype and JQuery, after which I spent several years mired in JSP; and now I am back working with Action Script. Plus ça change, plus c'est la même chose.

I will write more about my experience in future articles, but specifically I want to raise a couple points of interest here: as a team, we have settled on Cairngorm as an MVC framework. If anyone has any thoughts on Cairngorm and the alternatives, or thoughts about using Flex as a rapid development tool for public sector work. Also, it seems like Flex could easily become a de facto standard for certain kinds of non-RIA development because of the easy Eclipse integration, and I would love to discuss others' experience.

Please drop by and leave a comment - I have been invaded by anonymous posters!

Wednesday, February 03, 2010

Tab Sweep: 2010-02-03

Note: apologies to anyone actually reading this - I intend to collect and comment on things I come across during the week, then push the post out via Twitter on Friday. As this is a cumulative process, if the content seems light there will probably be more later. The alternative is to keep the post in draft for a while, but this seems lame.

From IBM's Smarter Planet: Education

School districts operate on tight budgets in good times, but when Pike County found their IT budgets sliced by 80%, they knew it called for drastic measures—or true blue-sky thinking.
A rural Kentucky district of 10,000 students, Pike County administrators had struggled with providing IT resources for its students, teachers and staff. Desktop computers were still running Windows 98 with failing CD and hard drives; and access to the district's portal, which houses the applications and information the students and teachers needed,was inconsistent.
Working with IBM Global Technology Services and Desktone software, the district developed a virtual desktop infrastructure delivered as a cloud service. Students now boot the existing hardware with a special CD that bypasses the operating system and connects them instead to a high-performing virtual desktop environment. This in turn links to the district's portal site with all of the tools and information they need. Pike County can double the life of its hardware—it's planning on using seven-year-old machines without sacrificing performance—while providing students, teachers and administrators with equal, transparent access to its assets.
The district estimates cost savings of 64% over five years, compared to the cost of servicing the desktops on premises.

Now, I'm a big fan of the work that Walter Bender has been doing at Sugarlabs, as far as live booting a Sugar/Fedora OS off a USB stick, and this is more of the same. A combination of live booting thin OS and cloud computing is very potent.

Another former OLPC employee, Ivan Krstic, who now works in core security at Apple, comments on martian sandtraps. I at first thought he was speaking of golf, but apparently not. Since he began working at Apple, Krstic posts infrequently, but invariably leads to spit-take.

Apparently Mike Cane is done with his eBook Test blog, declaring the Apple iPad a future contender, or something. The vision of the iPad/iStore/iBook etc is there, even if the reality is not, yet, but we can confidently say that, yes, the iPad will change the way we read. Though I'm still holding out for the new Pixel Qi technology from OLPC alumnus Mary Lou Jepsen.

From London writer Marc Nash, an excellent critique of Roberto Bolano's 2666 and the hoopla surrounding the global reading of same at #2666 on Twitter. I am taking part in this reading, but wish I had read Bolano's Savage Detectives first, simply because of 2666's sprawling nature. Comparisons with Gravity's Rainbow, Infinite Jest and Finnegans Wake seems apt, based solely on the fly-leaf and first 100 or so pages.

Nice Valentines Day Cards, from Save the Children.

Saturday, January 16, 2010

Axiom Attic: I

Somewhere between
over the sky and
under the ground
my roots lie

An axiom-tree, idiom-bird
climb climb soil
a thermal
buried deep

Thursday, December 17, 2009

Twitter-stuff: thanks for all the RT?

This is just a quick reflection on normative behaviour and a short personal declaration. I don't thank people for passing along what I have to say, and, while I don't specifically hold it against others when they do so, I do question their motivation. And I have unfollowed people for doing it excessively.

I don't use Twitter for strictly promotional purpose, and if you do, more power to you, especially if you are promoting a product or service I actually use. But I wonder, what is actually happening when you publically thank me for passing along your message? Well, yes, I am getting the thank you, and there is some reciprocation, if one or more of your subscribers decides to add me to to their subscription lists, but this is not likely, particularly if you thank a number of people in a single tweet.

Basically, what I understand when somebody thanks me for passing along a message is "thank you, please do it again" - which is all fine and good, but to be honest, if you were to come out and ask me to "plz RT" or whatever, I would be less likely to do so, and the same goes for a lot of the "thx 4 RT" I see - it makes me feel like I'm being played. So please don't bother.

If you disagree with this belief, let me know. I'm not a rude person, I thank people all the time for all sorts of things. But I'm not going to thank someone for carrying on a conversation with me.

Monday, December 14, 2009

Tab Sweep 2009-12-14

Here are some things which I have been following in the last week:

Friday, December 11, 2009

Reader, Writer, User Points: Engagement Engines

This comes as a response to an ongoing discussion at weblit.us regarding user points and reward systems for online fiction readers. Essentially, the motivation for a user points system is to increase engagement by giving readers something to achieve. The downside is that in order to implement a points system, as a writer you need to produce more, or deny some of your readership access to writing in which they would normally participate. This is problematic.

The system I am trying to sketch out here works within a larger framework that I am proposing, which I am calling an engagement engine. It works like this:

A writer begins with a blank slate, on which she can add descriptions of people, places and things. These are big categories that structure the engagement engine. As a writer, you are able to write as much as you want, but you cannot publish a new person, place or thing until the system allows you to do so - shortly after you start writing, you receive a gift (much like a gift in a social networking environment), which upon opening reveals itself to be, for instance, a place. You use this gift to breathe life into one of the locations you have already privately given a description, and this location is now available for use in your story. After you describe your location more deeply, you receive another gift, and this in turn allows you to breathe life into one of the characters you have described. Now you have a place and you have a person. You can start to really tell your story.

In an engagement engine, multiple writers are supported. This is not essential to the points and rewards system, but I honestly think this is an important component in creating a community, by creating healthy competition and collaboration. As opposed to a content management system, an content engagement system, applies many of the concepts of game-play and social networks, and these work best if they operate within and encourage a wider community.

What really drives the engagement system is the act of creating content, so as you add more content to the system, you receive more gifts, which allows you to breathe life into more people, places and things. This may seem artificial, but I am hazarding a guess that it actually plays well to a strength of many writers that I have known: they are more creative when faced with restrictions and challenges. And there is no limit on the amount of detail, narrative and dialog you can write, or the number of people, places and things you can describe - it's just that you can't actually publicly use these people, places or things until the system has allowed you to breathe life into them. Which means you will want to use your best ideas, and that is what you do anyway.

So this is where the points system comes into play. As your story is published in serial and people read it, you collect extra points from them toward the gifts you use to breathe life into your creations. So you might say "I need 50 more readers before I can add this really cool story arc," and your existing reader base have an incentive to pass the word along, because they benefit from the gifts you receive.

The more readers read a writer, the more that writer can write. This defines story arcs, and encourages reader and writer engagement in an organic fashion. This is by no means a complete description of what I am describing when I say engagement engine, but it is a start. Please feel free to leave a comment with any questions.

Thursday, December 10, 2009

Weblit-tle Town of Festivity, lend me your voice!

Hey!

Okay, look back to the start of November if you want the back story, but in a nutshell, Hallowe'en came and went and I managed to read a sum total of one creepy story online - although I know for a fact there were others - because my kids were already into the chocolate, and I was prepping a knight and a butterfly princess for further looting. So I sent out a request to the WebFic/WebLit community requesting that for the next big holiday season, ChristaKanzaNukkahTurkey, we get ourselves together and record a collection of festive tales, which we will then publish as public domain or Creative Commons NC for all to hear. People responded, and now that NaNoWriMo is done, the time has come.

So here we go.

Please send your seasonal tale to piers.hollott at gmail dot com, following these specifications as closely as you can manage:
  • Easy on the swears. For my kids - they may be listening.
  • 1000 words ~ 10 minutes, which is the length we are looking for.
  • If possible 256 VBR mp3 would be ideal. I would like to put the collection on Internet Archive, and because they archive a lot of live recordings, they tend to be contiguous, meaning all files in an archive are similar in nature. If you are using GarageBand on a Mac, the best bet is to use the default setting (I have no idea what this is, but it will keep all Macusers consistent).
  • Zip up your mp3 with a text version - I'll organize these as necessary, so word, text, even html are fine - not sure if I'll use them, but it would be good to make the archive searchable.
  • Please include your name as you would like to be attributed and any other supporting info you might wish to include in a separate text file.
  • Deadline Dec 18th or ASAP. I know some of you have already begun, and others have been busy with other things, so just let me know if this is a problem.
  • I'm sure I am forgetting something, so comment if you think I have omitted anything.
The only thing I know I am leaving out here is artwork, which is not essential, but if you have any ideas, let me know.

Thanks,
Piers

Wednesday, December 09, 2009

What if a Brand were a Secured Namespace for Identity?

This is in part a response to an article on @mikecane's eBook Test, titled How Book Publishing Will Lose: eBooks Vs. Smart Digital Books, but it is also something I have been trying to articulate for a while. The question that haunts me is how to separate narrative concern from brand in a published work. So, I am asking, what if a brand were a secured namespace for identity?

Namespaces are an oft-maligned and misunderstood component of the plumbing of XML based representations of information, such as XHTML, DocBook, DITA and the like. When you create an HTML page, all of the tags you use to create the page are HTML tags, so you have no need for a namespace. When you create an XHTML page, or any other XML based representation, you may use tags from more than one vocabulary, so you use namespaces, represented by URIs, to discriminate between nodes in your document.

When you use a namespace in a document, you associate it with a prefix, which is used as a placeholder for the actual URI within the document. The URI itself must be unique, and often references a collection of schema or vocabulary documents.

What I would like to suggest is that a document representation of a text could be marked up using an appropriate namespace in order to determine an appropriate brand for the markup within the document. For instance,

<xhtml
xmlns='http://www.w3.org/1999/xhtml'
xmlns:dora='https://www.dora.com'
xmlns:diego='https://www.diego.com'
xmlns:isbn='urn:ISBN:0-395-36341-6'>

<title>El Camino Grande</title>
<p property="isbn:number" content="123-456789"/>

<p>
<img src="dora:walking"/>
<span actor="dora:actor">Dora</span> and
<span actor="diego:actor" >Diego</span>
walked down the road
<img src="diego:walking"/>
</p>
is very rudimentary pseudo-code representing a description of Dora and Diego walking down the road, along with a picture of each of them doing so. This is not production code, mind you, this is merely a sketch of an idea, that the namespace used in this case securely identifies an actor, so that information such as images associated with this actor are not available unless some blessed mechanism, such as the involvement of a digital signature, is involved. More than likely, this mechanism would also involve the ISBN, since it would be unlikely that licensing an branded actor for use by a reader in one text would allow access for all texts.

So if you have the correct signature for the actor and the ISBN, you access the namespace, and you are blessed for use of the associated branding, which might be images, type-faces and so on. In the case of the pseudo-code above, you would require two signatures, one for Dora and one for Diego.

Or would you?

Well, this is where it gets interesting. What if you have secured one of the signatures, and not the other? Can you still read the text? Ostensibly, since this is pseudo-code, yes you can, if you change the namespace in the header declaration to a namespace for which you do have access; for instance, if an open-branded namespace were available, this could be used instead. In this way, if you were purchasing a book about Dora and Diego, you could pay for the entire branding, a portion of the branding, or just purchase the book itself without purchasing the branding, and rebrand the book with an open brand.

And then let the consumers decide.

So what does this all mean? I honestly believe that, as electronic publishing grows as an industry, it will become more and more necessary to separate narrative concern from commercial concern. So, what if brand were a secured namespace for identity? How would that change the industry?

Prepare for Parallax: Files in the Cloud

Following up on a conversation with a co-worker this morning, something struck me as obvious. One of the things Sugar OS handles really well (either as sugar-on-a-stick or on the OLPC XO laptop) is simplifying the file/resource paradigm to make it consumable by children, by basing access on chronology rather than hierarchy, reminiscent of a search engine rather than a file system. Also, on Sugar you work with activities rather than files.

What struck me recently is that on the one hand, movement towards a cloud OS reflects a shift in consumer tastes from tasks like email (where you attach files in order to share) to social networking (where you pass around links and participate in activities in order to share), so when somebody asks me, in the context of a cloud OS, "but how will you be able to locate your files?" my initial reaction is this: either chronologically, or collaboratively (or possibly spatially, but that is a separate issue).

Think about it this way: was the document or picture I am trying to find something I touched recently? That should make it easy to find. No? Is it something I shared or created with another person or group of people? That narrows the field. As I add in more relationships with people who may have come in contact with the activity in question, I have fewer and fewer activities to sift through.

I think the desktop of the future will not be a desktop at all, it will be more like a shared light-box, emphasizing transparency. In order to find something again easily, you must give it relevance, and the best way you can do this is to share it, to make it available to the people with whom you already have instantiated relevant relationships.

Far more intriguing to me, while at the same time quite far out, is the idea of a spatial desktop, where the first question you ask when you want to locate a particular item is where was I? Where was I when I took the picture? Did I participate in this activity at work, on a plane, at home, in the living room or in the dining room? On the one hand, this sort of information might not be readily available for many activities, but if it were, how quickly would that narrow the field if you could recall your location when you took that picture?

The advantage of this approach is obvious as well. If you can't locate the actual picture, you can ask who else was there? Be prepared for parallax.

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.