Give it time, the more songs that you rate, the better it gets at picking out what it thinks you'll like. You have to put up with a bit of crap while it sorts out your tastes, but before too long it'll start getting better. It's pretty hard to get a feel for what you like with only a couple of samples.
The download speed was a problem with one of the music sites being slow. This has been dealt with in the client by supporting multiple downloads, so that you don't have to wait for one slow file to come down. Check out the latest CVS/unstable snapshot.
Unfortunately, I have a thesis to write so my contributions have slowed down a lot recently, and I think similar real-life interferences have hit the other devs lately.
I suggest that you don't try the stable version, but get the CVS or unstable versions. A lot has happened since the last stable release. There is also a new server under development, which will allow a few things such as submissions. Hopefully also a search and queue for next downloading function eventually (that's something I'd like to see, and would consider adding myself if need be).
If you have ideas you'd like to see in it, hop on the devel list and suggest them (or email me and I'll forward them). Coders are also totally welcome!
Oh, and for the interested, someone has been working on a KDE client for it too.
Now I'll wander through this thread and reply to other meaningful comments on iRate:)
1) I have an old 486DX2/66 that I inherited when my parents upgraded. It worked as my primary computer for a few years, and happily withstood my inept hardware hacking attempts. Once, after installing a new CD-ROM, that involved removing the IDE controller board, I fired the thing back up, to be met with a few beeps and 'IO Controller Failure Error', and a waft of Magic Smoke. Turned it off and looked around inside. I found that I hadn't pushed the IDE board all the way back in, so some pins where where they should be, some were crossing a couple of mobo pins, and the remainder were in free space. Took it out, put it back in and tried again, same error. So I took the board right out, looked it over, and found a half charred/half blue electrolytic cap, fortunately I was able to read the rating. So I trimmed it off, leaving the leads on the board as long as possible. Found a similar one in my junk box, only with an order of magnitude higher rating, and soldered it in. This time the machine booted. After that, it gave me about a half-dozen errors again, and since then has been running perfectly (relegated to on-again/off-again firewall duty).
2) Same 486, flat BIOS battery. This had the ones that are about as wide as an AA battery, but about a third the length. So I go to take the current one out, and it looks like it is simply held in by pressure from the two contacts. Slide a screwdriver under and twist. *pop*, one end of the battery comes off the mobo. Turns out that the contact is part of the battery, and it is soldered on the board. Luckily, the join broke cleanly and didn't take a chunk out of the mobo, so replacing it was easy.
I use knewsticker for news. It just has a scrolling thing at the bottom, where a word may catch my eye. However, usually I right-click it to bring up a list of all the articles, if I want to see if anything new is on slashdot/the register/wired/whatever. I find it a lot nicer than trolling through browser bookmarks, however I'm effectivly treating it like a set of bookmarks that update themselves.
Or have the clients use the jabber network. The client program logs on using a special resource, registers itself with a bot, and when there is data, the bot sends it to that resource if it is online.
(In jabber, a resource is a marker to seperate the same user being logged on multiple times, e.g. I have Uni and Home as resources to my jabber ID, depending on where I am, so people can send me a message to reach me specifically at home if they like)
Oh, in that case I totally agree. Someone with exposure to a range of programming paradigms (i.e. not just basic and C, or not just Java and Python) would likely have a better computer science 'mindset', they're used to thinking outside the imperative/OO square a bit. Like making faster and simpler code in Perl using it's functional-like bits (like map and grep) where they make sense.
Knowing both Python and C# says nothing about computer science ability. Knowing Smalltalk, Haskell and Prolog says a whole lot more. Knowing Python and C# says that you are a programmer who is keeping up with things, nothing to do with computer science. (In the sense that an astronomer doesn't necessarily know much about crafting telescope lenses)
I'm currently doing my masters in CS, and don't know Python or C#, however I like to think I have an interest in it:) I tend to use Perl and Java for outright programming. However, I know that I could sit down and become competent in the others in a few days of learning, because I have covered many other languages, so learning a new one is no problem.
Actually, it's not necessarily (well, the language use bit, anyway). In English, 'he'/'his' can be used for a gender-non-specific singular pronoun for animate things (like people), unless it is known that the person is female. Inanimate things are referred to as 'she'/'her', which is why boats are usually called 'her'. It has nothing to do with male and female, it's just a feature of the language.
Heh, I can just see that happening:
Bob: So, the sun has come up again this morning.
Joe: Yep, so it has.
Bob: Wonder if the same's gunna happen tomorrow.
Joe: Based on the trend, I'd have to say yes.
Secret Service: We've heard reports that you have been practising science! What do you have to say in your defence?
Joe:...
SS: *bang*
I think that this is largely because we have been evolving for so long that we are at the point where if a single mutation was going to have a totally beneficial effect, it would already be in the population. However, take someone with colour blindness: a disadvantagius condition (slightly so, anyway). Now, if he has a child, and in the process of reproduction the colour blindness causing gene mutated so that the child wasn't affected, wouldn't that be a beneficial mutation? (ignoring the whole diploid thing for simplicitys sake). I suspect the reason we don't see that happen is because it is much less obvious. Nowadays we are at the point where mutations come with tradeoffs, because if they didn't, then they would have already happened.
Thus if GAs are really indicitive of "real" evolution, then why can't they eventually evolve into "higher algorithms"? A P2P network could very well improve the GA's success rate for its problem domain. It can start by accidentally reusing its network connections, then accidentally making contact with other cache hosts with the same mutation, then it can evolve a protocol by accidentally learning each communication packet through a torrent of random spam packets, etc.
That wouldn't happen because it is outside the bounds of the system. Say, for the sake of argument, that it is impossible for carbon-based life forms to have telepathy. There is now no way for any carbon-based life form to evolve telepathy, yet it [the organism] is still evolving. Telepathy is outside the bounds of the system. Same with a GA system. It is evolving in the same way (very minor changes from one organism to the next that add up to be a significant change). It can come up with genetic material that was never introduced into the system (that's what the mutation operator does), it can combine genetic material in ways never before considered (crossover), and each of these possible solutions is checked to see how good it is. The better it is, the greater the odds of it's survival. I have seen GAs find solutions in areas that people hadn't even considered, just by starting from a few random points and slowly moving to where things are a bit better.
If a GA is a good emulation of micro-evolution, and macro-evolution is based on micro-evolution, then shouldn't we be able to compute a set of mutations that take the program out of its pre-programmed algorithms?
There are no pre-programmed algorithms (unless the programmers seeded it with a few known-good ones as a start). In either case, it is going to be moving away from it's starting situation as soon as it starts evolving. A bit here, and a bit there will change, and look at it a few hundred generations later, and what it has is totally different to what it started with. There is no macro- or micro-evolution, there is only evolution. The more time you look at it over, the bigger the changes. If you start with 1, and add 1 you have 2, which is close to one. Take it 100 time steps later and you have 102, which is very different from 1 or 2, but is the result of many small changes.
You wouldn't have them producing 'real' code, like machine code or source code to a human programming language. You would have them produce something domain specific 'script-like' that can never have an error, other than bad performance, or at least minimises errors (it can be hard to avoid things like stack underflow). At the outside, you could produces something like LISP code if you need the expressiveness of a full language, however even this is unlikely, and producing something like Java would be way to difficult. Basically, allowing the system to generate output in complex languages means that a lot of it's effort goes to finding one that works at all, rather than one that does a bit better than the others.
Once you have your output language designed, then you create your genetic operators so that all the potential solutions are generated valid. You wouldn't then convert them into another language, you would probably build your own caching system simulator that can accept each of the potential solutions, run the simulator over it, and measure the fitness. Lather, rinse, repeat.
Eventually when you find a good one you reimpliment it in a real language, and build it into a live caching system.
Earlier this year I saw someone, on a Linux machine, who had gotten one of the email worms sent to her. She saved it to disk using Pine, scp'ed it from the mail server (this is a uni network) to the local machine, and finally asked someone nearby for help when typing './whateveritwascalled.exe' wouldn't work.
People are going to do their best to run viruses, no matter what.
It isn't too surprising, GCC is known not to be a speed-demon in the code it produces. The goal of GCC is to compile for many many platforms (and to be a good open source compiler)
As someone who runs a personal wiki, I don't care if the sandbox gets indexed. I don't like that people want to use it for their own advertising (or rather, I don't like that they do use it for that). The problem isn't the people running wikis with sandboxes, it's the people who spam them. When all people with wikis exclude the sandbox from being indexed, spammers will just use some other page. So right now, my robots.txt block on the sandbox only works because few other people do it.
I encourage you to try out iRATE radio. It lets you (legally!) download music. If you like it, you can buy it from the band. Get the best of all worlds: legal downloads, experience music you haven't heard of before, and avoid the RIAA fairly easily.
(Disclosure: I am a developer for this, it also needs more work (like most things), so if anyone feels like helping out with a bit of Java coding/UI design/..., come along)
...I called a dialup ISP because I couldn't get a PPP connection. Authentication was fine, but PPP negotiation failed. I explained this to the tech support people, who naturally asked what version of windows I was running. I said that I found the information out in Linux, but it had the same problem in Windows. I explained the PPP negotiation issue, and was met with 'what's PPP?' as the response. I think I spent more time explaining basic networking to the support person than anything else. Turns out they just had a flakey server that was fixed 15 minutes later.
iRATE is a program that downloads music that artists have put on the net. These downloads are also taylored to your own tastes, based on comparing what you like with other users. With this, there isn't a need for P2P music file sharing, and risking being sued by the RIAA, as copying this music is sanctioned by the artist. (Unsurprisingly, not much of this music is made by RIAA labels)
Give it time, the more songs that you rate, the better it gets at picking out what it thinks you'll like. You have to put up with a bit of crap while it sorts out your tastes, but before too long it'll start getting better. It's pretty hard to get a feel for what you like with only a couple of samples.
The download speed was a problem with one of the music sites being slow. This has been dealt with in the client by supporting multiple downloads, so that you don't have to wait for one slow file to come down. Check out the latest CVS/unstable snapshot.
At least one of the devs (me) is reading :)
:)
Unfortunately, I have a thesis to write so my contributions have slowed down a lot recently, and I think similar real-life interferences have hit the other devs lately.
I suggest that you don't try the stable version, but get the CVS or unstable versions. A lot has happened since the last stable release. There is also a new server under development, which will allow a few things such as submissions. Hopefully also a search and queue for next downloading function eventually (that's something I'd like to see, and would consider adding myself if need be).
If you have ideas you'd like to see in it, hop on the devel list and suggest them (or email me and I'll forward them). Coders are also totally welcome!
Oh, and for the interested, someone has been working on a KDE client for it too.
Now I'll wander through this thread and reply to other meaningful comments on iRate
Heh, no. I was just new to hardware at the time :)
All pretty minor, but:
1) I have an old 486DX2/66 that I inherited when my parents upgraded. It worked as my primary computer for a few years, and happily withstood my inept hardware hacking attempts. Once, after installing a new CD-ROM, that involved removing the IDE controller board, I fired the thing back up, to be met with a few beeps and 'IO Controller Failure Error', and a waft of Magic Smoke. Turned it off and looked around inside. I found that I hadn't pushed the IDE board all the way back in, so some pins where where they should be, some were crossing a couple of mobo pins, and the remainder were in free space. Took it out, put it back in and tried again, same error. So I took the board right out, looked it over, and found a half charred/half blue electrolytic cap, fortunately I was able to read the rating. So I trimmed it off, leaving the leads on the board as long as possible. Found a similar one in my junk box, only with an order of magnitude higher rating, and soldered it in. This time the machine booted. After that, it gave me about a half-dozen errors again, and since then has been running perfectly (relegated to on-again/off-again firewall duty).
2) Same 486, flat BIOS battery. This had the ones that are about as wide as an AA battery, but about a third the length. So I go to take the current one out, and it looks like it is simply held in by pressure from the two contacts. Slide a screwdriver under and twist. *pop*, one end of the battery comes off the mobo. Turns out that the contact is part of the battery, and it is soldered on the board. Luckily, the join broke cleanly and didn't take a chunk out of the mobo, so replacing it was easy.
I use knewsticker for news. It just has a scrolling thing at the bottom, where a word may catch my eye. However, usually I right-click it to bring up a list of all the articles, if I want to see if anything new is on slashdot/the register/wired/whatever. I find it a lot nicer than trolling through browser bookmarks, however I'm effectivly treating it like a set of bookmarks that update themselves.
Or have the clients use the jabber network. The client program logs on using a special resource, registers itself with a bot, and when there is data, the bot sends it to that resource if it is online.
(In jabber, a resource is a marker to seperate the same user being logged on multiple times, e.g. I have Uni and Home as resources to my jabber ID, depending on where I am, so people can send me a message to reach me specifically at home if they like)
Oh, in that case I totally agree. Someone with exposure to a range of programming paradigms (i.e. not just basic and C, or not just Java and Python) would likely have a better computer science 'mindset', they're used to thinking outside the imperative/OO square a bit. Like making faster and simpler code in Perl using it's functional-like bits (like map and grep) where they make sense.
Knowing both Python and C# says nothing about computer science ability. Knowing Smalltalk, Haskell and Prolog says a whole lot more. Knowing Python and C# says that you are a programmer who is keeping up with things, nothing to do with computer science. (In the sense that an astronomer doesn't necessarily know much about crafting telescope lenses)
:) I tend to use Perl and Java for outright programming. However, I know that I could sit down and become competent in the others in a few days of learning, because I have covered many other languages, so learning a new one is no problem.
I'm currently doing my masters in CS, and don't know Python or C#, however I like to think I have an interest in it
Actually, it's not necessarily (well, the language use bit, anyway). In English, 'he'/'his' can be used for a gender-non-specific singular pronoun for animate things (like people), unless it is known that the person is female. Inanimate things are referred to as 'she'/'her', which is why boats are usually called 'her'. It has nothing to do with male and female, it's just a feature of the language.
Note: There is mention of it on wikipedia.
Heh, I can just see that happening: ...
Bob: So, the sun has come up again this morning.
Joe: Yep, so it has.
Bob: Wonder if the same's gunna happen tomorrow.
Joe: Based on the trend, I'd have to say yes.
Secret Service: We've heard reports that you have been practising science! What do you have to say in your defence?
Joe:
SS: *bang*
Just wait...it won't be long before you are typing into Fluxole and transferring files with Fluxup :)
I think that this is largely because we have been evolving for so long that we are at the point where if a single mutation was going to have a totally beneficial effect, it would already be in the population. However, take someone with colour blindness: a disadvantagius condition (slightly so, anyway). Now, if he has a child, and in the process of reproduction the colour blindness causing gene mutated so that the child wasn't affected, wouldn't that be a beneficial mutation? (ignoring the whole diploid thing for simplicitys sake). I suspect the reason we don't see that happen is because it is much less obvious. Nowadays we are at the point where mutations come with tradeoffs, because if they didn't, then they would have already happened.
That wouldn't happen because it is outside the bounds of the system. Say, for the sake of argument, that it is impossible for carbon-based life forms to have telepathy. There is now no way for any carbon-based life form to evolve telepathy, yet it [the organism] is still evolving. Telepathy is outside the bounds of the system. Same with a GA system. It is evolving in the same way (very minor changes from one organism to the next that add up to be a significant change). It can come up with genetic material that was never introduced into the system (that's what the mutation operator does), it can combine genetic material in ways never before considered (crossover), and each of these possible solutions is checked to see how good it is. The better it is, the greater the odds of it's survival. I have seen GAs find solutions in areas that people hadn't even considered, just by starting from a few random points and slowly moving to where things are a bit better.
There are no pre-programmed algorithms (unless the programmers seeded it with a few known-good ones as a start). In either case, it is going to be moving away from it's starting situation as soon as it starts evolving. A bit here, and a bit there will change, and look at it a few hundred generations later, and what it has is totally different to what it started with. There is no macro- or micro-evolution, there is only evolution. The more time you look at it over, the bigger the changes. If you start with 1, and add 1 you have 2, which is close to one. Take it 100 time steps later and you have 102, which is very different from 1 or 2, but is the result of many small changes.
You wouldn't have them producing 'real' code, like machine code or source code to a human programming language. You would have them produce something domain specific 'script-like' that can never have an error, other than bad performance, or at least minimises errors (it can be hard to avoid things like stack underflow). At the outside, you could produces something like LISP code if you need the expressiveness of a full language, however even this is unlikely, and producing something like Java would be way to difficult. Basically, allowing the system to generate output in complex languages means that a lot of it's effort goes to finding one that works at all, rather than one that does a bit better than the others.
Once you have your output language designed, then you create your genetic operators so that all the potential solutions are generated valid. You wouldn't then convert them into another language, you would probably build your own caching system simulator that can accept each of the potential solutions, run the simulator over it, and measure the fitness. Lather, rinse, repeat.
Eventually when you find a good one you reimpliment it in a real language, and build it into a live caching system.
Earlier this year I saw someone, on a Linux machine, who had gotten one of the email worms sent to her. She saved it to disk using Pine, scp'ed it from the mail server (this is a uni network) to the local machine, and finally asked someone nearby for help when typing './whateveritwascalled.exe' wouldn't work.
People are going to do their best to run viruses, no matter what.
It isn't too surprising, GCC is known not to be a speed-demon in the code it produces. The goal of GCC is to compile for many many platforms (and to be a good open source compiler)
As someone who runs a personal wiki, I don't care if the sandbox gets indexed. I don't like that people want to use it for their own advertising (or rather, I don't like that they do use it for that). The problem isn't the people running wikis with sandboxes, it's the people who spam them. When all people with wikis exclude the sandbox from being indexed, spammers will just use some other page. So right now, my robots.txt block on the sandbox only works because few other people do it.
...or change the link to point to an anti-wiki-spamming site, such as this, so that they get the keywords that the spammer was looking for.
I encourage you to try out iRATE radio. It lets you (legally!) download music. If you like it, you can buy it from the band. Get the best of all worlds: legal downloads, experience music you haven't heard of before, and avoid the RIAA fairly easily.
(Disclosure: I am a developer for this, it also needs more work (like most things), so if anyone feels like helping out with a bit of Java coding/UI design/..., come along)
OK, so who has been saying good things about VB? Huh? Own up! Yeah, you. I'm looking at you!
...I called a dialup ISP because I couldn't get a PPP connection. Authentication was fine, but PPP negotiation failed. I explained this to the tech support people, who naturally asked what version of windows I was running. I said that I found the information out in Linux, but it had the same problem in Windows. I explained the PPP negotiation issue, and was met with 'what's PPP?' as the response. I think I spent more time explaining basic networking to the support person than anything else. Turns out they just had a flakey server that was fixed 15 minutes later.
Oh dear, this doesn't bode well for the Linux community at all...:)
Rubberhose is unfortunatly very out of date. A newer equivalent, that should work with 2.4 and 2.6 kernels is PhoneBook.
iRATE is a program that downloads music that artists have put on the net. These downloads are also taylored to your own tastes, based on comparing what you like with other users. With this, there isn't a need for P2P music file sharing, and risking being sued by the RIAA, as copying this music is sanctioned by the artist. (Unsurprisingly, not much of this music is made by RIAA labels)