programs

KDE apps coming natively to Mac

Ars Technica has the story on the effort by KDE to port a great deal of its environment to run as native* Mac applications: “KDE goes cross-platform with Windows, Mac OS X support”.

More project details as well as torrent files are on the KDE TechBase, here: “Projects/KDE on Mac OS X”.

Mac OS X is already a “desktop environment” in the sense that it provides window management, application launching, etc. The goal of KDE on Mac OS X is to provide the rich frameworks and applications in KDE to a wider audience.

The Installation section of that wiki page notes:

You must install at least Qt, kdesupport, and kdelibs for any of these packages to work. Also, kdepimlibs, kdebase and strigi are recommended since a number of things will want them. (…and it has Konqueror)

Amarok (which I’ve seen a lot of people mentioning they were excited about getting) is “temporarily not building” so isn’t included in the downloads.

* - for certain values of native ;)

Hidden Dictionary.app gems

Back in the days of NeXT, there was a bundled application called Digital Librarian. And as AppleInsider describes in this article, “Road to Mac OS X Leopard: Dictionary 2.0”,

Included with the system were the complete works of Shakespeare, The Oxford Dictionary of Quotations, Webster’s Ninth New Collegiate Dictionary, and Merriam-Webster’s Collegiate Thesaurus.

With the new Dictionary.app, you have the ability to view other dictionaries, as well as all of Wikipedia — I’ve already been using this capability a ton. Combined with using the keyboard shortcuts under the “Search” menu, searching multiple places is very easy and quick.

An item that might go overlooked is in the “Go” menu — “Front/Back Matter.” Choosing that while the Dictionary is selected reveals various meta items like the people associated with making the included New Oxford American Dictionary, prefaces, introductions, etc. But there’s actually a massive amount of additional resources here. Check it out:

  • American Voices by William A.Kretzschmar, Jr.
  • How to Read an Etymology by Anatoly Liberman
  • Key to the Pronunciations
  • Key to the Abbreviations

Ready Reference

  • Language Guide
    • Rules of English: Understanding Grammar
    • Guide to Spelling
    • Guide to Capitalization and Punctuation
    • Words: Making the Right Choices
    • Clichés
    • Proofreader’s Marks
  • The History of English
    • Timeline
  • States of the United States of America
  • Presidents of the United States of America
  • Declaration of Independence
  • Constitution of the United States of America
  • Countries of the World
  • Chemical Elements
  • Standard Weights and Measures with Metric Equivalents and Conversions
  • Metric Weights and Measures with Standard Equivalents and Conversions
  • Alphabets

Of course, in our always-online culture nowadays, all of this stuff is available via your favorite web browser. But if you happen to be offline (horror of horrors), these could be very useful.

Terminal.app with tabs

Browsing through the features and technology of the fast-approaching Leopard, I happened across the UNIX page and a mention of “Terminal 2,” an updated version of the bundled term application. Here’s the spiel:

The Terminal application in Leopard takes advantage of the operating system’s native text and graphics capabilities, using Input Manager and CoreText to fully support non-English languages. The updated layout engine provides very fast rendering of ASCII, ISO, and Unicode text, and a new user interface gives users around the world the ability to harness the power of UNIX. A simplified inspector and integrated settings pane make it easy to change the look and feel of Terminal.

New user interface, eh?

Now, I spend a lot of time in the CLI environment, although it’s currently shifted over to iTerm due in large part to its tabbed windows. Lo and behold, check out the top of Terminal 2’s window:

terminal 2 screenshot showing tabs

Fixing "can't find package Pextlib 1.0" in MacPorts installation

Installing MacPorts (formerly DarwinPorts), I ran into an issue with the post-installation selfupdate command which took some digging to solve. Eventually, I tracked it down to this thread at gmane.org.

Two fixes need to be made: adding a missing line in a text file, and replacing a PPC binary with an Intel-compatible version.

First up, follow the installation instructions at the MacPorts wiki: InstallingMacPorts.

After installation is complete and the installer app is quit:

  1. Right-click on the .pkg launcher (which is as of this writing called “MacPorts-1.4.0.pkg”) and select “Show Package Contents”.
  2. Navigate into the “Contents” folder and double-click on the “Archive.pax.gz” file. This will result in an “Archive” folder in your Downloads folder.
  3. In the Terminal:
    cd /opt/local/share/darwinports/Tcl/pextlib1.0
  4. Open “pkgIndex.tcl” in your favorite Terminal text editor. Assuming vim:
    sudo vim pkgIndex.tcl
  5. On the first blank line (below the commented text), add this text all on the same line:
    package ifneeded Pextlib 1.0 [list load [file join Pextlib.dylib]]
  6. Save and quit the editor.
  7. Backup the incompatible binary just in case:
    mv Pextlib.dylib Pextlib.dylib.old
  8. Use the command open . to reveal this directory in a Finder window.
  9. Leaving this window open, open a second Finder window and go to the corresponding folder in the Archive you extracted in step 2. It will be at “Archive/opt/local/share/darwinports/Tcl/pextlib1.0”
  10. Copy the “Pextlib.dylib” file from the Archive into the permanent folder.

Back in the Terminal, your sudo port selfupdate command should work now. You can trash the Archive folder and Archive.paz file from your Downloads folder.

Note: see comments for another approach in step 5 that worked for at least one visitor.

And for your reference, here’s the original error message I got when I first ran the selfupdate:

can't find package Pextlib 1.0  
    while executing  
"package_native require Pextlib 1.0"  
    ("eval" body line 1)  
    invoked from within  
"eval package_native $args"  
    (procedure "package" line 14)  
    invoked from within  
"package require Pextlib 1.0"  
    (procedure "dportinit" line 315)  
    invoked from within  
"dportinit ui_options global_options global_variations"  
Error: /opt/local/bin/port: Failed to initialize ports system, 
can't find package Pextlib 1.0

links for 2007-05-04