Ammend the client software such that entries may be written and stored locally for later uploading. I believe that similar functionality is already in the PalmOS client (or at least proposed) as it's 'upload on hot-sync' function.
There are times when it is not possible to upload entries to LJ (eg the servers are down, not net connection &c) but a user may still want to write entries. By storing entries on the local machine for later uploading this is possible.
- When the servers are down people can still write entries.
- Mobile users can write entries as they occur to them and up load them when it is convenient to connect to the internet.
- Users can go back and edit entries on thei local hard drive without a net connection
- May encourage users to write fewer, larger entries rather than many one or two liners so entries will have longer presence on friends pages.
- May result in entries being forced off Friends pages when someone uploads many entries in one go.
- Someone's actually got to write this functionality for each client.
- Still does nothing for those who use the web client.
- Have to come up with some method of authentication for offline use.
- Client will have to sync some data with servers for things like friends lists
Suggestions for implementation
When the client starts up if it is unable to connect to the LJ servers it should put itself into OFFLINE mode. In OFFLINE mode the Post button is greyed out and an entry is added to the LiveJournal menu, "Go ONLINE", which if selected will attempt to connect to the servers.
In the edit entry window add a button labelled "Save". If this is clicked the entry is saved to a local XML file (location configurable, default is a subdirectory of the directory the LJ client executable is in) with filename of the form [journal_name][YYYYMMDD]_[HH24MISS].xml where [journal_name] is the name of the journal being posted to, [YYYYMMDD] is the system date of the local machine when the save button was pressed and [HH24MISS] is the time (hours, minutes and seconds) in 24 hour clock when the save button was pressed. The post options and other information are stored in the document as XML entities, the content as a single large entity.
When the client connects with the server it should first sync it's offline data with the server then check if there are any offline entries and prompt the user whether to upload, view entries or not upload. The prompt should display the subject line, or first line of the body if no subject, for each entry (much like the view history does. Once an entry has been uploaded it should be deleted from the local store.
The Edit Last Entry option should first check the offline store and if there are any entries stored open the latest one, if not it should go online and get the latest entry from the LJ servers.
View History should first scan the offline store then, if the client is in ONLINE mode, the LJ servers. Entries not yet uploaded should be displayed differently to those already uploaded (eg a different colour).
If an entry is edited it's filename shall remain unchanged.
If a user is in ONLINE mode, clicks Post and the client cannot connect to the servers it should prompt the user to :
- Retry - Try to post again
- Offline - Go into OFFLINE mode but keep the entry in the edit window
- Save Offline - Save the entry locally and go into OFFLINE mode.