fôxglove (fg) wrote in lj_dev,

Livejournal on the Desktop

A number of people have asked me about making ljArchive support downloading friends entries/communities/journals they don't own, with the reasoning that it's simply a different, faster way of accessing entries they already have access to view. I told them I'd bring the question up here in lj_dev.

As the client/server protocol begins to expose more and more of LJ's functionality, particularly with syncitems, we now have methods to synchronize a local journal, and also to make updates that show both locally and remotely.

As far as I can tell, LogJam is the only client that's beginning to realize both aspects of this functionality - it has an offline mode.

It seems to me that the next step is an LJ client that combines these two functions seamlessly, allowing users to review and edit posts, comments, and even the posts of friends and communities in a transparently offline or at least semi-offline manner. I say "transparently" offline, because what does the user care if it's offline or not? All that matters to him is that he types the post, it shows up in his client, and it also shows up on the web site, because the two are synchronized.

Offloading a lot of this traditionally server-stuff onto the client offers so many advantages to the user:
  • Fast Navigation: using just the web site, there are so many throttling factors that limit the rate at which you can search/browse your entries or your friend's entries: very limited search, intentionally crippled calendars and views that only let you see so many entries at once, and understandably so, because the server has to do all the work! As much as I love clicking the 'Previous' link in Livejournal, the first time you sync a journal with ljArchive and press the down arrow to scroll through entries and watch them zoom by, you really start to see how different the user experience could be.
  • Cool Indexing: Right now, LiveJournal entries are simply sequentially splayed out through time. One of the things I always found cool about jwz's web site is that his writings all link to each other in a sort of wiki-manner. A client that had local access to the whole journal could do all sorts of clever link-to-a-topic-as-you-type editing. The more you used it, the more a sort of "mind-map" of common links or themes would emerge in your journal, like a table of contents. To me, this is a much more intuitive way of navigating a person's thoughts than clicking through entries in time.
  • Real Analysis: Right now, there are two kinds of meme that float around LiveJournal: the quiz-result memes, and the actual analysis stuff like what is seen in lj_research. You don't see much of the latter, because it's a lot harder to do than what's-your-favorite-buffy character. However, it becomes a LOT easier if you don't have to write all the code that talks to livejournal, and instead you can just do this:

    foreach (JournalEntry in MyJournal) { do stuff }

    As much as ljArchive is a tool, I also wrote it as sort of a proof of concept - it contains plugins that demonstrate a few kinds of intensive journal-analysis methods, like word counts, a psychological profile toy, and other stuff. The point is that every single one of those plugins ran without ever requiring a single byte of data, or a single processing cycle from LiveJournal itself, and they never needed to know a thing about the details of talking to LiveJournal - they just worked off the local journal archive data model. Most of the developers/researchers asking for LiveJournal to sell a DVD of the entire LiveJournal database could probably benefit from using a local desktop architecture like this instead.
  • Server Push: What's one of the current jokes about LiveJournal - you sit around all day clicking refresh on your browser, right? Eventually, a client like this could really benefit from a push scenario, instead of the current client method: any updates on my friends list? how about now? how about now? do i have any new comments? how about now? how about now?
  • Just Cool Desktop Stuff: You can just get away with more "cool stuff" functionality on the desktop than you can on the web. For example, ljArchive does text-to-speech, and it's really fun.
Those are the only bullets that come to mind now, but I'm sure with some effort, any of you could think of more advantages.

The main advantage for LiveJournal is that, if done properly, syncing and navigating your journal, your communities, and your friends page locally is actually easier on the server than navigating through them on the web. Right?

The other advantage for LiveJournal (or the staff at least), is they don't have to do anything for this kind of client to come about - the client/server protocol already does nearly all of what a client would need to do for what I've described. The only thing not implemented right now (that I know of, at least), is a smart way of extending syncitems to friends views or communities.

So the only thing needed is for some enterprising programmers to make the client.

I guess the main reason I've posted this here is to see if I'm completely off my rocker, or if it does make sense to other people to move more of the LiveJournal experience onto the desktop, and if so, how other people have envisioned this happening. Does this seem like a good idea?

  • Post a new comment


    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded