Default Folder X 4.3.3 is out!

November 6th, 2009

Default Folder X 4.3.3 is available on the What’s New page, addressing a couple of fairly major issues on Leopard and Tiger.  My apologies for the need for another update so close on the heels of version 4.3.2 – see my earlier blog post about LSSharedFileListAddObserver for the gory details.

To just download the new version, use the link below:

http://www.stclairsoft.com/cgi-bin/dl.cgi?DX

And yes, I’m aware that this would be easier for you if DFX auto-updated using Sparkle.  It’s on my list, but the last couple of releases have had significant fixes that I haven’t wanted to hold up with the oodles of testing necessary to roll out a new update mechanism.

Being careful with LSSharedFileListAddObserver

November 6th, 2009

So, Apple added this cool little capability to the Launch Services API in Leopard: LSSharedFileListAddObserver will call your observer function whenever there are changes in a number of different file lists maintained by Launch Services. One of those lists is the “Recent Documents” list in the Apple Menu. “Great!” I thought, “I’ll roll this into Default Folder X to ensure that it doesn’t miss any recently used folders.”  It’s a simple API – what could go wrong?  As a long time developer, I should have known better – if you EVER say this (even if you never even say it out loud), you need to poke yourself with something sharp and realize that the consequences will probably hurt quite a bit more than that. “What could go wrong?” indeed.

So yes, here I am apologizing for not having poked myself after I used LSSharedFileListAddObserver without asking more questions – or at least without testing more.  Here’s how Default Folder X ended up using 60% of some users’ CPUs while doing nothing useful:

  1. DFX added itself as an observer for kLSSharedFileListRecentDocumentItems.
  2. The observer function got called by Launch Services because the user double-clicked a document in the Finder.
  3. DFX looked at the list, took the most recent entry in it (the first one), asked Launch Services for the URL of the document, and added the folder enclosing that document to its Recent Folders list.

Pretty simple, right? Yeah, I thought so too. This was tested thoroughly on Snow Leopard and performed fine, and all my Leopard testers reported that it worked well for them too.

So what’s the problem then?  Well, there’s this little “issue”…  If a user has a Windows server mounted on the Desktop, things get a little more interesting.  Normally, when Launch Services calls your observer function, it hands you the file list and you ask for a copy of the list.  The list itself is just a series of ID’s and references – to see what’s in an entry, you have to call LSSharedFileListItemResolve().  And that’s where the interesting part happened.  On Leopard, if the shared file list item lies on a Windows server, the act of calling LSSharedFileListItemResolve actually results in the item being changed, so your observer function gets called again the next time you hit your event loop.  The result of this is that you get called over and over again if you naively use LSSharedFileListItemResolve to get more info about the items that Launch Services is handing you.

So – the warning:  If you use LSSharedFileListAddObserver to watch the list of recent documents, keep a copy of the ID’s from the previous call and ONLY call LSSharedFileListItemResolve if there’s a new ID in the array.  Otherwise do nothing, or work off cached information – otherwise you’ll end up in an infinite loop, sucking down lots of CPU time.  And if you’re doing anything that interacts with the filesystem, make SURE you test with SMB shared volumes too.

Default Folder X high CPU-usage and responsiveness problems

November 5th, 2009

Well, there’s definitely a bug in Default Folder X 4.3.2.  When running under Leopard and accessing SMB file servers, DFX will start consuming 20-60% of one CPU and will start to lag or become completely unresponsive.  This may also affect Snow Leopard and / or other types of file servers besides SMB.

I’ve got a test build available with a fix:

http://www.stclairsoft.com/download/DefaultFolderX-4.3.3b1.dmg

If you’re having any trouble with Default Folder X, please download and install it.  It should fix your problems.  If you run into any problems, please let me know as soon as possible at DefaultFolder@stclairsoft.com.

Thanks, and I apologize for the bug (I’ll post the gory details in a few minutes, since it’s an interesting little ‘gotcha’ in the Launch Services API).

Default Folder X Updated to Version 4.3.2

October 29th, 2009

It’s been a bit of a fight to get this release finished, but Default Folder X 4.3.2 is finally available! It fixes problems that have been reported when running with Snow Leopard (some my fault, some Snow Leopard’s fault).

If you’re a Default Folder X user, download a copy and install it. The update is free and will make everything work more smoothly, especially if you’re dealing with file servers or use column view a lot. Oh, and this version also watches the Recent Items list in your Apple Menu and remembers the folders for documents that OS X adds there. This makes sure that Default Folder X’s list of recent folders is never missing anything.

Full details and download links for the English, French, German and Danish installers are available now on the “What’s New” page for Default Folder X.

HistoryHound 1.9.7 Unleashed!

October 29th, 2009

HistoryHound IconThe final version of HistoryHound, our  multi-browser search tool , is available!  It now works with the latest versions of Safari, Opera, and Google Chrome, and will also index URLs contained in .webbookmark, .webhistory, and .webloc files. On top of that, HistoryHound is now faster and consumes less of your CPU, addresses a number of bugs and problems, and includes some helpful little enhancements.

I got this from a HistoryHound user yesterday:
Just wanted to compliment you and your staff for the GREAT update to HistoryHound.  1.9.7 really rocks.
Thanks for creating this great and oh-so-useful piece of software.
With all best wishes,
Steve
That about sums it up 🙂  You can see a list of all the changes and / or download a copy from the HistoryHound release page.

HistoryHound 1.9.7b1 Beta

October 8th, 2009

I just posted a beta version of HistoryHound that addresses a bunch of issues, not the least of which are support for Safari 4 and Opera 10.

Yes, you can now search your history in Safari 4, but it oddly doesn’t sort the results by relevance and it’s difficult to get to the history display in the first place.  It still takes me longer to find something than it does in HistoryHound.  For those of us that search through our histories frequently or use multiple browsers (I use Safari, Firefox, and NetNewsWire myself) HistoryHound is still what I’d choose (no bias here, of course 😀 ).

At any rate, hop over to the HistoryHound Beta Testing page to get the details and download a copy.

Move Items Contextual Menu for Snow Leopard

September 16th, 2009

Contextual menu plugins are dead in Snow Leopard, replaced by the revamped Services system.  A user recently contacted me because he wanted to replicate the “Move Items” contextual menu item he used to use in Leopard.  He had used Automator to create a service, but was having a few problems, namely that Default Folder X wasn’t available when he chose the destination folder.

This got me to open up Automator in Snow Leopard and take a crack at it myself.  In the process, I was reminded how cool Automator is 🙂  At any rate, here’s the automator script I put together:

So you’re obviously asking: Why go to the trouble of creating variables instead of just using the “Move Finder Items” action by itself?  I’m glad you asked!  The reason is that I want to bring up a file dialog to specify the folder where I want the items to go.  There’s not a clean way to have the “Move Finder Items” do that every time.  You can change its options to “Show this action when the workflow runs” but you still have to click on it every time you use it to ask it to show a file dialog.  If you use Default Folder X to enhance your Open dialogs, it’s faster to just have the dialog pop up and then go where you want to with DFX.

So in the image above, the workflow puts the current Finder selection into the “selection” variable.  Then it uses AppleScript to bring up a file dialog to ask for a folder, which it stores in the “path” variable.  And finally, it uses the Move Finder Items action to do the work.  Not too much more complicated, and it speeds up your workflow considerably if you’ve already got DFX installed so the Open dialogs are smart.

For you automator programmers, note that some of the actions shown in the workflow do not take inputs.  I did this by control-clicking on the action (“Get Value of Variable”, for example) and choosing “Ignore Input” from the contextual menu.  If you don’t do this, Automator will actually add the input from the previous step to the next one, which is definitely not what you want in this case.

Oh, and if you just want the automator workflow file so you can add it to your own system, you can download it here:

http://www.stclairsoft.com/download/MoveItems.zip

If you need more help with Automator and Services, Apple has some good information and tutorials here:

http://www.macosxautomation.com/services/learn/

(Once you’ve gotten through the first few steps of the tutorial, you should be able to just replicate the picture above to make the Move Items service yourself).

Default Folder X 4.3.1 Fine-Tuned for Snow Leopard

September 14th, 2009

I just posted version 4.3.1 of Default Folder X.  It’s got fixes and improvements for users of Snow Leopard, Gmail, Final Cut Pro, and QuickTime.  It also makes Default Folder X’s contextual menus work in icon and column view in Open and Save dialogs (they were missing in Snow Leopard).

If you want the toolbar to be on the left side of the Open and Save dialog instead of the right, install version 4.3.1 and then Option-click on the “Settings” button in the preference pane and turn on “ToolbarOnLeft”.

There are also some UI fixes, including eliminating that annoying white box that would occasionally show up in the menubar where Default Folder X’s menu icon was supposed to be.

Thanks for everyone that reported problems and tested fixes for them.  If you have any issues or ideas, just email support@stclairsoft.com.

Default Folder X in New Take Control Book

August 28th, 2009

Matt Neuburg recommends Default Folder X in his new eBook “Take Control of Exploring & Customizing Snow Leopard”.  More importantly, Matt’s eBook and the companion Take Control of Upgrading to Snow Leopard” offer great recommendations on safely upgrading to Snow Leopard, what’s new and interesting in the new OS revision, and how to get the most out of it.  I highly recommend them – I’ve learned some new stuff myself thanks to Take Control Ebooks.

Default Folder X 4.3 Is Available!

August 17th, 2009

Default Folder X 4.3 sports Snow Leopard compatibility and a number of other enhancements and fixes.  You can get it from the Default Folder X release page.

IMPORTANT: There’s a bug in older versions of Default Folder X that can cause crashes while you’re using the hierarchical path menu if you’re running Mac OS 10.6.  Make sure to install this update before you upgrade to Snow Leopard!

And now that we’ve got that dire warning out of the way, there are a couple of geeky little additions in this release that I’m partial to:

  • You can globally set a minimum file dialog size and column width. Use these commands in terminal to set the values:

    defaults write com.stclairsoft.DefaultFolderX minimumSize.width 800

    defaults write com.stclairsoft.DefaultFolderX minimumSize.height 600

    defaults write com.stclairsoft.DefaultFolderX minimumSize.columnWidth 250

    Change the numbers at the end of the commands to the sizes you want to use (in pixels).

  • You can list items in hierarchical menus chronologically rather than alphabetically by holding down the Control key.

Take a look at the release page for details about all of the changes.