wordpress update time & syntax coloring

So I’ve just spent a couple hours updating wordpress to 2.8.4 (it’s been a long time since I’ve done an upgrade) and I’m trying to pick from the myriad syntax coloring plugins.  I tried using SyntaxHighlighter Plus which has nicer configuration options. But it doesn’t look as good as wp-syntax

Note that to get the SyntaxHighlighter Plus configuration options to work on my php4 box (I was seeing this error: Call to undefined function: scandir()) I had to replace this call:

$themes = scandir(ABSPATH . PLUGINDIR . '/syntaxhighlighter-plus/syntaxhighlighter/styles/');

with this:

$dir = ABSPATH . PLUGINDIR . '/syntaxhighlighter-plus/syntaxhighlighter/styles/';
$dh = opendir($dir);
 while (false !== ($filename = readdir($dh))) {
$themes[] = $filename;
}

I actually like the way SyntaxHighlighter Plus works better than wp-syntax in that it uses a custom tag [sourcecode] rather than using <pre> which means that it handles embedded angle braces better. But I just think that it looks much worse than wp-syntax!

MacBook Pro trackpad clicking intermittently broken

So when I got my new MacBook Pro (late 2008 edition) with the fancy new trackpad that is an integrated mouse button, it had an incredibly annoying problem:  every 4th or 5th click, didn’t click!  So I’d be clicking on a window behind the current one, or clicking on an icon in the dock, and it would sometimes take two or three clicks to switch to the window or app.  After checking in with Apple (and unfortunately 2 hours on the phone walking through all sorts of different options), they ended up sending me out a new MacBook Pro.  The new one arrived yesterday and after a fairly straightforward migration (only the printer driver for my Canon MX850 didn’t automatically migrate), I now have laptop with a properly clicking trackpad.So, if you have this problem, you at least have my experience telling that it’s a hardware not a software problem.

git me some solutions

Well, git definitely takes some gitting used to.

My situation is using git with three team members and a private shared repository that we all pull from and push too.  Additionally our project has a submodule that lives on a public git-hub repository (metaform).

So here are some things I’ve learned:

  • Use rebase. Here’s how:
    1. Rebase doesn’t work on “dirty” working tree. So you must, either:
      1. Add and commit all you changes.git commit -a -m 'all my changes' (assuming that your ok committing them in a single batch). or
      2. Stash your changes awaygit stash (But don’t use stash if you have made changes in your submodule ! It’ll stash the changes away, but it gets very grumpy when unstashing later.)
    2. Fetch the changes:git fetch this should copy the changes from the remote branch (I assume your tracking the defaults here from the clone origin)
    3. Now to rebase: git rebase origin/master If you do a git log you should now see your checked in changes at the top of the tree, not somewhere near the bottom where they would be if you had just done a pull.
    4. If you stashed above, then you need to unstash with git stash apply
  • Submodules that are in active development can be a pain. Here’s a gotcha that gotme: When you have made a change to a submodule, checked it in and pushed it, you still need to add this change into your containing repository and commit that, and then do a git submodule update This is all well documented, but lets take a concrete example. My submodule is a rails plugin. So just after committing the change in my submodlue git status shows that vendor/plugins/myplugin is modified. So I use my shell’s file completion to add that folder. This gets me: git add vendor/plugins/myplugin/ notice the trailing slash. This is the gotcha. That causes git add to add all of the contents of the directory as if you wanted to track them directly instead of through the submodule. Erase that trailing slash!

git bandwagon

Well, I’ve officially joined the git bandwagon.  I’ve put metaform up on github (the open money projects will come soon, but I think probably on gitorious); I’ve been reading tons of articles about git; I installed it on Tiger (use MacPorts) and Leopard (install from source with these instructions but use 1.5.5); and now I’m blogging about it.  The most interesting article so far on git, has made me realize how closely related it is to the mesh and churn…  Quite interesting!

ubuntu gutsy on a xen virtual host

Hey googlers looking for tech-support:

I was trying to install various packages (emacs, etc) from universe on Ubuntu Gutsy (7.10), and I kept getting weird segmentation faults (Setting up emacsen-common (1.4.17) Segmentation fault). Turns out that the problem was that my server was being hosted on a VPS running XEN for virtualization, and you have to first install libc6-xen: apt-get install libc6-xen

Hope this saves someone the half day that it cost me…