This is Review-of-Agogs-Squash in view mode; [Up]
Date: Sun 26-Nov-1991 03:28:59 From: jiro@shaman.com (Jiro Nakamura) Subject: Review of Agog's Squash Agog's Squash! ============== Is it just my imagination, or are software packages ending with exclamation points becoming more popular? First we had Diagram!, now today I'm reviewing Squash! It's very hard to review a product that ends with an exclamation point. Some people have replied to me asking whether I was being enthusiastic when I was reviewing Diagram! or whether I was just ending the sentence with the name of the software. Take the last sentence of the first paragraph, for example. Am I shouting or am I stating? This is all very confusing. At least marketters haven't started to sell products that end with question marks. That would make life even more difficult. "Today, I'm reviewing FooBar?" (Was I??) The developer of Squash, Agog, Inc. just wrote back to me saying that I *didn't& have to put the ! on the end of Squash! That's a real exclamation mark! The real name of Squash is Squash. Apparently the ! was intended only for large type. Anyway, in the interests of sanity, I've made the editorial policy that I will not include the !?#@ punctuation marks in application names except for the very first reference. Talk about confusions....... Back to reviewing software. INSTALLATION ============ Squash comes on a single 800Kb 3.5" inch disk. It doesn't use the Installer application. Rather the Squash and Unsquash applications are drag-and-drop into your LocalApps folder and the auxiliary documentation for programming front-ends to Squash come in - guess what - a Squashed bundle. Squash comes with a printed manual and has the entire printed online via a Help menu option. Squash requires being root during installation so that it can install the /usr/etc/SquashHelper utility. This utility which is made setuid-root, formats and names floppy disks for Squash, a function which requires super-user priority. The rest of Squash runs at normal user privileges and cannot be used to circumvent security. GENERAL IMPRESSION ================== Squash is a data compression and file archiving utility. That means that it acts very similarly to PKZIP on MS-DOS machines and the famous StuffIt program for the Macintosh. On UNIX machines, archiving and compression has traditionally been the forte of such utilities as tar and compress. Squash uses two types of compressions, Lempel Ziv and Welch (LZW) for "fast" compression and " 4th order finite context" for the "slow" compression. Both are lossless forms of data compression. The "slow" algorithm is considerably better than the adaptive Lempel Ziv algorithm used in the fast form and in the UNIX compress utility. Both forms of compression (slow and fast) beat standard Huffman compression. If you aren't a compression-ologist, this is all gobblygook. What it boils down to is that Squash can achieve about a 70~90% compression ratio on various types of files. Squash treats sound files differently from normal files. They basically use deltas with arithmetic encoding (see above concerning compression-gobblygook), which means they can compress both 8 bit MuLaw and 16 bit linear sound files with quite impressive ratios (20~45%). As you all know, UNIX compress cannot compress sound files at all since they tend to "look" like random data samples, so the fact that Squash can do *any* amount of compression is pretty remarkable. However, the sndcompress utility on the NeXT will do greater than 50% compression on 16 bit sound files (but not mu-law), but again unlike Squash this is a command line utility and does not have the ease of use of Squash nor will it handle MuLaw encoded sound files. Utilities such as Squash are best judged by their features and how well they integrate them. This is my own list of Squash functions. Most of them are self explanatory. - Compresses and bundles files and folders seamlessly through the Workspace Manager and Services menu - Easy decompression by double-clicking icons - Ability to archive folders to floppy disks, automatic formatting and naming of floppies and full prompting - Provides "Unsquash Only" utility which you can distribute freely with your squashed files - Can extract individual files from folder bundles without decompressing the entire folder - Does Cyclic Redundancy Check (CRC) of compressed files and folders to warn against data corruption - Allows you to "split" squashed files into chunks. Useful when you have to put them on small floppy disks. - Ability to set Squash to do file compression only when the screen is dimmed so as to provide maximum CPU efficiency - Ability to tell Squash to compress files/folders that are older than a certain number of days. This compression will occur at the time you specify (usually the wee hours of the morning). This is useful for compressing files which aren't used very often. I've found the automagic "Old File Squashing" facility to be extremely useful. I've set it to search my entire /LocalLibrary/Documentation and other directories at 3:00 am, looking for files which are more than 30 days old. If it has found any folders or files which match this criteria, it promptly squashes them. This has reduced the amount of wasted space of my drive considerably. Files which I never used are automatically squashed and files which I do use aren't. Very useful. Another great feature is that you can tell Squash to compress only when the screen is dimmed. That means that you can queue up a whole bunch of squash requests and Squash won't interfere while you do other work. When you leave your station and the screen dims, Squash will go and compress the files in the queue. Sort of a one-computer Zilla.app, if you might. Squash comes with a Status panel that shows you how much of the compression has been done and the estimated time left. It also comes with a To Do Panel that shows how many squash requests are in the queue and their order. If you try to quit Squash when it is processing files, it will ask you if you wish to save the squash requests. If you do then the next time you login in and launch Squash, it will continue where it left off. Squash is a full NeXTStep application. You can tell Squash to compress a file/folder three different ways. One is to drag the file/folder on top of the Squash icon -- much like how you recycle old stuff. Or you can use the Services menu option (the one I use the most often). Or you can launch the Squash application and from within Squash, specify the file/folder manually. RESULTS ======== I tried to pick a good variety of data files and folders that I felt represented the types of files and folders that people would use. You might note that there aren't any TIFF files. Squash will not compress TIFF files that use the built-in TIFF compression schemes (LZW, packbits, and JPEG). JPEG is the best scheme for compressing 8 bit grey scale and 24bit color images, so there isn't any benefit in using Squash for those types of images, however for 1, 2, and 4 bit monochrome images, Squash's "slow" algorithm is better than TIFF's LZW algorithm, so you might want to save the TIFF's without compression and then compress them with Squash. SQUASH -- SMALLER BUT SLOWER ============================ Original Size Squashed Size % Saved Time Maple V Beta Distrib. 4.25Mb 3.65Mb 14.1% 1:15 Shakespeare 10.7Mb 3.03Mb 71.7% 12:23 This Review (ASCII) 12539 bytes 5359 bytes 57.3% 0:04 Intro.rtf* 24.7kb 6.8kb 72.5% 0:04 /NextDeveloper/Examples 4.30Mb 1.19Mb 72.3% 5:19 FrameMaker.app 7.22Mb 2.69Mb 62.7% 13:16 WriteNow.app 0.593Mb 0.366Mb 38.3% 0:50 Castle.ps **(PostScript) 285Kb 33.7Kb 88.2% 0:09 noPaper.snd (MuLaw) 14.0kb 10.9kb 22.1% 0:03 cat.snd (16 bit linear) 3.56Mb 2.0Mb 43.8% 1:53 SQUASH -- FASTER BUT NOT AS MUCH ================================ Original Size Squashed Size % saved Time Maple V Beta Distrib. 4.25Mb 3.73Mb 12.2% 0:46 Shakespeare 10.7Mb 4.24Mb 60.4% 3:19 This Review (ASCII) 12539 bytes 7062 bytes 43.7% 0:03 /NextDeveloper/Examples 4.30Mb 1.81Mb 57.9% 1:40 Intro.rtf * 24.7kb 10.3kb 58.3% 0:03 FrameMaker.app 7.22Mb 3.75Mb 48.1% 1:43 WriteNow.app 0.593Mb .430Mb 27.5% 0:09 Castle.ps **(PostScript) 285Kb 64.99kb 77.2% 0:02 noPaper.snd (MuLaw) 14.0kb 15.0kb -7.1% 0:03 cat.snd (16 bit linear) 3.56Mb 2.0Mb 43.8% 1:53 COMPARISON -- UNIX COMPRESS ============================ Original Size Compressed Size % saved Time Maple V Beta Distrib. Compress could not compress package Shakespeare 10.7Mb 4.24Mb 60.4% 2:29 This Review (ASCII) 12539 bytes 7046 bytes 43.8% 0:00 /NextDeveloper/Examples 4.30Mb 1.85Mb 57.0% 1:21 Intro.rtf * 24.7kb 10.2kb 58.7% 0:01 FrameMaker.app 7.22Mb 3.76Mb 47.9% 1:23 WriteNow.app 0.593Mb .503Mb 15.2% 0:09 Castle.ps **(PostScript) 285Kb 64.98kb 77.2% 0:02 noPaper.snd (MuLaw) Compress cannot compress sound files cat.snd (16 bit linear) Compress cannot compress sound files cat.snd (witn sndcompress) 3.56Mb 1.75Mb 50.8% 1:13 Maple V Beta Distrib. is the Installer Package for the Maple V beta distribution. As an Installer Package, it is precompressed. Percentages are not be exact due to rounding errors. * /NextLibrary/Documentation/NextDev/NextStep/Reference/02_Classes/Intro.rtf ** Castle.ps is the PostScript output from the Create file Castle.create that comes with Create. Squash has two modes, Smaller but slower and Faster but not as much. The manual notes that the difference is that "Faster" is five times faster, but that "Smaller" compresses files 30% more. My own findings below verify that for the large files > 1Mb, the "Smaller" is anything from 0% to 28% more efficient but was indeed three to four times slower. My own default is to use "smaller but slower". A mere 30% increase in efficiency seems very little to trade off for a three times increase in speed, but often that 30% amounts to one or two megabytes of freed space -- not a trivial amount. Since you can set Squash to compress only when your screen is dimmed, there really isn't that much of a time tradeoff anyway. BUGS ==== I didn't find any major bugs in the Squash application. I've been on the beta list for this program as well, so all of the major bugs have been fixed. What remains are just quirky problems. I've never had Squash be unable to unsquash a file in my months of constant use. In programs such as this, reliability is essential. As noted above, Squash computes a CRC-checksum for each package it squashes, which means that there an added degree of data reliability. PROBLEMS ======== As you might have noted from the Results, is that Squash doesn't warn you if squashing a file/folder will actually increase the size of the folder. This is bad behaviour, in my opinion. Squash should warn you of the fact and give you the option of not squashing. Agog tells me that this only happens when the file size is < 8 kilobytes since they don't do all of the checks for small files, but in my opinion this is a simple check that should be run all of the time. The printed manual does not come with an index. The online manual does not allow search by keywords, which compounds the problem. The online manual entries are unstructured, sorted by alphabetic titles rather than by the order they appear in the printed manual. Also, it only assumes 2.8Mb floppies when it does the estimates for archiving. Also, it would be nice if there was an option to write directly to the raw floppies, bypassing all of the overhead of the UNIX filesystem which in 800Kb floppies can be quite large (200kb). My wishlist also includes being able to archive to DAT or other tape drives, but then that would begin to change the very nature of Squash. It would also be great if Squash let you set its priority so that it could run "nicely" (in the UNIX sense) in the background. Currently Squash adjusts its priority depending on whether or not it is the "active" application and whether the Status Panel is visible. Other problems are just small ones. For example, it would be nice if Squash could *open* other compression formats such as compress, ZIP, ARC, SIT, pack, etc. Also, they need a command line version of squash (not the one provided in the package that needs access to the Workspace Manager) so that I can use squash when I kermit things over to NeXT's at other sites (but don't want to have to be physically present to unsquash them). In any case, both Squash and Agog are very young, so it will be interesting to see how they mature. The upgrade policy (see below) is very good, which is encouraging. UPGRADE POLICY ============== The current version of Squash is 1.0d which fixes some bugs most notably a workaround for the Workspace Manager bug that doesn't let you drag-and-drop on application icons that have moved position in the dock, allowing root to archive non-nfs mounted folders, handling socket files properly, etc. Registered users in the U.S. and Canada can upgrade to version 1.0d by either e-mailing squash@agog.com and receiving it by NeXTMail, or by sending Agog $5 for postage, diskette, and handling via US-Mail. I assume you should include your serial number (if not also your name and address). Free upgrades.... What a concept....(are you reading this Wolfram?). CONCLUSION =========== Ultimately, the question is, "will I use it?" Certainly one can live without Squash and if you have a good knowledge of UNIX, you don't really *need* to have Squash. On the other hand, I've personally found Squash to be *very* useful and is one of the utilities that I use a lot. Its compression is significantly better than compress's, it does an automatic tar (bundling) of directories, and it is totally click-and-play. Files which are squashed become unsquashed with a double click in the Workspace Manager and whatsmore, they then are opened in their native application. This makes the difference between not squashing a file and squashing a file simply one of a speed sacrifice and a large space saving on your disk. The automated squashing of old files has saved a *lot* of room on my /LocalLibrary directory and is also a highly valued feature. Personally, I am gratified to see that a lot of excellent programs have emerged on the NeXT. Rather than everyone coming out with Yet -Another-Drawing-Application or Yet-Another-Spreadsheet, the NeXT market is unique in that there is usually one excellent application that fills each niche in the marketplace. There is Create! for fun and snazzy drawing, Diagram! for quickly doing illustrations for publication and presentations, VOID the ultimate in space shoot outs, Improv the truly NeXT generation spreadsheet, DataPhile (still in beta) the friendly flat file database, and finally Squash the file compression and floppy archiving package. All of these are truly excellent products (in the most sincere Bill & Ted meaning of excellence). At $80, Squash is neither a bargain nor a ripoff. The comparative utility on the Macintosh costs approximately the same, yet doesn't provide as many functions as Squash. Since Squash does something that can already be done using native UNIX tools, one has to debate whether or not it is worth the ease of use and greater compression that Squash provides. I certainly highly recommend it to those poor folks who could only afford a 105Mb drive NeXTStation. Squash will greatly reduce the amount of wasted space on your drives and let you easily archive things off to floppies. But even people with larger systems will find Squash to be extremely useful. There's no such thing as enough disk space. Summary for Agog's Squash ========================= Application Type: Data compression and file archiver Version Tested: 1.0a (review copy) JiroRating: ****1/2 (Good to Excellent) Languages Supported: English File Formats Supported: Can "squash" any folder or file Squashed files have suffix Squashed folders have suffix .squfold Squash floppy archives have suffix .squarchive "Split" squash files have suffix .squsplit Price: Normal list price $99.95 NeXTConnection price $79 Group Pricing Available in quantities of 10 for $699 through NeXTConnection Academic Pricing $49 through NeXTConnection $429 for a 10 pack through NeXT- Connection Contact: Agog, Incorporated 13780 North River Highway Grand Ledge, Michigan 48837 Tel: +1 517 627-2186 Fax: +1 517-627-2673 Email: squash@agog.com NeXTConnection 9 Mill Street Marlow, NH 03456 Tel: +1 800-800-NeXT Fax: +1 603 446-7791 - Jiro Nakamura jiro@shaman.com Group Leader FuNK -- Finger Lakes NeXT Users Group #include <std_disclaimer.h> I have no connections with Agog, Inc. I was on the beta list for Squash, though. #include <copyright.h> This article is Copyright (C) 1991 by Jiro Nakamura All rights reserved. Permission is granted for reproduction within USENET and for other non-for-profit publications such as User Group newsletters. Please notify me if you are going to use it beforehand. All other forms of reproduction are not allowed without prior permission of Jiro Nakamura. #include <trademarks.h> NeXT is a registered trademark of NeXT Computer, Inc. All ofther trademarks remain the property of their respective companies. Review Version 1 Last Modified: Nov 19, 1991
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Marcel Waldvogel and Netfuture.ch.