StUU
Introduction
StUU is a lightning fast drag-and-drop UUdecoder for the Mac.
StUU is pronounced "Stew U"
Special Features
- Fast: On a PowerMac 6100/60 with a good hard disk, StUU can decode
over a megabyte per second.
- Drag-and-Drop: Simply drop files onto the StUU icon to have them
decoded.
- Large Files: Any size files can be decoded, not limited by the
amount of RAM your Mac has.
- Concatenated Files: If the source file contains multiple uuencoded
files concatenated together, StUU will automatically recognise and
extract all the component files.
- Robust: StUU correctly decodes files even if they have been
divided into multiple parts separated by newsgroup headers, trailers,
signatures, etc.
- Internet Config: StUU uses Internet Config to automatically assign
the correct file type and creator code to each file it decodes, so
decoded files appear with the correct icons, and if you double click
on them the correct application will launch.
How to use StUU
The intended mode of use is:
- Read your favourite binaries newsgroup with a newsreader like Nuntius
- Instead of reading or extracting each item individually, just hit
Cmd-A (Select All) and Cmd-S (Save) to save all the articles to disk
as one big file. Current versions of Nuntius sort articles into a
sensible order so it is almost always the case that if all the parts
of a binary are present, they will be saved in the right order. It is
possible that some parts will be missing, duplicated, or out of order,
resulting in invalid output, but let's face it, most of these
newsgroups make up in quantity what they lack in quality, so it's
hardly worth wasting your time to repair every mal-formed posting by
hand (although you can if you want to).
- When Nuntius has finished saving the file, drag and drop it onto
StUU, and in mere seconds (faster than duplicating the file in the
Finder) the entire uuencoded contents will be extracted. The extracted
files will be put in the same folder as the dropped file (as a rule of
thumb, make sure you have free disk space equal to at least 75% of the
size of the input file you are decoding).
Restrictions
StUU is designed to do one job really quickly and simply: It decodes
uuencoded files.
StUU only does decoding, not encoding.
If the file you want to decode is split into multiple parts, you must
join all the parts together yourself before dropping the single joined
file onto StUU. However, when joining the files together you do not
need to manually remove mail headers and trailers from the individual
parts -- StUU can do that automatically while it is decoding the data.
StUU does not give you any control over where the output files are
written -- they are always written into the same folder as the source file.
StUU does not automatically delete the source file when it is finished.
StUU requires System 7.
StUU uses Internet Config. If you don't have Internet Config
installed, then StUU can still decode files, but the type and creator
codes will be set to '????'.
Background
Why did I write StUU, when there are already lots of UU decoders
for the Mac?
A little while ago, I had to decode a large uuencoded file. The file
was 20 megabytes, and contained 112 component encoded files. I took a
look on Sumex-Aim to see what uudecoding sofware was available for the
Mac. I tried eight different uudecoders on it. Rather than go into
great detail, I'll just summarise the results:
- UUCat 1.1 failed with message "Error allocating memory for 'testfile.uu'.
No space."
- UUParser 1.72 crashed with an address error.
- UnUU 2.0.1 failed with message "Out of memory! Try to give some more
to UnUU (-108)"
- UUTool 2.4 decoded only the first file of the 112 and then stopped.
- MACUUCODE1.0.5 decoded only the first file of the 112 and then stopped.
- uuUndo 1.0b5 decoded only the first file of the 112 and then stopped.
- uucd 2.4.3 parsed the first 5 files of the 112 in 1 minute 16
seconds and then failed with message "The application's free memory
seems to get low. You may have to give more memory to uucd from the Finder."
The only program that managed to finish decoding all the way to the
end was Jeff Strobel's UULite2.0.
UULite2.0 has three modes, with varying "intelligence":
- UULite2.0 "No Frills Decoding" took 28 minutes.
- UULite2.0 "Smart Decoding" took 5 minutes 20 seconds.
- UULite2.0 "Super Smart Decoding" took 42 minutes.
Unfortunately none of UULite's modes, not even the "Super Smart" one,
correctly decoded all of the 112 files, and I thought $29 was too
expensive for a small utility program that I would only use occasionally.
Since I didn't intend to pay for it, I couldn't continue to use
UULite with a clean conscience, so morally, I had to write my own.
I searched the Web, found the spec for uuencoded files, found
DropShell 2.0 by Leonard Rosenthol, Marshall Clow, and Stephan
Somogyi, put them together, and after one morning of work I had
finished writing my own simple uudecodeder.
It took 24 seconds to decode the 20 megabyte file. I added calls to
Internet Config to assign the correct file types and creator codes for
the decoded files, and it took 25 seconds. I made the I/O calls
asynchronous, and it took 20 seconds. Then on the recommendation of
Quinn, I tried it again with File Sharing turned off, and it took 16
seconds.
Well, there you have it. 20 megabytes decoded into 112 component
files, complete with correct file types, in 16 seconds. For
comparison, just duplicating the 20 megabyte file in the Finder took
17 seconds.
That makes StUU roughly 20 times faster that UULite's "Smart" mode,
and 150 times faster than "Super Smart" mode. Sorry Jeff.
Where to get StUU
You can get StUU from the usual Macintosh software archives,
such as the MIT Info-Mac HyperArchive
or from my Macintosh at home, Bolo.Stanford.EDU.
http://ResComp.Stanford.EDU/~cheshire