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"  "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <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"...
      
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/Firefox.app/Contents/MacOS/firefox - 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/Firefox.app/Contents/MacOS/firefox -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/Firefox.app/Contents/MacOS/firefox-bin -P google -no-remote https://mail.google.com/mail https://www.google.com/calendar/render. I packaged this shell script in a bundle as Google.app and gave it the icon borrowed from Google Notifier.app. 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 (e.g. ~/Library/Application Support/Firefox/Profiles/*.google/chrome/userContent.css) with the following contents:

Read More

Automated gmail backup via IMAP

This is how I setup automated gmail backup using IMAP via mbsync. Parts are MacOS X specific.

  • Enable IMAP in your gmail account.
  • Install mbsync, if using MacPorts do: sudo port install isync
  • Create a new directory ~/Backup/gmail
  • Save this certificate as ~/Backup/gmail/gmail.pem. This is the gmail IMAP SSL certificate, retrieved via openssl s_client -connect imap.gmail.com:993 -showcerts

    -----BEGIN CERTIFICATE----- MIIDYzCCAsygAwIBAgIQcdBJTwL0s64EVDDexAG1jTANBgkqhkiG9w0BAQUFADCB zjELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJ Q2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UE CxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhh d3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNl cnZlckB0aGF3dGUuY29tMB4XDTA3MDUxMTE1NTUzMFoXDTA4MDUxMDE1NTUzMFow aDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDU1v dW50YWluIFZpZXcxEzARBgNVBAoTCkdvb2dsZSBJbmMxFzAVBgNVBAMTDmltYXAu Z21haWwuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDp8NJaYAUMfsA4 uW1y5wXh6sE31Uh/s0dLgeTu4NbzA36Ru3bmpB4zxCNUgnNT73OfhhtTitx8BPoB zdY4Tgwc1asVXSw0h2iNoj6/KIiCv4r5FFqWMQxdHZh3n6/VJnNzCPnD62fJy9D8 j9jIfU6NGM91+zgsEexU7JuHB+y2jwIDAQABo4GmMIGjMB0GA1UdJQQWMBQGCCsG AQUFBwMBBggrBgEFBQcDAjBABgNVHR8EOTA3MDWgM6Axhi9odHRwOi8vY3JsLnRo YXd0ZS5jb20vVGhhd3RlUHJlbWl1bVNlcnZlckNBLmNybDAyBggrBgEFBQcBAQQm MCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0ZS5jb20wDAYDVR0TAQH/ BAIwADANBgkqhkiG9w0BAQUFAAOBgQBIuR0Dr4wURb1CjxMVjWA9/lPZl2f2Kr++ naPcrIw+gJMLwU88OCfs7XqOHQ/n9dRnQ+mXcrmJKHVQAh0d038JKOaglVBn6LdX nJovtY8DyeYPXMGHdIwxPj7H583HQRGqkDF1usr29X3JZxcpPi3ICk+lRYoSHBvH /MXIPo3WJA== -----END CERTIFICATE----- 
  • Save this certificate as ~/Backup/gmail/thawte.pem. This is the CA for the gmail certificate, downloaded from http://www.thawte.com/roots/.

    -----BEGIN CERTIFICATE----- MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkEx FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv biBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3RlIFByZW1pdW0gU2Vy dmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZlckB0aGF3dGUuY29t MB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYTAlpB MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsG A1UEChMUVGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRp b24gU2VydmljZXMgRGl2aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNl cnZlciBDQTEoMCYGCSqGSIb3DQEJARYZcHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNv bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2aovXwlue2oFBYo847kkE VdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIhUdib0GfQ ug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMR uHM/qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG 9w0BAQQFAAOBgQAmSCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUI hfzJATj/Tb7yFkJD57taRvvBxhEf8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JM pAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7tUCemDaYj+bvLpgcUQg== -----END CERTIFICATE----- 
  • Save this config file in ~/Backup/gmail/mbsync-config. Replace LOGIN with your gmail username. This sets up a one-way channel from your gmail All Mail store to a local maildir. So the local maildir will be kept in sync with all gmail mail.

    MaildirStore local Path ~/Backup/gmail/maildir/ IMAPStore gmail Host imap.gmail.com User [email protected] UseIMAPS yes CertificateFile ~/Backup/gmail/gmail.pem CertificateFile ~/Backup/gmail/thawte.pem Channel backup Master ":gmail:[Gmail]/All Mail" Slave :local:gmail Create Slave Expunge Slave Sync...
          
    Read More