There has been some discussion on psyc://psyced.org/@PSYC about implementing a shared Client Daemon which would act as a proxy for one or more psyc clients running locally on your machine. The daemon would handle low-level details of the psyc protocol and keeping the user linked to a server, then client applications could connect to the daemon when they need to access the network and exiting a client application would not require the user to unlink or close their psyc connection.

<lynX> Then again one of the UNIs jobs is to make bouncers unnecessary, so the job of the Client Daemon should rather be to provide services like files for friends, while no obvious GUI is running, whereas the UNI does the housekeeping (which may need some improvements there, as we talked about elsewhere.. programmable UNI etc)... I also understand that given this architecture, el is right, that the Client Daemon can be available for P2P operations without even being steadily connected to the UNI.. Still, I cannot imagine we can implement a Client Daemon which would be completely unable to communicate with the end user once there is no GUI running. On a windows dimension it does have to be able to open a pop-up when something happens, doesn't it? Hmm..

Contents

PSYC over Unix Socket

11:37:15 20after4 fragt: lynx: I can write raw [[PSYC]] to a [[Unix Socket]], isn't that what the previous mozilla protocol handler was for? The one in cvs?
11:38:01 lynx exclaims: yes.. it was intended for [[psycion]] to receive psyc: link clicks from a browser
11:39:27 lynx exclaims: with our current paradigm of showing the psyc: page first and having function buttons on it
11:39:45 lynx exclaims: you'd have to pass the commands back to the psycion
11:39:53 lynx exclaims: instead of just the urls
11:40:09 lynx exclaims: should be fine
11:40:31 20after4 mumbles: yeah...well what I really was thinking of, socket-wise is to allow non-javascript plugins for psyczilla ...or to allow your console client to connect through psyczilla and share identity
11:41:33 20after4 mumbles: maybe not a worthwhile thing to bother with for the time being
11:42:57 lynx exclaims: in fact yes.. it makes sense for psycion to process the psyc: link click itself
11:43:05 lynx exclaims: fetch the html, give it to the browser
11:43:09 lynx exclaims: then accept commands
11:43:18 lynx exclaims: all sorts of hybrid behaviour
11:44:00 20after4 mumbles: could be done... psycion isn't needed but it could be cool if psycion is more powerful than psyczilla javascript
11:44:10 lynx exclaims: because maybe only one of the two is logged in
11:44:46 lynx exclaims: psycion has an onion routing prototype builtin
11:44:50 lynx exclaims: but no gui for it
11:45:08 lynx exclaims: and native file transfers to go with it

See also: Onion Routing.

Client Daemon

11:45:12 20after4 mumbles: ah, yes...hey that reminds me... I wonder if it would be good to have something that is separate from mozilla maintain the connection, because when closing firefox I want to stay linked to my UNI
11:45:48 lynx exclaims: A BOUNCER!!
11:45:50 20after4 mumbles: if a local daemon could provide psyc: proxy to any gui that wants to use it
11:46:40 20after4 mumbles: it would make things easier also by sharing certain functions and centralizing code in a shared non-gui daemon codebase
11:47:02 20after4 mumbles: when one of our projects implements something cool the other projects can benefit too
11:47:44 20after4 mumbles: but it would have to be cross-platform since psyczilla wants to be compatible with windows. mac and unix
11:48:02 20after4 mumbles: though I could live without windows it's a big userbase
11:52:03 lynx exclaims: the best suited app to this plan is [[perlpsyc]]
11:52:23 lynx exclaims: as el has split psycion user interface in a clean way from the "abstract" client
11:52:29 20after4 mumbles: true, perl is good, cross-platform and suited to the job quite well
11:52:31 lynx exclaims: so a client daemon is feasible like that
11:52:41 elmex spritzt: hi
11:52:51 20after4 fragt: plus perlpsyc is fairly mature, right?
11:52:51 lynx exclaims: we just need anyone willing to compile a win daemon out of it
11:52:55 lynx exclaims: yes
11:53:27 20after4 mumbles: well I can try...but I don't know how to do perl
11:53:39 20after4 mumbles: I'm good at c# and windows development though
11:53:41 lynx fragt: but how do the gui and the daemon communicate?
11:53:47 20after4 mumbles: through a socket
11:53:53 lynx exclaims: thus, no API
11:53:55 lynx exclaims: just psyc methods
11:54:15 lynx exclaims: this would introduce the need for new gui methods
11:54:27 20after4 mumbles: yes, I'm thinking transparent psyc proxy with extra functions so that the gui can ignore some psyc details and just use the local psyc proxy daemon
11:54:39 lynx exclaims: perlpsyc has a nice gui API, but it has no psyc interface for it
11:54:53 20after4 mumbles: hmmm...

xpi Software Installation rocks

11:55:09 lynx exclaims: well i also like how i just installed [[psyczilla]] on my windows
11:55:15 20after4 mumbles: we should not worry about this too much for now because it might be quite some work and delay to set it up
11:55:15 lynx exclaims: i clicked upgrade firefox
11:55:19 lynx exclaims: then i clicked on xpi
11:55:23 lynx exclaims: only had to allow the host
11:55:25 lynx exclaims: that was it
11:55:39 20after4 mumbles: yep...and there are psyczilla updates via rdf feed
11:55:47 20after4 mumbles: supports updating in the extension manager
11:55:53 lynx exclaims: this could even work in office zones where installing your own sotware is forbidden
11:56:57 20after4 mumbles: yep
11:57:03 lynx exclaims: so the potential merits of a psyc client daemon are interesting, but not always wanted
11:57:19 20after4 mumbles: firefox extensions are installed locally in the user-profile so it doesn't require windows admin privileges

Custom UNI

11:59:29 20after4 mumbles: what we need is a basic psyc c2c/p2p spec that we can work from when implementing a daemon/proxy app.
12:00:43 20after4 mumbles: I'm also interested in the idea of writing a custom implementation of the UNI. There is discussion of implementing a chatroom server in perlpsyc, is it possible to implement external UNI in a similar way? I think it would be cool to be able to write external version of User.c
12:01:27 20after4 mumbles: or perhaps a [[procmail]] style feature that would let psyced redirect some things to a file/socket for processing by external apps
12:01:51 fippo hotzenplotzt: we need [[bugless]] to write that feature ;-))
12:02:09 20after4 mumbles: there are things that I think about implementing as psyczilla plugins that would be better as psyced plugins
12:02:38 20after4 fragt: we need bugless psyced you mean?
12:03:10 fippo hotzenplotzt: no, i'm talking about the original author of procmail
12:03:16 20after4 mumbles: oh..hehe
12:03:18 20after4 mumbles: yeah
12:03:32 20after4 mumbles: of course, and lack of bugs would be nice too..haha
12:04:34 20after4 fragt: you know how places each have their own [[LPC]] code? is there a way to write an lpc object for my uni on psyced or does each user have to use the same user.c?
12:05:08 20after4 mumbles: I can write lpc but it would be nice to have custom code for my UNI without editing psyced built-in code
12:14:59 lynx exclaims: programmable users are on the agenda for psyced, yes

Using tags to deal with redirections

12:08:52 20after4 mumbles: hey lynx: bug that I don't know how to fix: when clicking on psyc://ve.symlynx.com/~lynX I get a reply from psyc://psyced.org/~lynX and the message doesn't map back to a browser html page correctly because my callback is waiting for the other uni address
12:09:26 20after4 fragt: can we offer a _source_alias type list so that I can map it correctly?
12:14:25 20after4 fragt: is xmpp:user@host  a valid uri scheme?  doesn't it need to have the double-slash in there after xmpp: ?
12:14:31 lynx exclaims: 420: you get the _tag back
12:14:47 lynx exclaims: so if you map the _tag_reply to the _tag you sent, you find out who's answering what