Shift - A Bowtie Theme

I’m proud to announce the release of Shift, a special Bowtie theme I worked on for the big Bowtie 1.0 contest. While it may look like just a normal theme at first glance, change the song and watch the smooth cover art animation.



Posted 02/23/10 at 9:03 PM

Hackintoshing the ASUS EEE PC 900HA

I recently purchased an Asus EEE PC 900HA from Amazon, and wanted to hackintosh it for a project I’m working on. (More info on that later) After scouring the web, I couldn’t find a guide specifically for the 900HA, so I started playing with different ones to try to get it to work. This is the result of that work.

Things you’ll need:

  1. Asus EEE PC 900HA.
  2. Retail copy of Mac OS X 10.6 Snow Leopard (NOT an OEM copy that comes with a new Mac, as that would only install on the Mac it came with)
  3. An 8 GB or bigger USB Flash Drive / External Hard Drive
  4. A Mac with a working optical drive, which is used to prepare the flash drive
  5. Netbook BootMaker (Mac Only application)
  6. These files

Alright, let’s get this thing started. We’ll start off setting this up like we’re installing OS X on a Dell Mini 10v, with instructions from Gizmodo.

1. Insert your flash drive and OS X Retail install disk into your computer

2. Open Disk Utility (searching in Spotlight is the easiest way to find this)

3. Select your flash drive from the list on the left. Make sure to select the drive itself, not any partitions you may have written to it before.

4. In the right panel, select the “Partition” screen.

5. From the dropdown menu, select “1 Partition,” then click “Options” below the partition map.

6. Select “Master Boot Record.” This will ensure that your Mini 10v can boot from your flash drive. Select a name for your partition—doesn’t really matter what—and apply your changes. Keep in mind this will delete anything you have on your flash drive right now, so back it up if need be.

7. Once this is done, move from the “Partition” screen to the “Restore” screen in Disk Utility.

8. For your Restore Source, select (by dragging) the OS X install disk from the left panel. Make sure this is the item called something to the effect of “Mac OS Install DVD,” not “Optiarc DVD” or some other hardware title. For the destination, drag your newly-prepared partition over. Click restore.

This will take at least an hour, so go have sandwich or something. Or even better, skip ahead make sure your Mini 10v is ready for the install, as outlined in the next section.

Ok, once that slog is done, it’s time to let Netbook BootMaker do its magic. And let me be clear: it is magic. What this utility will do is install a special bootloader on your flash drive, which allows your netbook to begin an OS X install. It also throws in a few driver tweaks, to make sure your 10v, y’know, work.

9. Running BootMaker is easy—just open the app, select your OS X partition on your newly-minted flash drive, and tell it to GO GO GO.

Aaaaand that’s it! You’re ready to start hackintoshing.

10. Before you plug in your flash drive to start the installation, unzip the files I’ve provided for you and copy the folder onto the drive. We’ll need these after installation to fix some things.

11. Now go ahead a plug in your flash drive to your EEE PC and boot it, hitting the “ESC” key as you do so, until a menu pops up, asking you what you want to boot into. The one you want should be prefixed by “USB:”, so select that one and hit enter.

12. Now we’re booting into your special installer. You’ll see the Apple logo come up, as well as a spinning gear. Give it time, it’s thinking and setting up the installation.

13. The first screen in the installation is going to be the language selection screen. Select your language and move on.

14. Instead of proceeding with the installation right away, go up to the “Utilities” menu item, and select “Disk Utility.” We need to setup your hard drive before we can start installing on it.

15. Once Disk Utility loads, select your internal hard drive (should be called “160.04 GB ST…” or something along those lines.) Click on the “Partition” tab. Change the “Volume Scheme” so that it is set to “1 Partition.” Make sure the “Format” is “Mac OS Extended (Journaled).” Finally, click “Options…” and make sure that the option that has “GUID” in it is selected. Now you can hit “Apply,” let it do its thing, and the quit out of the app and back to the installer.

16. Follow the installer along, until you get to the pane where you see a “Customize” button in the bottom left corner. Click that, and deselect things you won’t need, primarily “X11” and “Additional Languages.” Save those changes and continue with the install.

17. Now that we’re actually installing (you’ll know because of the progress bar at the bottom, and the word “Installing” across the top), go to “Window” and open the “Installer Log.” Change the drop down from only error messages to all logged information (the last option). We’re watching for when you get a certain error message:

./postintall: cp: /Volumes/ramdisk/dsdt/latest_dsdl.dsl: No such file or directory

18. Once you see that looping through the logs, hold the power button to shut down your computer. Now boot it up, again pressing “ESC” to bring up the boot menu. Boot back into your “USB” drive. Once the installer pops up, select your language and move on.

19. Go back to “Utilities” in the menubar. Now we launch “Netbook Installer.” You’ll get a warning message that it isn’t officially supported. Click “Continue” and move on.

20. Select your internal hard drive from the drop down (it goes by actual drive names). Several new items should be checked. All we need checked are “Install Chameleon” and “Install General Extensions.” Deselect the rest, and then click “Install.” Let it do its thing, and then shut down the computer again.

21. Now you can go ahead and boot up again, this time booting into your internal hard drive (it’s prefixed by “HDD” on the boot menu). Give it time to boot (it’ll be faster after this first boot).

22. Hey, look at that! It’s the welcome video. However, there’s no sound. We’ll work on fixing that. Go through setup, generally choosing the default options that pop up. Take note that filling in your personal information is optional if you don’t want to do that.

23. Once your desktop comes up, open up your drive, and go to the folder of files that I had you download. Go ahead and run the “AboutThisMac.pkg” package. Install the “VoodooHDA.prefPane”. (Both actions done by double clicking on them.) Copy the “VoodooHDA.kext” to “/Extra/Extensions/”, and then run the Update Extra app in /Extra/. After that’s completed restart.

24. That’s it! If you now go to “About This Mac,” it will display the correct system info. Sound will now be working (except for the keyboard shortcuts, even though the Sleep and Brightness ones work). Sadly, Wifi is not working yet, and I’m not quite sure how to get it working (every method I’ve tried doesn’t work. If you get it to work, let me know.)

Posted 01/21/10 at 7:43 PM

Version Control Updating Bash Script

A short while ago, I created a script to go through all my local copies of open source software that I had downloaded from GitHub, Google Code, and other places. The reason behind it being that going through and manually updating each one was a pain in the neck. After looking at Bash scripting, I came up with the following solution. Feel free to use it yourself.

function usage() {
	echo " Usage: $0 -h."
	echo " Updates Git, SVN, or Mercurial repositories in a directory."

while getopts h o

	case $o in
	h) usage && exit 1;;


for i in $( ls ); do
	cd $i
	if [ -e .git ]
		echo -e "\033[1mUpdating $i:\033[0m"
		git pull
	if [ -e .svn ]
		echo -e "\033[1mUpdating $i:\033[0m"
		svn update
	if [ -e .hg ]
		echo -e "\033[1mUpdating $i:\033[0m"
		hg pull -u
	cd ..
Posted 01/21/10 at 6:24 PM

Just finished up StoreKitUI, an iPhone library to provide a simple front-end user interface to StoreKit. StoreKitUI is open source and available on GitHub.

Posted 01/03/10 at 11:12 PM

Coding Tips #1: UIBarButtonItem Subclasses, Quick Documentation Access

  • Tip: Do not use -init as class initializer when subclassing UIBarButtonItem because it WILL cause an infinite loop. This one took a while for me to debug.

    I had setup a custom UIButton to serve as the custom view for my UIBarButtonItem subclass, and was calling [super initWithCustomView:]. Turns out that initWithCustomView will call [self init], which I had overwritten, so it would call [super initWithCustomView:], and just start an infinite loop.

    Point-in-case, do NOT use -init as your class initializer when you subclass UIBarButtonItem. Feel free, however, to create your own class convenience method that does all this work for you and calls -initWithCustomView:

  • Xcode Pro-Tip: Option-double-clicking on a method will bring up a documentation HUD if documentation is available for that method. It’ll give you a brief description of what the method does, parameters it accepts, sample code related to it, and more.
    Posted 01/02/10 at 12:22 PM

    Sweet website detailing a bunch of iPhone Apps’ URL schemes.

    Posted 12/31/09 at 1:26 PM

    Great article about creating great iPhone user interfaces. I’ve bookmarked it for future reference.

    Posted 12/31/09 at 11:49 AM

    After looking for this on Google, I finally found it: A way to add a “DONE” button to the iPhone Number Pad so that a user can “dismiss” the keyboard easily, just like how they can dismiss a normal text keyboard. Very handy. If I write my own iPhone framework, this is going in there!

    Posted 12/23/09 at 6:48 PM

    Very pleased to announce IMP Live is now available on the App Store, free for download. Go check it out!

    Posted 11/28/09 at 8:40 PM

    NaNoWriMo - Tools to Help You and Not to Harm You

    If any of you guys pay any attention to my Twitter account (@jasoncmartin, for those that don’t), you’ll have seen a few tweets about my participation in NaNoWriMo this year, or, as it is also know as, National Novel Writing Month. The whole purpose is to write a 50,000 word novel in the month of November.

    A couple of great tools I’ve found in doing this is a a writing app called WriteRoom - a great, simple app that provides a distraction free full screen environment to work in. Once I’m done writing in WriteRoom, I’ll pull it into Mariner Write, a more advanced word processor to style it up and give it the look I need.

    A few online tools that have been really helpful are this great random name generator, which has given me many good names for my fantasy novel I’m writing. One other online tool is a Google Docs spread sheet to help keep track of my current status.

    That does it for now for tools I’m using. I’ll be sure to update this in the future to cover any other ones I’ll be using. Enjoy, and good luck!

    Posted 11/06/09 at 11:16 PM