To bad im such i terrible person (Karma: terrible) so this probably wont be read.
Anyway, Im working on precisely what you describe. This is what Ive written up about it so far (it is not stable or released yet):
gcdaemon is a Grid-Computing-Daemon which means that it runs in the background and serves as both client and server for distributed computations.
A grid topology is created as running daemons either broadcast their presence on a particular subnet or by announcing themselves to already known nodes. Once a node is up and running it will receive requests for running computations from other nodes. If such a request is accepted (this must be done explicitly) a client program is downloaded from the serving node and then executed. On the other hand, if you want to run/serve a computation from your node, you launch a server session instead. This will start two things, in the following order: 1. A client provider server (multi-threaded) ready to provide client nodes with the computation client program and 2. The computation server program itself. The daemon provides both server and client programs which ports they should run on. For clients it's which server/port to connect to, and for servers it's which port to accept connections on.
Any given node can host/serve any number of computations. That is, it can run any number of clients as well as run any number of servers - each server having it's own multi-threaded client provider. Since both client and server programs are external binary programs, there are very few (if any) limitations on what can be run via gcdaemon. In most cases the server should be multi-threaded since it may receive connections from a possibly large number of nodes, but the client probably will be single-threaded and only perform some atomic computation. For now, it is assumed that the binary program is executable on the current node but it would be easy to add some sort of binary type detection and maybe run computations through a java/c# virtual machine.
All computations are identified by their client program's md5 checksum, guaranteeing no collisions and no running multiple instances of a computation on the same node.
Security
Running unknown, binary programs on your computeris of course a great security risc. This can be dealt with in a number of different ways. The two I have thought about is sandboxing and authentication. While the first would definately be a nice complement to the second, as well as a better solution for automated, small-scale computations, it is both harder to implement and might introduce unwanted constraints on computation programs. Authentication on the other hand, is very easy to implement but requires more user interaction for accepting computations or some ad hoc auto-accept hack. To use authentication one would simply add an authentication tag to the computation struct (which is sent with the employment request) which would hold a) the receiving node's hostname (or some other identifier) assymmetrical encrypted, and b) a (trusted) reference to the public part of the encryption key.
Controlling the daemon
The daemon is controlled by telnet. Currently these are the availible commands:
Welcome to GCDaemon 0.1.2 Type 'help' for a list of commands.
gcd# help GCDaemon Help - available commands:
help info broadcast subnet mask announce hostname/ip number denounce online offline serversession server client stopclient client # stopserver server # accept request # reject request # cd path quit
This gives a whole new perspective on the scene in films where the guy grabs the beutiful woman by the waist, the cable (going up) with the other hand, and cut the elevatorcable.
"A student and teenager in Australia whose research is in the area of communication
through pick-up-lines, serendipitously created an 'optical biocomputer' when he spilled
beer on down his throat and left it there for a couple of hours. The resulting drunkeness
that formed distorted the sound of his voice in interesting and meaningful ways. Here's
some of his research, media samples which include mp3s of the distorted "music" coming soon."
Yes, the term biocomputer is used in the loosest sense.
You're going away for a couple of weeks for whatever reason.
1. Choose a channel with decent adult material 2. Press 'record' on your Sony 2WEEK-Linux-Video. 3. Come home after 2 weeks
Now, given that there is about 2 hours worth of good pr0n every night on the selected channel, when you come back home you will have a HD with 28.5 hours of quality pr0n! Do i need to continue this equation? Do I need to spell out point #4?
hehe.. and it reminds me of a place called Kebab House where I used to eat in the city where I went to uni. You had 4 different sauces to choose between: medium strong, strong, very strong and ultra strong! (its even possible that there was a mega strong as well, dont remember).
I try to reinstall my Gentoo box every week. That way I know my programs are always up to date, optimized for my particular arch, and my cpu-utilization tops out at a perfect 100%.
Anyway, Im working on precisely what you describe. This is what Ive written up about it so far (it is not stable or released yet):
gcdaemon is a Grid-Computing-Daemon which means that it runs in the background and serves as both
client and server for distributed computations.
A grid topology is created as running daemons either broadcast their presence on a particular subnet or
by announcing themselves to already known nodes. Once a node is up and running it will receive
requests for running computations from other nodes. If such a request is accepted (this must be done
explicitly) a client program is downloaded from the serving node and then executed. On the other hand,
if you want to run/serve a computation from your node, you launch a server session instead. This will
start two things, in the following order: 1. A client provider server (multi-threaded) ready to provide
client nodes with the computation client program and 2. The computation server program itself. The
daemon provides both server and client programs which ports they should run on. For clients it's which
server/port to connect to, and for servers it's which port to accept connections on.
Any given node can host/serve any number of computations. That is, it can run any number of clients as
well as run any number of servers - each server having it's own multi-threaded client provider. Since
both client and server programs are external binary programs, there are very few (if any) limitations
on what can be run via gcdaemon. In most cases the server should be multi-threaded since it may
receive connections from a possibly large number of nodes, but the client probably will be
single-threaded and only perform some atomic computation. For now, it is assumed that the binary
program is executable on the current node but it would be easy to add some sort of binary type
detection and maybe run computations through a java/c# virtual machine.
All computations are identified by their client program's md5 checksum, guaranteeing no collisions and
no running multiple instances of a computation on the same node.
Security
Running unknown, binary programs on your computeris of course a great security risc. This can be dealt
with in a number of different ways. The two I have thought about is sandboxing and authentication.
While the first would definately be a nice complement to the second, as well as a better solution for
automated, small-scale computations, it is both harder to implement and might introduce unwanted constraints
on computation programs. Authentication on the other hand, is very easy to implement but requires more
user interaction for accepting computations or some ad hoc auto-accept hack. To use authentication one
would simply add an authentication tag to the computation struct (which is sent with the
employment request) which would hold a) the receiving node's hostname (or some other identifier)
assymmetrical encrypted, and b) a (trusted) reference to the public part of the encryption key.
Controlling the daemon
The daemon is controlled by telnet. Currently these are the availible commands:
Come on, what you really meant to say:
My couch is going to have an RFID tag? But... that would allow people to track me everywhere I go.
I (started) to melt a spoon in my micro owen and now I know that the speed of light can be very blinding..
..increase the market for Paper-view [sic] movies..
(strange that that one hasnt turned up yet)
"The catch is, you have to be running it on HP equipment :)"
:->
Would it be sufficient to slap a HP sticker on my boxen?
So what you aww saying is that you whaatew see a wewelease/bwoadway show of Life of Bwwian instead?
The next form factor will/should be named:
1. ^TX
2. TX^^
3. 133TX
4. 3l337X
5. C7X
6. CowboyTX
7. OneBigMutthaBoard
Q: 'What does an agnostic, dyslexic insomniac do?'
A: 'Lies awake at night wondering if there is a dog.'
This gives a whole new perspective on the scene in films where the guy grabs the beutiful woman by the waist, the cable (going up) with the other hand, and cut the elevatorcable.
"A student and teenager in Australia whose research is in the area of communication
through pick-up-lines, serendipitously created an 'optical biocomputer' when he spilled
beer on down his throat and left it there for a couple of hours. The resulting drunkeness
that formed distorted the sound of his voice in interesting and meaningful ways. Here's
some of his research, media samples which include mp3s of the distorted "music" coming soon."
Yes, the term biocomputer is used in the loosest sense.
They can probably easily dodge this suit by using Chewbacca defense. [and maybe even countersue]
GPL + PC + GNU/Linux + TCPA >= NGSCB?
* You study the taste, the favorite so being automatic, you videotape program,"the male be completed algorithm".
This one's super-clear: The VCD automatically records just the kind of porn YOU LIKE. "the male be completed algorithm" quarantees ejaculation.
Consider this:
You're going away for a couple of weeks for whatever reason.
1. Choose a channel with decent adult material
2. Press 'record' on your Sony 2WEEK-Linux-Video.
3. Come home after 2 weeks
Now, given that there is about 2 hours worth of good pr0n every night on the selected channel, when you come back home you will have a HD with 28.5 hours of quality pr0n! Do i need to continue this equation? Do I need to spell out point #4?
Then it probably be good for finding babes in red swimsuits.
Karma: Bad, and going downhill.
I dont know if its scary or just weird that you write analogue clock. Why not just "clock"?
hehe.. and it reminds me of a place called Kebab House where I used to eat in the city where I went to uni. You had 4 different sauces to choose between: medium strong, strong, very strong and ultra strong! (its even possible that there was a mega strong as well, dont remember).
"The AK47 - when you absolutely positively have to kill every motherfucker in the room."
So.. I wonder what they serve for lunch at a wind farm? Baked Beans? Broccoli?
"NASA's Cool Robot of the Week (which apparently is about a month long) [...]".
I guess since we're taking about a robot and NASA is involved thats a light-month?
I try to reinstall my Gentoo box every week. That way
I know my programs are always up to date, optimized for
my particular arch, and my cpu-utilization tops out at a
perfect 100%.
I have a feeling video stores are not going to like this. Or do they get the majority of their money from people without friends?
Yes.