Log in

No account? Create an account
Ramblings Journals I Read Calendar The Dirt MegaZone's Waste of Time Older Older Newer Newer
MegaZone's Safety Valve
The Ramblings of a Damaged Mind
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.

I am: accomplished accomplished
Current Media: Red Hot Chili Peppers - This Is The Place

aeire From: aeire Date: May 16th, 2003 07:48 pm (UTC) (Direct Link)
Not that this has anything to do with your post - but I am a horrible human being and have not sent your stuff yet. I shall be doing so on Monday, along with all the print orders I've gotten. Bad me! Bad!
zonereyrie From: zonereyrie Date: May 16th, 2003 07:52 pm (UTC) (Direct Link)
No problem, I know you've been busy over there. I've been so busy that I haven't been keeping up with anything either - like the X-Forums. (Which reminds me, did the Audi-Oh ever come?)

Send things when you can get to it, I'm patient. And they aren't perishable goods.