18
Jul 07

Top twelve IT skills

Spotted over on SysAdmin’s Diary, a reference to an article in Network World Asia entitled 12 IT skills that employers can’t say no to.
It’s an… interesting list:

  • Machine learning
  • Mobilizing applications
  • Wireless networking
  • Human-computer interface
  • Project management
  • General networking skills
  • Network convergence technicians
  • Open-source programming
  • Business intelligence systems
  • Embedded security
  • Digital home technology integration
  • .Net, C #, C ++, Java — with an edge

Good grief.
Sometimes you have to despair. Let’s take a slightly less naive gullible buzzword-friendly analysis-free look at that, shall we?

Machine learning
Not machine learning, the AI field with years of development and reseach, but how to construct SQL statements to extract data efficiently from large databases.
Mobilizing applications
WAP. And HTML for small screens. And common sense about how to do UI on small screens. Palm pilot programmers, you’ve been doing this for years.
Wireless networking
Network administrator who knows about 802.11 and Bluetooth and a few others, particularly the whole bit where you don’t send your credit card details in the clear on a radio link that you can receive from a mile away with the right kind of gear (ps. that means the kind of gear anyone can buy in any amateur radio shop for a lot less than your subsequent monthly repayments will end up being). Or, as we used to call them, network-administrators-who-know-what-they’re-doing.
Human-computer interface
How the average user expects the computer to operate. Well, this is a fair enough thing to seek out in someone who’s going to do UI design, but is the company going to pay for the double-blind user trials and listen to them?
Project management
You have to wonder, with management horror stories already fuelling at least one rather well-known comic strip, what’s the ratio of how many people out there actually do know how to do this to how many people out there will claim to know how to do this? My guess is it’s a shockingly low number…
General networking skills
I find it a bit hard to believe there are developers out there who don’t know this sort of thing.
Hmmm.
Maybe it’s more accurate to say that I find it a bit hard to believe that there are people who claim to be developers out there who don’t know this sort of thing and get away with it.
Network convergence technicians
Network-administrators-who-know-what-they’re-doing. Seriously.
Open-source programming
In other words, all that OSS has achieved in the eyes of some recruiters is to highlight those who would normally have been described as “well motivated”.
Business intelligence systems
In other words, are you a complete code geek, with no idea of what happens outside the server room, or do you happen to know that Mary in accounting needs to know how much was spent on kitchen supplies last week rather than what was spent on coffee, and what was spent on tea, and what was spent on sugar and so on. In my youth, we used to call this “cop-on”. Or “common sense”. Or “not being a <expletive deleted>”.
Embedded security
No, they don’t actually mean Embedded security, they just mean computer security, and they don’t mean as a specialisation, but as just another component in your skillset, and at the level of “Don’t save passwords in plaintext in a public file”. (This would also qualify as “cop-on” IMHO).
Digital home technology integration
Installing your fridge so it can talk to your TiVo so as to know when to order more beer and nachos (the day before the all-Ireland football finals). Seriously? This is a job now?
.Net, C #, C ++, Java — with an edge
“someone with Java who can also be a team lead or a project coordinator”. Good grief. If you want a programmer, hire a programmer. If you want a project manager, hire a project manager. If you want a team lead, internally promote a developer with the necessary skillset and time on the project. Hire someone who claims they can do it all, and you’re liable to get someone that can’t do anything properly…

The annoying thing is, I can’t tell if this is a bad article written by someone who doesn’t understand the industry; or if this really is what recruiters seek. If it’s the latter, it’s a bloody good reason to keep PHBs away from job requirement documents and let the techies write them. I mean, seriously. You want a PHP coder who’s got experience working in a Symfony framework and postgresql? Ask for that. Don’t ask for a “self-starting, well motivated open source developer with general networking and database skills and a history of working with clients to fulfill diverse requirements in a deadline driven environment”. Because the last time I checked, that just described working.


16
Jul 07

More on PHP5 adoption

Matthew Mullenweg isn’t terribly impressed with GoPHP5 or the php-internals people on the whole topic of dropping PHP4 and moving on to PHP5 and PHP6. Now, given that Matt’s the guy who founded WordPress, I reckon his opinion’s worth listening to, and given how much time I spend using vim, LaTeX and mutt, I know where he’s coming from; but he’s wrong in this instance, or at least, he’s looking at it the wrong way.

See, the difference between PHP4 and apps like LaTeX or vim is that, well, LaTeX is done. As in, it works, it’s bug-free (no, seriously, it’s as bug-free as it gets outside NASA, and a bit more so on occasion), and it does everything that its users require it to do, and well. PHP4… doesn’t. Yes, you can build apps with it, and yes, many great ones have been written. Cool. But it’s object model is fundamentally … not an object model. And it’s slower than PHP5. And if PHP itself is to survive as a language in what is a competitive space, it has a lot of work that needs doing to it. Fundamentally, it’s not done yet. It’s getting better – but to do that, it has to change, and if that means PHP4 is being left behind, I don’t think that’s worth any more tears than, say, Debian 3.0 being left behind when Debian 4.0 replaces Debian 3.1 as the stable release. It’s just how this stuff works.

Vidyut on the other hand, agrees with Matt, but more from the point of view of the end users, rather than the developers. And that’s not really all that on point, to be honest. If the developer does his or her job well, then the end user should never know what the engine is doing in the background – which, ironically enough, is his first reason as to why the PHP4->PHP5 move is a bad idea. I don’t quite get that reasoning myself. As to saying that the code clean-up that PHP5 permits is completely pointless… well, that’s just plain silly really. I mean, you can’t say that the end users shouldn’t know what the engine is doing on one hand, and on the other say that they think your code is fast and clean.

Maybe it’s a confusion over who the end users are. I mean, from the php-internals point of view, app developers are the end user; and from the developer’s point of view, the end users are, well, users.

This whole idea, though, of forking off PHP5 and leaving PHP4 alone… well, in effect, that’s what’s being done. PHP4 is being dropped. So, if you want to maintain it, do what the Joomla core team did, take a snapshot of the code and start with your maintenance and release cycles and keep PHP4 going.

I don’t think it’s a good idea though. I’ve coded in PHP5 and in PHP4, and I’ll never code in PHP4 again if I have any degree of choice in the matter. It’s too difficult to properly implement and maintain designs in it when the number of developers rises above one!


13
Jul 07

Postgres performance

For a long time now, most who’ve used both have felt that Postgres was a better database than MySQL, myself included. But until now, the stick that MySQL keep beating Postgres over the head with was performance. MySQL might be a toy database (okay, it’s moving away from that these days, but only in the last few versions and that’s not really enough dev time to be stable enough for critical stuff), but it was fast on cheap hardware, and for pragmatic web development, that meant it beat out Postgres every day of the week.

Not any more

Basicly, for the first time in a seriouly major benchmark, postgres not only outperformed mysql, but it nearly matched oracle (which was running on hardware that cost more than twice as much).

There’s also this earlier post, which basicly showed that Mysql on a single-CPU machine starts off faster than Postgres, but falls off as the number of concurrent users
rises, until it’s way behind postgres, which remains pretty invariant as the number of users rises. It also shows that postgres takes advantage of multiple CPUs better than MySQL does (up to 16 CPUs anyway, where the postgres team say they still have work to do).

Something to think about. Do you expect to ever have more than one or two users on your site? Better start with postgres so, and save yourself the cost and hassle of a later switch (I don’t care how good your database abstraction layer is, no DAL is so good that you don’t have to change your app when you switch database. Maybe more on that later.)