Ultimate OS Wishlist

You’ll find below my ultimate OS feature wishlist. This is from years of use of Windows and Mac OS, as well as some Linux use. Now, I know, some of these may be covered by one or more of the countless Linux distros out there, however, Linux isn’t ready for my desktop (whether it’s ready for the desktop is a matter for people smarter than I).

The ultimate operating system would feature:
• A completely vector-based UI with full transparency, allowing users to select not only a monitor resolution, but also a display DPI, so that large, high-density displays could be used to display the same size features at higher quality.
• An auto-update system that’s open to all developers to use. Currently, modern OS’s (Mac OS and Windows) supply a system auto-update feature that cannot be used by installed applications, forcing application developers to write their own, separate auto-update libraries.
• A bug/crash reporting system that’s open to all developers to use. We sort of have this now, but it could get a whole lot better.
• A complete skinning/theming system that can be used to apply complete OS-wide interface makeovers, as well as skinning specific applications. Currently, operating systems typically require a seperate piece of software to skin the OS, and many individual applications provide a means to skin that application.
• Filesystem-level local revision control, and integrated access to remote revision control repositories. Revision control isn’t just for programmers any more.
• A tightly-integrated, professional-quality Personal Information Manager (PIM), integrated into the system’s clipboard and drag-and-drop functionality. Apple almost has the right idea here, except that the PIM applications themselves are dreck. It should be simple to use my computer, without any 3rd-party software, to store contacts, set reminders and appointments, create a to-do list, and so forth.
• Multiple clipboards and clipboard history.
• Solid remote command-line and remote desktop capabilities. Only *nix really has this nailed down. I want to be able to throw away my KVM in favor of my LAN.
• System self-optimization based on usage statistics. C’mon, guys, this can’t be that hard. I shouldn’t have to do much, if any, of my own optimization; operating systems should be smart enough to monitor how I use my PC and adjust system settings accordingly.
• Window-manager-level support for tabbed interfaces. It should be up to the user, not the developers, what windows and applications can be run in tabs rather than a slew of individual windows.
• A decent application launcher. Seriously, this is the core functionality of all operating systems – running applications. But still, with every OS I’ve ever used, I’ve had to install a 3rd-party application launcher to really get the most out of my system. I should have a customizable solution that completely eliminates the need for programs like QuickSilver, Colibri, Katapult, DragThing, and so on.
• Easy management of startup items. For crying out loud, this is still a pain in the ass on both Windows and Mac OS. Why?!?
• A cappuccino maker.

So, what’s your OS wishlist? Post in the comments!

LAMPP and then some

I recently built Apache, MySQL, PHP, Python, SQLite, OpenSSL, Subversion , and Trac on a Mac, an Ubuntu box, and a RHEL 4 box. Don’t ask why, just see these tips:

  • Try building your own APR. Also, check what APR is being used; if you already have an APR version 0.9.x, the new APR will be named apr-1-config instead of apr-config, and likewise apu-config will be apu-1-config to get the proper version.
  • Try building Apache –with-included-apr.
  • Try using a different version of OpenSSL, even if you have to go back a version. Security holes are typically backported as a letter release to the previous one or two point releases.
  • Under linux, remember to run sudo ldconfig, make clean, make if you’re having trouble.
  • Under MacOS, if you’re building under a prefix, make sure to add the prefix to the environment variable DYLD_LIBRARY_PATH.

More tips, and maybe even a step-by-step, will be forthcoming.

Urgent Apps – Mac Development Kit

After yesterday’s post, I got to thinking. I had pulled some items out of that list because they were highly developer-centric applications. However, that does mean that some really top-notch programs didn’t make the list, and I think that’s unfair. There are some apps that I really can’t live without when it comes to development work.

Before we begin, I should point out that my particular development tasks typically include the administration of a MySQL database, editing PHP, Java, HTML, CSS, and JavaScript files, and operating revision control; the tools laid out here are centered around those tasks.

Now, without further ado, the list:

jEdit

jEdit calls itself “the programmer’s text editor”, but that’s selling it short. jEdit is, to put it lightly, a god among executables. I’ve never seen another program come close to its level of flexibility, modularity, and customizability. The sacrifice for all this goodness is that it’s a bit of a RAM-hog, particularly running under the MacOS JRE (I highly recommend updating to the 1.6 JRE available on apple’s website, and completely switching over to 1.6; it provides some vast performance and footprint improvements.)

NetBeans
NetBeans is, of course, the Java IDE, unless you’re one of those people that thinks that Eclipse is the Java IDE, but I’m not.

SmartSVN (payware)
The best SVN client I’ve seen for the Mac. Unfortunately, there aren’t many good free options.

MySQL GUI Tools
The real deal, straight from the source.

Platypus
This nifty little app lets you take any shell or other script file and turn it into a Mac application package.

ArgoUML
Java-based UML designer.

Subversion
Revision control extraordinaire. Any box I do development on has a local Subversion server for anything I happen to want to keep a history for.

Trac
I’ve recently fallen in love with Trac, which is why it made the list. It’s not exactly an application – it’s a web application. However, it can be installed on a Mac, so it made the cut, and I do love it dearly. Go check out their page; the Trac site runs on Trac.

Anything I’m missing? Post in the comments!!

Urgent Apps – "20" Mac Software Picks

So, I just reformatted my laptop and reinstalled the OS, which got me to thinking about which applications I installed first, reflexively, as I can’t stand to be without them – and then I progress on through the stuff that I need infrequently, but I do still need nonetheless. These are my “Urgent Applications”.

Firefox
The best browser, period. Well, okay, Camino might actually be better – I haven’t used it, because it doesn’t support FireFox plugins. Bust.

Adium
The ultimate multi-messenger application. Handles MSNM, Y!IM, AIM, ICQ, GTalk, Jabber, IRC, and a whole host of smaller services. Moreover, it’s just about the most customizable instant messaging app I’ve ever used, on any patform.

Quicksilver
Quicksilver is a launcher and then some. It doesn’t just let you quickly find and open documents and applications; it lets you do anything to them, with just a few key presses. I still have yet to fully discover its potential.

TextWrangler
Nice text editor, especially for programmers, webmasters, and power-users.

Punakea
MacOS file tagger and tag-based file browser. Stores tags in meta data so they can still be searched with Spotlight.

Growl
Global notification app. Many of the programs on this list support Growl notifications, and more applications add Growl support every day.

7zX
On windows, 7Z has always been one of my “urgent apps” whenever I reinstall. 7zX holds the same spot for OS X.

Xcode
I know, I know, it’s cheating, but hey, you do have to manually install it. And besides, it’s required for Fink.

X11
Again, I know, it comes with MacOS, but again, it must be installed seperately. X11 is found in the “optional installs” package on your MacOS disk, and it allows you to run graphical Linux applications on your Mac, side-by-side with Mac applications (programs such as OpenOffice, the GIMP, and Inkscape.)

NeoOffice
A pure Aqua port of OpenOffice. It’s got some quirks, and it tends to be a couple of steps behind the official OpenOffice tree, but it’s still a very solid port.

VLC
VLC isn’t just a multimedia player; it’s an omnimedia player. I’ve only run into a couple of files in my life that VLC can’t play; and even when multiple players will play the same file, VLC usually does so with better quality, less resource usage, in fullscreen (unlike unregistered Quicktime), and for free.

Fink
Fink is the Darwin package manager, like apt or yum (in fact, it’s a forked port of apt to Darwin.) It’s a command-line tool you can use to install and update the thousands of standard (free) packages that have been ported to Darwin.

FinkCommander
For those squeemish at the command line, there’s FinkCommander, which puts a nice graphical interface over top of Fink. Heck, I love the command line, but I still use this instead of fink itself 90% of the time.

FruitMenu (payware)
One of the few pay apps on my list, FruitMenu is well worth the price. It lets you turn your Apple menu into, well, something that’s actually useful for stuff. There’s a free demo, so check it out.

FileZilla 3.0 beta
The famous FTP client for Windows has in its third generation finally been ported to the Mac – and the people rejoiced. My all-time favorite Windows FTP client is finally available, and completely free, for the Mac (and, for that matter, Linux as well!)

Chmox
Mac OS X app that lets you view Windows CHM helpfiles, which are prolific throughout the open source community in providing packaged online documentation. Works very well, with an interface similar to Preview.

OnyX
OnyX is a system tweaking, tinkering, optimizing, and maintenance tool. And it’s free. Go get it. I run the full suite about once a week.

SuperDuper (payware)
The other pay app on my list, SuperDuper lets you quickly back up your Users directory, your entire disk, or any selection of files, to a disk image.

hfsdebug

Hfsdebug is a command-line utility you can use to quickly get information about an HFS drive, such as file size and fragmentation. The only free way I know of to determine file fragmentation on an HFS+ disk.

Dashboard Widgets
iStat Pro
Shows various system stats, such as memory use, network info, disk use, fan speeds, temperature readouts, CPU usage, uptime, battery status, and more.

Delivery Notification
The best package tracking widget I’ve ever seen, bar none – and I’ve used many of them. If you do a lot of online shopping – or even just occasionally – check this little widget out.

Color LS
Yes, yes, this would make #22 (#21 if you count the dashboard widgets as one item, which I do, because I’m a cheater), but it’s not exactly just an application, so I’m not counting it as one. In order to get LS in color, you have to install a version of LS which supports color output. You can do this from Fink by installing the “fileutils” package. This gets you a color-capable ls, but it’s not in color by default; you have to use the –color=always flag. However, you can change this by editing your ~/.bash_profile and adding a line like so:

alias ls=’ls –color=always”

You can find more info here: http://kung-foo.tv/xtips.html#9.

Open Terminal Here Workflow
(See note from Color LS about how this doesn’t put me over 20 items.) Sometimes you’re browsing around the Finder and you need to get to the current directory in a Terminal window – only to discover there’s no easy way to do it; you can’t even quickly copy and paste your current path. So, what is a power-user to do? Script the action!

Right-click on a folder’s background (or the desktop background) and choose Automator -> Create Workflow. This will open Automator with a new Workflow, with “Get Selected Finder Items” already inserted as Step 1. Choose Automator as the library, find Run AppleScript, and add it as Step 2. For the script body, use:

on run {input, parameters}

tell application “Terminal”
set firstpath to item 1 of input
do script “cd ” & (quoted form of POSIX path of firstpath)
activate
end tell

return input
end run

Now save the file as a Finder Plugin, and name it anything you want. Now, to get a Terminal that’s where you are in the Finder, just right-click, and choose your script name from the Automator menu.

Know of a superior alternative to one of my picks? Or something that should be on the list but isn’t? Post a comment and let me know!!