Comprehensive WordPress Multisite Migrations

Warning: This hasn’t been updated since 2011. It should still be somewhat useful, but you’ll likely need to do additional research and testing on changes since then. Migrating multiple standalone installations of WordPress into Multisite can be relatively easy if you don’t need it to be perfect. The Codex has a basic guide and Stephanie […]

Continue reading...

Installing Additional Software on Endian Firewall

Endian doesn’t ship with gcc, apt or yum, so it can be kind of confusing at first if you’re trying to figure out how to install some extra packages. It comes with Smart Package Manager, which you can use to install CentOS binary RPMs from http://mirror.centos.org/centos/4/os/i386/CentOS/RPMS/ (CentOS 4) or http://mirror.centos.org/centos/5/os/i386/CentOS/ (CentOS 5). Try the version 4 first. […]

Continue reading...

Conflict Between Comodo Firewall and Cisco VPN Client

There’s a conflict between Comodo Firewall and the built-in firewall in Cisco’s VPN client which can cause blue screens. You’ll see a DRIVER_IRQ_NOT_LESS_OR_EQUAL error caused by inspect.sys or vsdatant.sys. One way to work around it is to install the VPN client without the built-in firewall: msiexec.exe /i vpnclient_setup.msi DONTINSTALLFIREWALL=1 The other way is to remove vsdata.dll, vsinit.dll and vsdatant.sys […]

Continue reading...

Sub-pixel letter-spacing in CSS

There’s a thread on the Sitepoint forums about the smallest amount of letter-spacing you can use. Most of the responses are useless, annoying and wrong, but #36 finally gives a good answer. Most browsers only support integer pixel values for letter-spacing. This is a problem because, when it comes to letter-spacing, there’s a big difference between […]

Continue reading...

Cross-Domain AJAX Requests

Browsers prevent standard AJAX calls across domains for security reasons, but you can make JSONP calls instead. If you’re using jQuery you just need to add ‘callback=?’ to the url: $.getJSON('http://some-foreign-server.net/ajax-handler.php?param1=foo&param2=bar&callback=?', function(data) { // do stuff } ); Then setup the request handler to prepend the callback parameter to the response and wrap it in […]

Continue reading...