02
Nov 07

Reaching the limits of PHP

First off, I rather like PHP. PHP 5 at least, I think PHP 4 was – and remains – a dog’s dinner of a thing at best. But for 90% (at least) of webpages, PHP is a pretty decent solution. Retrieval of data from databases, display of that data, no worries. Minimal learning curve, support for high-level constructs like objects and exceptions, several frameworks available – PHP’s a damn good choice in the vast majority of cases.

Thing is, right now I’m trying to put together a bit of code to act as a proof of concept, and – more fool me – I tried to use PHP to do it, figuring I’d save some time. No such luck. Turns out, trying to create data in PHP is a lot harder than trying to manipulate or display it. Right now, I’m in the middle of implementing a recognition system using a variable order markov model approach, and just generating the PPM-C prefix trees is a total pain in the fundament. Even the basic data structure I’m using – a trie – has no standard implementation in PEAR or the SPL or anywhere else I could find. So first I have to write that. Then I have to write the code to do all the other stuff. I mean, granted, hoping to find a pre-written PPM library was a bit hopeful, but prefix trees are basic data structures (and yes, I eventually found some sample code for one, but I’m still having to kick that about a fair bit to get what I need from it). But there was other stuff that I tried and ran into problems with. For example, PEAR::Math_Matrix seems to be PHP4 only, and the PEAR version doesn’t want to even parse in PHP5, let alone let me look for determinents or jacobians or eigenvalues. Which put yet another crimp in my plans earlier this week.

Anyway, for the actual production version of this project, PHP’s obviously out and never was in the running. This piece of code has to run as fast as possible – so I’m looking at C++ or C or something of that nature. But for proof of concept, I was hoping PHP was the way to go. Nope. This horse does not do well on this course. I’m thinking it’s time to start playing a bit more with Python or Perl or something for this sort of thing in the future. Which isn’t horrible – better to have more strings to your bow if at all possible. But it does rather shoot the whole fanboy attitude in the PHP-vs-Ruby-vs-Python-vs-Whatever language wars. There’s simply no place for it in a professional environment, and it’s not of any real use anywhere else either.

Still gonna do that rifle club management system project in PHP with Symfony or Prado (if they get the menu component done and released in time) though.

(And someone needs to tell Sean Coates that Microsoft is still evil 🙂 )


21
Oct 07

New job, new role, new challanges…

I’ve officially left Enovation Solutions as of 1700 on Friday, and as of 0900 on Monday, I go to work for dotMobi as a senior software engineer, to work on some more technically-oriented stuff. More specifically, I’m working with Andrea Trasatti on the new Device Database project announced recently (more here). I’ve been trying to get into more and more technically demanding roles over the past two years, but I’ve always been split between sysadmin and development roles; I still like both sides of the house, but it’s going to be interesting pursuing the development side alone for a little while, especially in this area, where I’m basicly writing tools for other developers.


19
Oct 07

Kubuntu 7.10

Gutsy Gibbon.

*sigh*

Not a fan of the name. But, I’ve got that X server memory hole in Feisty on my machine and Gutsy supposedly has the fix. Tried it at home last night on my dual-booting laptop (XP and Feisty until last night). Insert CD, reboot off CD, let it run.

Perfect installation. Haven’t had time to play with the neat cool 3D stuff yet, but the successful autodetection and the full setup was very impressive, especially compared to the bad old days when autosetup was a fast way to lock your machine up or worse, but nothing more! Have to say, I still like Debian for servers, but for desktop machines, I’m sold on the Ubuntu model. I don’t install my desktop often enough to become an expert on the process, so an idiot’s interface is a good thing for that for me. On a server, it’d be unacceptable but that’s a different gig alltogether. And the degree of polish is nice as well. There’s something very satisfying about pointing to your desktop as being more bling, bling than a windows users’ and also knowing that it’s a stable unix system underneath. It’s no wonder people love Macs these days.