Late Night MUG Development Session

Sunday, 2005-08-28; 05:33:00


This always happens late at night.

Well, it's 5:15 AM and I'm about to go to bed, but I thought I'd mention what I've been doing on MUG tonight. After 6 months of no active development, I'm again putting MUG in the hot seat, so that I can hopefully release version 2.5.2 soon.

What's been done so far:

-- New "Kill Special" menu item that allows fast access to killing the Dock, Dashboard, Finder, the menu bar, and Classic. Note that because of how Mac OS X works, the Dock, the Finder, and the menu bar will automatically be restarted (with an exception for the Finder if you've activated its Quit menu item).

-- Dashboard widgets in Tiger will now show up with unique process names. Before they all had the name "DashboardClient", since that's the application that runs them. Now they say the widget name, including the ".wdgt" extension, so you can easily filter for widgets just by entering "wdgt" in the "Search Process Names" field.

-- Tab and List view windows now have a secondary sort order. I think this is really cool, and it's one of those minor touches that I like to implement. Basically, if you sort by CPU usage, you may notice in the current version of MUG that when the CPU usage is identical in more than one process, there's no rhyme or reason as to how those processes are sorted -- i.e.: they need a sub-sort order. Well, MUG now does this... so if you sort by CPU usage, you can have it sub-sort by memory usage, which is very useful. It works on any column, so you can sort by process name and sub-sort by CPU usage if you really wanted. (Currently, this really only matters when you sort primarily by CPU usage, since that's really the only time when the primary sort criterion is not enough.) I've implemented secondary sorting à la iChat -- basically, you click on the column header for your secondary sort criterion, and then you click on the column header for your primary sort criterion. (This is actually quite intuitive, because when you click on a new sort column, the previous primary sort criterion becomes your new secondary sort criterion.)

-- Checking for updates now brings up a progress dialog in MUG, rather than failing silently if there are no updates. This gives the user more feedback.

-- Last, but not least (and I did this a while ago when Apple announced the Intel transition), MUG is now MacTel-compatible. Yay?


Things I hope to accomplish before releasing 2.5.2:

-- Add a "process history by name" feature. Basically, instead of forcing you to monitor processes by their process ID (which is how MUG currently distinguishes processes -- since PIDs are unique), you will be able to enter a process name, and have MUG show the history for the process that has that name. So, for example, you'd be able to enter "Finder" into a text field, and MUG will monitor the Finder, no matter if you quit and reopen it a number of times. This will be useful for monitoring those processes that are only active some of the time, and quit when they are not in use.

-- Add force killing (so that you can force a process to quit no matter what). Yes, killing does not necessarily force a process to quit, which leads to the somewhat amusing term "force kill," since "kill" seems to imply that the process will be forced to quit.

-- Process pausing? This is a feature in another application called "Cunning Fox", where you can basically tell Mac OS X to suspend all activity for a specific process, and then resume it later. Potentially useful for those times when you want to focus CPU usage on other applications. I'm debating as to whether this is really useful, though, because it makes those applications appear as if they have crashed, and I'm not sure as to whether people would actually USE this feature or not. Is it worth it to spend the time to add this feature?

-- Fix an annoying problem where selecting the "Don't show confirmation when killing processes" check box doesn't actually make MUG kill without confirmation.

-- Hopefully fix the problem where the Dock icon doesn't start immediately on launch even though the preference was set. I thought I fixed this last version, but I've gotten some new e-mails about the problem.


Features that may make it into the 2.5.2 cut, but may not:

-- Contextual menus. Does anybody care if I really add this or not? I suppose it would be a nice UI feature.
-- Multiple selection in Tab and List view windows. I've wanted this for a while, and it would also be very useful for opening history windows and such.
-- Double-clicking an app in the tab or list view window causes an action to happen -- e.g.: opening the history window, switching to the app, etc.
-- Application profiling? OK, this may shock some people, but I've never actually done some rigorous profiling to find out where MUG is especially slow. Profiling would allow me to optimize MUG by seeing where the slowest methods are. But I've been lazy and have never actually read how to do this, and I'm sure it's not TOO hard. I should really do this for 2.5.2; who knows, I might have some really slow methods that I could optimize!


Major feature that will definitely not make the 2.5.2 cut:

-- Network mem getting. I attempted to get this to work a while ago, and I still want to get this to work, but it's not going to happen ANYTIME soon. Shame, but trying to automate ssh even through expect is quite complicated, unfortunately.


Technological Supernova   Unfiled   Older   Newer   Post a Comment