Category Archives: Apple

Hibernating in OSX Lion

In OSX Lion (might also be the case for older versions to), there is no direct way to hibernate a laptop except running out of battery power. The only available option is sleep, which will wake from memory; so it keeps draining the battery. It is possible to change this default behavior with the utility pmset. From the man page:

So by default, the system uses hibernatemode=3. All we need to do it change it to 25 and the sleep function will hibernate the computer:

Don’t forget to change it back to 3 to get the default behavior back.

Restore sparsebundle extended attributes after rsync

If you rsync a sparse bundle to another Mac without the -E flag (or if you copy it to a non Mac system), you will loose the ability to double click on it in the Finder to mount it. This is because the extended attributes telling the Finder the folder is actually a bundle are lost in the transfer.

The following piece of code I found here fixed the problem for me. Simply compile and run the code giving the path to the bundle in parameter and it will restore the attributes.

Make OSX’s top behave like Linux’s top

OSX’s top program doesn’t quite behave like its Linux counterpart out of the box. For me, the two biggest problems are that processes aren’t sorted by CPU usage and the top program itself uses 10% of the CPU because it calculates all sorts of statistics about memory and shared library usage that I personally don’t care about.

There are a series of flags that you can pass to OSX’s top to have its behavior be closer to Linux’s top. I have created the following alias to that effect :

The display is updated every second, processes sorted by CPU usage and no unnecessary statistics are calculated. Instead of 10%, top uses only 2% of the CPU.

SQLite3, php5 and MAMP

The version of php5 bundled with MAMP doesn’t come with sqlite3 support built-in out of the box. Here’s how to add it, considering the following setup :

  • SQLite3 installed through MacPorts
  • php5 used through MAMP

I used the php-sqlite3 extension. When you run phpize, make sure you are actually using the one from MAMP by calling it with its full path  /Applications/MAMP/bin/php5/bin/phpize.

I then complied the extension with the following flags (both paths are the defaults for macports and MAMP) :

The make install didn’t copy the librarie to the right php folder :

Make sure that folder is the right one. You can find your dynamic extensions folder in your php.ini file.

Shrinking sparse bundle images

A sparse bundle image in Mac OS X will grow as you add files to it but never shrink if you remove files inside of it. To reclaim the disk space, you must run the following command :

If your account is protected with FileVault, this is done automatically for you when you logout of your account.

Useful free Mac apps

I’m a relatively new Mac user so I’m keeping a list of some useful free apps that I’m using on my Mac. It’s a work in progress…

  • Instant Messaging : Adium
  • PDF Annotation : Skim
  • Notes taking : Freemind
  • Linux package manager : Macports (lots of my friends use fink)
  • EquationService : Create equations from latex that can be used in Keynote
  • MacFUSE : MacFUSE is software that allows you to write arbitrary file systems as user-space programs
  • Creative MP3 Player support : XNJB
  • OSX Ext2 Filesystem
  • Switch : Audio file converter
  • Cyberduck : SFTP/FTP
  • Espérance DV : Create a ramdisk

Compile against libraries installed with MacPorts

MacPorts installs packages in a non unix-standard location. This can cause problems when trying to compile other software against these packages because they aren’t found by the configure script.

I experienced that problem when trying to compile SDL_image, which depends on libraries such as libpng. I had to configure with the following flags :

which indicates in which folders the libraries installed with MacPorts were installed.