What will the end user get? What will they need to put in? I've been trying a bunch of different clients and not been too happy with many. Mostly it's hard to swap between clients or do one-push crossposting.
Plus, some folks have issues with the retention of user info (login, password). I'm thinking a simple login management screen if it's stored on the user's computer; you can check off where it's posting, heck, even if one is posting a sample and link or a full entry per account.
If this is a hosted solution, a widget that lets the user maintain their own login information in an xml file on their own computer so it's never stored on the server? I don't know enough about it from you descriptions to give suggestions on how to make it user friendly and usable for multi posters.
But I look forward to watching the development. :)
First off, Clive (which I didn't write, I'm just customizing it a bit) is a command-line client, so it's not going to be everyone's cup of tea (but I find it especially convenient for the same reason some folks won't like it). So to use it normally, to post to a single site (it defaults to LJ but you can change that in a config file) you would do one of two things:
1) Type
clive -u {username} -w {password} -i {icon} -s {subject -- in quotes if it has spaces}
and it'll fire up the editor you configured it to use and then log in and post the entry you typed in the editor ... or
2) Compose your entry separately and store it in a file, then type
and it'll log in and post the contents of the input file. I nearly always do it this way.
(There are more options you can use, and -i and -s are really optional, but I wanted to show a 'typical case' example.)
I haven't tried to compile it under Cygwin yet, but it can be made to work under Linux and Unix and I think MacOS (which these days is Unix under the hood anyhow); in any event, you run it from a command line ("terminal window" or "console window" or on a Linux box not running X, just the console itself ... even a dumb terminal dialed in via modem will work).
So right there, a lot of people are going to go, "Command line? Eww." I imagine one could write a cute GUI shell around it, but it'd probably be easier just to download one of the popular GUI clients. Me, I wanted three things: to use the editor of my choice; to be able to pipe text into it or read from a file; and to be able to use it no matter which computer I'm sitting at without having to install and configure it on every single machine. Since it's a command-line app, I can just telnet or ssh from any computer I find, to a computer where I've already installed it (such as at my shell-and-mail ISP[*] or my main Linux box at home).
You're supposed to be able to store the username and password in a config file in your home directory on the machine where you run it instead of putting them on the command line each time. I don't remember offhand whether it'll prompt for them if you do neither. In any case, the password doesn't normally get sent off of the machine on which Clive is running[**].
So that's the tool I'm starting from. With that, in addition to normal posting of entries, I was able to write a shell script to pluck the first entry from a file containing a queue of them and post it as my quote of the day (and, of course, set up that script as a cron job); and write a Procmail recipe that pipes certain text messages from my cell phone into Clive to be posted (which means 1: not relying on the site I'm posting to to support SMS posts directly at my account level or at all, and 2: the ability to crosspost the SMS entries).
Next, the crossposting hacks.
[*] I buy shell access, an email address, and some disk space (and web space) from one ISP, and my broadband connection from another.
[**] IIRC, it can be forced to do plaintext authentication (where it sends the password to the server in the clear), but that's neither the default nor recommended.
To crosspost using Clive, currently what I do is this: as I mentioned, I compiled a separate copy of Clive that defaults to each of the sites I journal on, and when I want to post an entry I type (in the 'tcsh' shell -- is you use BASH, ksh, or zsh the syntax is probably a little different):
where {filename} is whatever file I composed the entry in. Oh, I like to write out the HTML explicitly instead of having the server convert linebreaks -- that's what the -p is for. (And I don't really type out the list of clients each time. Instead I put the list into an environment variable in my .login file, so I just have to type "foreach foo ($CLIVES)".)
This is, admittedly, cumbersome even for me. It should be a shell script that works as a wrapper for Clive. But I ran into problems with the multiple layers of quoting for subject headers with spaces in them, and back-burnered that script. Of course, if I get around to hacking crossposting into Clive itself first, I won't need to debug that shell script.
And you can see here that I've done something rather dangerous, and am relying on something I got lucky with (using the same password at each site, and getting the same username at each site, respectively). Building crossposting support into Clive itself, if anybody but me will use it, needs to be done in a way that doesn't rely on those two things.
As to where I've gotten so far, changing one line to make it spit out the URL of the entry it just posted instead of the itemid assigned by the server (which is not the same number that appears inside the URL), meant that the temporary version of my 'postqotd' shell script could take the output of the post-to-IJ copy of Clive, run it through sed to turn it into the fake-cut-tag entry to post to LJ, and pipe that into the post-to-LJ copy of Clive. (And writing this paragraph has just reminded me that I forgot to switch it back to the regular version of 'postqotd'. Whoopsie!)
My to-do list for Clive is:
Add some degree of crossposting support,
Add a command-line option for setting tags on an entry when it's posted,
Add a command-line option to select at run time whether to report URL or itemid on success,
Find out whether the author of Clive has any interest in incorporating my modifications.
My ideas for how to better support crossposting are (so far): add a command-line option to select the journalling site to post to (which means using it the same way I do now, but only having to maintain a single executable that posts to all the different sites) or make it read a list of sites from the config file (or a second, just for crossposting, config file). For the first of those I've been mulling over two versions: either put the whole URL of the hosting site on the command line, or put the name (or user-supplied abbreviation) on the command line and have the program look up the URL that goes with that name in the config file.
(That is, whether to have the user add "-S www.insanejournal.com" to the command, or to have hir add "-S ij" and have a line in the config file that specifies that "ij" means "www.insanejournal.com".)
Until I read your comment, the idea of a hosted solution didn't even occur to me -- this was all a "download it to your computer and install it there" plan -- but now that you've put the idea in my head I'll spend a little time thinking about whether a hosted version would make sense, and how I'd want that to work if so.
Er ... did I actually wind up answering the questions you meant to ask in there anywhere?
Questions -
What will the end user get? What will they need to put in? I've been trying a bunch of different clients and not been too happy with many. Mostly it's hard to swap between clients or do one-push crossposting.
Plus, some folks have issues with the retention of user info (login, password). I'm thinking a simple login management screen if it's stored on the user's computer; you can check off where it's posting, heck, even if one is posting a sample and link or a full entry per account.
If this is a hosted solution, a widget that lets the user maintain their own login information in an xml file on their own computer so it's never stored on the server? I don't know enough about it from you descriptions to give suggestions on how to make it user friendly and usable for multi posters.
But I look forward to watching the development. :)
Re: Questions -
1) Typeand it'll fire up the editor you configured it to use and then log in and post the entry you typed in the editor ... or
2) Compose your entry separately and store it in a file, then typeand it'll log in and post the contents of the input file. I nearly always do it this way.
(There are more options you can use, and -i and -s are really optional, but I wanted to show a 'typical case' example.)
I haven't tried to compile it under Cygwin yet, but it can be made to work under Linux and Unix and I think MacOS (which these days is Unix under the hood anyhow); in any event, you run it from a command line ("terminal window" or "console window" or on a Linux box not running X, just the console itself ... even a dumb terminal dialed in via modem will work).
So right there, a lot of people are going to go, "Command line? Eww." I imagine one could write a cute GUI shell around it, but it'd probably be easier just to download one of the popular GUI clients. Me, I wanted three things: to use the editor of my choice; to be able to pipe text into it or read from a file; and to be able to use it no matter which computer I'm sitting at without having to install and configure it on every single machine. Since it's a command-line app, I can just telnet or ssh from any computer I find, to a computer where I've already installed it (such as at my shell-and-mail ISP[*] or my main Linux box at home).
You're supposed to be able to store the username and password in a config file in your home directory on the machine where you run it instead of putting them on the command line each time. I don't remember offhand whether it'll prompt for them if you do neither. In any case, the password doesn't normally get sent off of the machine on which Clive is running[**].
So that's the tool I'm starting from. With that, in addition to normal posting of entries, I was able to write a shell script to pluck the first entry from a file containing a queue of them and post it as my quote of the day (and, of course, set up that script as a cron job); and write a Procmail recipe that pipes certain text messages from my cell phone into Clive to be posted (which means 1: not relying on the site I'm posting to to support SMS posts directly at my account level or at all, and 2: the ability to crosspost the SMS entries).
Next, the crossposting hacks.
[*] I buy shell access, an email address, and some disk space (and web space) from one ISP, and my broadband connection from another.
[**] IIRC, it can be forced to do plaintext authentication (where it sends the password to the server in the clear), but that's neither the default nor recommended.
Doh!
Re: Questions -
This is, admittedly, cumbersome even for me. It should be a shell script that works as a wrapper for Clive. But I ran into problems with the multiple layers of quoting for subject headers with spaces in them, and back-burnered that script. Of course, if I get around to hacking crossposting into Clive itself first, I won't need to debug that shell script.
And you can see here that I've done something rather dangerous, and am relying on something I got lucky with (using the same password at each site, and getting the same username at each site, respectively). Building crossposting support into Clive itself, if anybody but me will use it, needs to be done in a way that doesn't rely on those two things.
As to where I've gotten so far, changing one line to make it spit out the URL of the entry it just posted instead of the itemid assigned by the server (which is not the same number that appears inside the URL), meant that the temporary version of my 'postqotd' shell script could take the output of the post-to-IJ copy of Clive, run it through sed to turn it into the fake-cut-tag entry to post to LJ, and pipe that into the post-to-LJ copy of Clive. (And writing this paragraph has just reminded me that I forgot to switch it back to the regular version of 'postqotd'. Whoopsie!)
My to-do list for Clive is:
My ideas for how to better support crossposting are (so far): add a command-line option to select the journalling site to post to (which means using it the same way I do now, but only having to maintain a single executable that posts to all the different sites) or make it read a list of sites from the config file (or a second, just for crossposting, config file). For the first of those I've been mulling over two versions: either put the whole URL of the hosting site on the command line, or put the name (or user-supplied abbreviation) on the command line and have the program look up the URL that goes with that name in the config file.
(That is, whether to have the user add "-S www.insanejournal.com" to the command, or to have hir add "-S ij" and have a line in the config file that specifies that "ij" means "www.insanejournal.com".)
Until I read your comment, the idea of a hosted solution didn't even occur to me -- this was all a "download it to your computer and install it there" plan -- but now that you've put the idea in my head I'll spend a little time thinking about whether a hosted version would make sense, and how I'd want that to work if so.
Er ... did I actually wind up answering the questions you meant to ask in there anywhere?