PhysicsFS is a library to provide abstract access to various archives. The programmer defines a "write directory" on the physical filesystem. No file writing done through the PhysicsFS API can leave that write directory, for security. For file reading, the programmer lists directories and archives that form a "search path". Once the search path is defined, it becomes a single, transparent, hierarchical filesystem. This makes for easy access to ZIP files in the same way as you access a file directly on the disk, and it makes it easy to ship a new archive that will override a previous archive on a per-file basis. Symbolic links can be disabled, for added safety. Finally, PhysicsFS gives you a platform- abstracted means to determine if CD-ROMs are available, the user's home directory, where in the real filesystem your program is running, etc.
SDL_sound is a library that handles the decoding of several popular sound file formats such as .WAV and .MP3. Designed to make the task of sound playback easier, SDL_sound accepts files or other input through an abstraction layer and returns the decoded waveform. SDL_sound can decode a whole sound file and hand back a single pointer to the waveform, or SDL_sound can process sound data in programmer-specified blocks when resource constraints are a concern. SDL_sound can also handle sample rate, audio format, and channel conversion on-the-fly.
Some thoughts from the author...
...okay, okay. The versioning joke was lame. I'm sorry. :) In my next life, I'll be sure to point out that while highly-trusted applications (like Enlightenment) are still at revision 0.16, we haven't gotten to the point of intentional version confusion in the Linux realm, yet. Like Solaris 7 being really just marketing-speak for two-point-seven. Or OS/2 becoming Warp, Warp Server, Warp "blue box" and Warp "red box"...And don't get me started on the differences between Windows 95, 98, 2000, and "Millenium". But then again, I think I vaguely made this very point in this lifetime.
As for the Linux Application Naming Scheme (let's call it LANS, for short), I do agree that it is informational. I am perfectly serious about that. However, here is how I select applications: I like GTK/GNOME stuff, so when I went looking for an AOL Instant Messenger client for Linux, I could immediately ignore the ones that started with "k". Of those that were left, I chose the one with the most downloads. And unless it gives me copious amounts of trouble, I'm not going to try another one. So the LANS only got us half way there.
Furthermore, I get my Freshmeat newsletter emailed to me everyday, and I take approximately three seconds to read it. Apps without coherent names (like the mother of all LANS programs (http://freshmeat.net/appindex/1998/08/01/902023485.html)), get skipped immediately. And while I've no use for it, I admittedly did stop to read the description for Cut the Crap (http://freshmeat.net/appindex/1999/06/01/928261365.html) ...I mean, the name was catchy...I hope that isn't bowing down to the suits to admit that, but really, do go and punch in icq on the little "find" text field at the top of this page...how many of these apps are you really going to thoroughly research?
Which brings us to the next point: reinventing the wheel. There are so many things still lacking in Linux. And don't get me wrong, I'm an avid user myself. I work for Loki, because Loki fills a void in the Linux universe: games. Cool Games. And the GPL is NOT here to allow us to reinvent the wheel. Someone made that suggestion...the GPL is here to PREVENT us from replicating work. I mean, if you need a Napster client for every toolkit, fine. But for god's sake, please merge the GTK+ code into an existing KDE client. This might require more work than a simple, mostly-hardcoded client that is "complete" in one day, but now you can consolidate bugs in the app, and enhance one app instead of fighting to beat someone else. Could you imagine rewriting Mozilla for each toolkit? Of course not. But adding a new front end is cool. The argument for competition doesn't hold true for free software...not even for KDE vs. GNOME. Because both can, and should, interbreed, if both must exist. More important than rewrites for toolkits...I BEG to every hacker out there...don't just WRITE yet-another-finger-client (I cringe at every app that starts with "ya") just because you can...enhance one, or find something original to do. The world will notice (and thank) you much more for producing the next product with as much impact as the GIMP than they will for bestowing another version 0.0.1 audio CD player.
So, seriously this time: GET HACKING.
--ryan. (firstname.lastname@example.org (mailto:email@example.com))