info-mac@uw-beaver (03/01/85)
From: Moderator John Mark Agosta <INFO-MAC-REQUEST@SUMEX-AIM.ARPA> INFO-MAC Digest Thursday, 28 Feb 1985 Volume 2 : Issue 8 Today's Topics: New Programs: Simutree & Simunet XLISP and HyperDrive Re: C Compiler Benchmarks Resource Editor Documentation (another bug) How to put Megamax on your disks MacModula-2 tips First Impressions of Odesta Helix Weak shoulder straps Mail order query ---------------------------------------------------------------------- Date: Tue, 26 Feb 85 17:10:48 EST From: winkler@harvard.ARPA (Dan Winkler) Here are two animated Macintosh programs I've written, MacTree and MacNet. (I'm open for better names.) [ How about SIMUTREE.HCX and SIMUNET.HCX ? That is how they are stored here on <INFO-MAC> -jma ] MacTree is an animated tree program which is similar to handson except that it also does AVL trees and self-adjusting trees, not just binary trees. Just type characters to insert nodes. If you change tree types without first clearing the nodes in the current tree, it reinserts the same input sequence into the new tree type. There is an undo feature that lets you watch the same insertion several times. There is an insert random feature that lets you build random trees (it uses the Random() function in QuickDraw). You can adjust the speed of the animation by choosing whether the program should pause, stop, or continue full speed ahead after each message it prints. If you choose stop, the program will wait for a keydown or mousedown before proceeding. It counts steps needed for each insertion to give you some idea of the relative efficiency of each tree type. MacNet is an animation of Valiant's randomized packet switching algorithm which shows packets moving between queues in nodes positioned at the vertices of a hypercube. The point of the animation is that there are permutations which cause very bad traffic jams when all packets move along the shortest path to their destinations but that if you send each packet first to a random destination and then along the shortest path to its real destination, you avoid the traffic jams. This program takes a few seconds to start up; be patient. These programs were inspired by Brown's BALSA system. MacNet has never been used for anything except amusing Valiant and me. MacTree is being used this semester at Harvard in Computer Science 124, a course on data structures and algorithms. Both programs are stable but far from finished. MacTree needs 2-3, B, and B* trees, a better redrawing algorithm, scrolling, and node labels longer than a single character. I know how to do all those enhancements but am quite busy right now and my recent rejection from Harvard Computer Science graduate school has killed my former enthusiasm for pouring hundreds of hours into Harvard projects. If you want source, you can have it. It's written in Manx C. Dan. (winkler@harvard) ------------------------------ Date: Thu, 28 Feb 85 10:23:20 EST From: winkler@harvard.ARPA (Dan Winkler) Subject: XLISP and HyperDrive From stew@lhasa.UUCP Thu Feb 28 00:18:57 1985 Received: by harvard.ARPA; Thu, 28 Feb 85 00:18:53 EST From: stew@lhasa.UUCP Date: 28 Feb 85 00:19 EST To: winkler@harvard, betz@harvard Subject: Xlisp on HyperMac Status: R XLisp doesn't seem to work on my HyperMac when the HyperDrive is online. It works when I boot off a diskette and load XLisp off a diskette, though. Any idea why this might be? It starts up and whites the screen, but instead of the version number message, it puts a couple of characters half on the top of the screen and then hangs. If you want to come over to the chem dept. and see for yourself, give me a call. Stew 5-4707 - ------------ From winkler Thu Feb 28 00:50:35 1985 Received: by harvard.ARPA; Thu, 28 Feb 85 00:50:31 EST From: winkler (Dan Winkler) To: betz@harvard, lhasa!stew, winkler@harvard Subject: Re: Xlisp on HyperMac Status: R My only guess is that there's some interaction between the Manx console driver and the hyperdriver drivers. But I have run Manx on a hypermac with no problem. Try using the resource editor to copy the Manx console driver (which I put in the resource fork of xlisp) into the Hyperdrive system file and remove it from the xlisp resource fork. Dan. - -------------------- From stew@lhasa.UUCP Thu Feb 28 03:19:11 1985 Received: by harvard.ARPA; Thu, 28 Feb 85 03:19:07 EST From: stew@lhasa.UUCP Date: 28 Feb 85 03:14 EST To: winkler@harvard Subject: RE: Re: Xlisp on HyperMac Status: R Yeah, .Con in the XLisp file and .HDdrvr in the system file both have ID = 30. Renumbering .Con to be 9 solved my problem. This is a loss -- the "namespace" for drivers is pretty damn limited. Stew ------------------------------ Date: Wed, 27 Feb 85 18:21:49 pst From: hamachi%ucbkim@Berkeley (Gordon Hamachi) Subject: Re: C Compiler Benchmarks Additional information concerning my C compiler evaluation at the MacWorld Expo: I sent my benchmark results to Bill Duvall at Consulair Corp. and he phoned me right back with some comments: 1. After the show he added register variables to his compiler. With register variables the sieve program runs in 3.6 seconds. Is that right? I may have misunderstood him. 2. Bill points out that the Megamax compiler uses 16 bit integers, while his compiler uses 32 bit integers. When the Consulair compiler used 16 bit integers in the sieve program the run time with his old compiler was 6.3 seconds. This is an excellent point. I neglected to notice whether the other compilers used 16 or 32-bit integers. Someone told me that the C standard stipulates that an integer's worth of bits must be able to span the entire address space. I don't know about this. Can someone comment? 3. Bill doesn't think that the size of binaries for small programs is a significant test of a compiler. With small programs it doesn't matter that much if some extra stuff gets loaded, while with larger programs almost everything ends up getting used. I personally have mixed feelings about this. If you're limited to 400K floppy disks, you probably don't want many useless bits on them. Bill says that he's planning a smarter linker that only links in what's needed. The anticipated release date is a month after his April release (the one that will include floating point). 4. Bill says that a better benchmark might have lots of function calls in it. His compiler has paid special attention to making calls go fast, since he believes that real sized programs make lots of them. The sieve benchmark doesn't let him show off that feature. I'd have run the famous fibonacci benchmark if I'd had the time. Many of the compiler vendor booths were so packed with people that I couldn't tie up their machines long enough to do everything I'd wanted. Watch this space for additional details. Consulair Corp. is lending me a copy of their compiler so I can do additional evaluation. I'll post the results as soon as they are available. - -Gordon Hamachi ------------------------------ Date: Tue, 26 Feb 85 16:23:12 pst From: Larry Rosenstein <lsr%apple.csnet@csnet-relay.arpa> Subject: Resource Editor Documentation (another bug) Yet another typo in the resource editor documentation. To define a 1-based list you create a field with type OCNT not ONCT as I had originally stated. (This was in fact a typo in the documentation I received.) Don't worry, eventually I will get it right. Larry Rosenstein UUCP: {nsc, dual, voder, ios}!apple!lsr CSNET: lsr@Apple.CSNET ------------------------------ Date: Fri, 22 Feb 85 18:12:50 pst From: erik%ucbssl.CC@Berkeley (Erik Kilk) Subject: How to put Megamax on your disks After working around on how to best place Megamax C files on your disks, here is a good solution which has been working great for weeks. In a RamDisk which has the System and Finder, place the Edit and mmlink programs. Put the Compiler and Header Files an another disk. There is then plenty of room to keep lots of source code and generated applications here. You can also put the dissassembler here. With just this setup, you currently must exit to the finder in all cases except to jump back into the Editor. You must also specify the drive name your sources are on each time (so name it something small, like "C".) You can use an external disk too, but that slows down the time it takes the finder to prepare itself. ------------------------------ Date: Mon, 25 Feb 85 18:18:49 EST From: Mark H. Nodine <mnodine@BBNH.ARPA> Subject: MacModula-2 tips For those of you who have a 512K mac but only a single disk drive (probably a small group) who want to use the Modula Corp.'s Modula-2, a configuration I have found to work well is to use a Ramdisk with a system, finder, and the 512K library folder on it. This leaves plenty of workspace on the Ramdisk (enough so that you can even put a Resource Editor on it if you so desire). On the disk in the internal drive, you can then put the Modula-2 compiler and linker, all that they need, edit, Rmaker, and still have more room for your programs than you are likely to have time to fill it at the rate the Compiler works. The Modula-2 compiler appears to be pretty solid (though SLOW...) and is fairly complete. The only features I find myself missing are (1) the ability to specify filter procs (action procs) to Toolbox routines, and (2) an interface to the Printer driver. I believe that the latter could have been fairly trivially included by Modula Corp. Hacking away, Mark ------------------------------ Date: Tue 26 Feb 85 22:40:38-PST From: Gustavo Fernandez <FERNANDEZ@SU-SCORE.ARPA> Subject: First Impressions of Odesta Helix These are my first impressions after spending about an hour and a half with the new Odesta Helix dealer demo which was given out to all dealers who went by the Helix booth at the Mac Expo in San Francisco. I am not affiliated with Helix, etc. etc. and all the other disclaimers. I went through the guided tour during the Expo. I can only say that I am very glad I did because a lot of the required operations are completely unintuitive at first and clumsy at second. The program requires a 512K mac and two disk drives. I was able, however to run it on a single drive 128K mac with lots of swapping after ignoring the initial message. For most of my work, though, I used a Mac XL and a 400K ramdisk. I placed Helix and 1 of the sample data files (a library database) on the ramdisk, ejected the floppy, and double-clicked on the library document. 42 (Ramdisk!) seconds later, I got a window which showed three icons which represented relations (and are called as such.) This program, while supposedly simple to use assumes that you already know a bit about relational database theory - indices, queries, etc. I will not go through a long explanation of all I saw. (There is plenty!) I will instead, talk about some of the pluses and minuses of the package. Once the package is up, there are few long pauses, but it is still sluggish. Nothing is a snap to do, but a few things can be very awkward. Every once in a while, the arrow changes into a small disk with an arrow pointing into it. This supposedly means that the program is backing up the data in RAM to disk. (A sync operation for UNIX fans.) This can sometimes get in your way but I couldn't really tell how much as I was on the ramdisk. The package seems to handle all relational operators except JOIN. This was promised to me that it would be available in an upcoming release by one of the implementers at the expo. The package supports a series of nested objects. A document is a collection which contains 1 or more relations. Each relation contains fields, templates, selections, queries, etc. There seems to be no way of bringing an object inside one relation into another. The standard cut/copy/paste commands are unavailable most of the time to do this. The program handles computed data fields quite well. (more on this later...) It does not, however, do any input validation other than making sure that the data format comforms to 1 of a limited number of standard types. It understands dates very well, but cannot understand how to format a phone number other than it being an arbitrary length string. A string is just a string. It can contain any characters including CR's and no length limits can be imposed. It allows dollar amounts expressed in dollars and cents, but not in cents only. (The latter would be useful for low-cost items such as grocery prices which are often better expressed as 149 cents, for example.) A fourth type is flag. This is simply a boolean. It cannot be used, however, as a real flag! Although you can express it as yes/no, true/flase, 1/0, T/F, etc. there is no presence/absence format such as */space! Forms in Helix are templates. Fields must first be "declared" by dragging them from the field well in the relation window and setting their name and format. Once declared, they can be selected from a menu inside the template window. To define a part of a template, you must first select a box type. There are 15 types of boxes which only have slightly different apperances but have vastly different behaivior. Five of them seemed to be permanently disabled and I could not get them to do anything. The ones that DID work were all in pairs: those with boxes surrounding the fields, and those without. The five field types were: entry field, display field, decoration box, label field, and repeat box. The above mentioned classification was derived using much painstaking trial and error. The boxes look very much alike and often the only way to tell what they did was to put the on the template and see what errors you would generate. Repeat boxes are a way to generate tables for reports. Unfortunately, there can be only one repeat level making subtotal operations dificult. Also, it is not obvious how one would place a total at the bottom of a form which may span more than one page Once you define a template, you must drag a selection into your relation window. A selection pulls together templates, indices, and queries. The only required entry is the template. Depending on the template you have created, you either have an entry,, display, or report form. (The machine doesn't care.) Queries must be predefined and predeclared. There is no simple "search" command which can give you immediate results from within a single window. Finally we come to the part of helix which sets it appart from the any other database: its computed field capability. Instead of using mathematical formulas, Helix uses tiles. Each tile (except for the "count" and "today" tiles) has holes where you can place a constant, an icon, or the arrow of another tial. Each tial also has an arrow which is either free which signifies the output of the calculation, or points into another tial signifying an intermediate result. This scheme bares a close resemblence to my own DataFlow program, except that a tial has but one output. (This simplifies things a lot if you think about it.) Both Helix and Dataflow suffer from a fundamental problems. Tiles take up lots of screen real- estate. Not that most of the tials themselves are large. (a few are indeed large) but the connections between tials take up a lot of room, especially in a moderately complex formula with many interconnections. There is also the spaghetti problem. Helix provides no cleanup capability so that tiles don't overlap eachother or cross eachother's paths. (This is guaranteed to be possible since the connected tiles form an inverted N-ary tree.) Cleaning up the mess can be slow and cumbersome. Even after you have goten your formula in a nice orderly fashion, it is still often impossible to view the whole thing on the screen. A moderately complex formula, which contained perhaps 10 tiles to compute fines for overdue or lost books took at least two screenfulls from top to bottom while the corresponding text formula would have taken perhaps five lines. On the positive side, the selection of functions in tiles is fairly complete. There are arithmetic, relational, logical, string search, database lookup tiale as well as tiles for common math functions such as square root sine and cosine. (why!?!) Unfortunately, the tile arrows give no hint that the output can be of at least three types: string, numeric, and boolean. For example, it is impossible to concetenate a string to the output of a tile providing a numeric result. This is often necessary to compute things like stock codes where the price (a definitely numeric quantity) is concatenateds with other information. Perhaps the biggest problem with Helix is its inability to separate the data from its format. You cannot lock the various icons such as fields, indices, and calculations, so that the novice keypuncher cannot modify them. This makes Helix dificult to use in a production environment. Its use of pre-defined queries makes quick searches tedious. Helix also has no graphics capability, in a time where integrated packages such as Jazz, OverView, and even closely knit packages such as the Microsoft series are appearing on the market. Odesta Helix has been a long time in coming but there is still a lot of work yet to be done before it is a truly useful production package. ------------------------------ Date: 25 Feb 1985 21:14:19 PST Subject: Weak shoulder straps From: Mike Schuster <MIKES@CIT-20.ARPA> Beware of the metal rings connecting the shoulder strap to your Apple Macintosh bag. Mine broke as I was walking down the street, and my Mac crashed to the sidewalk. The newer bags have plastic snaps instead of metal rings, maybe they will stand up better. Fortunately, I was carrying my thin Mac, had it been my two week old Hyperdrive, I would have really cried. Mike Schuster, cit-20 ------------------------------ Date: 27 Feb 1985 01:32-EST From: Avadis.Tevanian@CMU-CS-SPICE.ARPA Subject: Mail order query For the second month in a row I've noticed an ad placed in MacWorld by PC Network. Their prices seem to be better than most other advertised in MacWorld. In particular, they advertise an Apple external drive for $351, and a Shugart External Mac Drive for only $259. Has anyone ever dealt with this organization (PC Network). Their ad is FILLED with small print, asterisks, and the like. In particular, they mention club membership, 3% cash discount already figured in the prices, minimum shipping costs. (The ad is on page 139 of the March MacWorld in case you are interested). Also, what is this Shugart external drive, and why is the price so low? Avie ------------------------------ End of INFO-MAC Digest **********************