OK, clearly people need to start dying over this if we want spam to stop. One of you in the audience has to be an ex-marine with a stockpile of guns. Everyone knows that murderers are only caught if they want to be caught. Pick the top 3 spammers and go out and kill them.
In a trust-metric based world, spammers would be considered so disgusting that you would actually gain karma by killing them.
Lets see how quickly new spammers take their place when spamming runs the risk of having someone explode your head over it.
That or write "MAKE MONEY FAST" on a cinder block and drop it in his mailbox.
I keep most contact information in it. If I leave the house for anything important, it's a good thing to bring along. Additionally, the games are good at suppressing some forms of boredom.
They're also great electronic book readers.
I'm thinking of upgrading because I need a status symbol. See, I'm a technology consultant who comes in and lectures businesses on how they can improve workflow blah blah. Anyway, I went to some small town in Pennsylvania the other day to explain to people who are mostly computer illiterate how I can make their computer systems better, and one of them whips out a Palm that's at least 2 generations ahead of mine.
So yeah, I need to upgrade my PDA. And my cell phone, a Nokia 5000 series being held together with a purple rubberband.
I first used a 286 with about 1MB of RAM. This ran Wolf3D, but poorly. Wolf3D was copied to my dad's pride and joy 386 w/3MB RAM where it screamed.
Then Doom came out. And it wouldn't run on my 386 (needed 4MB of RAM). Luckily my dad just bought a 486dx2/66 with 8MB of RAM and Doom was good. Doom2 was just as fine, but we bought a sound card to complete the experience.
And then came out Quake. It ran at about 5fps on the 486, so I saved up some cash and transformed the 486 into a P133 powerhouse at 16MB (and it only cost about $1000 to do). Quake played nicely and the world was at peace.
That was until Quake2 came out. Time for a k6-2/300. That was cool, but with a voodoo2 it was even cooler. I bought a companion k6-2/350 and could host h2h deathmatch in my household for the first time.
But what's this? Quake3? This prompted me to put together a powerhouse of the likes that I had never seen before. I built it piecemeal over time, like mechanics might build a hotrod in their garage. Acquiring it piece by finest piece. Finally, my Athlon 700 was complete. It sported 256MB of RAM, a voodoo3, and an SB 512K.
And here I am using it now, waiting for Doom3 to come out so I can no doubt upgrade again. I dare to say id Software is more important to the home computing industry than most vendors realize.
The first download of the electronic key that goes with a CD is free. SME plans to charge about A5200 (US$1.64) per song for the second time onwards, Ide said. Users cannot opt to just decode one song from a CD, but have to purchase the key for the entire CD, he said.
Why are they even trying? Off the top of my head I can get at this data by using...
LD_PRELOAD: Load a wrapper for write(). If the file descriptor is the audio device, record the data to a file. By far the simplest and most effective approach.
ptrace(): Attach to the player, capture write() calls to the audio device, saving the raw data to a file instead. Trickier but cooler, I think.
Load a kernel module which intercepts the write() system call against the audio device. Some of these may already exist for dealing with realplayer, etc.
Write a bogus audio driver that saves to a file instead of communicating with a sound card. Tutorials on doing this exist and are pretty simple to achieve even for novice C programmers.
Wait for some h4x0rs to discover how the content is encoded, capture the key as it's sent over the network (I doubt they're sophisticated enough to guard for man-in-the-middle attack, and if so, see above for ways to get at data). Use the key to decrypt the content at your leisure.
Since smart people aren't working for this cause, their peon programmers likely developed an in-house cipher which sucks ass. Wait for a teenager to crack the cipher and post his/her results.
Oh, what's that? The player is Windows only? That's OK, use WINE to translate the Windows API calls into easy-to-tinker with UNIX calls. Same steps above apply under WINE you know (and why stop there? Think about Counter-Strike cheats)
Hmm, it doesn't run under WINE? No problem, VMWare to the rescue!
Oh, you're not a programmer you say? That's alright. Just hook your sound card output to a recorder instead.
Or put a tape recorder up to your speakers for that retro teenage 80s style pirate action.
Basically, it has been cracked before it has even been released. It is hopeless and will just inconvenience casual users at best. If anything, casual users will now start seeking ways to rip the content, causing them to become better acquainted with how to break copy control.
Remember when you were elected weakest link by the rest of the Star Trek cast, and you put the moves on Anne Robinson? On the fineness scale of 1-10 where 1 is fine and 10 is supah-fine, where would you rate her?
As it happens, I did read pretty much all of the article, including the paragraph you quote. But the fact is the author makes a bold statement, "Avoid The Cursed Languages", when in reality the problem is not the programmer's choice of language but the fact that they haven't thought about and sepcified exactly what their program is going to do before coding it. Almost invariably, coders developing like this pay little attention to security.
I'm not sure how that whole section on programming languages didn't convey the exact same point. If a moron doesn't have C/C++, their potential to do damage is far reduced. It is not eliminated, it is still possible to do damage. But if you have someone who doesn't care, this is a good place to start. The article is speaking to morons as a developer who is tired of dealing with them.
Why all of the "good" programmers were offended by an article that clearly targets sub-par programmers is beyond me.
When you critique someone's work, it is customary to first read it in its entirety. Besides the fact that it's just common courtesy, if you had read just one more paragraph you could've prevented yourself from committing such an egregious faux pas.
In other words; if you're going to insult someone don't reveal what a stupid twit you are in the process. Dumbass.
High level languages like Ruby, Python, or even Java are strongly recommended for all new projects. The reason these languages are more secure (in theory) is that they don't have pointers. Most security vulnerabilities that involve breaking program code involve manipulating pointers-in fact, many programming bugs are generally related to pointers in some way. As with the OS issue noted above, do not mistake this for invulnerability. You're simply less likely to be compromised using this particular attack vector with a high level programming language.
The sun is a mass of incandescent gas A gigantic nuclear furnace Where hydrogen is built into helium At a temperature of millions of degrees
Yo ho, it's hot, the sun is not A place where we could live But here on Earth there'd be no life Without the light it gives
We need its light We need its heat We need its energy Without the sun, without a doubt There'd be no you and me
The sun is a mass of incandescent gas A gigantic nuclear furnace Where hydrogen is built into helium At a temperature of millions of degrees
The sun is hot
It is so hot that everything on it is a gas: iron, copper, aluminum, and many others.
The sun is large
If the sun were hollow, a million Earths could fit inside. And yet, the sun is only a middle-sized star.
The sun is far away
About 93 million miles away, and that's why it looks so small.
And even when it's out of sight The sun shines night and day
The sun gives heat The sun gives light The sunlight that we see The sunlight comes from our own sun's Atomic energy
Scientists have found that the sun is a huge atom-smashing machine. The heat and light of the sun come from the nuclear reactions of hydrogen, carbon, nitrogen, and helium.
The sun is a mass of incandescent gas A gigantic nuclear furnace Where hydrogen is built into helium At a temperature of millions of degrees
From my experience, I've never had a hard drive that I've bought and cared for myself ever die on me for no reason. Probably about 10 hard disks from all different vendors. I have however destroyed my hard disks accidentily.
On the other hand, I've used disks second-hand, or been given disks (or stolen disks) that have died on me. But I can't vouch for their care.
Maybe you guys are just really rough with your disk drives?
One thing I have noticed about Windows users is that they're very quick to blame their problems on hardware when it's really Windows' fault that their devices don't work or their filesystems have been corrupted etc.
Anecdote: I know someone whose NIC just stopped working on their Windows 2000 box. Couldn't get it to work at all, reboots, reinstalled driver, etc. He booted Linux and it picked up the card and configured it with no sweat. How many people in situations like this that don't have Linux end up tossing their hardware because they think it's dead?
The ext2fs implementation is actually a userland process which takes a partition as an argument and attaches a translator to the mountpoint. The translator's job is to send requests under this namespace to this server.
The ext2fs server actually mmap()s the partition containing the filesystem and performs all operations as if it were a contiguous block of memory. Unfortunately the ext2fs driver, since it's a userland process, can only address 2GB of memory (the kernel often takes half). Adding a heap and a stack leaves mmap() with about 1GB to safely play with.
Eliminating this limitation would mean using either a 64-bit architecture, or using a read/write/lseek interface instead of mmap, which may mean totally throwing out the ext2fs server as-is. Perhaps they weren't concerned with the limitation because they thought everyone would be using 64-bit architectures by now?
I'm not sure if there are any other reasons other than the filesystem servers using mmap() for the limitation.
Too bad most people are totally oblivious to it, and most ISPs no longer bother to provide the service due to oblivion.
Of course I'm talking about finger! Five years ago most people I dealt with had accounts at ISPs that provided finger services. Among other things, it'll tell you the last time they logged in and checked their email. Plus it is a nifty medium for figuring out what someone has been up to --.plan, the original blog!
If all accounts provided (opt-outable) finger information and people were used to checking it,
maybe this woman wouldn't be out $65,000? And people could stop sending obnoxious messages to their whole address books telling them they're going on vacation?
We seriously need to start a conspiracy to protect and revive UNIXisms.
If you're comparing the US Navy's antiquated technology to some other country's Navy and wondering how the US, the world's largest superpower can be so ridiculously far behind, consider this.
While FOO may have modern systems now, 20 years ago they probably had no IT at all, compared to how the US Navy was running cutting edge WordStar. Such is the case for financial networks in the US vs. Europe. They're old and crappy here, but we've had them since the 60s, whereas Europe is only getting them fairly recently.
Legacy systems support is a huge bitch. And who the hell are Electronic Data Systems? I swear, all of these companies that work with the public sector have such generic names. Are they chosen just because their names are so generic or what?
Plain vanilla copyright allows you to make modifications to software/hardware you've purchased. For example, you can purchase Windows NT Workstation and hex edit the bits that cripple Workstation so that it acts more like Server. You may not however redistribute it.
Microsoft hates the idea because they want to sell Server, which is just a recompile (with a few other tools) for much much more. They claim that you are bound to the End User License Agreement when you open the shrink-wrap package you forfeit this and many other rights. Of course, they don't get your signature, and most people never have any idea of what this license says, and some would say it's plain illegal to force customers to waive so many rights just to use software, so it's kind of up in the air.
I imagine this same EULA makes mod chips illegal. EULAs have not been sufficiently validated in court (cases seem to go both ways for a number of reasons), so you're rolling the dice by challenging it.
Aside from the fact that the claim is incredible...
As other posters point out, everyone can develop their own ciphers that they think is unbreakable. It's not until massive peer review for many years before they become trusted as unbreakable, and thusly become of any value.
Attempting to patent a cipher before this is a waste of money, and patenting it after peer review is likely impossible.
Put it out for public scrutiny. At least you'll hold the copyright on the reference implementation and be recognized as the inventor, and don't blow $20,000+ just to have someone tell you your cipher is bogus/duplicate/pathetic.:)
At least the USA allows its people to search for the truth. They may try to obscure it by posting what they want you to think is the truth over and over again, but they let you look for it. China won't even let its people use Google.
Then you'll be first to want to perform this experiment. On your homepage, make a hyperlink to www.farc-ep.org. The official web site of the Revolutionary Armed Forces of Columbia, which the US claims is a terrorist group, and as such it is illegal to aid the communications of a terrorist group.
See if our government's reaction is any different to an unfavored source of information.
I mean, my car is a lease. If there's any trouble whatsoever it goes back to the dealer for servicing. In fact, it's in their best interest not to fuck the car up since they have to cover repairs under warranty, and they have to buy the car back at the end of the lease. So long independent mechanic, I barely knew thee.
Although I'd probably be mad if I tinkered with cars in the same way I tinkered with computers and didn't have the open source equivalent.
I wrote a script to automate this process. You need cddb.pl (comes with perl CDDB module), oggenc, and cdparanoia (last two by the wonderful Xiphophorus people).
The script is called cddbrename. It automatically looks up the CD against CDDB and makes the appropriate artist/album subdirectories, and copies the tracks there with appropriate names.
There are a couple of steps:
cd ~/ogg
(insert audio CD)
cdparanoia -B
ls *.wav | cddbrename
cd (**artist name/album name**)
oggenc *.wav
rm *.wav
Surely this can be automated. But it's not hard to do. Oh, sometimes a pregap will be saved as a zero track. Just delete it.
OK, clearly people need to start dying over this if we want spam to stop. One of you in the audience has to be an ex-marine with a stockpile of guns. Everyone knows that murderers are only caught if they want to be caught. Pick the top 3 spammers and go out and kill them.
In a trust-metric based world, spammers would be considered so disgusting that you would actually gain karma by killing them.
Lets see how quickly new spammers take their place when spamming runs the risk of having someone explode your head over it.
That or write "MAKE MONEY FAST" on a cinder block and drop it in his mailbox.
Wow, this is getting pretty crazy.
I keep most contact information in it. If I leave the house for anything important, it's a good thing to bring along. Additionally, the games are good at suppressing some forms of boredom.
They're also great electronic book readers.
I'm thinking of upgrading because I need a status symbol. See, I'm a technology consultant who comes in and lectures businesses on how they can improve workflow blah blah. Anyway, I went to some small town in Pennsylvania the other day to explain to people who are mostly computer illiterate how I can make their computer systems better, and one of them whips out a Palm that's at least 2 generations ahead of mine.
So yeah, I need to upgrade my PDA. And my cell phone, a Nokia 5000 series being held together with a purple rubberband.
I first used a 286 with about 1MB of RAM. This ran Wolf3D, but poorly. Wolf3D was copied to my dad's pride and joy 386 w/3MB RAM where it screamed.
Then Doom came out. And it wouldn't run on my 386 (needed 4MB of RAM). Luckily my dad just bought a 486dx2/66 with 8MB of RAM and Doom was good. Doom2 was just as fine, but we bought a sound card to complete the experience.
And then came out Quake. It ran at about 5fps on the 486, so I saved up some cash and transformed the 486 into a P133 powerhouse at 16MB (and it only cost about $1000 to do). Quake played nicely and the world was at peace.
That was until Quake2 came out. Time for a k6-2/300. That was cool, but with a voodoo2 it was even cooler. I bought a companion k6-2/350 and could host h2h deathmatch in my household for the first time.
But what's this? Quake3? This prompted me to put together a powerhouse of the likes that I had never seen before. I built it piecemeal over time, like mechanics might build a hotrod in their garage. Acquiring it piece by finest piece. Finally, my Athlon 700 was complete. It sported 256MB of RAM, a voodoo3, and an SB 512K.
And here I am using it now, waiting for Doom3 to come out so I can no doubt upgrade again. I dare to say id Software is more important to the home computing industry than most vendors realize.
The first download of the electronic key that goes with a CD is free. SME plans to charge about A5200 (US$1.64) per song for the second time onwards, Ide said. Users cannot opt to just decode one song from a CD, but have to purchase the key for the entire CD, he said.
Why are they even trying? Off the top of my head I can get at this data by using...
Oh, what's that? The player is Windows only? That's OK, use WINE to translate the Windows API calls into easy-to-tinker with UNIX calls. Same steps above apply under WINE you know (and why stop there? Think about Counter-Strike cheats)
Hmm, it doesn't run under WINE? No problem, VMWare to the rescue!
Oh, you're not a programmer you say? That's alright. Just hook your sound card output to a recorder instead.
Or put a tape recorder up to your speakers for that retro teenage 80s style pirate action.
Basically, it has been cracked before it has even been released. It is hopeless and will just inconvenience casual users at best. If anything, casual users will now start seeking ways to rip the content, causing them to become better acquainted with how to break copy control.
Very good points. Thank you!
Remember when you were elected weakest link by the rest of the Star Trek cast, and you put the moves on Anne Robinson? On the fineness scale of 1-10 where 1 is fine and 10 is supah-fine, where would you rate her?
If you can nest the environments ten times, what is to be gained (scientifically) by doing it one thousand times?
As it happens, I did read pretty much all of the article, including the paragraph you quote. But the fact is the author makes a bold statement, "Avoid The Cursed Languages", when in reality the problem is not the programmer's choice of language but the fact that they haven't thought about and sepcified exactly what their program is going to do before coding it. Almost invariably, coders developing like this pay little attention to security.
I'm not sure how that whole section on programming languages didn't convey the exact same point. If a moron doesn't have C/C++, their potential to do damage is far reduced. It is not eliminated, it is still possible to do damage. But if you have someone who doesn't care, this is a good place to start. The article is speaking to morons as a developer who is tired of dealing with them.
Why all of the "good" programmers were offended by an article that clearly targets sub-par programmers is beyond me.
When you critique someone's work, it is customary to first read it in its entirety. Besides the fact that it's just common courtesy, if you had read just one more paragraph you could've prevented yourself from committing such an egregious faux pas.
In other words; if you're going to insult someone don't reveal what a stupid twit you are in the process. Dumbass.
High level languages like Ruby, Python, or even Java are strongly recommended for all new projects. The reason these languages are more secure (in theory) is that they don't have pointers. Most security vulnerabilities that involve breaking program code involve manipulating pointers-in fact, many programming bugs are generally related to pointers in some way. As with the OS issue noted above, do not mistake this for invulnerability. You're simply less likely to be compromised using this particular attack vector with a high level programming language.
Why Does The Sun Shine,
by They Might Be Giants
The sun is a mass of incandescent gas
A gigantic nuclear furnace
Where hydrogen is built into helium
At a temperature of millions of degrees
Yo ho, it's hot, the sun is not
A place where we could live
But here on Earth there'd be no life
Without the light it gives
We need its light
We need its heat
We need its energy
Without the sun, without a doubt
There'd be no you and me
The sun is a mass of incandescent gas
A gigantic nuclear furnace
Where hydrogen is built into helium
At a temperature of millions of degrees
The sun is hot
It is so hot that everything on it is a gas: iron, copper, aluminum, and many others.
The sun is large
If the sun were hollow, a million Earths could fit inside. And yet, the sun is only a middle-sized star.
The sun is far away
About 93 million miles away, and that's why it looks so small.
And even when it's out of sight
The sun shines night and day
The sun gives heat
The sun gives light
The sunlight that we see
The sunlight comes from our own sun's
Atomic energy
Scientists have found that the sun is a huge atom-smashing machine. The heat and light of the sun come from the nuclear reactions of hydrogen, carbon, nitrogen, and helium.
The sun is a mass of incandescent gas
A gigantic nuclear furnace
Where hydrogen is built into helium
At a temperature of millions of degrees
Link is a 404. Anyone?
From my experience, I've never had a hard drive that I've bought and cared for myself ever die on me for no reason. Probably about 10 hard disks from all different vendors. I have however destroyed my hard disks accidentily.
On the other hand, I've used disks second-hand, or been given disks (or stolen disks) that have died on me. But I can't vouch for their care.
Maybe you guys are just really rough with your disk drives?
One thing I have noticed about Windows users is that they're very quick to blame their problems on hardware when it's really Windows' fault that their devices don't work or their filesystems have been corrupted etc.
Anecdote: I know someone whose NIC just stopped working on their Windows 2000 box. Couldn't get it to work at all, reboots, reinstalled driver, etc. He booted Linux and it picked up the card and configured it with no sweat. How many people in situations like this that don't have Linux end up tossing their hardware because they think it's dead?
It's a really hard problem to fix.
The ext2fs implementation is actually a userland process which takes a partition as an argument and attaches a translator to the mountpoint. The translator's job is to send requests under this namespace to this server.
The ext2fs server actually mmap()s the partition containing the filesystem and performs all operations as if it were a contiguous block of memory. Unfortunately the ext2fs driver, since it's a userland process, can only address 2GB of memory (the kernel often takes half). Adding a heap and a stack leaves mmap() with about 1GB to safely play with.
Eliminating this limitation would mean using either a 64-bit architecture, or using a read/write/lseek interface instead of mmap, which may mean totally throwing out the ext2fs server as-is. Perhaps they weren't concerned with the limitation because they thought everyone would be using 64-bit architectures by now?
I'm not sure if there are any other reasons other than the filesystem servers using mmap() for the limitation.
Too bad most people are totally oblivious to it, and most ISPs no longer bother to provide the service due to oblivion.
Of course I'm talking about finger! Five years ago most people I dealt with had accounts at ISPs that provided finger services. Among other things, it'll tell you the last time they logged in and checked their email. Plus it is a nifty medium for figuring out what someone has been up to -- .plan, the original blog!
If all accounts provided (opt-outable) finger information and people were used to checking it, maybe this woman wouldn't be out $65,000? And people could stop sending obnoxious messages to their whole address books telling them they're going on vacation?
We seriously need to start a conspiracy to protect and revive UNIXisms.
Most of the large ones do already, and some smaller ones do these, but it'd be nice if these became common practice:
Your message has not been delivered because...
We do not have such a user. Maybe you made a typo? Have the wrong domain?
The user's mailbox is full. Please use alternative means to contact them -- and do everyone a favor and tell them to empty their inbox? Thanks.
The user's account is suspended temporarily -- please use other contact means.
User is having technical difficulties. They have provided forwarding information. Contact them at $(OTHER EMAIL/PHONE NUMBER/POSTAL ADDRESS).
If you're comparing the US Navy's antiquated technology to some other country's Navy and wondering how the US, the world's largest superpower can be so ridiculously far behind, consider this.
While FOO may have modern systems now, 20 years ago they probably had no IT at all, compared to how the US Navy was running cutting edge WordStar. Such is the case for financial networks in the US vs. Europe. They're old and crappy here, but we've had them since the 60s, whereas Europe is only getting them fairly recently.
Legacy systems support is a huge bitch. And who the hell are Electronic Data Systems? I swear, all of these companies that work with the public sector have such generic names. Are they chosen just because their names are so generic or what?
Criminy!
She gets really violent when I kick her ass in Quake. :(
Plain vanilla copyright allows you to make modifications to software/hardware you've purchased. For example, you can purchase Windows NT Workstation and hex edit the bits that cripple Workstation so that it acts more like Server. You may not however redistribute it.
Microsoft hates the idea because they want to sell Server, which is just a recompile (with a few other tools) for much much more. They claim that you are bound to the End User License Agreement when you open the shrink-wrap package you forfeit this and many other rights. Of course, they don't get your signature, and most people never have any idea of what this license says, and some would say it's plain illegal to force customers to waive so many rights just to use software, so it's kind of up in the air.
I imagine this same EULA makes mod chips illegal. EULAs have not been sufficiently validated in court (cases seem to go both ways for a number of reasons), so you're rolling the dice by challenging it.
However, IANAL.
Greetz DJB, JS
Aside from the fact that the claim is incredible...
As other posters point out, everyone can develop their own ciphers that they think is unbreakable. It's not until massive peer review for many years before they become trusted as unbreakable, and thusly become of any value.
Attempting to patent a cipher before this is a waste of money, and patenting it after peer review is likely impossible.
Put it out for public scrutiny. At least you'll hold the copyright on the reference implementation and be recognized as the inventor, and don't blow $20,000+ just to have someone tell you your cipher is bogus/duplicate/pathetic. :)
At least the USA allows its people to search for the truth. They may try to obscure it by posting what they want you to think is the truth over and over again, but they let you look for it. China won't even let its people use Google.
Then you'll be first to want to perform this experiment. On your homepage, make a hyperlink to www.farc-ep.org. The official web site of the Revolutionary Armed Forces of Columbia, which the US claims is a terrorist group, and as such it is illegal to aid the communications of a terrorist group.
See if our government's reaction is any different to an unfavored source of information.
I mean, my car is a lease. If there's any trouble whatsoever it goes back to the dealer for servicing. In fact, it's in their best interest not to fuck the car up since they have to cover repairs under warranty, and they have to buy the car back at the end of the lease. So long independent mechanic, I barely knew thee.
Although I'd probably be mad if I tinkered with cars in the same way I tinkered with computers and didn't have the open source equivalent.
I remember when this first started out they believed it would take about 1000 years to crack.
There's a lot of interesting information that comes from this aside from the actual problem being attacked.
Oh, the ls *.wav | cddbrename is no longer necessary. Who knew? Just cddbrename.
;
And that weirdo looking line should be:
my @files = <D>;
Slashdot interpreted it as:
my @files =
I wrote a script to automate this process. You need cddb.pl (comes with perl CDDB module), oggenc, and cdparanoia (last two by the wonderful Xiphophorus people).
;
/^title: (.*)$/) { /^artist: (.*)$/) { /^track [0-9]*: (.*)$/) {
;
/^track([0-9]*)\.cdda\.wav$/) {
The script is called cddbrename. It automatically looks up the CD against CDDB and makes the appropriate artist/album subdirectories, and copies the tracks there with appropriate names.
There are a couple of steps:
cd ~/ogg
(insert audio CD)
cdparanoia -B
ls *.wav | cddbrename
cd (**artist name/album name**)
oggenc *.wav
rm *.wav
Surely this can be automated. But it's not hard to do. Oh, sometimes a pregap will be saved as a zero track. Just delete it.
---
#!/usr/bin/perl
# Er, uh, GPL distributions terms.
open(D,"cddb.pl|");
my @cddb =
close(D);
my $album = '';
my $artist = '';
my @tracks;
foreach (@cddb) {
chomp($_);
$_ =~ s/\r//g;
$_ =~ s/ $//g;
$_ =~ s/\//-/g;
last if ($_ eq '');
if ($_ =~
$album = $1;
} elsif ($_ =~
$artist = $1;
} elsif ($_ =~
push @tracks, $1;
}
}
open(D,"ls *.wav|");
my @files =
close(D);
foreach (@files) {
chomp;
$_ =~ s/\r//g;
last if ($_ eq '');
if ($_ =~
my $srcfile = $_;
mkdir("$artist");
mkdir("$artist/$album");
#my $dstfile = "$artist/$album/$1 $tracks[$1].wav";
my $dstfile = "$artist/$album/$1 $tracks[$1-1].wav";
print "$srcfile -> $dstfile\n";
rename($srcfile,$dstfile) or die("Cannot rename(): $!\n");
}
}
---