My iPhone app, PhotoCloth, is finally available in the app store. PhotoCloth can turn any photo into a realistic 3D interactive cloth simulation. See demo videos and appstore link here.

Read More

Fixed Width Fonts in Gmail

I like to compose and read email with a fixed width font. Gmail now supports reading a message with a fixed width font using the Show in fixed width font option - but you have to do that on each message as you read it.

If you use Firefox, you can create a user stylesheet that is domain specific to force all non-HTML messages and the message composition textarea to display in fixed width.

The user stylesheet should contain:

@-moz-document domain( {
    /* GMail messages and textarea should use fixed-width font */
    textarea.dV, {
        font-family: MonoSpace !important;
        font-size: 9pt !important;

Place the stylesheet (on MacOS) under your Firefox profile directory e.g. ~/Library/Application Support/Firefox/Profiles/XXXXXXXX.default/chrome/userContent.css

Read More

Virtualizing Mac OS X Leopard Client

VMWare Fusion 2.0 beta2 supports virtualizing Mac OS X Server as a guest OS. If you try to install a Leopard Client guest, you get an error:

The guest operating system is not Mac OS X Server.

However, if you create an ISO/CDR image from your Leopard install DVD, mount it then do

touch "/Volumes/Mac OS X Install DVD/System/Library/CoreServices/ServerVersion.plist" 

then unmount it, you can now use that image to install Leopard Client into VMWare with no complaints. After you install, reboot VMWare from the install DVD ISO again, run Terminal and

touch "/Volumes/Macintosh HD/System/Library/CoreServices/ServerVersion.plist" 

then reboot from the HD. This probably violates your license agreement so don’t do it, I certainly wouldn’t.

Update: You can automate the deletion and creation of the ServerVersion.plist file using a LaunchDaemon. Put the following xml in a new file /Library/LaunchDaemons/com.rectalogic.vmware.plist:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" ""> <plist version="1.0"> <dict> <key>Label</key> <string>com.rectalogic.vmware</string> <key>ProgramArguments</key> <array> <string>/bin/bash</string> <string>-c</string> <string>/bin/rm -f /System/Library/CoreServices/ServerVersion.plist; trap "/usr/bin/touch /System/Library/CoreServices/ServerVersion.plist; exit" SIGINT SIGTERM SIGHUP; sleep 999999 & wait $!</string> </array> <key>KeepAlive</key> <true/> <key>RunAtLoad</key> <true/> </dict> </plist> 


Read More

Elevator Pitch

I was riding down to lunch in a relatively crowded elevator at work and two guys were in opposite corners carrying on a conversation about work over everyones heads. Then, this happened:

Guy #1:

You want go go out tomorrow night?

Guy #2:

Sure, I told you I’m single again right?

Guy #1, as if embarrassed by this personal detail in a public elevator:

Uhm, let’s talk about this over lunch.

and then Guy #1 continues:

By the way, I’m probably going to go for a ‘rub and tug’ after lunch, this Asian girl I go to is really into fiddling with my asshole.

Absolutely beautiful.

Read More

Spam I Have Enjoyed

Spam subjects I have enjoyed:

Subject: wiener wiener chicken digger Subject: Surprise her with the nicest bag in town Subject: experience queen-sized dick She likes her kitty stretched and do you have the capability to do it?

Some fake spam headlines are good too:

Subject: Clinton found hanged in bedroom Subject: Afghan bombing kills President Bush Subject: Angelina Jolie dies in miscarriage Subject: Michael Jackson gives up being pedophile

Read More

Separation of Web and App

I need to run Gmail and Google Calendar in a separate browser instance from my working browser so they are isolated from crashes/hangs. I tried the Firefox 3 Prism plugin along with gmail.webapp and gcalendar.webapp but wasn’t happy with this - mainly because I don’t want a separate instance for gmail and calendar. I want my browser and one other instance hosting both gmail and calendar.

You can run multiple Firefox instances by directly launching /Applications/ - but risk corrupting shared profile database files.

So I ended up creating a simple profile just for these webapps - launching the Profile Manager with /Applications/ -P -no-remote and creating a new profile named google.

Now I can launch gmail and calendar using this new profile in a separate Firefox instance like this: /Applications/ -P google -no-remote I packaged this shell script in a bundle as and gave it the icon borrowed from Google You can download it here.

Also, if you prefer monospace fonts when viewing and composing plain text emails in Gmail, create a user CSS file in the google profile you created above...

Read More