Archive

November 20th, 2008

Blogging

So, I think it is pretty obvious that I'm not great about doing actual blogging to my blog. So, I'm going to give MarsEdit a go and see if it improves things. It means that I can just write an entry without having to go to the bother of actually going to my website. Pretty lazy, huh?

July 7th

Install Leopard on a PPC Mac when DVD won't work

I decided to finally upgrade my PPC MacMini from Tiger to Leopard.

Problem: Mac Mini refuses to read the DVD despite the DVD working fine on my MacBook Pro.

Solutions:

  • Install Leopard from iPod: Failed. My MacMini refused to boot from the iPod even though I'd used an Apple Partition Map and put it into forced disk mode. Likely culprit: I was using an USB rather than a Firewire iPod
  • Network Install: Didn't try.
  • Install from external dvd drive: Don't have one. But....
  • Target Disk Mode: Nifty Firewire trick. Restart your MacBook Pro in target disk mode, connect to Mac Mini via Firewire, put the DVD into your MacBook Pro, it appears immediately on the Mac Mini and install proceeds just as if the DVD was in the Mac Mini. Very sweet. Sucked that I couldn't use my MacBook Pro during the install though.

So, I now have a very nice Leopard install on my Mac Mini. Now to re-compile all my MacPorts installs...

July 5th

PHP5 and libxml2 Make Problems

I did a "sudo port upgrade outdated" (using macports) yesterday which completely fecked up my PHP install. I was getting errors from Apache2 saying the php5 module was broken.

So, I re-installed php5 from macports. Or, more accurately, I attempted to. Got this darling error message during configure:

Undefined symbols:
"_xmlTextReaderSchemaValidate"
"_xmlTextReaderSetup"
ld: symbol(s) not found
collect2: ld returned 1 exit status

This is a fairly common error with php5 but the php devs are largely ignoring it since it is due to conflicting versions of libxml2 on your system. Basically, the linker seems to be getting confused about which version of libxml2 to use - despite it being specifically specified with the "--with-libxml-dir=/opt/local" specified in the Portfile and trying to use various ones around the place left by other installs (such as Gnome or OSX itself instead).

I fixed it, after over 24 hours of trying every thing I could think of including scrapping my entire /opt/local hierarchy.

The solution, at least in my case, turned out to be quite simple: I installed the latest version of libxml2 into the standard locations (in addition to the libxml2 installed by macports as a dependency of php5).

I downloaded libxml2 manually and did a "./configure && make && sudo make install". I then tried my php5 macports install again ("sudo port clean php5 && sudo port install php5 +apache2 +mysql5 +imap") and voila! Working php5 installation again.

May 22nd

History meme

Perpetuating the history meme!

$ history|awk '{print $2}'|sort|uniq -c|sort -rn|head
   58 ls
   48 clear
   45 cd
   41 ss
   34 vim
   22 ping6
   22 dig
   20 make
   13 man
   13 fo

"ss" opens a new screen window with an ssh session to "spoon.netsoc.tcd.ie".
"fo" is an alias for "killall -9".

February 13th

Memalign Hack for OSX

I was having trouble recently executing SSE intrinsics on Leopard. The problem, simply put, is that OSX lacks a memalign() function. As a result I was getting messages of the form:

Undefined symbols:
"_memalign", referenced from:
_init in ccB0Dp2Z.o
_init in ccB0Dp2Z.o
_init in ccB0Dp2Z.o
_main in ccB0Dp2Z.o
_main in ccB0Dp2Z.o
_main in ccB0Dp2Z.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

However, I have found a partial solution. Including the following c source file above all your other headers will allow your program to allocate memory properly. Note however, that memory will NOT be freed correctly (or at all possibly). As such, do not use this except for experimentation.

memalign.c

Credit for the above belongs to Jeff Clites.