lessons from fiction

In the last several days, I’ve spent a lot of time writing and working on this new novel that seems to be capturing too much of my attention. It’s a nifty story, definitely the best piece of fiction that I’ve written henceforth, despite all my worry, dread, and seemingly limitless self-doubt in relation to the project. Despite the gremlins on my shoulder saying “why aren’t you working on short fiction; why aren’t your characters having more sex; do you really think you can float such a disjointed/complex narrative; do you have a clue where this is going? …and so forth,” I’ve learned a few rather interesting things from this story this past week.

It’s a time travel story, stupid!

Yeah, I’m well into the 7th chapter (of about 12?) and I finally figured out that I was, at it’s core telling a time travel story. No, it’s not a case of getting several tens of thousands of words on paper and realizing that you’re writing the wrong story, but rather that I’ve always thought of it as a quirky space opera, and just this week I realized that what makes it quirky is that it’s fundamentally a time travel story.

Right.

My goal in this project was to write about history and how “history” emerges from “a collection of things that happen” to something more coherent and recognizable as such.

In a weird way, my fiction (since I started writing again in early 2007, at least) have always addressed the issues at the very kernel of my academic/scholarly interest. I’m interested in how communities form, and how people negotiate individual identities amongst groups of people. Open source software, cyberculture in general, and hackers are one way of looking at this that is very much the center of how I’m looking at these questions. Queerness is another. Same kernel.

In any case, history--however defined or used--is a key part of this community-identity-individual loop. Can you participate in the emacs/emacs-lisp community without knowing about the history of the XEmacs fork? Linux without knowing a little about the early days with Minix and UNIX? Git without knowing a little about CVS and the bitkeeper story? If you can, not for very long. There are other more mainstream culture examples as well, Americans and the great depression (particularly Roosevelt’s fireside chats, say?). Queers and stonewall? Etc.

This stuff is, to my mind, an incredibly important factor in “who we are” and how we all exist in our communities and the world at large. And because I’m who I am, I’m writing a story about this.

The science fictional effect, at play is relativity--lacking fantastic super-liminal (FTL; faster than light) space-drives--our characters must endure some pretty intense time dilation during transit: it takes them t weeks to get from planet A to planet B but meanwhile, it’s t years later on both of the planets who more or less share a common time line.

Now I don’t do the math right, for it to work out as being sub-light speeds (exigencies of plot; interstellar spaces are really big), but the time dilation is a huge feature of the story and of (many) main characters place in the world, particularly in contrast to each other.

And thus, in a manner of speaking, it’s a time travel story. Albeit where the time travel is one way (future bound,) linear, based on Einsteinian principals, and common place.

And it took me half the book or more to recognize the story as such, which will--if nothing else--allow me to explain the story a bit better.

In the future Project Xanadu Worked

I’ll probably touch on this later, but I realized (and this might not be particularly unique to my story) but that my characters were interacting with “the database” in the world. An internet-like system, only more structured, and more distributed, easier to search, easier to operate locally.

Which was basically Project Xanadu, on an interstellar scale. The features that my characters take advantage of:

  • Distribution and federation of copies: I have ansible technology in the story, but even so, given the trajectories of data storage technology it makes more sense to store local copies of “the database” than it does, to route requests to the source of the data, or even your nearest peer for records. Assume massive storage capability, advanced rsync (a contemporary tool synching huge blobs of data across a network), and periods of, potentially, years when various ships, outposts, and systems would be out of contact with each-other. Nah, store stuff locally.
  • Versioning Having a data store that stores data along a temporal axis (versions across time) is handy when you’re working on your computer and you accidentally delete something you didn’t mean to. It’s absolutely essential if you have lots of nodes that aren’t always in constant contact. It means you don’t loose data after merges, it solves some concurrency problems, interstellar data would require this.
  • Structure: The contemporary world wide web (The Web) is able to function without any real structure, because we’ve imported data visualization from (more) analog formats (pamphlet layout/design; pages; index-like links, desktop metaphors), and we’ve developed some effective ad-hoc organizations (google, tags, microformats) which help ameliorate the disorganization, but the truth is that the web--as a data organization and storage tool--is a mess. My shtick about curation addresses this concern in one way. Creating a “new web” that had very strict page-structure requirements would be another. In the novel, their database grew out of the second option.

The future is here folks, but you knew that.

Lamenting Project Xanadu

I’ve been reading this is stevenf.com recently, and I have to say that it’s among my favorite current blogs (by people I don’t know). Geeky, but it doesn’t revolve around code snippets, simple, and minimal but in all of the right ways. And a bunch of fun. Anyway he posted an article a while ago that got me thinking called, “it’s my xanadu,” go ahead read it and then come back.

That’s a great idea isn’t it? I’ve been thinking a lot about data management and the way we represent, store, access, and use knowledge on the computer, so stuff like this gets me more excited than it really should, all things being equal. My good friend Joseph Spiros is even working on a program would implement something very much like Xanadu and the system that sevenf described.

First order of business should probably be to explain what Project Xanadu is for those of you who don’t know.

Xanadu was the first “hypertext system” designed that recognized that text in digital formats was a different experience and proposition than analog text. Proposed by Theodor Holm Nelson in the 1970s (with floundering development in the 1980s), Xanadu to be something amazing. It had features that contemporary hypertext systems sill lack. I think everyone has their own list of “things from xanadu that I want now,” but for me the big sells were:

  • Links went both ways: If you clicked on a link, you could reverse directions and see what documents and pages had links to the current page. This means that links couldn’t break, or point to the wrong page, among other things

  • Dynamic transclusions. Beyond simply being able to quote text statically, Xanadu would have been able to include a piece of text from another page that dynamically represent the most current revision of the included page. For example, I include paragraph 13 on page A (A.13) somewhere on page B; later you change A.13 to fix a typo, and the change is reflected in page B. I think links could also reference specific versions of a page/paragraph (but then users could from page B, access new and older dimensions of A.13).

  • Micropayments. The system would have had (built in) a system for compensating “content creators/originators” via a system to collect very small amounts of money from lots of people.

    Needless to say, it didn’t work out. It turns out that these features are really hard to implement in an efficient way--or at least they were in the eighties--because of computing requirements, and the very monolithic nature of the system. Instead we have a hypertext system that:

  • Is built around a (real or virtual) system of files, rather than documents.

  • Has no unified structural system.

  • Must rely on distributed organizational systems (tagging, search engine indexes.)

  • Is not version-aware, and it’s pages are not self-correcting.

  • Relies on out-modded business models.

To be fair, much of the conceptual work on the system was done before the Internet was anything like it is today, and indeed many of these features we can more or less hack into the web as we know it now: wiki’s have “backlinks,” and google’s link: search is in effect much like Xanadu-Links, using dynamic generation we can (mostly) get transclusions on one site (sort of), and paypal allows for micropayments after a fashion.

But it’s not baked in to the server, like it would have been in Xanadu, this is both the brilliance and the downfall of Xanadu. By “baking” features into the Xanadu server, hypertext would have been more structured, easier to navigate, easier to collaborate, share and concatenate different texts, and within a structure easier to write.

And yet, in a lot of cases, I (and clearly others) think that Xanadu is worth considering, adopting: indeed, I think we could probably do some fairly solid predictions of the future of hypertext and content on the internet let alone information management in general, based on what was in Xanadu.

That’s about all I have, but for those of you who are familiar with Xanadu I’d love to hear what you “miss most” about Xanadu, if you’re game.

Re-Rethinking GTD

I wrote a series of articles nearly two years ago to rethink the GTD system, which I think is worth revisiting again. Not the essays, which were from when I called the website “TealArt” (don’t ask) and were before I really discovered free software and open source in a big way; but rather, I think two years out from my original article and even further out from the heart of the GTD fad, I think that it’s worthwhile to explore GTD again.

For those of you playing along at home, GTD (Getting Things Done) is really a “personal productive methodology” designed by David Allen that swept the geek community a few years ago. It’s good stuff, and while it’s certianly not a one-size-fits-all miricle cure for umproductive and overwhelmed folk; it promotes (to my mind) a number of goals that I think are quite admirable:

  • Have a single system, that integrates across all aspects of your life. One place where systems can fail is if you’re using different “databases” (in the non-technical sense) to store information and tasks, and you have a piece of information that might fit in either system: when you go to look for it later (or need to be notified by it later) the chance of you missing the task because it’s on the wrong list is much higher if you have more than one place where lists might be.
  • Think about tasks and projects being broken into “actionable items,” and have actions be the unit of currency in your system. As you assimilate information be sure to record anything that needs doing and keep it in your system
  • Attach two pieces of metadata to your action: project (what larger goal does the action help you acomplish; you’ll likely have a list of these projects), and “contexts” (where do you have to be in order to do the action, things like “phone” “office” “erands”) are helpful for focusing and making it easier to move your projects forward.
  • Do regular reviews of the information on your todolists, and spend (an hour?) once a week making sure you’re not foregetting things and that you’ve checked off all the actions that you’ve actually done and so forth.

There are other details, precise methods which GTD people focus on, talk about, and provide in their software applications. Frankly I’ve not read the book and I’m by no means an expert on the subject. I continue to have objections to the system: it assumes large tasks and quickly and easily be broken down into smaller tasks (which isn’t always true), and that projects follow linear and predicatable sequences, which I find to be almost universally false. While the reviews help counteract these sorts of assumptions about projects, I have always tended to find GTD a poor solution to the productivity problem:1 both for myself and in my observations of how other people work.

At the same time, I think the notion of a single system that comes to the mainstream via GTD and of weekly/regular reviews, another artifact of GTD, are both really helpful and powerful concepts for organizing ourselves. The other aforementioned “features” are helpful for many, but I feel that very often organinzing the “GTD list,” and our lives to fit ino a GTD list is often too much of a burden and gets in the way of doing things.

I’m interesting in finding out how people these days are talking and thinking about GTD these days. I think the fad has died down, and I’m interested in seeing what we’ve as a geeky community have learned from the experience.

Interestingly, I’m probably doing something much closer to what GTD recomended these days than I ever have before. org-mode is (among many other things) a capiable GTD tool. I think it’s successful not simply because it supports GTD, and the task-management features seem to have grown out of an emacs/writing writing platform rather than a calendar platform. The end result is that I’ve found the GTD way to be quite effective, though its largely unintentional.

I’m interested in hearing where your own systems are, and how you feel about GTD these days:

  • Do you use GTD or GTD based methodologies for your personal organization?
  • If you only use some which, and why?
  • If you don’t use GTD, what system if any do you use?
  • If you once used GTD but stopped, or have considered using GTD and then didn’t, I’m particularly interested to learn why you came to these conclusions?
  • What current factors influence the way that you organize your work?

I hope that covers everyone. I’m particularly interested by how creative folks work, but i think in the right light that covers most of us. I look forward to hearing from you?

Cheers, sam


  1. Not the least of which is the way GTD (et al) classify the problem of work acomplishment to be a “productivity problem” rather than an issue of “effectiveness”↩︎

Laptop Usage

My grandmother reminds me that she got a laptop in the late eighties,1 it’s massive by today’s standards (particularly in comparison to my 12 inch thinkpad), but it had a great keyobard, and she remembers using it rather effectively. It had WordPerfect 5.1 back in the day but I think it also had StarWriter/StarOffice (which, the astute will recognize as the predecessor code-base for today’s Open Office). It probably weight ten or fifteen pounds, and I think she even brought it between work and home several times a week (using a luggage cart); but this was before her days on the Internet, and like all good things this laptop has gone to the land beyond.

For my college years, and a few years after I was a laptop-only computer user. It didn’t make sense to have a computer that I’d have to move so damn frequently, and it wasn’t like I was playing games or anything that would require desktop, and I loved having only one machine to keep current and up to date. It seems like laptop-only is a definite trend among the Internet-hipster/start-up monkey crowd. And it’s admirable, and for these folks (who are likely, and appropriately, Apple users) a laptop-tax of 400 dollars isn’t too much for people who have already bought into the Apple tax.

And then, along came the “netbook” phenomena, which posits that most of the time we don’t really need a desktop-grade laptop when we’re on the run. There’s a lot of merit to this model as well. We don’t really need to carry around powerhouses to check our emails in coffee shops, and for folks like me for whom the vast majority of our computing is pretty lightweight, building a system around a primary desktop computer and a sufficient but not supercharged laptop makes a lot of sense.

So what kind of laptop system do you use?

Do Y'all Use RSS?

I just wanted to check to see if you all use RSS, and if so I have a few questions:

  • Is one of the primary ways you interact with content on the web?
  • What software do you use to read feeds? (Google Reader? NetNewsWire? Lifrea? Newsbeuter? FeedGator/FeedDemon? LiveJournal?).
  • What’s your biggest pet peeve about the RSS ecosystem? (including feed readers, feed parsers, variations in feed generation/publication, under/over adoption).

Thanks.

(my answers? yes; google reader; non-full text feeds and generally lackluster reading options.)

I look forward to hearing what you have to say.

Treating Users Like Idiots

People who use free software are almost all “open source/software freedom advocates” in on sense or another. There’s something empowering about the experience of using software that you control, really control, and we want to share this with others. That makes sense, not just on a “lets get the family using GNU/Linux” level, that we want to increase the user base of free software as much as possible.

One of the chief recruiting concerns for communities, seems to be “lets make this piece of software more usable.” This gets us into a lot of trouble as a community as there are a lot of similar and intersecting issues that get confused in the project of increasing usability. While “usable” is a subjective thing in the end, there are a lot of factors that make software more or less useable, they include:

  • greater or lesser functional complexity,
  • more or less visual clarity (of control interface and data visualization,)
  • functional and/or visual minimalism,
  • thoroughness of documentation and support materials, and
  • the learning curve.

One of the most powerful effects of free and open source software is the way that it encourages users to learn more about the software and systems they use. We say that one of the reasons for software freedom is “education,” and you might think that this relates to the great potential for the use of GNU/Linux in schools, but I think it really relates to the way free software encourages users to learn more about the software they’re running.

Given these notions, I must say that writing software that “even a non technical user could learn” (dumbing down features and interfaces) doesn’t strike me as a very productive project, and a poor excuse for providing good documentation and support for a given project.

But maybe that’s just me.

The State of the Discourse

This isn’t a fully formed thought yet, but I was wondering what the status of discussion and commenting is on the web these days. Clearly microblogging like Twitter and Identi.ca produces a powerful platform for conversations and I think what’s coming with xmpp (innovative interfaces for group chats, etc.) furthers the potential for conversation online. At the same time, I’m wondering what the status of conversations are “older” media like blog comments…

Are people still commenting on blogs? A few of you comment here now and then, and websites like making light have vibrant comments threads (that I don’t have the attention span for or time to read), and the big sites (slashdot, digg, etc.) have active comments as well, but a lot of sites (including those with moderate readership) don’t get many comments, and my sense is that a significant percentage of comments these days are in the “me too” vein, rather than productive themselves (because threads are difficult to read). Here are a few questions:

  • Do features (threading? email notification? persistent identities?) make commenting “work better” or flow more productively?
  • Are conversations about content moving away from comments into more centralized media like twitter, email lists, and discussion forums?
  • Are we more likely to respond to a blog post we read in our own blog, rather than in a comments thread? Has the blogging community reached a saturation point?
  • Dose a vibrant community of comment-posers indicate a marker of blog-success, these days? Did it ever? What might replace comments?

I’m pretty convinced that comments are dying, but I’d love to get your feedback. I’m not terribly mournful about this but I’m very interested in thinking about how we (as a community will replace this niche.)

Open Source Words

I’m working on laying the seed content for a new wiki that I hope to launch in a few weeks. I want the wiki to be a free text/open source, and I have been giving some thought to the best way to accomplish this. This is, as it turns out, is pretty hard to accomplish: open source software licences are designed (not surprisingly) for software, and while Creative Commons Licences are great, I don’t think they support community authorship in a way that matches with my ideals/gaols.

The brilliance of the GPL (to my mind) is the way that it equalizes the relationship between all contributors (big and small) and between the “authors” and the “users.” While in a lot of open source projects these groups/interests overlap, they don’t sometimes and those cases where those interests might obstruct the freedom of the work, the GPL equalizes it.

There are two mechanisms in the GPL (to my mind) that make this possible: first, the requirement that source code be made available (and reproducible) with any distribution means that you don’t get anything extra because you were/are the original author of the code. The second, is the “viral” or “share alike” provisions where you can trust that anything released under the GPL will stay under the GPL.

While these mechanisms increase freedom and equity in situations where there are a select group of contributors and one legal author1 the freedoms are most powerful when the boundaries between contributor and author and user are blurred.

This is all very basic stuff in the area of software freedom after all. The truth is that, as near as I understand there aren’t terms that can be used to get a similar effect with non-code projects (exactly.) There are a couple of copy left licenses, issued by Creative Commons and even the Free Software Foundation, but there are problems with both of these strategies. Here are the issues as I see them:

The GNU FDL is designed, primarily for software manuals and documentation in support of free software, and is strategically designed for this kind of text. It, as a result, lacks a certain… grace and elegance for dealing with other kinds of text, particularly when dealing with derivative and physical reproductions of a work.

In contrast, the Creative Commons Licenses2 (CC) don’t have a concept of “source,” so that while they provide the same sorts of rights regarding distribution of work (and thereby equalize some of the rights between distributor/user), they don’t facilitate derivative work in the same way that open source licenses do.

I’m mostly worried about the following scenario. Say I release a piece of audio-art in a lossless (high quality; source) format (eg. FLAC/WAV) as well as MP3/OGG file (lower quality; compiled) under a CC license that permits derivative work under a viral/share alike terms. Then you turn around, re-equalize, and mix my audio-art with some other similarly licensed audio, and release it as a derivative work. That’s cool. But the derivative work needed be in the higher quality format, because CC doesn’t have a concept of source. Not having a concept of source doesn’t effect the possibility of derivative works, but it does mean that derivative works are second-class citizens, as it were. CC doesn’t equalize this relationship.

If I’m wrong about this interpretation, I’d love to be corrected, for the record.

For works where there’s a single author, having derivative works as second-class citizens isn’t a bad thing, and I can imagine that it would be seen as a feature in some cases. In cases where a text/work is authored by a community this is a major flaw.


I hear that there’s a project to Simplify the GFDL (or provide a way to use the GPL for documents/texts) that might remedy these problems (haven’t dug through it yet). In the mean time, I’m wondering what folks think on the subject.

My inclination is to just use the GPL with the specification that “source” would be some sort of plain text (ASCII/UTF-8/UTF-16) compatible file. That achieves the goal required, without too much fuss or concocting a new license that would prove incompatible down the road. I think mandating a particular format (markdown/org-mode/xhtml/LaTeX) is a bit too strict, but I’d hate to see a document developed in the open, released as a PDF derivative without making (say) LaTeX sources available.

Though I’ll be the first to acknowledge the irony that for non-software works, the “source” isn’t “human readable source code” but rather “machine readable data source.”

The only real practical concern is that if the FSF releases a 2.0 of the FDL (or a SFDL) that becomes the a standard for free/open source non-software/text projects then going with the GPL might make that a difficult/bothersome transition on that. So the question, seems to be would providing the option to upgrade to the GNU FDL make sense (eg. this work is licensed under the GPL [with an understanding of what the source is] version 3 or (at your choice) a later version [or a later version of the GFDL]).

Anyway, back to writing.


  1. Copyleft and the GPL doesn’t to be fair, eliminate copyrights, as all code released under the GPL will (theoretically, eventually, should a public domain ever be reinstated in the US) revert to the public domain as described in the constitution. GPL is, in many ways an extension of copyright, albeit one designed to destabilize the copyright system. ↩︎

  2. There are many flavors of Creative Commons’ licenses, which provide various freedoms. The Attribution-Share Alike License is most analogous to the GFDL/GPL. ↩︎

Mobile Emacs

I have a confession. I last week (briefly) considered getting a Nokia N810 so that I could sync and use org-mode when I was away from my computer/laptop. The N800/810 is a small tablet that runs a Debian based operating system, which means it could run emacs, and I could write little clickable scripts that could do all of the syncing and awesomeness that I’ve grown accustomed to.

Then I realized how absurd this is, and cast it aside. My laptop is really mobile, and if I needed it to be lighter or more mobile, I could buy a new battery for it. And it has a full sized keyboard.

This is a sickness right?

Fact File Code

In my post about my fact file I said that I was going to “try things out and see how it goes” before I posted code to see how things work in the system. Well, I think things are pretty stable (I haven’t tweaked much), so I’m going to post my remember template, for the system described in that post.

(setq org-remember-templates
   '(("data" ?d "* %^{Title} %^g \n :PROPERTIES:\n :date:
       %^t\n :cit e-key: %^{cite-key}\n :link: %^{link}\n
       :END:\n\n %x %?"  "~/org/data.org")))`

If you want to tweak further, check out the relevant section of the org manual.

Enjoy and collect facts with abandon!