Category: Hazel


Adventures in Debugging: Pref Pane Poppin’ Aplenty

April 23rd, 2008 — 3:34pm

As you may or may not know, Hazel is packaged as a preference pane. While you do all the configuration via the preference pane interface, the actual work of running your rules is done by background processes. The commandline tool that actually runs the rules is stored inside the pref pane bundle. I’ve kept it in the Resources part of the bundle for no good reason except that’s the catch all for all your bundle stuff. But then I thought, “why not stick it in the MacOS dir. That’s where executables are supposed to go, right?”

So, I went into XCode and created a new “Copy Files” phase to copy the built executables into the “executables” dir (which ends up being the MacOS dir in your bundle). I modified the code that launches the program to look in the right place (NSBundle’s -pathForAuxiliaryExecutable: for those of you keeping score at home). It seemed to work. My bundle was now a tad tidier with things in their proper place.

Later on, I was testing something else and noticed that when Hazel was running certain rules, the pref pane icon would show up in the dock and then disappear when the background program was done. Strange enough that a pref pane icon would appear in the dock; stranger that it was being triggered by a non-GUI program. More testing revealed that it happened when Hazel was executing AppleScripts. I tried isolating the AppleScript parts. I checked all sorts of paths. I couldn’t figure out what was causing it. The Pope was in town so maybe he was messing things up somehow.

I checked previous versions to isolate when the bug was introduced and discovered it was only in the last set of changes. Moving the executables back to Resources fixed it.

Problem solved but I had no idea why. After muttering about it in IRC, Mike Ash casually throws out the explanation: “the binary is hitting the window server, the window server notices that it’s in an executable directory of a bundle, sticks it in the Dock.”

Of course, it all sounds so simple when you hear the answer. Calling the AppleScript created the window server connection which then prompted it to throw the icon in the dock as if it were a regular app. Not sure how long it would have taken me to figure that out on my own.

The lesson here is that when faced with a crazy bug, ask Mike Ash. Really, though, don’t do that. He’ll crash his glider into me next chance he gets. The real lesson is that you should be careful about putting executables for background programs in the MacOS directory of your bundle.

Ok, so I can’t pin this one on the Pope. All I know is that I don’t get these types of problems when the Dalai Lama is in town.

2 comments » | Cocoa, Debugging, Hazel, Programming, Xcode

MacUpdate Bundle

April 16th, 2008 — 3:53pm

If you haven’t seen the ads or announcements yet, Hazel is in the MacUpdate bundle that starts today. 10 great apps for $65.

Bundle mates include:

Parallels Desktop
Banner Zest
Sound Studio
DVD Remaster
Typinator
StoryMill
Leap
MenuCalendarClock
Art Text

This is the first bundle I’ve been a part of so I’m not sure what to expect. I’ve beefed up the server so hopefully the site will stay responsive throughout the promotion. When it’s all said and done, I’ll post my thoughts on participating. In the meantime, grab it while it’s hot.

2 comments » | Hazel, Noodlesoft

The Noodle in Review: 2007

December 31st, 2007 — 4:20pm

As the year winds down I thought I’d do the obligatory year-end reflection. As usual, I’m overdue for a blog post so this will make good filler until I can come up with something more interesting.

The main thing to note is that I’m now fully indie. What that means is that Noodlesoft is a full-time affair and that it is supporting me financially. This actually has held true for some months now though it’s only now that I’ve realized that I haven’t really mentioned it here. So yes, Hazel has gone from a preoccupation to an occupation. I have done the occasional side contract here and there but Noodlesoft is paying the rent on its own.

After what seemed like an unending beta period, 2007 saw the release of Hazel 2.0. With that release, I felt Hazel had become much more the product I had originally envisioned and its reception has been great. I also dabbled with promotions this year, including MacUpdate and MacSanta, both of which were great successes. Also, a promotion with ScreencastsOnline worked out wonderfully as, in addition to the added sales, I got screencasts out of it which I’m now using on the site.

What didn’t go so well? Well, I’d say the main thing would be Leopard. A lot of stuff broke that shouldn’t have and I’m still tackling Leopard bugs now. Yes, I’ve had access to seeds for some time now but fact of the matter is that a lot of the stuff was fixed by Apple in the final month or so and more stuff broke with the GM and subsequent releases.

I hesitate to make any announcements on what’s in store for 2008 but I’ll mention that Leopard adoption is much higher than I anticipated. As a result, I am seriously considering making Hazel 3.0 a Leopard-only release. What’s going to be in 3.0? I still haven’t worked that out so it will be some time until that happens. Until then, there will still be 2.x releases that will still run on Tiger as there’s still stuff I can put in there that doesn’t require Leopard. And of course, there’s always the possibility of a new app though I have to say that nothing has gotten past the drawing board phase yet.

In any case, 2007 was a good year and I’m hoping that 2008 will be even better. A big thanks to all of you for your support this year and best wishes moving into the next.

Comment » | Hazel, Noodlesoft

MacSanta is back in town

December 7th, 2007 — 1:05am


It’s that time of year again. MacSanta is here, providing discounts on all sorts of Mac software for the month of December. I couldn’t get my act together last year but this year Noodlesoft is participating.

Today, Hazel is one of the apps being featured. That means you can get 20% off Hazel for today and 10% off for the rest of the month. Just saunter on over to the MacSanta site for the coupon codes to get your discount on Hazel as well as some other great software.

Comment » | Hazel, Noodlesoft, Software

On Leopard compatibility

October 22nd, 2007 — 11:31am

Hazel 2.1 has just been released. One of the main focuses of this release was Leopard compatibility but what does this really mean?

In this case, it means that, for the most part, Hazel will work on Leopard as it did on Tiger. As other devs have pointed out 1, 2, 3, we do not get the final version of Leopard any sooner than you do. Actually, unless we go into a store and pay for a copy on launch day, we will probably get it later.

The implications of this are that there could be changes that have occurred since the last prerelease and the final version that could break things and we won’t know until launch day. It’s a gamble but I’d rather have something usable in your hands the minute you upgrade to Leopard. This version addresses the known Leopard issues to date and should be ready to help organize your Stacks come August 26th.

As for the longer term roadmap with Hazel on Leopard: Hazel is not providing any special Leopard-only functionality currently. When will Hazel start using exclusive Leopard features or go fully Leopard-only? It’s hard to say. Leopard does provide some functionality that Hazel can take advantage of. But until I feel comfortable that a good number of my users have upgraded, I’ll try and support both Tiger and Leopard.

As a user, you do have the ability to influence this. When checking for updates, you have the option of sending anonymous data about your system. One of the things sent is your OS version (you can see all the data sent if you click on the “More Info…” button). Using this data, I can get a sense of Leopard adoption. If you want to be properly represented, then check the “Include anonymous profile” box in the update settings. I keep the data to myself and won’t do any bad things with it. Your participation will help guide Hazel’s future development so, if you’re not doing it already, please consider casting your vote in this manner.

So, in the end, I just want to clarify that there’s a bit of a juggling game here. I’ve tried to make sure that everything works as smoothly on Leopard as it does on Tiger. If it turns out that something changed in the final release or if I just flat out missed something, I’ll fix it. Leopard compatibility is not so much a state as it is a commitment.

2 comments » | Hazel, Noodlesoft, OS X, Software

The Road To Leopard

October 16th, 2007 — 12:06am

As Apple is hurtling towards a Leopard release, we developers are scrambling to make sure our apps work. With the clock ticking down, I am making Hazel 2.1 beta available for testing. It should be Leopard compatible so if you have access to Leopard, I’d love it if you could download it and let me know how well it works.

I’ve also added a couple new features and a bunch of fixes so even if you are using Tiger, this release should have something of interest. For instance, you can now properly format the “Authors” Spotlight field so you don’t get the annoying parentheses and quotes (chalk that up to me stupidly using NSArray’s -description method). In any case, Hazel should be useful for replicating the iTunes folder structure of artist/album/song now.

I’m looking to go final with this next week so no time like the present to try and break things.

Enjoy: Hazel Beta page

Update (Oct. 16, 2007): It’s official. Leopard is shipping on October 26th, available for pre-order now.

Comment » | Downloads, Hazel, Noodlesoft, OS X

Hazel on ScreenCastsOnline

August 27th, 2007 — 12:17pm

Noodlesoft is sponsoring the latest episode of ScreenCastsOnline. Don McAllister does a great job of guiding you through Hazel’s features. Nothing gets the point across like seeing it in action.

You can check it all out here.

Oh, and there’s a discount code in there, if you need any more enticement to watch it.

Comment » | Hazel, Noodlesoft, Software

Post Mortem 2.0

August 7th, 2007 — 4:50pm

Hazel 2 has been out for a few days and I’ve had a chance to sit back and reflect a bit. Of course, things are a bit different this time than when I was releasing 1.0. For one, I have users now. That meant that I had to split my time to do support in addition to development. But that also meant that I had more people giving me feedback and a larger pool of beta testers. Yes, it’s time consuming to process all that but it made for a better product in the end.

There were a couple decisions that weren’t applicable when doing a 1.0 that I had to deal with this time:

1.2 vs 2.0

When planning the next release, I went back and forth on whether it was 1.2 or 2.0. What’s in a version number anyways? Well, making it 1.2 would have made some things easier. It’s generally understood that point releases are free so there would have been less confusion on that point if it were 1.2. On the other hand, there were major chunks that were rewritten. The artwork was redone. I ended up labeling it 2.0 as it does indicate that it has significant improvements and that the product is more mature, which is the case here.

Why a free upgrade?

Several factors played a part in this. There were issues in 1.x that 2.0 addresses and they were the type of thing I wanted every user to have access to. Plus, I do feel grateful to all of you who took a chance with not just a new application. If I could, I’d meet with every one of you and shake your hand but I get the feeling that it would be unfeasible. In any case, I think you’d appreciate the free upgrade more. You don’t know where my hands have been.

• • • 

Overall, the pre-release went pretty smoothly. The one thing that was less than ideal was the timing and length of the prerelease period.

Because of issues with 1.x’s use of launchd, I had to write my own task runner/scheduler. Since some users were being affected by this, I released the alpha earlier so that they could have access to the new fixed version. Also, since it was a critical part of the system, I needed it to be tested for as long as possible. So, in retrospect, the alpha came out a bit earlier with fewer features ready than I would have liked but I felt it was necessary given the circumstances.

As for the length of the prerelease, it did run a bit longer than I wanted. A few factors came into play here including a good bit of contract work I was doing during the Spring and logistics concerning the business (including converting Noodlesoft to an LLC).

What surprised me this time around was the amount of attention my beta received. I had multiple articles in the press at each step of the way which was great. A big thanks to all of you who kept up with the pre-releases and sent in feedback and bug reports. I feel that 2.0 is pretty solid out of the gate as a result.

• • • 

In the end, I’m quite happy with how 2.0 turned out. There were some rough edges that I was finally able to polish and I feel like I’ve filled out the feature set while keeping it all cohesive.

What’s in store for the future? I’m still working that out but most likely, 2.1 will be focused on getting Hazel working properly on Leopard (without breaking it on Tiger, of course). I think the next major improvement won’t be in the product itself, but on the Noodlesoft site. People have been clamoring for some sort of repository of Hazel rules so I need to hunker down and figure out how that should work. As always, your feedback helps to shape the future direction of things so keep it coming.

Comment » | Hazel, Noodlesoft, Software

Hazel 2 out (finally)

August 2nd, 2007 — 11:21am

hazel2.png

After what ended up being a longer pre-release period than I anticipated, Hazel 2.0 final is out. Lots of new, neat stuff. Nifty, too. If you haven’t been keeping up with the betas then check it out. I feel it’s much closer to my vision of the product when I started down this path last year.

It’s a free upgrade for you registered 1.0 users because I love you all. Yes, there, I said it.

When the smoke clears, I’ll do another post-mortem but in the meantime, download it.

1 comment » | Hazel, Noodlesoft, Software

Unofficial Hazel Web Badge

July 20th, 2007 — 6:04pm

Hazel 2 is going to be released soon and our marketing manager thought that we should start a marketing campaign. When this happens, we usually sit down and look into how he escaped from his cell, but this time, we decided to give him a chance.

We here at Noodlesoft like to keep up with the latest currents and trends. With that in mind, we present our first unofficial web badge. We feel that it captures the spirit of today’s vibrant web youth culture.

Get Hazel

Feel free to adorn your web page with the badge. Consider this our trial balloon into the wonderful world of online marketing.

K. Bai!

2 comments » | Hazel, Noodlesoft, Software

Back to top