Monthly Archive for October, 2006

How Much Is Too Much

I like os x because its UI is pretty & functional at the same time. OS X does have it’s fancy visual effects, but in most cases the effects are done well enough that they don’t get in the way of your work.

Expose is a great example of this. The zoom effect always take the same amount of time no-matter how many windows you have open, and its done quick enough that it doesn’t get in the way. Sheets are an example of when Apple (in my opinion) slowed things down for the sake of coolness. Don’t get me wrong, I love sheets, I think they are an awesome UI element. Apple just made the default fold out speed way too slow! The coolness of watching the save dialog sheet fold out of it’s parent window for two seconds looses it’s coolness if you save 100 files a day. To make it usable on a daily basis the default sheet fold out speed should be drastically increased.

So what prompted me to write this article, everything I’ve just said has already been discussed all over the net. It’s this new disc burning application, Disco and its smoke. I have to admit, my first reaction when I saw the screencast was just like everyone else, “Wow. That is freakin’ amazing.” But after thinking about it for a while, who wants smoke spewing all over their screen and sucking up CPU cycles; isn’t there enough happening on our screens already and enough effects sucking up CPU & GPU resources? I have to agree with Adam that the desktop is starting to look more and more like a flash animation. This isn’t necessarily a bad thing, as long as developers (Apple in particular) keep our interfaces fast, good-looking, and functional; understanding how much animation and flashiness is too much, and not crossing the line of counter-productive flashiness.

Gear Icon & Add Menu Icon

The last set (at least for now) of my common icons for Cocoa development are the gear/action menu icon, and the add menu icon.
Add and Action Menu Icons For Cocoa Applications
You can download the tiff images and Pixen source files here. Feel free to use these icons in any of your projects.

These are all the icons I have to release to the community right now. I have a some custom UI classes that I’ll be releasing soon that you can use these icons in.

Apple’s Javascript Debugger: Drosera

Apple's Javascript Debugger in ActionI was doing a little web-work, and came across a bug in my javascript code. I spent a couple minutes trying to find it using the javascript console in Safari, but quickly gave up and decided to give Apple’s Javascript debugger (Drosera) a try. I tried it a couple months ago but couldn’t get it to work, but I decided to download the latest nightly build and see if it had improved. It did.

Drosera attached to the webkit browser fine, and inspected any page that I looked at in the webkit browser. I visited the page that I was having problems with and bang, the webkit browser froze (the page seems to indefinitely load until you continue the JS execution), and the line of code that was causing problems was highlighted (as shown in the screenshot to the right) showing me the exact position of my bug in the JS code. You can view variables in the runtime, set breakpoints, pause execution; most normal debugging operations.

There is also a console where you can (when the runtime is paused) execute arbitrary JS code and see the results.

The biggest annoyance I had with Javascript is that there was no way to inspect the runtime and easily find the line of code where your bug was hiding; Drosera fills this gaping hole in Javascript development wonderfully!

There is one gripe I have with it though, as far as I can tell there is no way to get the actual Javascript error from inside Drosera, you have to go back to the webkit build and look as the JS console. I hope they integrate the JS console into Drosera in the final release.

Back From C4

Well, yesterday I came from C4. C4 was the first developers conference I have attended, and it was well worth going. I met lots of cool people: some who already have some apps out, some who havent released anything – yet.

The Funny

There is, at least for me, two pretty funny & memorable moments of C4.

Before Brian W. Fitzpatrick gave his talk on the future of subversion he said “All information in this talk is under the NDA.” I immediately got really excited, I’ve never heard NDA information before, and this was about subversion, software I actually use! He follows that up with “Yeah, it is ‘Not Decided Apon’.” That gave me a good laugh :)

Aaron Hillegass was the guest speaker at C4. If you know who he is, you know he is the guy to learn cocoa from. He’s made the super popular Cocoa Programming for Mac OS X and runs the Big Nerd Ranch camps (you pay a couple thousand dollars to learn Cocoa). So throughout his talk he was shamelessly promoting his Big Nerd Ranch camps and encouraging people to sign up. At one point he said something to the effect of “If you cocoa you should know…”, somone from the audience sarcastically said “Where could we learn cocoa?” I really hope someone got that on tape, it was hilarious.

The Interesting

The most interesting talk was John Gruber’s. I’m not going to summarize what has already been summarized but the basic idea that I extracted from the talk was that ‘The HIG is dead. Just make cool apps that people can figure out how to use and look cool at the same time’. Perfect examples of this are AppZapper, Quicksilver, Shiira, Mail.app, NewsFire, etc, etc.

The Cool

The coolest part about C4 was seeing people who I’ve only read about, and meeting people whose apps I seen/used/read about. Of course all the popular mac devs like Gus Mueller and Brent Simmons were there, but there was also a bunch of less popular devs who attended. I was fortunate enough to meet up with Daniel Jalkut of Red Sweater Software (creator of FlexTime), Jon Crosby of Kaboomerang (maker of Actiontastic), and Geoff Pado of Elgebar Studios (creator of Pencils Down) as well as a bunch of other people whose web-site I can’t seem to find.

Overall it was an awesome time, I’m definitely attending next year if it’s put on again.

Plus & Minus Icons

Continuing the trend of releasing common icons used in application development, I present you with the ubiquitous plus and minus (or add & remove as they are known in some parts) icons:
Add & Remove Icons For Cocoa

You can download the tiff images and Pixen source files here. Feel free to use these icons in any of your projects.

Adding Methods to Core Flash Classes

Every once in a while I get an email that looks like this:

I tried using your Object, Function, and String method additions. When I tried to compile I get a bunch of error messages! What do I do?!

Yup, this is because the method definitions are not in the Class definition files that flash looks at when compiling. The core class definitions that Flash looks at are located here:

~/Library/Application Support/Macromedia/Flash MX 2004/en/Configuration/Classes

That “Classes” folder will contain all the method definitions for all core Flash classes (MovieClip, Object, Button, Color, etc).

To make my method additions compile correctly you’ll have to edit the corresponding Class definition files and add the method definitions in. So, for instance, if you wanted to use the object.as additions you would add these method definitions to your Object.as file in the “Classes” directory referenced above:

function initBroadcaster();
function addEventListener();
function removeEventListener();
function dispatchEvent();
function centerXY(x:Number, y:Number):Void;
function centerY(y:Number):Void;
function centerX(x:Number):Void;
function isInstanceOf();
function isMemberOf();

If you are using Flash 8, they will be spread out in two different directories “FP7″ & “FP8″ located in this directory:

~/Library/Application Support/Macromedia/Flash 8/en/Configuration/Classes

If you use mtasc you’ll have to edit the class definitions located in the “std” directory.