To relate this to Napster: Napster is telling you where the dealer is, but it's the users who are doing the buying and selling.
Napster takes your money, gets a cut (they're for-profit, even if you don't pay), passes it to the dealer, and provides the dealer an addressed and stamped envolope with your on it. Sure, the dealer puts the drugs in and mails it, but Napster's involvement is akin to a broker with considerable involvement in the transaction, not just a directory like a phone book.
Of course, copyright violation and trafficing controlled substances are very different under the law, or at least that's my impression. The subject really is pretty accurate, I don't "know" the law, that's a matter for lawyers.
It may seem like distant history, but let's not forget that Microsoft hasn't always had a monopoly. They've been excellent at competing against other software. In recent years, they've had monopoly power on their side, which makes them only toughter, but that wasn't always the case.
Word and Excel each eventually displaced Word Perfect and Lotus 123. They created better applications and marketed them very competitively. Admittedly, some of that success was based on good Windows 3.0 support, as their application developers had experience on the Macintosh platform when other PC software vendors were struggling to shift their paradigms.
If.net turns out to be a major new platform (this time reinventing Sun's wheels instead of Apple's), perhaps they will once again have a similar platform-shift advantage as they did when their windows 3.0 based apps were much better than poorly converted dos ones.
I hope it doesn't turn out like that. I use linux about 95% (most CAD software only runs in windows), and I really want linux to "win"... total world domination, or something like that.
It's easy to underestimate Microsoft. Many have before.
Ok, you've got 10000 documents to fix in 6 months, and you can't just "drop everything". Say that you assign the task to only two people, who will work on it full time (8 hours/day, no overtime). Most of the work is probably something you could hire from a temp agency.
<reaching for calculator>
Six months, 20 work days per month (allowing for some sick/vacation), just 2 people assigned to the task, that's 1920 man/hours for the project.
You've got 11 1/2 minutes per document. You need to be converting 84 document per day (if the total really is 10000), so keep track of the progress and make sure you're meeting the 84 document daily quota. The message say "thousands", if it's really closer to 2000 or 3000, this really isn't such a difficult task.
Perhaps each of these thousands of documents really does require a substantial rework, but the much more likely case is that many of them are designed similarily which will speed the process. If most of it is poorly built html (adding alt tags, etc), 11 minutes per page should be plenty, even 5 minutes may be ok. How long does it really take to make similar changes to a large pile of documents?
I read the tone of this posting as basically the victim mentality. With that mindset, you'll probably never even get started.
I think if would be better for people to focus on things like... on-the-fly gzip up webpages before sending them to the host and expanding HTTP to handle these sorts of things...
HTTP 1.1 already has transfer encoding as an optional parameter that can be negotiated between the client and server. I'll bet we can all guess which side of the communication is lacking support for it.
Has anyone here had good/bad experience with affiliate programs based on sales generated from linking. You know, you make a link to Amazon for a book, and if someone follows the link and buys in the same session, you get a percentage of the sale.
I've been considering setting up one of these for our site. We don't have any banner ads and none are planned. I'm talking about a linking based affiliate program. Any experiences, good or bad?
It's been said (a link to your slashdot post on Jan 27, only 11 days ago)... I'll certainly be glad when this little fad is over so we... can go back to programming as usual.
Now that's sad. Aside from being a Troll, "it's been said" refers to yourself? Is anyone else saying it "countless times" ?? If they were, one would think you would link to them instead.
The jury is still out if these companies can be profitable and survive long-term. Perhaps you are right, perhaps they'll prove you wrong, but from judging from your message, it looks most likely that you really don't care and this is just an intentional effort to start a heated flame fest.
What's slashdot coming to? If this investigative reporting trend keeps up, good 'ole slashdot could be on its way (eventually) to becoming a credible news source.
Those are wise words, which I didn't know when I was younger. In fact, when I'm trying to make a pitch for something or another (work related), and it's going nowhere, I often times say exactly that. In the long run, I think it helps build respect to have good intentions, but to back off when it's somebody else's (seemingly wrong) choice.
The other thing I try to keep in mind (not always successfully), is the question: "is this decision something technical, where my input is an expert opinion?" Most decisions involve many factors, and the choice which is clearly superior in a technical sense often times has non-technical (sometimes political) drawbacks that are of overriding importance compared to the relative difference between the technical factors. It's easy to lose sight of non-technical factors in a decision, regardless of one's age. I do it all the time, though I think I'm getting a bit better as I'm getting older.
My little web site suffers regularily from people running archiver programs, Teleport Pro, WebZIP, WebReaper, WebCopier, HTTrack, Wget, WebSymmetrix, Xyro, and many others. Some people set these things to run late at night, which helps a bit, but still impacts the responsiveness for overseas visitors. Often times people running these things have dialup... when a DSL user runs TeleportPro on my little site, it really hurts performance for everyone. My site offers free technical resources, hardware and firmware development tools, and other similar stuff, so many people want to download the whole thing to their hard drives. I have years of experience try to deal with the problems from this sort of activity.
It's easy to get into the "gim'me gim'me gim'me" mode of thinking when surfing the web. After all, "information wants to be free", right? The sad truth is that is costs real money to host a web site. Sure, there are some crappy free hosting services, but their performance is dismal AND your page gets served with their adverts. User account website at ISP (www.some-isp.com/~username) come at no extra charge but only for a few megs of data and rather limited transfer each month.
Web unfriendly software raises the cost of hosting a web site. Low cost hosting usually seems to be billed on the number of bytes transfered, and software like what you're proposing will needlessly increase the site owner's costs. High end hosting tends to be billed on bandwidth (not total transfer), so this software doesn't hit the site's owner directly in the wallet, instead it just makes the site less responsive for other users.
This idea is even worse than archivers, as most of the bytes will sit in a cache and get expired, instead of in a archive directory where they _might_ someday be seen or used. In the case of an archiver, the user went out of their way to obtain a complete local copy of the web site, presumably because they are interested in the material and might actually read it off-line. With a predicitive caching proxy, there's no indication from the user that they will ever make any use of the material dwonloaded. The vast majority will sit in the cache, which will in all likelyhood rapidly need to remove least recently obtained pages. In normal caching terminology, one would say "least recently used", but in this caching scheme, the vast majority of pages in the cache will never have been viewed. Utter waste.
This sort of net-unfriendly behavior is analogous to pollution. Even if just one person pollutes the environment, there is some small harm to a small number of people, perhaps significant harm to a couple if the pollution is severe. If a large company pollutes recklessly, perhaps a community or two is badly effected. If pollution becomes widespread, it's a global problem and almost everyone is harmed.
Likewise, if you hack together a predicitive look-ahead caching proxy and use it amongst yourself and your friends, you're impacting the net similarily as if you'd take your use motor oil and other waste and dump it directly in a local stream. If a large company or two replaces their bandwidth conserving squid proxy with your bandwidth abusing look-ahead caching, a lot of sites will suffer increased costs. If its use becomes widespread, it would significantly increase overall bandwidth usage on the net, in all likelyhood raising costs enough to be passed all the way back down to end users, and it's raise the cost of hosting web sites, which would need to be made up somehow. Perhaps large website could absorb the cost of more bandwidth? Smaller sites, like mine, would be in a world of hurt. For quite some time, I paid out-of-pocket a couple hundred dollars a month to keep the site up. Now, we're making some small sales from the site... getting close to covering the costs.
Well, that's been a long rant. I hope you'll take a moment to consider that web site operators pay real dollars to make their sites available to you, and keep that in mind when you consider designing networking software.
Ultimately, there is a 16-bit hardware register which receives this 1/44000sec sample of sound level...
Actually, I was under the impression that DMA is used, not PIO-style writing to a register.
Unless, as another poster has suggested, the decrypter is built into the DAC, which would be a radical change of architecture requiring (at minimum) for everyone in the world to buy a new sound card, there is nothing at all the industry can do to stop you from adding a piggyback card to pick off the outgoing audio stream and make it available to some other totally unrelated piece of software for recording. This requires a board to be built, which is why it is called a hardware hack.
In the (ugly) world of windows, any new sound card is "installed" by running a program that came with it on a disc, and that program could easily load a driver that supports end-to-end encryption. Almost all modern consumer sound cards have one large mixed-signal chip, with the DMA controller, mixer, and DAC, so if folks like Crystal/Cirrus include decryption, you'll have a lot more hardware hacking to do!
Well, I'm not in an arguement mood... my point in this slashdot post is:
The freedom of speech argument didn't hold up for junk faxing, which is the closest analogy to junk email. The key word here is junk. Some time ago, I started saving almost every spam message I receieve into a file... starting with the most recent and working backwards, let's see how much of this stuff is utter junk:
Feb 2: A "legal" TV descrambler, which appears to just be assembly plans, for "educational" purposes only. Apparantly they claim it'll let you want the pay-per-view and other pay channels, for $12 or something like that. (too bad I don't watch TV) Also some stuff about jamming police radar. Yeah, this questionably legal aspect is going to be a theme...
Feb 1: Making over half million dollars every 4 to 5 months from your home for
an investment of only $25 U.S. Dollars expense one time THANK'S TO THE COMPUTER AGE AND THE INTERNET ! What kind of an idiot sends $25 to something this absurd?
Jan 31: If you are in debt or need extra cash, we can help you get the money you
have been hoping for. Our services are FREE and we have already helped thousands of homeowners, just like you. Now that's pretty deceptive, since any refinance costs a 1% loan origination fee, and these sharks usually charge much more.
Jan 31:: Save up to 70% on your Life Insurance! I don't know enough about life insurance to say for sure this is a scam, but is sounds too good to be true, so it probably is.
Jan 31:: A "we've redesigned our site" (yet again), from Onvia. Admittedly, I did buy a printer there about 8 months ago, and I always make sure that any "send me emails" boxes aren't checked. At least they are a reputable vendor and they shipped my printer the same day.
Jan 31: THIS IS ABSOLUTELY INCREDIBLE!!! PIANO OWNERS- we offer a patented device that sits on your piano keyboard and allows you to play the piano immediately!! They gave a toll free number to call.
Jan 30: Start your mail order business by learning from an expert... FREE Downloadable book for you to keep!!!... My wife and I have been in the mail order business since December 1999. We have made over $100.000 since! The email urges you to visit their website, which I haven't done. They've been in the business for 15 months, and they're the "experts" I should learn from ??
Jan 30: Super Sex Pill with no side effects!... Finally, there is A Dream Come True Product... This formula helps you with naturally triggered arousal and erections, not artificially triggered like Viagra. There's a link to a website, which presumably has more info.
Jan 29: Mortgage Rates DROP!! Lenders COMPETE for your Business!. Just like all the other refinance crap.
Jan 29: IMPORTANT! ANTI-AGING BREAKTHROUGH:
Reduce body fat and build lean muscle WITHOUT EXERCISE!
Remove wrinkles and cellulite
Increase energy and cardiac output
Lower blood pressure and improve cholesterol profile
Improve sleep, vision and memory
Restore hair color and growth
Strenghen the immune system
Enhance sexual performance
To TURN BACK YOUR BODY'S BIOLOGIC CLOCK. Wow, now if only they make is stop this damn spam, they'd really have something:)
Jan 28: ATTENTION BUSINESS OWNER/OPERATOR... From time to time, most companies experience a cash flow problem.... [name removed] is a national consulting company specializing in reducing problem debts for companies of all sizes. Yeah, that's why their email has a forged header... just the sort of folks I'd want to be dealing with.
Jan 28: The "legal" tv descrambler again.
Jan 28: Aggressive 125% of Value Home Loans Available Now... We have loan programs that are unheard of It goes on about how they can get you a loan pretty much no matter how bad you are with credit. Kinda shy on details, though.
Jan 26: Meet The Richest People On Earth... the message about 99% html tags and 1% text, and I've reading it in VIM, so I'm going to skip trying to figure out what this one was. On the bright side, it looks like Jan 27 was one of those rare days without a single SPAM received
Jan 25: You were referred to me as someone who was ready for a Financial Breakthrough! Bullshit, this is a damn spam, who do they think they're fooling, starting out with such an obvious lie? I am looking for a few motivated and teachable individuals who are ready to start earning at least $2000 per week starting right away. And a SEVEN FIGURE income within the next 2 years. I wonder how many people really bit on these get rich quick schemes.
Jan 25: Do you have a Timeshare or Vacation Membership? Are you interested in renting it? We can help!
Jan 25: Do you need help with your credit cards... Reduce your credit card debt by up to 50%... Decrease your payments by 30% On the bright side, Jan 24 was spam free.
Jan 23: Let us Eliminate Your Debt.
Stop creditors from hassling you.
Cut your monthly payments in half.
Make you debt free in less than 5 years.
You can not be turned down for this program.
Jan 22: Obtain Biotech IPOs!. This is another mega-html message, with a meta tag from MS frontpage at the top.
Jan 22: New Findout About Anyone Fast Now!... Download this today and discover the EASY WAY to find out anything about anyone
Jan 22: Spainsh text and.EXE attachment, dictionary.com translates it as something about Snow White's 18th birthday. Maybe this isn't spam and a trojan or virus, but I saved it to my spam file anyways.
Jan 22: VENTURE CAPITAL BUSINESS, CAREER AND INVESTMENT OPPORTUNITY... Our program entails interacting with CEO's of
emerging growth companies and assessing and qualifying their financial needs. If accepted as a partner, there is an $9,750 investment required. Message gives USA phone number, but email header filled with forged and conflicting non-us email addresses.
Jan 21: (this scam is one of my favorites) This exciting opportunity requires a very LOW START-UP COST and has already been TESTED AND PROVEN. We are in the information age, billions are made every year in the information industry and you can take part in making money by selling information. The basic idea is that you'll get rich quick by buying a cdrom, making copies, and selling to others on the net (via spam), who for some mysterious reason didn't already fall for this scam.
Well, you can form your own opinions. Actually, reflecting back on this list, it looks like I'm on the "bad credit" and "get rich quick" lists, but somehow I'm not getting much porn ads like I used to.
Looking though these messages, that have a few things in common, which might allow a very effective filter to be written. Near all offer (a likely bogus) way "to be removed". This phrase almost occurs at the end of the message, often times with "remove" or "in error", and either an email address or url immediately following.
The other style, which isn't usually present in normal emails, it a large number of 2-5 word PRHASES IN ALL CAPS, followed with lots of exclaimation points!!!!!
If RAM Storage was cheaper... and all apps could be in RAM all the time, and we could do things like... instantly-on in the Word Processor, or instantly-on in the Web Browser. But RAM is still WAY too costly, compared to Disk, so it ain't gonna happen.
<stepping onto soapbox>
At the rate software "technology" is going, it will never happen, as word processors and browsers keep growing in their memory consumption, at about the same rate as the prices decrease.
Consider, if you will, running Netscape 1.1 and MS Word 4.0 (admittedly only on the Mac). Netscape 1.1 ran on PCs with 8 megs of RAM, perhap better than today's 4.x and 6.0 versions, and MS Word 4.0 worked quite well about 1.5 megs of ram allocated to it. These apps were about as responsive, perhaps better in many ways (on 486/68040 CPUs) as today's versions. It's amazing that today's word processors and browsers aren't any faster (often slower) and exceed the computer's memory capacity, despite a 20 to 40 fold increase in CPU speed and 6 to 10 fold increase in available memory.
that it will be 10e27 * more powerful than CSS was.
The 40 bit key length of CSS was almost certainly due to the export restrictions that existed at the time. As much fun as conspiracy theories are, a 40 bit key corresponds just too well with the 40 bit export limit when CSS was designed.
There are plenty of fast algorithms that can use 128 bit keys and are quite fast and efficient. Even tripple DES (112 bits) is fast and easy with a little dedicated hardware. 2^128 is a whole lot more than 2^40, in fact 2^88 times harder to brute force. 2^88 is approx 3e26, so your 10e27 is just about right for CSS-II with a 128 bit key length.
Of course, all the key length in the world isn't going to help when the key is stored in a software-based player and a pair of anonymous German hackers team up with a 16-year old kid for a not-profit-motivated reverse engineering effort.
I doubt that any sane judge would accept the latter definition, but it's possible.
Pretty unlikely, as one of these DeCSS cases tried this approach, citing the weakness of the algorithm, and the judge didn't buy it. I recall reading the opinion where the judge refered to a case where a locksmith installed locks that weren't quite so secure, and yet this was no excuse for defeating the lock and trespassing, or something like that... I'd find it again, write this post better, and make a link to it..... but of course that's information about DeCSS and making a link to it could be trafficing in the circumvention technology (honestly, I can't remember which of the three cases is was, and I'm not feeling that ambitious right now).
I read through most of the briefs, and damn, those guys writing that first "law professors" brief sure pack a punch, with language like:
Even if Congress had specified a particular source of constitutional authority, however, it would not matter. The DMCA's anti-device provisions are not a valid exercise of any of Congress' enumerated powers.
It is no answer to these problems to say, as the District Court did, that this result is what Congress intended.... That option was not open to Congress. Nor is it an answer to say that copyright infringement is an "epidemic" that warrants drastic intervention... Congress is not free to choose a cure that would kill the patient.
None of Congress' enumerated powers authorizes this sweeping interdiction.... If the limits on copyright protection required by the First Amendment are to mean anything, the anti-device provisions cannot stand.
As long as we're dreaming, it's been suggested over and over again that there ought to be a period of public review and comments for the abtract of the pending patents. You can be sure that several large companys would scan for pending patents from competitors and submit prior art, and in all likelyhood there'd be some individuals with Free (or open source) software interests in mind, who'd submit stories to slashdot for anything really nasty, offering hundreds of thousands of readers the opportunity to be alerted.
The upgrade from BIND 4.x to 8.x was very painful, they changed nearly everything about the config file format.
Does anyone here know about what (if any) compatibility issues there are going from 8.2.x (installed on most machines today) to 9.1 ?? Did they change stuff in the config file format, again?
Actually, bind, sendmail and wu-ftpd have had a really bad history of aweful bugs. The subject of this message, "WuFTPD: Providing *remote* root since at least 1994" really sums it up pretty well. As mentioned on the Cert page, BIND has had TWELVE Cert Advisories and this makes 13. The even named the 11th one "Continuing Compromises of DNS servers", though I suppose it's just the infamous NXT bug.
Unless patents go the way of copyright (getting extended continually), they will eventually expire. That doesn't help the millions who will die in the meantime, but in the long term the patent will go away and these and other drugs will enter the public domain.
I think a key question is if you really care about the project. I've found it's
much easier to spend late night sessions
overhauling code for a project that I'm
personally involved in that I truely care
about. These sorts of "management only wants
the bottom line" where the quality of the
product is secondary are hard to care
about, and undertaking an unpopular rewrite
often leads to a lot of frustration.
So my advise is to only "stick your neck out"
and "go the extra mile" if you really care
about the code or project. If it feels like
someone else "owns" the project and you're not
in control of its direction, advocating and
persusing a re-write is probably unwise.
It's pretty sad, reading these "ask slashdot" articles, where it's really a simple question and everyone posts a bunch of crap that doesn't even try to answer the question.
From the linux 2.4.0 configuration options:
Bonding driver support
CONFIG_BONDING
Say 'Y' or 'M' if you wish to be able to 'bond' multiple Ethernet
Channels together. This is called 'Etherchannel' by Cisco,
'Trunking' by Sun, and 'Bonding' in Linux.
If you have two ethernet connections to some other computer, you can
make them behave like one double speed connection using this driver.
Naturally, this has to be supported at the other end as well, either
with a similar Bonding Linux driver, a Cisco 5500 switch or a
SunTrunking SunSoft driver.
This is similar to the EQL driver, but it merges Ethernet segments
instead of serial lines.
If you want to compile this as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M here and read Documentation/modules.txt. The module will be
called bonding.o.
There, at least one answer. I feel better now. Too bad I don't "reload" early in the day and post right away (meaning this will never get moderated up). Such is the way of slashdot.
Also, I should mention that I recently installed a HP2512 ethernet switch (you can find it on HP's web site....), and it had an option to connect up to four lines in parallel to another switch, for 400 Mbit/sec between the two. They have their manuals and even instructional training course material on-line, so you can learn quite a bit about it if you want.
Komi, I hope your MP3 player project goes well. If you haven't already seen Peter Kovac's MP3 Projects Web Site, you should certainly check it out.
For the last several months, I've been working on my own MP3 player project which is similar to yours. It was mentioned here on slashdot a few months ago. My design uses a 8051 microcontroller to control everything, Xilinx FPGA to move data around quickly, and the STA013 chip to decode the mp3 data. The design uses a 72-pin SIMM to store data, though I'm only just now getting code to effectively manage caching megabytes of data. My code is open-source (GPL), and you can download firmware source code here. I'm hoping to make an initial release with the completely re-writen FAT32 and IDE drivers in just a few days.
I've spent many many long hours and many dozens of all-night sessions hacking on this little project, and I think I can safely say from experience that FAT32 makes sense for a hard drive based MP3 player project. I'll explain, in the context of just a brief history of my filesystem hacking... there's a very detailed project history on-line.
My first attempt at the player was this old design, which I started in December 1999. You can read about it at the web page, but filesystem wise, it didn't use one. I wrote the MP3 files directly onto the sectors of the drive with a little perl script (redirected to/dev/hda). It actually wrote a little table at the start of the drive (where the boot sector and partition table would normally be) so I could make next/previous track buttons.
It is very easy to do this non-filesystem approach, so as a student project, you should certainly try to do this first. Many student projects run out of time, so I'd really suggest you do raw sectors and get some sounds coming out, and then if you have time, try for a real filesystem.
The old design worked pretty well, but it did have limitations. The raw sector approach and perl script meant that all files had to be copied to the drive at once (because the script packs them one after the next.... and the firmware just plays sectors one after the next and doesn't even worry about which ones are what tracks, until you press a button). The 8051 microcontroller wasn't fast enough to play 256 kbps (14.7 MHz, standard slow 1:12 cycle architecture). I've seen several other projects on the net using a 20-some Mhz Dallas high-speed 8051, most notably Anton Verheijen's SoundBastard player. I wanted even better performance than that, but at low power with a large DRAM buffer, so that I could play from batteries.
Well, my new design does it the hard way. I stayed with the slow 8051, and cut the clock speed in half (lower power). I added a Xilinx FPGA chip, which I used to make a custom DRAM and DMA controller. The DMA allows the IDE drive to be read pretty quickly (2.45 Mbyte/sec is damn fast relative to the power used), and the DMA allows large blocks of MP3 data to be sent to the STA013 chip with very low CPU overhead... which is necessary since it's so slow.
Getting back to the subject at hand, filesystems, I used a very simple firmware approach with this new fancy hardware. The simple (and limited) firmware is still more or less the current rev, but I'm getting darn close to a near total rewrite that will be really cool. But, the point is that there are some simple and not-to-hard ways to read FAT32 filesystems. I'll ramble on a bit about it, even though this post is getting long enough that it probably doesn't all appear unless you click for more.
The first thing I did to simplify the FAT32 code was to require that the drive be fully defragmented. The thought was that it's not too hard to run defrag before you shut down and pull the drive from your PC. Even if you don't like having to run defrag, consider that it's taken me quite a while (probably longer than you project's deadline) to write the more complex code, so starting with a fully defragmented requirement is probably a good idea. If you have lots of time or you're really good (and fast) you'll always be able to improve the code and remove the requirement for defrag later. (BTW, does anyone know of a linux based FAT32 defrag utility)
Microsoft's defrag doesn't defragment directories, so you've still got to deal with following the cluster chains for directories, but the good news is that to play a file, you get its starting cluster from the directory (somehow... I'll get to that), turn the cluster number into the sector number (LBA is much easier than CHS, if you didn't already know), and then just read sectors and play them, one after the next as you decrement a counter for the file size (which also comes from the directory).
Now, in the interest of keeping things simple, so you can get something working before you student project deadline is up, I'd suggest you use a pretty large cluster size, and make all the filenames fit short msdos names (8.3 sucks, but you can improve things after your initial success). If you use short names, each file will only consume 32 bytes in the directory, so a 16k cluster size will be able to hold about 512 filenames.
For for your very first FAT32 attempt, you'll read the volume ID to learn a few critical numbers, which includes the first cluster of the root directory and a couple things you'll need to turn cluster numbers into sector numbers. The official FAT32 specification from Microsoft tells you which bytes mean what and what formulas to use. As you read it, their frustration with lots of poorly-written FAT code shows though...
So, you'll grad the MBA (first sector, LBA=0), read the partition table to find out where the FAT32 volume starts, and then read its volume ID, and your two goals are to learn the first cluster number where the root directory starts, and the info you need to be able to turn that cluster number (and others) into the LBA number so you can fetch them. When you use the formulas from Microsoft's FAT32 spec, don't forget to add the offset due to the start of the partition, as their formulas don't include that (as I found out the hard way).
Now if you've used short filenames, big clusters, and only a couple hundred files, then the entire root directory will fit into that one cluster! You read the directory to find the filenames, and for each one you get the two critical numbers you need, the first cluster and the file size. To play each one, turn the cluster into LBA, and divide the size by 512 (round up) for a count of how many sectors to play, and just start reading the sectors in order and send them to your decoder until you've done them all. Repeat for each file.
Now that does have quite a number of limitations, but it completely avoids having to read any FAT sectors. With a fully defragmented drive and the entire root directory in just one cluster, you should be able to very easily get something working where a standard PC can write the drive (without the ugly perl script).
My current code (0.5.1, available for free download, including GPL'd source) does follow cluster chains for directories, but not for files. It is pretty simple, though there is the added complexity of reading the FAT sectors. As I mentioned earlier, I'm very close to releasing a near-complete rewrite of the project, which will use the FAT for both files and directories, and it includes a malloc/free that's used by the FAT32 code to cache both FAT sectors and clusters. When you're ready to try something more complex, this free code may help you (assuming you can live with the GPL), but initially you should keep the project simple.
I've written some free code, some I've released into the public domain, other code as GPL. Sometimes I've chosen the GPL specifically because I did not want to see the code ever used in any closed source application, at least for free. For most of the GPL'd code I've ever written, I'd probably dual-license for a reasonable royalty, but not for free.
The GPL is pretty clear that you must release all of the code that you link with any GPL'd code you use. Section 2 spells it out about as clearly as possible:
2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
It's hard to speak for other authors/programmers, but it's been my impression that many choose the GPL specifically because of these terms.
The fact that your application has a requirement to be closed source doesn't give you a right to use other people's code in violation of their license terms. Just because it would "really help" you doesn't change a thing. As far as the GPL is concerned, you're out of luck (at least that's how I read it, IANAL). I personally don't like closed source software, and when I release code under the GPL, I want it to help whoever gets it, and other GPL'd projects, but never a closed-source-friendly code base.
But never is a really long time... copyright does eventually expire, and in the meantime, you can always contact the author and ask if they'll release it to you under a license more to your liking. Offering money probably helps your chances.
Napster takes your money, gets a cut (they're for-profit, even if you don't pay), passes it to the dealer, and provides the dealer an addressed and stamped envolope with your on it. Sure, the dealer puts the drugs in and mails it, but Napster's involvement is akin to a broker with considerable involvement in the transaction, not just a directory like a phone book.
Of course, copyright violation and trafficing controlled substances are very different under the law, or at least that's my impression. The subject really is pretty accurate, I don't "know" the law, that's a matter for lawyers.
How about dishonest? Even when testifying in a court of law under oath?
Word and Excel each eventually displaced Word Perfect and Lotus 123. They created better applications and marketed them very competitively. Admittedly, some of that success was based on good Windows 3.0 support, as their application developers had experience on the Macintosh platform when other PC software vendors were struggling to shift their paradigms.
If .net turns out to be a major new platform (this time reinventing Sun's wheels instead of Apple's), perhaps they will once again have a similar platform-shift advantage as they did when their windows 3.0 based apps were much better than poorly converted dos ones.
I hope it doesn't turn out like that. I use linux about 95% (most CAD software only runs in windows), and I really want linux to "win"... total world domination, or something like that.
It's easy to underestimate Microsoft. Many have before.
Do Not Underestimate The Power Of The Dark Side
<reaching for calculator>
Six months, 20 work days per month (allowing for some sick/vacation), just 2 people assigned to the task, that's 1920 man/hours for the project.
You've got 11 1/2 minutes per document. You need to be converting 84 document per day (if the total really is 10000), so keep track of the progress and make sure you're meeting the 84 document daily quota. The message say "thousands", if it's really closer to 2000 or 3000, this really isn't such a difficult task.
Perhaps each of these thousands of documents really does require a substantial rework, but the much more likely case is that many of them are designed similarily which will speed the process. If most of it is poorly built html (adding alt tags, etc), 11 minutes per page should be plenty, even 5 minutes may be ok. How long does it really take to make similar changes to a large pile of documents?
I read the tone of this posting as basically the victim mentality. With that mindset, you'll probably never even get started.
HTTP 1.1 already has transfer encoding as an optional parameter that can be negotiated between the client and server. I'll bet we can all guess which side of the communication is lacking support for it.
I've been considering setting up one of these for our site. We don't have any banner ads and none are planned. I'm talking about a linking based affiliate program. Any experiences, good or bad?
Now that's sad. Aside from being a Troll, "it's been said" refers to yourself? Is anyone else saying it "countless times" ?? If they were, one would think you would link to them instead.
The jury is still out if these companies can be profitable and survive long-term. Perhaps you are right, perhaps they'll prove you wrong, but from judging from your message, it looks most likely that you really don't care and this is just an intentional effort to start a heated flame fest.
What's slashdot coming to? If this investigative reporting trend keeps up, good 'ole slashdot could be on its way (eventually) to becoming a credible news source.
Those are wise words, which I didn't know when I was younger. In fact, when I'm trying to make a pitch for something or another (work related), and it's going nowhere, I often times say exactly that. In the long run, I think it helps build respect to have good intentions, but to back off when it's somebody else's (seemingly wrong) choice.
The other thing I try to keep in mind (not always successfully), is the question: "is this decision something technical, where my input is an expert opinion?" Most decisions involve many factors, and the choice which is clearly superior in a technical sense often times has non-technical (sometimes political) drawbacks that are of overriding importance compared to the relative difference between the technical factors. It's easy to lose sight of non-technical factors in a decision, regardless of one's age. I do it all the time, though I think I'm getting a bit better as I'm getting older.
It's easy to get into the "gim'me gim'me gim'me" mode of thinking when surfing the web. After all, "information wants to be free", right? The sad truth is that is costs real money to host a web site. Sure, there are some crappy free hosting services, but their performance is dismal AND your page gets served with their adverts. User account website at ISP (www.some-isp.com/~username) come at no extra charge but only for a few megs of data and rather limited transfer each month.
Web unfriendly software raises the cost of hosting a web site. Low cost hosting usually seems to be billed on the number of bytes transfered, and software like what you're proposing will needlessly increase the site owner's costs. High end hosting tends to be billed on bandwidth (not total transfer), so this software doesn't hit the site's owner directly in the wallet, instead it just makes the site less responsive for other users.
This idea is even worse than archivers, as most of the bytes will sit in a cache and get expired, instead of in a archive directory where they _might_ someday be seen or used. In the case of an archiver, the user went out of their way to obtain a complete local copy of the web site, presumably because they are interested in the material and might actually read it off-line. With a predicitive caching proxy, there's no indication from the user that they will ever make any use of the material dwonloaded. The vast majority will sit in the cache, which will in all likelyhood rapidly need to remove least recently obtained pages. In normal caching terminology, one would say "least recently used", but in this caching scheme, the vast majority of pages in the cache will never have been viewed. Utter waste.
This sort of net-unfriendly behavior is analogous to pollution. Even if just one person pollutes the environment, there is some small harm to a small number of people, perhaps significant harm to a couple if the pollution is severe. If a large company pollutes recklessly, perhaps a community or two is badly effected. If pollution becomes widespread, it's a global problem and almost everyone is harmed.
Likewise, if you hack together a predicitive look-ahead caching proxy and use it amongst yourself and your friends, you're impacting the net similarily as if you'd take your use motor oil and other waste and dump it directly in a local stream. If a large company or two replaces their bandwidth conserving squid proxy with your bandwidth abusing look-ahead caching, a lot of sites will suffer increased costs. If its use becomes widespread, it would significantly increase overall bandwidth usage on the net, in all likelyhood raising costs enough to be passed all the way back down to end users, and it's raise the cost of hosting web sites, which would need to be made up somehow. Perhaps large website could absorb the cost of more bandwidth? Smaller sites, like mine, would be in a world of hurt. For quite some time, I paid out-of-pocket a couple hundred dollars a month to keep the site up. Now, we're making some small sales from the site... getting close to covering the costs.
Well, that's been a long rant. I hope you'll take a moment to consider that web site operators pay real dollars to make their sites available to you, and keep that in mind when you consider designing networking software.
Actually, I was under the impression that DMA is used, not PIO-style writing to a register.
Unless, as another poster has suggested, the decrypter is built into the DAC, which would be a radical change of architecture requiring (at minimum) for everyone in the world to buy a new sound card, there is nothing at all the industry can do to stop you from adding a piggyback card to pick off the outgoing audio stream and make it available to some other totally unrelated piece of software for recording. This requires a board to be built, which is why it is called a hardware hack.
In the (ugly) world of windows, any new sound card is "installed" by running a program that came with it on a disc, and that program could easily load a driver that supports end-to-end encryption. Almost all modern consumer sound cards have one large mixed-signal chip, with the DMA controller, mixer, and DAC, so if folks like Crystal/Cirrus include decryption, you'll have a lot more hardware hacking to do!
Well, I'm not in an arguement mood... my point in this slashdot post is:
Do not underestimate the Power Of The Dark Side.
I believe MS released the spec for the newer formats and that support for the older formats is indeed based on reverse engineering.
- Feb 2: A "legal" TV descrambler, which appears to just be assembly plans, for "educational" purposes only. Apparantly they claim it'll let you want the pay-per-view and other pay channels, for $12 or something like that. (too bad I don't watch TV) Also some stuff about jamming police radar. Yeah, this questionably legal aspect is going to be a theme...
- Feb 1: Making over half million dollars every 4 to 5 months from your home for
an investment of only $25 U.S. Dollars expense one time THANK'S TO THE COMPUTER AGE AND THE INTERNET ! What kind of an idiot sends $25 to something this absurd?
- Jan 31: If you are in debt or need extra cash, we can help you get the money you
have been hoping for. Our services are FREE and we have already helped thousands of homeowners, just like you. Now that's pretty deceptive, since any refinance costs a 1% loan origination fee, and these sharks usually charge much more.
- Jan 31:: Save up to 70% on your Life Insurance! I don't know enough about life insurance to say for sure this is a scam, but is sounds too good to be true, so it probably is.
- Jan 31:: A "we've redesigned our site" (yet again), from Onvia. Admittedly, I did buy a printer there about 8 months ago, and I always make sure that any "send me emails" boxes aren't checked. At least they are a reputable vendor and they shipped my printer the same day.
- Jan 31: THIS IS ABSOLUTELY INCREDIBLE!!! PIANO OWNERS- we offer a patented device that sits on your piano keyboard and allows you to play the piano immediately!! They gave a toll free number to call.
- Jan 30: Start your mail order business by learning from an expert
... FREE Downloadable book for you to keep!!! ... My wife and I have been in the mail order business since December 1999. We have made over $100.000 since! The email urges you to visit their website, which I haven't done. They've been in the business for 15 months, and they're the "experts" I should learn from ??
- Jan 30: Super Sex Pill with no side effects!
... Finally, there is A Dream Come True Product ... This formula helps you with naturally triggered arousal and erections, not artificially triggered like Viagra. There's a link to a website, which presumably has more info.
- Jan 29: Mortgage Rates DROP!! Lenders COMPETE for your Business!. Just like all the other refinance crap.
- Jan 29: IMPORTANT! ANTI-AGING BREAKTHROUGH:
:)
- Jan 28: ATTENTION BUSINESS OWNER/OPERATOR
... From time to time, most companies experience a cash flow problem. ... [name removed] is a national consulting company specializing in reducing problem debts for companies of all sizes. Yeah, that's why their email has a forged header... just the sort of folks I'd want to be dealing with.
- Jan 28: The "legal" tv descrambler again.
- Jan 28: Aggressive 125% of Value Home Loans Available Now
... We have loan programs that are unheard of It goes on about how they can get you a loan pretty much no matter how bad you are with credit. Kinda shy on details, though.
- Jan 26: Meet The Richest People On Earth
... the message about 99% html tags and 1% text, and I've reading it in VIM, so I'm going to skip trying to figure out what this one was. On the bright side, it looks like Jan 27 was one of those rare days without a single SPAM received
- Jan 25: You were referred to me as someone who was ready for a Financial Breakthrough! Bullshit, this is a damn spam, who do they think they're fooling, starting out with such an obvious lie? I am looking for a few motivated and teachable individuals who are ready to start earning at least $2000 per week starting right away. And a SEVEN FIGURE income within the next 2 years. I wonder how many people really bit on these get rich quick schemes.
- Jan 25: Do you have a Timeshare or Vacation Membership? Are you interested in renting it? We can help!
- Jan 25: Do you need help with your credit cards
... Reduce your credit card debt by up to 50% ... Decrease your payments by 30% On the bright side, Jan 24 was spam free.
- Jan 23: Let us Eliminate Your Debt.
- Stop creditors from hassling you.
- Cut your monthly payments in half.
- Make you debt free in less than 5 years.
- You can not be turned down for this program.
- Jan 22: Obtain Biotech IPOs!. This is another mega-html message, with a meta tag from MS frontpage at the top.
- Jan 22: New Findout About Anyone Fast Now!
... Download this today and discover the EASY WAY to find out anything about anyone
- Jan 22: Spainsh text and
.EXE attachment, dictionary.com translates it as something about Snow White's 18th birthday. Maybe this isn't spam and a trojan or virus, but I saved it to my spam file anyways.
- Jan 22: VENTURE CAPITAL BUSINESS, CAREER AND INVESTMENT OPPORTUNITY
... Our program entails interacting with CEO's of
emerging growth companies and assessing and qualifying their financial needs. If accepted as a partner, there is an $9,750 investment required. Message gives USA phone number, but email header filled with forged and conflicting non-us email addresses.
- Jan 21: (this scam is one of my favorites) This exciting opportunity requires a very LOW START-UP COST and has already been TESTED AND PROVEN. We are in the information age, billions are made every year in the information industry and you can take part in making money by selling information. The basic idea is that you'll get rich quick by buying a cdrom, making copies, and selling to others on the net (via spam), who for some mysterious reason didn't already fall for this scam.
Well, you can form your own opinions. Actually, reflecting back on this list, it looks like I'm on the "bad credit" and "get rich quick" lists, but somehow I'm not getting much porn ads like I used to.- Reduce body fat and build lean muscle WITHOUT EXERCISE!
- Remove wrinkles and cellulite
- Increase energy and cardiac output
- Lower blood pressure and improve cholesterol profile
- Improve sleep, vision and memory
- Restore hair color and growth
- Strenghen the immune system
- Enhance sexual performance
To TURN BACK YOUR BODY'S BIOLOGIC CLOCK. Wow, now if only they make is stop this damn spam, they'd really have somethingLooking though these messages, that have a few things in common, which might allow a very effective filter to be written. Near all offer (a likely bogus) way "to be removed". This phrase almost occurs at the end of the message, often times with "remove" or "in error", and either an email address or url immediately following. The other style, which isn't usually present in normal emails, it a large number of 2-5 word PRHASES IN ALL CAPS, followed with lots of exclaimation points!!!!!
<stepping onto soapbox>
At the rate software "technology" is going, it will never happen, as word processors and browsers keep growing in their memory consumption, at about the same rate as the prices decrease.
Consider, if you will, running Netscape 1.1 and MS Word 4.0 (admittedly only on the Mac). Netscape 1.1 ran on PCs with 8 megs of RAM, perhap better than today's 4.x and 6.0 versions, and MS Word 4.0 worked quite well about 1.5 megs of ram allocated to it. These apps were about as responsive, perhaps better in many ways (on 486/68040 CPUs) as today's versions. It's amazing that today's word processors and browsers aren't any faster (often slower) and exceed the computer's memory capacity, despite a 20 to 40 fold increase in CPU speed and 6 to 10 fold increase in available memory.
<steping off soapbox now...>
The 40 bit key length of CSS was almost certainly due to the export restrictions that existed at the time. As much fun as conspiracy theories are, a 40 bit key corresponds just too well with the 40 bit export limit when CSS was designed.
There are plenty of fast algorithms that can use 128 bit keys and are quite fast and efficient. Even tripple DES (112 bits) is fast and easy with a little dedicated hardware. 2^128 is a whole lot more than 2^40, in fact 2^88 times harder to brute force. 2^88 is approx 3e26, so your 10e27 is just about right for CSS-II with a 128 bit key length.
Of course, all the key length in the world isn't going to help when the key is stored in a software-based player and a pair of anonymous German hackers team up with a 16-year old kid for a not-profit-motivated reverse engineering effort.
Pretty unlikely, as one of these DeCSS cases tried this approach, citing the weakness of the algorithm, and the judge didn't buy it. I recall reading the opinion where the judge refered to a case where a locksmith installed locks that weren't quite so secure, and yet this was no excuse for defeating the lock and trespassing, or something like that... I'd find it again, write this post better, and make a link to it..... but of course that's information about DeCSS and making a link to it could be trafficing in the circumvention technology (honestly, I can't remember which of the three cases is was, and I'm not feeling that ambitious right now).
I read through most of the briefs, and damn, those guys writing that first "law professors" brief sure pack a punch, with language like:
Even if Congress had specified a particular source of constitutional authority, however, it would not matter. The DMCA's anti-device provisions are not a valid exercise of any of Congress' enumerated powers.
It is no answer to these problems to say, as the District Court did, that this result is what Congress intended. ... That option was not open to Congress. Nor is it an answer to say that copyright infringement is an "epidemic" that warrants drastic intervention... Congress is not free to choose a cure that would kill the patient.
None of Congress' enumerated powers authorizes this sweeping interdiction .... If the limits on copyright protection required by the First Amendment are to mean anything, the anti-device provisions cannot stand.
Wow !! I'm glad these guys are on "our" side.
Well, it's a nice dream...
Does anyone here know about what (if any) compatibility issues there are going from 8.2.x (installed on most machines today) to 9.1 ?? Did they change stuff in the config file format, again?
Actually, bind, sendmail and wu-ftpd have had a really bad history of aweful bugs. The subject of this message, "WuFTPD: Providing *remote* root since at least 1994" really sums it up pretty well. As mentioned on the Cert page, BIND has had TWELVE Cert Advisories and this makes 13. The even named the 11th one "Continuing Compromises of DNS servers", though I suppose it's just the infamous NXT bug.
Unless patents go the way of copyright (getting extended continually), they will eventually expire. That doesn't help the millions who will die in the meantime, but in the long term the patent will go away and these and other drugs will enter the public domain.
Seriously, Microsoft's "best interests" work against the industry a whole lot more than Linus's. I wonder if Paula Rooney thought of that.
So my advise is to only "stick your neck out" and "go the extra mile" if you really care about the code or project. If it feels like someone else "owns" the project and you're not in control of its direction, advocating and persusing a re-write is probably unwise.
From the linux 2.4.0 configuration options:
Bonding driver support
CONFIG_BONDING
Say 'Y' or 'M' if you wish to be able to 'bond' multiple Ethernet Channels together. This is called 'Etherchannel' by Cisco, 'Trunking' by Sun, and 'Bonding' in Linux.
If you have two ethernet connections to some other computer, you can make them behave like one double speed connection using this driver. Naturally, this has to be supported at the other end as well, either with a similar Bonding Linux driver, a Cisco 5500 switch or a SunTrunking SunSoft driver.
This is similar to the EQL driver, but it merges Ethernet segments instead of serial lines.
If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt. The module will be called bonding.o.
There, at least one answer. I feel better now. Too bad I don't "reload" early in the day and post right away (meaning this will never get moderated up). Such is the way of slashdot.
Also, I should mention that I recently installed a HP2512 ethernet switch (you can find it on HP's web site....), and it had an option to connect up to four lines in parallel to another switch, for 400 Mbit/sec between the two. They have their manuals and even instructional training course material on-line, so you can learn quite a bit about it if you want.
For the last several months, I've been working on my own MP3 player project which is similar to yours. It was mentioned here on slashdot a few months ago. My design uses a 8051 microcontroller to control everything, Xilinx FPGA to move data around quickly, and the STA013 chip to decode the mp3 data. The design uses a 72-pin SIMM to store data, though I'm only just now getting code to effectively manage caching megabytes of data. My code is open-source (GPL), and you can download firmware source code here. I'm hoping to make an initial release with the completely re-writen FAT32 and IDE drivers in just a few days.
I've spent many many long hours and many dozens of all-night sessions hacking on this little project, and I think I can safely say from experience that FAT32 makes sense for a hard drive based MP3 player project. I'll explain, in the context of just a brief history of my filesystem hacking... there's a very detailed project history on-line.
My first attempt at the player was this old design, which I started in December 1999. You can read about it at the web page, but filesystem wise, it didn't use one. I wrote the MP3 files directly onto the sectors of the drive with a little perl script (redirected to /dev/hda). It actually wrote a little table at the start of the drive (where the boot sector and partition table would normally be) so I could make next/previous track buttons.
It is very easy to do this non-filesystem approach, so as a student project, you should certainly try to do this first. Many student projects run out of time, so I'd really suggest you do raw sectors and get some sounds coming out, and then if you have time, try for a real filesystem.
The old design worked pretty well, but it did have limitations. The raw sector approach and perl script meant that all files had to be copied to the drive at once (because the script packs them one after the next.... and the firmware just plays sectors one after the next and doesn't even worry about which ones are what tracks, until you press a button). The 8051 microcontroller wasn't fast enough to play 256 kbps (14.7 MHz, standard slow 1:12 cycle architecture). I've seen several other projects on the net using a 20-some Mhz Dallas high-speed 8051, most notably Anton Verheijen's SoundBastard player. I wanted even better performance than that, but at low power with a large DRAM buffer, so that I could play from batteries.
Well, my new design does it the hard way. I stayed with the slow 8051, and cut the clock speed in half (lower power). I added a Xilinx FPGA chip, which I used to make a custom DRAM and DMA controller. The DMA allows the IDE drive to be read pretty quickly (2.45 Mbyte/sec is damn fast relative to the power used), and the DMA allows large blocks of MP3 data to be sent to the STA013 chip with very low CPU overhead... which is necessary since it's so slow.
Getting back to the subject at hand, filesystems, I used a very simple firmware approach with this new fancy hardware. The simple (and limited) firmware is still more or less the current rev, but I'm getting darn close to a near total rewrite that will be really cool. But, the point is that there are some simple and not-to-hard ways to read FAT32 filesystems. I'll ramble on a bit about it, even though this post is getting long enough that it probably doesn't all appear unless you click for more.
The first thing I did to simplify the FAT32 code was to require that the drive be fully defragmented. The thought was that it's not too hard to run defrag before you shut down and pull the drive from your PC. Even if you don't like having to run defrag, consider that it's taken me quite a while (probably longer than you project's deadline) to write the more complex code, so starting with a fully defragmented requirement is probably a good idea. If you have lots of time or you're really good (and fast) you'll always be able to improve the code and remove the requirement for defrag later. (BTW, does anyone know of a linux based FAT32 defrag utility)
Microsoft's defrag doesn't defragment directories, so you've still got to deal with following the cluster chains for directories, but the good news is that to play a file, you get its starting cluster from the directory (somehow... I'll get to that), turn the cluster number into the sector number (LBA is much easier than CHS, if you didn't already know), and then just read sectors and play them, one after the next as you decrement a counter for the file size (which also comes from the directory).
Now, in the interest of keeping things simple, so you can get something working before you student project deadline is up, I'd suggest you use a pretty large cluster size, and make all the filenames fit short msdos names (8.3 sucks, but you can improve things after your initial success). If you use short names, each file will only consume 32 bytes in the directory, so a 16k cluster size will be able to hold about 512 filenames.
For for your very first FAT32 attempt, you'll read the volume ID to learn a few critical numbers, which includes the first cluster of the root directory and a couple things you'll need to turn cluster numbers into sector numbers. The official FAT32 specification from Microsoft tells you which bytes mean what and what formulas to use. As you read it, their frustration with lots of poorly-written FAT code shows though...
So, you'll grad the MBA (first sector, LBA=0), read the partition table to find out where the FAT32 volume starts, and then read its volume ID, and your two goals are to learn the first cluster number where the root directory starts, and the info you need to be able to turn that cluster number (and others) into the LBA number so you can fetch them. When you use the formulas from Microsoft's FAT32 spec, don't forget to add the offset due to the start of the partition, as their formulas don't include that (as I found out the hard way).
Now if you've used short filenames, big clusters, and only a couple hundred files, then the entire root directory will fit into that one cluster! You read the directory to find the filenames, and for each one you get the two critical numbers you need, the first cluster and the file size. To play each one, turn the cluster into LBA, and divide the size by 512 (round up) for a count of how many sectors to play, and just start reading the sectors in order and send them to your decoder until you've done them all. Repeat for each file.
Now that does have quite a number of limitations, but it completely avoids having to read any FAT sectors. With a fully defragmented drive and the entire root directory in just one cluster, you should be able to very easily get something working where a standard PC can write the drive (without the ugly perl script).
My current code (0.5.1, available for free download, including GPL'd source) does follow cluster chains for directories, but not for files. It is pretty simple, though there is the added complexity of reading the FAT sectors. As I mentioned earlier, I'm very close to releasing a near-complete rewrite of the project, which will use the FAT for both files and directories, and it includes a malloc/free that's used by the FAT32 code to cache both FAT sectors and clusters. When you're ready to try something more complex, this free code may help you (assuming you can live with the GPL), but initially you should keep the project simple.
Also, early in my project I wrote this page with detailed how-to instructions for interfacing an 8051 with a IDE drive. I recently wrote this how-to page about using the STA013 MP3 decoder chip, which may help if you're planning to use the STA013.
I hope some of my on-line material and code helps, and I hope your project turns out to be a success.
The GPL is pretty clear that you must release all of the code that you link with any GPL'd code you use. Section 2 spells it out about as clearly as possible:
2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:- a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
- b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
- c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
It's hard to speak for other authors/programmers, but it's been my impression that many choose the GPL specifically because of these terms.The fact that your application has a requirement to be closed source doesn't give you a right to use other people's code in violation of their license terms. Just because it would "really help" you doesn't change a thing. As far as the GPL is concerned, you're out of luck (at least that's how I read it, IANAL). I personally don't like closed source software, and when I release code under the GPL, I want it to help whoever gets it, and other GPL'd projects, but never a closed-source-friendly code base.
But never is a really long time... copyright does eventually expire, and in the meantime, you can always contact the author and ask if they'll release it to you under a license more to your liking. Offering money probably helps your chances.