Universal personal proxies & agent companions
Russell Beattie writes:
The idea in my mind is for a project that would be a universal personal proxy (UPP) that sits between you and the internet. It would be a web proxy, email filter, spam cop, a place for agents and schedule tasks to run and more. It would be responsible for both receiving and sending of information - as web pages, emails, web services requests, ftp file postings, etc. In the middle it would do analysis like for Spam or RSS autodiscovery, intelligent bookmark history, etc. ... This sort of app would be for people like myself who spend an innordinate amount of time on the internet.Precisely. Exactly. Even down to the combination of P2P and desktop-to-server mix he writes about. I think we're starting to ride a meme here. This is what I want from a PersonalWebProxy. I've been trying to think of a better name for this class of app - it's more than a literal web proxy. I want an agent and an assistant - something that sits shotgun with me while I putter around and can help me study what I do and see. I want something that can eventually do things in my name for me, if I allow it. I want basically all the things Russell wants, along with everything agents do for the characters in David Brin's Earth.
So. How to do this? I think I need to spend some more time fleshing out a spec before I do much more in terms of putting gadgets together. Need to reign in the fantasy, lay out some feasible first revision features, and start. I want it all, but I want to start out with something hackable, useful, and inviting for collaboration.
Still probably too early to be thinking about implementation language, but I have been experimenting and expect some of these things to become the base for my development. My ideas on choices have become less clear-cut now. When last I wrote about this topic, and languages, Donovan Preston left a comment enlightening me with regards to my Python/Twisted vs Java/Threads consideration. In fact, threads are available in the Python/Twisted environment as well. So, now I'm back to thinking about things like free library availability, environment maturity, possible collaborators, and my own comfort level in each.
Bah. At this point, I think I know all I need to know about what various environment choices can do in order to come up with a set of features that can be reasonably implemented in either or any environment. Need to solidify this wishlist into a task list and design and get going.