I’m not going to write a long entry about it, but I am the proud owner of a brand new Wii. Suffice to say, it’s very fun, especially the Tennis game in Wii Sports.

I ended up camping out at Best Buy starting at 6PM on saturday. If I wanted I probably could have shown up around 4 AM or so and still gotten a unit, but I figured if I was going to camp, I’d do it right. I hung out with a group of guys from WPI (guys I hadn’t met before), and it was a lot of fun. Unfortunately, it was also freezing cold. From about 2AM to 5AM everybody was huddled under blankets trying to stay warm. Some people actually managed to sleep, but I didn’t. Still, I think it was worth it.

Comments 3 Comments »

(This post was adapted from an email I sent to Mike Solomon).

Objective-C has a method caching mechanism that optimizes for the case where a small number of methods are called repeatedly on one (or more) objects of a given class. This happens very often; for example, if you iterate over an array to gather the results of performing an operation on each element, you’re going to be calling the same method on a bunch of instances of the same class. And in fact the -[NSEnumerator nextObject] method itself will also be cached.

The fact that method caching exists is common knowledge. However, what isn’t generally known is how that caching is implemented, and what it means for you if you want to hack around on the internals of a class.

Read the rest of this entry »

Comments Comments Off on Objective-C caching and Method Swizzling

Note: Mac OS X 10.4.9 seems to fix the bug described here.

pmTool, the process run by Activity Monitor to actually collect stats, appears to leak memory. If I leave Activity Monitor running for a good period of time, when I check up on it pmTool is often using over 100MiB of Real Memory.

I just checked my laptop, pmTool was using over 100MiB of Real Memory. Right now on my desktop it’s using 41MiB of Real Memory, but I don’t remember how long it’s been running for. I also believe a good deal of memory is currently paged out.

After checking up on it, pmTool on my desktop has a Private Memory size of 91MiB.

Read the rest of this entry »

Comments 30 Comments »

Ironcoder 0x2 wraps up in a few hours, and this time the API was CoreGraphics. As soon as I heard this, I knew I wanted to do something with window mesh deformation. What’s that? Why, it’s the private CoreGraphics call you can use to do the effects such as the Genie minimize effect, though I believe it’s new in 10.3. It’s a function called CGSSetWindowWarp(), and it’s extremely poorly documented.

First, some history. CoreGraphics has a bunch of private calls that range from applying transitions to windows (such as the cube effect seen in Apple Remote Desktop and Quicksilver) to managing virtual desktops to setting alpha levels on groups of windows system-wide. As far as I am able to ascertain, Richard Wareham did the bulk of the work to expose these calls, as part of development on his Desktop Manager program, the most well-known virtual desktop solution for OS X. He released a file named CGSPrivate.h that contained these basic calls, so others could use it. Since then, more private calls have been discovered, and among them were CGSSetWindowWarp().

Read the rest of this entry »

Comments Comments Off on CGSSetWindowWarp explained

Typo 4.0 is out! Many thanks to Scott Laird for his wonderful work on Akismet support and the new gem installer.

Comments Comments Off on Typo 4.0 is out


I just finished watching Constantine, and I must say I'm extremely surprised. It seems Keanu Reeves has finally learned how to act! Well, more or less.

I think Gabriel was my favorite character in that movie.

Comments Comments Off on Constantine

Earlier today Yahoo! finally released Yahoo! Messenger for OS X 3.0 beta 1, with an incredibly positive reaction from the general public. This is the app that I’ve spent the last 8 months working on, and I’m really proud to have finally released our first public beta. Even if you don’t use the old client, you should check it out. It’s a 100% rewrite in Cocoa, with a brand new spiffy UI, Growl support, avatar support, and more.

Comments 19 Comments »

Recently I purchased Ninja Gaiden Black, on the advice of a friend. I had heard of this game before, described as ridiculously hard, but also supposed to be pretty fun. Well, what I had heard was wrong. It’s not ridiculously hard, it’s impossibly hard (and the fact that it’s Ninja Gaiden Black and not plain old Ninja Gaiden doesn’t help). And it’s not pretty fun, it’s ridiculously fun. I played it for about an hour after I bought it, but when the boss of the second level (the first being training) kept whipping my butt with incredible ease I put it down. Two days ago my friend started playing it, and yesterday he finally managed to beat the boss (after spending a lot of time trying). So, knowing it’s actually possible, I picked it back up again today and not only beat the boss, but spent probably about 4 or 5 more hours playing it and beating the next 3 levels. I only put it down because my roommate wanted to watch TV.

Not only is that game a lot of fun, it’s also a really visually appealing game (surprisingly beautiful for an Xbox game - I can only wonder at how it would look if it took advantage of the Xbox 360). All the moves look great, all the attacks have a lot of style and flair, and Ryu (the main character) is an incredible badass.

Usually when games are really hard and I can’t seem to progress past a certain point, I get discouraged. But ever since my success with that first boss, the seeming impasses in this game only drive me to try harder. There are points in this game where you have to do the same segment of the level over and over, and over, and over, ad infinitum. Again, such repetition would normally discourage me, but instead I use it as the chance to practice and hone my fighting skills until I can breeze past the previously-impossible segments with nary a scratch.

If you have never tried Ninja Gaiden, and you have a chance to (say, you or a friend own an Xbox), you owe it to yourself to purchase Ninja Gaiden Black and give it a try.

Comments Comments Off on Late to the Ninja Gaiden party

eddienull on #macdev posted a great link to a video of George Bush singing Sunday Bloody Sunday. I thought it was pretty great.

Comments Comments Off on Sunday Bloody Sunday by George Bush

Chris Liscio just released the next major version of his application, FuzzMeasure Pro 2.0. I think congratulations for all his hard work are in order.

Comments Comments Off on FuzzMeasure Pro 2.0