Our core web technology platform (the Two Worlds vServer) is aimed at communities and enterprises which require universal content and collaboration services that can be updated and managed in multiple ways, from mobile devices and in strange and exotic places where bandwidth and means of access may be decidedly limited. Many users have English (if at all) as their second language, so I want them to be able to both post in their own language, for those posts to be avaible in other languages and to all users with direct translations of any site content. Here I call in the excellent service at freetranslation.com, which it is possible to call directly from a web page to carry out a machine translation of that page. In fact, if you subscribe to their Platinum service, at an astonishly reasonable $3.95 a year, you a) encourage them to keep going and b) get the facility to refine the dictionary for informal language and automatically follow links in the target language once you’ve translated the first page. So…
The vServer that hosts our own and our clients’ web sites is based (loosely) upon the Movable Type blogging engine. In the versions we’re currently deploying (2.661/3.11), there appears to be no embedded way to get at the current page URL for any page on the site – MTEntryPermaLink will give you the effective URL for an individual entry, but that’s a special case. So what to do? Enter php, stage left, with smug grin: Now I’m a complete newbie at php, so there may well be much easier way of doing it, but what the hell – this one works, at least in my production environment, which is, FYI, Mac OS X/X Server 10.3.5/Apache 2.0.47/php 4.3.2/MT2.661.
What and Why?
I am not now a programmer and haven’t been one, real or surreal, for at least fifteen years. So WHY have I just spent two days solid trying to get a single perl module compiled for my server? Rhetorical question – any smartarse answers should be placed in the usual wormhole on a piece of EBCDIC punch-tape.
The Challenge: install the perl module Crypt::DSA on a shiny new Movable Type 3.11 installation, to allow us to make full use of the features and get best performance from the comment registration mechanism. So I go to CPAN and try installing Crypt::DSA. It tells me I need the Math::Pari module first and then falls over in grand style on trying to install it. That was four days ago. I have just got it all working (or installed, at least) and this is for anyone going through a similar process – hopefully you’ll find this before you acquire significant bruising on your forehead, much like the one I’m currently nursing.
Firstly, useful resources:
The starting point for all this is Benjamin Boksa’s description of installing Math::Pari, taken together with some hints and pointers found on a Mac thread on the Pari site. That tutorial was then corrected by David Jacob’s blog on installing Math::Pari on Mac OS X.
Whilst pointing me in the right general direction, none of these actually worked. So here’s what did, with my system configuration of:
- Mac OS X Server 10.3.5 installed and up-to-date (according to Software Update)
- Xcode Tools installed and up-to-date
- Perl 5.8.1 (default Mac OS X installation)
- Movable Type 3.11
- Pari 2.1.5 – as of today, this is the latest stable release of Pari. If you’re using an earlier or later one, you’ll need to change the process to suit the names. D’uh…
So, for those who are trying to install Crypt::DSA, or anything else that needs the Math::Pari module and libraries, here’s what worked for me, presented in step-by-step fashion, with minimal geekspeak, although it does require some familiarity with the Unix command line. using the tcsh shell. Some of this may be overkill, but I’m being deliberately pedantic here and describing every step that led me to a working installation.
During the development of the Two Worlds vServer and my subsequent iceclimb (with crampons and two axes) up the North Face of the CSS learning curve, I came across a bug in the Mac OS X version of Internet Explorer, up to and including 5.2.3. Nothing new there, except that appears to be unique to the Mac version and doesn’t appear to be desperately well documented (at least for this CSS newbie).