Skip to content

Don’t Forget To Flush…

No, not the toilet, your file streams. I was recently working on a project that involved creating a child process and reading its stdout to update the user inteface. Everything was working great until I sent it off to some testers who reporting that it ‘wasn’t working’ – the interface wasn’t updating correctly. I first thought it was a problem with the shell command itself, maybe it wasn’t performing the operation correctly and thus wasn’t sending the correct message through stdout but as far as I could tell everything was working perfectly. After about 3 hours of banging my head against the wall trying random things I finally thought to flush the stdout after sending my status message. It fixed it!..

Continue Reading

XASH 1.4

Following the XTrace 1.1 update is XASH 1.4. This is a smaller release, but still comes with a good number of improvements: Search speed improvements Hitting return with the help tree in focus will open the currently selected page in the help tree Hitting return in the search field will cause the top most search item to open The book filter is now ‘sticky’ (remembers which book you last filtered by) Compiled & tested as a universal binary Actionscript 3 Support Alot of people have emailed me asking about support for Actionscript 3. The fact is, I dont use Actionscript 3 yet (don’t do nearly as much Flash work as I did), so I have no desire to add support for Actionscript 3 documentation…

Continue Reading

XTrace 1.1

At last XTrace 1.1 is out the door! This has been a long time coming, and has alot of changes & new features: CMD+Shift+C now clears the log window XTrace now automatically starts the trace server Added the Sparkle (auto updating) framework Added the ability to disable wrapping in the log window Added the option for window auto-close (log window will close when the SWF it is connected to closes) New icon thanks to Ale! Log message coloring/formatting thanks to Daniel Giribet Compiled & tested as a universal binary I’ve recorded a quick tutorial on how XTrace works. If you’re new to XTrace, or just want a quick refresher I encourage you to take a look. If you would like to get involved with development, please send me an email!..

Continue Reading

mach_override on Intel Macs

I was disappointed last month when after a hour or two of hacking I couldn’t get mach_override (evil, I know) to work on my new MacBook Pro even though it had been ported to intel macs. I added myself to the procmod group and tried everything that google could come up with, but I could only get it to succesfully override local functions, it wouldn’t override any library/system functions no-matter what i did. Today I’ve found the solution on the ExtendAMac mailing list hosted on sourceforge: this simple post contains a small patch that seems to fix all the issues I’ve been having…

Continue Reading

NSSound+SoundList

It confounds me as to why Apple will provide an easy way to get a reference a standard system sound (via -soundNamed:) but doesn’t provide any easy way to get a list of available system sounds. Well, as you might of guessed, I’ve created a NSSound category that adds this functionality. The code is adapted from this cocoa-dev post. You can download the source files (BSD license) here. On a side note I’ve updated the source code page. The underlying code is now alot cleaner (and renders correctly on IE!) and it uses some of those fancy AJAX transitions.

Continue Reading

ManOpen Universal Binary

ManOpen is an awesome man page viewer that i use quite alot. Unfortunatly the author didn’t have a UB version of it availible. Since I have a MacBook Pro with a little bit of work I was able to convert the project over to using native XCode targets and compile a UB of ManOpen. I emailed the author about it a couple weeks ago and he hasn’t posted anything on the products site so I figured I’d throw the UB application & source code on my site for other people to download until he gets a chance to update his site. Note: I didn’t change any of the source code, just the project structure. ManOpen UB Application ManOpen UB Source

Continue Reading

Add To Login/Startup Items Functionality

Such a simple piece of functionality, you would assume it would be trivial to implement. As you might have guessed – it’s not. There has been a few hack-ishy ways outlined here but none are complete and easy to integrate into your app. I’ve created MABLoginItems, an easy way to add the ‘add to startup items’ functionality into your application. With one line of code you can add your application to the users login items (you can also remove from login items, and check if the application already exists in the login items). MABLoginItems is released under a BSD license, you can download it here.

Continue Reading