Solipsism Gradient

Rainer Brockerhoff’s blog

Browsing Posts in Software

Snowed under

No comments

Well, I’m sitting here downloading Apple’s latest Mac OS X Panther beta (7B21). I’m under the standard developer NDA, so after reading the release docs I can’t say much more beyond 1) it’ll take at least two more days to get it all (5 CDs!), 2) I’m very enthusiastic about it. Seems like a great excuse to get back into full-time development work – I’ve got a couple of good ideas already, about which I’ll post more info later.

There’s nothing like a larger screen and more memory! While downloading I’m reading the documentation, backing up some stuff, checking e-mail, chatting with friends, and listening to some great new music I found on my São Paulo trip. My current favorite is John Zorn‘s “The Circle Maker“, a double album with some amazing Jewish jazz. Highly recommended.

Newly Digital

No comments

Adam Kalsey is asking people to write about their early computing experiences, so of course I’ll have to goof off and write about mine instead of packing for our Europe trip icon_wink.gif. I was thinking of starting a series of notes for future biographers, anyway…

Sometime in 1967, while browsing at a local library I stumbled upon Elliott Organick‘s “A FORTRAN Primer”, and immediately realized this was hot. I promptly bought Organick’s more up-to-date “FORTRAN IV” and proceeded to learn it forward, backward and sideways. As I had no computer available, I typed my programs on long rolls of paper on an old Olivetti Linea typewriter and tried to single-step and debug them by hand. I remember doing factorials with many digits and other number puzzles from Martin Gardner‘s column in Scientific American.

The next year I casually mentioned the matter to my math teacher, who immediately sent me to the local university’s Engineering School, where they had a IBM 1130 mainframe. This was housed in a large air-conditioned room. The IBM 1131 CPU used magnetic core memory: 8K words of 16 bits each (later expanded to 16KW). The clock frequency was 280 KHz. The CPU also housed a 500KW magnetic cartridge drive and a keyboard with a Selectric-type “golf ball” printer. Other peripherals were the IBM 1442 card read-punch, the IBM 1132 line printer, a pair of paper tape read/punch units, and my personal favorite, the IBM 1627 plotter.

I immediately enrolled in keypunch and FORTRAN classes (with a special dispensation as I wasn’t a student), and began to pester the local staff to cadge computing time. After first getting the factorial calculator to run, I started to write a program for the plotter, inspired by yet another Scientific American article; over several months it evolved into a complex kludge, drawing an arbitrary number of (possibly intersecting) ellipsoids in 3D space from any vantage point, with hidden-line removal. Being unaware of existing hidden-line removal algorithms I tried to solve it by trigonometry, which worked but became extremely slow for the more interesting cases.

The next year I entered the school officially as an Electrical Engineering student, and promptly became attracted by a free systems analysis course to be offered by IBM. This was a 2-hours per day, every weekday, 9-month course sponsored by the university; 20 students were selected from over 200 applicants, and I placed second. The course was excellent, and the two best students were offered an internship at the university’s main computing center, so I made sure to place first…

CECOM, the computing center, at the time had an even older mainframe: the IBM 1401. The CPU had 4000 bytes of core memory; each byte had 6 BCD data bits, a parity bit, and a “word mark” bit to flag the end of a variable-length field; clock frequency was about 83 KHz. The only peripherals were a card read-punch and a line printer, and programming was in Autocoder (assembly) or machine language. It was already obsolete and soon was replaced by a IBM/360-40, itself replaced a few years later by a Burroughs B6700, which remained in use for 13 years. Amazingly, I can’t locate any photo or reference manual of this machine.

The B6700 was huge. The CPU had 800K of semiconductor (static) memory, which was state-of-the-art at the time and had a 800ns access time, if I recall correctly. It also had a 10MB fixed disk drive for virtual memory and operating system bootstrap; this had one magnetic head per track with several huge platters revolving on a horizontal axis. There were half a dozen magnetic tape units, removable disk packs (100MB each), and several fast line printers and card readers; later on about a dozen video terminals were installed. The B6700 had a very interesting architecture, with 51-bit words: 48 data bits which could be interpreted as 6 characters, as well as 3 tag bits which defined the word format. There were different formats for instruction words, address pointers for integers and floats, strings, and stack pointers. The machine was stack-oriented and and had no assembly language; the MCP operating system was written in an Algol dialect called ESPOL. As we had full source code for the MCP and for the compilers, I had a merry time – for several years, it turned out – hacking around and learning about operating system and compiler design.

In 1977 I acquired an Apple II and left the mainframe world. More in the next chapter…

Regarding our previous discussion here (and a few posts before that), Erik J. Barzesky writes that he prefers .dmg files for archival purposes:

The time for DropStuff/Deluxe has passed. I find myself using .tgz on the command line for files I know to be safe (i.e. those without resource forks). StuffIt Expander will continue to be useful for at least a little while, but for now, .dmg is the way I intend to go.

I still use DropStuff (part of Stuffit Lite) for temporarily archiving installed applications or data files, but I agree with Erik that .dmg is the best way for archiving things.

Regarding software distribution, my experience is that most users also want to archive the original .dmg, so that’s what I use for my own products.

John Gruber posts a follow-up about clickthrough. He puts the ball into Apple’s court:

Only Apple can fix this. Where by “fixing it”, I mean three things, all essential:

    Mandate correct click-through behavior in the HIG.
    Make Apple’s Cocoa frameworks do the right thing by default. Supply sufficient API hooks so that it’s easy for third-party frameworks to do the right thing.
    All of Apple’s own software needs to follow these guidelines.

Hmm… I need an “applause” smiley here…

Here’s an additional interesting tip from Sven-S. Porst:

One thing I’d like to add on the topic of click-through is that while it had been possible for ages in MacOS to drag background windows without activating them by holding the command-key while doing so, support for this background manipulation has improved in OSX. In Cocoa applications you can command-click most controls and use them without activating the window first. I like that. Click-through for the people who want and it and can handle it. It’s far from perfect, though, as it doesn’t work uniformly through all applications and doesn’t work for toolbar items either as the command-Key is used for moving items there.

John Gruber affirms a conviction I’ve long held, namely that “clickthrough” is usually a bad idea in Mac OS X applications. In the process, he goes into interesting detail about the Mac’s emphasis on the frontmost window, and how this differs from Microsoft’s window-centric approach.

The concept of the frontmost (or active) application is absolutely essential to understanding how to use a Mac. The frontmost application controls the menu bar and handles all keyboard input, including command key shortcuts. The concept of the frontmost window is related and similarly important. You can click on background windows (thus giving rise to the potential for click-through), but that’s it – everything else you can do with your computer is directed at the frontmost window of the active application…

I just bought a CanoScan N670U, sold here in Brazil under the Elgin label. This scanner is already discontinued, but is equivalent to the LiDE 20. I downloaded and installed the latest Mac OS X drivers, and brought my iBook to the store for testing – they’d never seen a Mac before.

Installation is very confusing. There are two applications to be downloaded: “CanoScan_N670U_v7010X.app.sit” and “CanoScanToolbox4110X.app.sit”. They have to be unstuffed after downloading. When you run them, they install 4 items on your desktop: two folders (“CanoScan_N670U_v7010X” and “CanoScanToolbox4110X”) and three aliases (“Deldrv.dmg”, “CanoScan Toolbox Installer” and “ScanGear CS Installer”). All aliases point deep into the folders. You’re supposed to run first the “CanoScan Toolbox Installer” and then the “ScanGear CS Installer”; naturally, I ran them in reverse order and it didn’t work correctly at first. One installs the CanoScan Toolbox application, which is run if you press any of the scanner’s buttons; the other one installs the ScanGear CS plug-in into both the CanoScan plug-in folder and, if you have them installed, Adobe PhotoShop/ImageReady plug-in folders.

The whole installation process is very Windows-like; you need to run 4 separate programs in a certain order, and a mess of aliases and folders is left on your desktop. And it’s not as if they never heard of disk images, as they include the “Deldrv.dmg” image which contains a deinstaller program. The installers also tell you to restart (but not why).

Anyway, after the initial unpleasantness, the scanner works quite well, if somewhat slowly, and with a high-pitched whine reminiscent of a wind-up toy. Running the “calibrate” option the first time (and every couple of weeks) is necessary, otherwise you’ll get unsightly streaks on the images. On the positive side, it needs no extra power supply, has a stand to hold it vertically, and is thin and light enough to be easiliy transported with a laptop. And it comes with a USB cable.

The CanoScan Toolbox application is a Carbon port of a Windows application; it has a non-standard window and non-standard buttons, close boxes and so forth. It saves scans, by default, inside the application’s folder which is a definite no-no. You can set the 3 scanner buttons to call one of several functions: two different scan settings, copy (scan and print), e-mail, OCR, save (in a dated folder), or file (just save). The names are somewhat confusing, and the two scan options ask you to select an application to assign the scanned file’s type/creator code. Unfortunately it knows nothing about application bundles, and so you need to drill deep down into the bundle to point at the actual executable, something non-technical users will have difficulties with. You also can’t set two buttons to do the same function, or set a button to do nothing, which was my first impulse. In all, this application is like the installation process itself (and like many Windows apps): overly helpful in some aspects, confusing in others. The included documentation just glosses over these issues.

The PhotoShop/ImageReady plug-in is of better quality, with both a “simple” and “advanced” mode. Some of the advanced preferences are obscurely named, and the tooltips usually just repeat the preference’s name instead of explaining what it really does. After some tests I decided to turn most automatic stuff like cropping and rotating off, and doing my own descreening and sharpening.

All in all, I found the scanner to be quite adequate for my intentions: low-volume scanning for semi-professional use. Non-technical users are advised to try it out first and compare it with other models or brands, or enlist someone knowledgeable to install and configure it.

Safari Beta v.73

No comments

I’ve been running this for a few days now. It seems about as stable as the previous version – I get about one crash per day. However, speed and compatibility seem improved. I’ve never seen any sense in forms auto-fill and similar automations, so I’m keeping this off. In fact, I wish the autocompletion in the URL field were less aggressive; I often delete trailing characters in the URL only to have Safari put them back a fraction of a second before I hit Return. This often happens several times in a row; IMHO the correct way would be for the user to explicitly accept the completion by hitting Tab, which I believe is the standard.

The hot feature are of course the browser tabs. I’ve never used this before in other browsers and was quite skeptical. However, tabs in Safari turn out to be surprisingly useful in certain circumstances. For instance, I set up a “Comics” folder on my Bookmarks Bar with bookmarks to all comics I read daily; command-click on the folder name, and all comics are opened in the same window, one to a tab.

On the other hand, I also have several other bookmark groups on the bar which I definitely don’t want to open as a tab group under any circumstances – especially as some of them are rather large. As Safari previously required the user to press command before opening a bookmark from a popup menu in a new window (other browsers test the command key at mouse-up time instead), the first couple of days had me constantly opening dozens of unwanted tabs at the same time, requiring immediate closing of the window and sometimes even force-quitting.

I also wish that Safari were a little more consistent in checking for the command and shift key signals to indicate a new tab or new window. As it is, directly opening a bookmark from a popup menu in a new tab is now impossible; you have to generate a new tab with command-T and then open the bookmark there. Holding command down while selecting an URL from the History menu opens no new tab either. I hope this is just an oversight…

As expected, reactions to the new Safari are mostly positive. Here’s a great comment from Bill Palmer:

…if this is still beta, then I’m a giraffe.

…Somehow, after all those years of watching Microsoft use Explorer to slowly, nastily, illegally choke the life out of Netscape on both platforms, Apple manages to blow Explorer off the face of the Mac platform in a matter of months…with a product that’s not even finished yet?

…Something tells me that deep in the dark recesses of his mind, Steve Jobs had this all planned out five years ago when he made the original Internet Explorer deal with Microsoft in the first place. Now, Steve gets to kick back and watch Microsoft squirm, as he lounges around at the pool and maybe buys a record company or two…

John Gruber translates the Quark XPress 6 press release into English:

Quark has not yet announced pricing or an anticipated ship date for QuarkXPress 6.

QuarkXPress 6 will be expensive and late.

Photos licensed by Creative Commons license. Unless otherwise noted, content © 2002-2022 by Rainer Brockerhoff. Iravan child theme by Rainer Brockerhoff, based on Arjuna-X, a WordPress Theme by SRS Solutions. jQuery UI based on Aristo.