How to enable X-Ray folder previews in Mac OS Quick Look

In Terminal copy/paste this:


defaults write QLEnableXRayFolders 1

Then relaunch the Finder by Pressing Cmd+Alt+Esc.

Press space on a selected folder and admire :)

Update: it seems this no longer works in Moutain Lion.

Why echo is slow in PHP and how to make it really fast

You may have noticed that PHP scripts that echo a lot of content appear to be running with poor performance…

Well, the operative word here is “appear". It is a common misconception that “echo is the slowest PHP command"! :p

The problem is actually just a bandwidth issue! When you try to pump a lot of content though the Internet, at some point you experience “load time"… and at some point PHP actually experiences “send time"!

You may measure the execution time between the begining and the end of your script, and, on a slow connection, it may show you that it took 500 ms to execute. You may even narrow it down to a single echo statement that takes 480 ms to execute. But that time actually includes wait time where PHP cannot send any more data back to apache!

There is a common trick that consists of starting output befering before echoing, like this:


echo $a_lot_of_content;

This will allow PHP to move on and appear to terminate fast. But the truth is, all the content is now in PHP’s output buffer, and although your script is done, PHP is still working in the background to send all that data to your web server (apache for instance).

Full story »

How to log request processing times in Apache

If you have an apache (2) web server, you probably have an access.log file showing you all kinds of data using the “combined” log format. Let’s see how to include processing time into that log file.

By default a line in the combined log looks like this:

[codeblock lang="” line="1″] - - [03/Dec/2009:03:20:47 +0100] “GET /info-tech/ HTTP/1.1″ 200 46482 “” “Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv: Gecko/20091102 Firefox/3.5.5″[/codeblock]

Notice the 2 dashes - - just after the IP. The first one stands for “I could not identify the user using ident” and the second one for “no user authentication was performed".

Now, let’s face it: you will never identify anyone using ident. Your apache conf probably even doesn’t try. That field is a left over from ancient times. So let’s replace that first dash with something useful, i-e: the processing time of the request! Note that by doing this we keep the global structure of the file identical and any log processing tool you might be using should not be affected.

Full story »

How to install the APC PHP Cache on Debian (Lenny or Squeeze)

APC PHP Cache Control Panel
The APC PHP Cache Control Panel

The APC cache can significantly improve your PHP script performance, just by installing it, which basically takes 5 minutes! (Plus, it’s actually supported by the core PHP developers and will probably be integrated into PHP6…)

Here’s what I did on my Debian Lenny box…

First you may want to have a reference benchmark to see if it actually improves:


ab -c5 -n100

Now install the APC package:


aptitude install php-apc

Now, restart apache:


/etc/init.d/apache2 restart

Now, you can run your benchmark again and see the difference! Tada! :)

Full story »

Make your mouse faster on Mac OS X

Make your mouse faster on Mac OS X

There’s 2 problems to mouse speed:

The maximum speed can be set through the System preferences panel, but even when the slider is all the way to the right, the speed may be too slow… especially if you line up 3 monitors side by side.

You can get faster speeds through the Applications > Utilities > Terminal. To see the current setting, type in this:

[codespan]defaults read -g[/codespan]

To make the mouse faster, set a different value, for example:

[codespan]defaults write -g 6[/codespan]