May 16th, 2003

Zoner en fuego!

Memo to self...

"The exponentiation operator is **, not ^. ^ is the bitwise XOR operator, as in C." - page 531, Programming Perl, 2nd Edition

Oh look, my tail, I think I'll chase it for a few hours.
  • Current Music
    PWEI - Ich Bin Ein Auslander
Zoner en fuego!

And that's a wrap!

You know that oft mentioned Perl port? It is done.

It was mostly done last night. My boss had captured some static data that I could whack at the scripts to debug them and I was able to get most everything working. I had remarkably few bugs really, mostly a couple of unlucky guesses at which of two LibXML methods was the right one, and unnecessary leading slashes on some XPath expressions. But there was a bug in the C++ cryptography object, that's apparently been there for a long tme, that I uncovered. That's code my boss tends to control - I'm WAY rusty on C++, enough that I'd probably be a danger if I messed with it much. Which meant that I couldn't complete the work.

It was a classic buffer overrun kind of thing - in a hex decoding functon the for loop was counting up by 1, not 2, as it walked the string. So it was wandering off into the hinterlands, using twice the length it should. This was determined after a couple of hours of chasing the bug down. Once found, the fix was trivial. Once that was fixed I could start flinging live transactions at the scripts. That uncovered a few more issues - the worst was the exponentiation issue I mentioned in my last entry. I spent WAY too long tracing that, and I looked right at that code many times on the process. '^' means exponent in my head - that's how I'd write it, and apparently that's what ASP and CF do as well. So I didn't catch it when porting, or debugging. Until I determiend that it was precisely that step in the math that was breaking, and I consulted the New Testament of Perl (aka Programming Perl - Learning Perl is the Old Testament) - and low, I was being a goober and not doing things The Perl Way. That was the last real bug to fix.

Since then I've been cleaning things up - I made a few improvements over the ASP/CF, and I had a few changes I wanted to make but I wanted to get things working before I did anything else. I still want to do some more commenting, etc, before this goes out, but I'll probably do that Monday. QA should also start poking at this on Monday, to make sure it really does everything it is supposed to before it goes out to a customer. I'm sure it isn't the best Perl the world has ever seen, but overall I'm satisfied. It is the first make Perl project I've done in several years, with a little over 3k lines at this point. If I add all the comments, and perhaps pod info, that I want to it'll be somewhat larger.

It looks like I'll have a little breather once this is shipped. I need to revise some of out XML Schemas that engineering produced - they're stricter than they need to be. None of the software using the data is as strict as the schemas, and it produces needless headaches to comply. Mostly enforced sequencing - it really doesn't matter what order things are in in the document, as long as the required data is there and the proper parent-child relationships are intact.

But then it looks like I'll be crunched again - PHP, which was something we saw a need for 'someday', has become a near term project. We have a customer who is dumping the Perl based shopping cart hosting system they've had to move to a new PHP based one. I've been saying I want to learn PHP (I've worked with it, but only lightly), so it looks like I'll get to tackle that job. At least I have a solid understanding of the systems after doing the Perl port.

Edit: The scripts.tar.gz if anyone wants to see.
  • Current Music
    Red Hot Chili Peppers - This Is The Place
Zoner en fuego!

NZ90 experience update

Well, I've had my NZ90 now since Monday, a full work week to use it. So far I'm still very happy - but there are two changes since my earlier post.

1. AvantGo must've been reading my entries, they released a new revision of the beta for PalmOS 5 that does what I want. Now when you select AvantGo and it comes up, the scroll wheel scrolls the screen. Except now if you press the wheel, it switches to highlighting links. And it is smart enough to highlight the first link *on the screen*, not the first on the page. So now you really and use it one handed.

2. After a week of using IntelliSync I decided I loathed it. The way it handled conflicts and changes completely sucked. I decided to remove it and install PocketMirror Pro. Going back to PMPro was a welcome change. I got so sick of having to constantly Approve things in IntelliSync every time I changed an entry, etc. It meant not being able to press sync and forget about it - it'd sit there waiting for input until I did something. I couldn't find any settings to fix it either.
  • Current Music
    Red Hot Chili Peppers - Midnight