I have a list of links to projects related to distributed networks. I will be adding links to distributed network hardware, but right now it's mostly just software projects. As one of the Freenet developers, I've heard about just about project out there.
It's odd that you mention that because I actually do keep a copy of the Bible, the U.S. Constitution, and Huckleberry Finn in freenet at all times (bible, u. s. constitution, hfinn). I really do believe that we should use Freenet to spread good ideas that people want and that's why I ensure that there are always some good things in Freenet.
I am one of the Freenet developers. Here's a copy of the letter I sent you in response to your comments in Wired, to which you never responded.
----
Hi! I'm Brandon Wiley, with the Freenet project. I was wondering if we could discuss Freenet a bit in regards to your comments in the recent Wired article.
I don't think Freenet is only for clandestine activities and privacy nuts. I'm interested in it mainly because its a distributed caching datastore with content-based indexing. With Freenet you don't have to know where something is stored in order to retrieve it. You don't need a DNS address or a permanent internet connection to publish information.
Local is no longer an issue. You request information by content and as it travels through the network to you it leaves behind cached copies. So, if you request it a second time, it will load faster. Information migrates to where it is desired.
It's kind of like combining an unlimited number of search engines with an unlimited number of mirrors.
It's more than just that, though, because the infrastructure we're creating can support things other than just web-like documents. It can support e-mail (without a site-based e-mail address) and teleconferencing.
Of course, there is anonmity built in because people like anonymity. I for one and pushing for not making anonymity a necessity when it will get in the way of useful features (such as searching).
There are some idealistic people on the Freenet project. It attracts such people. However, I am not attempting to promote illicit activities. I'm trying to make something useful for the world. I'd like to hear any further thoughts you have on Freenet.
Emulating non-x86 instruction sets
on
Darwin on Crusoe?
·
· Score: 1
While Crusoe could theoretically emulate non-x86 instruction sets, the underlying architecture is designed to optimize for x86 instructions. So it's non-optimal for other instruction sets (especially RISC, as has been pointed out). This is why it's not as revolutionary as it claims to be. They've made a faster x86 which can be software upgraded to new x86 instruction sets. A truly revolutionary design would have been instruction set neutral (well, within CISC or RISC domains, to be reasonable). The other thing that undermines Crusoe's revolutionary power is that Transmeta patented the technology and won't publish the underlying crusoe instruction set. So you won't be seeing instruction set neutral chips and you won't be seeing Open Source implementations of different instruction sets for Crusoe. What would be truly revolutionary would be a single chip that could emulate all the instruction sets I have programs for. In my case these are all CISC, so it would be doable. I could eschew my emulation software in favor of emulation in the chip.
The stereoscopic effects of taping two cameras together, however, are vastly less impressive than rotatable, scalable, importable, 360 degree, 3D models.
The problem is indeed that the compiler doesn't know everything that the programmer knows. However, the reason for that is that modern programming languages aren't sufficiently expressive. There's no reason that I shouldn't be able to tell the compiler that these particular variables should also be less than 256. Not only would that be useful for optimization (for instance, I could say this number is between 7 and 17, and it knows it can store than in a byte instead of 3) but it would also simplify some programming tasks such as bounds-checking for arrays and input. Really, you should be able to specify in a program everything you know about inputs. This would also be useful for choosing algorithms. You could tell the compiler you needed to store some information to be looked up by a numerical key and inserts can be slow, but lookups need to be O(1). And it could choose an appropriate data structure for you. Same with sorts.
The performance jump just from finding the right data structure/algorithm from the hundreds available would be a huge performance leap.
Freenet runs on MacOS. It's in Java and Java is available on MacOS. There are also perl and python clients.
It will take no changes to make Freenet do this. This is what it does, automatic mirroring of popular files.
I have a list of links to projects related to distributed networks. I will be adding links to distributed network hardware, but right now it's mostly just software projects. As one of the Freenet developers, I've heard about just about project out there.
It's odd that you mention that because I actually do keep a copy of the Bible, the U.S. Constitution, and Huckleberry Finn in freenet at all times (bible, u. s. constitution, hfinn). I really do believe that we should use Freenet to spread good ideas that people want and that's why I ensure that there are always some good things in Freenet.
I am one of the Freenet developers. Here's a copy of the letter I sent you in response to your comments in Wired, to which you never responded.
:-)
----
Hi! I'm Brandon Wiley, with the Freenet project. I was wondering if we could discuss Freenet a bit in regards to your comments in the recent Wired article.
I don't think Freenet is only for clandestine activities and privacy nuts. I'm interested in it mainly because its a distributed caching datastore with content-based indexing. With Freenet you don't have to know where something is stored in order to retrieve it. You don't need a DNS address or a permanent internet connection to publish information.
Local is no longer an issue. You request information by content and as it travels through the network to you it leaves behind cached copies. So, if you request it a second time, it will load faster. Information migrates to where it is desired.
It's kind of like combining an unlimited number of search engines with an unlimited number of mirrors.
It's more than just that, though, because the infrastructure we're creating can support things other than just web-like documents. It can support e-mail (without a site-based e-mail address) and teleconferencing.
Of course, there is anonmity built in because people like anonymity. I for one and pushing for not making anonymity a necessity when it will get in the way of useful features (such as searching).
There are some idealistic people on the Freenet project. It attracts such people. However, I am not attempting to promote illicit activities. I'm trying to make something useful for the world. I'd like to hear any further thoughts you have on Freenet.
Have a nice day.
MUQ is indeed very well done. There are other such projects out there. Mine is called Momoko. While I like MUQ, it's not perfect so I figure I'll do it myself and get it just right. Momoko is designed not just for MUDs, but for any sort of multi-user networked application, like community based dynamic web sites or IRC servers or the like. Of course, the lovers of speed will laugh at me because it's written in Java. However, Java is just a language. They're working on compilers to compile Java into native machine code. Of course, OO code is generally not as fast as C. I think flexibility and ease of use is more important in the case of graphical MMORPGs. All the really speed critical code is in the client, the graphics routines. The server is all modelling of behaviour and an OO system is inherently better at that. In fact, I received an e-mail from someone working on Ultima Online 2 praising my use of Python as a MUD scripting language. I think perhaps they're using Python in UO2, but that's just a rumour. Another project is Coldstore, which isn't an entire MUD framework, but a huge, fast persistent store like EROS uses, except on the application level. It will be very useful to future MUD framework developers.
While Crusoe could theoretically emulate non-x86 instruction sets, the underlying architecture is designed to optimize for x86 instructions. So it's non-optimal for other instruction sets (especially RISC, as has been pointed out). This is why it's not as revolutionary as it claims to be. They've made a faster x86 which can be software upgraded to new x86 instruction sets. A truly revolutionary design would have been instruction set neutral (well, within CISC or RISC domains, to be reasonable). The other thing that undermines Crusoe's revolutionary power is that Transmeta patented the technology and won't publish the underlying crusoe instruction set. So you won't be seeing instruction set neutral chips and you won't be seeing Open Source implementations of different instruction sets for Crusoe. What would be truly revolutionary would be a single chip that could emulate all the instruction sets I have programs for. In my case these are all CISC, so it would be doable. I could eschew my emulation software in favor of emulation in the chip.
The stereoscopic effects of taping two cameras together, however, are vastly less impressive than rotatable, scalable, importable, 360 degree, 3D models.
The problem is indeed that the compiler doesn't know everything that the programmer knows. However, the reason for that is that modern programming languages aren't sufficiently expressive. There's no reason that I shouldn't be able to tell the compiler that these particular variables should also be less than 256. Not only would that be useful for optimization (for instance, I could say this number is between 7 and 17, and it knows it can store than in a byte instead of 3) but it would also simplify some programming tasks such as bounds-checking for arrays and input. Really, you should be able to specify in a program everything you know about inputs. This would also be useful for choosing algorithms. You could tell the compiler you needed to store some information to be looked up by a numerical key and inserts can be slow, but lookups need to be O(1). And it could choose an appropriate data structure for you. Same with sorts.
The performance jump just from finding the right data structure/algorithm from the hundreds available would be a huge performance leap.