About | Buy Stuff | Industry Watch | Learning Curve | Products | Search | Twitter
Home » Products » Reviews » The Good

ManOpen 2.5

Carl Lindberg
Rating:@@@@@@ (yes 6 out of 5)

The wealth of Unix.

ManOpen is written by Carl Lindberg. Carl also works on RCDefaultApp, a popular app for configuring URL schemes, file extensions, file types, and MIME types.

ManOpen is available as open source but also as a download. You can see screenshots at the following URLs.

http://clindberg.org/projects/ManOpenGrabSmall.jpg
http://clindberg.org/projects/ManOpenGrabLarge.jpg

The GZ image is easiest to deal with - and it's under 90 KB! So already you know this is going to be a good application.

OK, so we set this up correctly so there are no mishaps.

  1. Open the package.
  2. Get rid of the tar.
  3. Look around.

He's got PkgInfo which we can remove and he's got Info-macos.plist which seems a bit outdated. We take a chance and rename it Info.plist. It says copyright 2005, so maybe the old name works too.

ManOpen is 85760 bytes. Let's try stripping debug info.

% /Developer/Tools/pbxcp -resolve-src-symlinks -strip-debug-symbols ManOpen ..

Nope, same size. Nice job. Resources? English.lproj and some classic Ohlfs artwork in there. Ah. Eliminate English.lproj.

Two embedded executables: cat2html and cat2rtf, 28696 and 28648 bytes respectively. It's got scripting stuff too. OK.

data.classes in the NIBs - probably throw-back to NS. They can be removed. Curious: two NIBs, ManOpen-macintosh.nib and ManOpen-macos.nib. Better check if this guy is Mach-O.

% file ManOpen
ManOpen: Mach-O executable ppc

Yup. Let's drop him on Xstrings too, and let's run otool on him just to be sure. The Xstrings we can look at later, but here's the otool info. [After this and after running the app it becomes obvious there are no murky secrets within - just path strings to 'man' stuff and the like. Ed.]

% otool -L ManOpen
ManOpen:
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 743.36.0)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 500.58.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 71.1.3)

[It turns out that ManOpen-macintosh.nib can be removed as well. There seem to be a number of backward compatibility hooks in here. Note you can only do things like this if you're running and only running on OS X. Ed.]

Finally, the package can be rezipped to only 78 KB on disk and when expanded takes 304 KB (after trimming outlined above).

  1. Read the README. This is very important. As you learn:

For those who remember, there was an ManOpen 1.0 application by Harald Schlangmann that ran on NEXTSTEP computers. This is a much updated version that adds many features. Thanks are due to Mr. Schlangmann for the inspiration, and his internal cat2rtf tool which is also used in this version.
  1. Stamp the entire home area.
  2. Make a file to compare to later.

    % touch newer

  3. Run the program!

It comes up with no windows. If you want windows, go to the File menu. The numbers you see on the popup menu are those given for different types of documentation. [Which gives a clue why man3 is monstrous. Ed.]

Then you get up a nice window with a nice layout using a TT font (Monaco) and giving you the ability to quickly jump to different sections.

The only thing here is that this guy takes some work to get a page open. You have to always go back to the 'Open Title' command and scroll down and enter the target name. That's a bit of a bother.

But it's well done, that's for sure. And oh but wouldn't you know? He hyperlinks it too! So you can start clicking around and get everywhere you want to go without having to go back to that 'Open Title' all the time. Very cool!

OK, this in and of itself is worth the price of admission - which is not high anyway, seeing as this is a free giveaway, source included. Kudos all around - OK, already it's obvious this is a necessary tool for every programmer - and maybe admin too. Good stuff, very good stuff.

OK, then we get up to 'List Pages' on the menu. This is 'apropos': this critter will get into all your man directories and find how many and what files you have for each of the types given above. You get up a small table view and of course you can double click to get the documentation for whatever is there. Bloody brilliant is what it is.

Apropos works as it does from the command line, but you have a little dialog to enter text into. Like the window before, it's strictly speaking an 'apropos' window.

About the only (possible) visible bug is how the parentheses aren't matched in the title bars for the 'List Pages' feature. Otherwise this is powerful and slick.

You can open mostly any type of file with this sucker from 'Open File' on the File menu. [But he can't open binary gibberish. It has to be some sort of text. Ed.]

The help file comes up as an RTF file - which is all right, as who needs help with this application anyway?

And now we have preferences. Don't forget these: they're on the application menu. There are three tabs: General, Appearance, and 'Man Page Viewer'. You can decide basic app and window behaviour; text formatting, font, and colours; and just in case you have a different 'default' manpage viewer you can set it too with the help of the launch services.

About says this app was written first in 1999; it's got pedigree.

  1. Check for changes in the file system.

    % find ~ -newer newer >newer.rtx

  2. Audit newer file. This is what he touched. Not bad.

    ~/Library/Preferences/.GlobalPreferences.plist
    ~/Library/Preferences/com.apple.LaunchServices.plist
    ~/Library/Preferences/org.clindberg.ManOpen.plist

  3. Check the preferences.

It's not really necessary to keep everything in preferences, but with so much going on it's a real bother to worry a lot about it. Of course if ever the app screws up, then just remove the file.

And if you're really wacky, you can now navigate to /usr/share/man and double click all your man files - ManOpen will open them automatically. Is this cool or is this cool? [One thing: it doesn't set '.0' files; you'll have to attack Info.plist as follows. Ed.]

    <key>CFBundleDocumentTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeExtensions</key>
            <array>
                <string>man</string>
                <string>0</string>  [<-- Add this line.]
                <string>1</string>

For anyone interested at all in the underbody of OS X, this is as indispensable as AppKiDo is for the developer. This puts the wealth of Unix more within grasp both for the developer, the admin, and the ordinary (yes ordinary) user.

Get it get it get it get it get it!

About | Buy Stuff | Industry Watch | Learning Curve | Products | Search | Twitter
Copyright © Rixstep. All rights reserved.