?

Log in

No account? Create an account
Ramblings Journals I Read Calendar The Dirt MegaZone's Waste of Time Older Older Newer Newer
Progress can be made... - MegaZone's Safety Valve
The Ramblings of a Damaged Mind
zonereyrie
zonereyrie
Progress can be made...
I've been working on this Perl port on and off for well over a month. Technically it is my primary task - except that all these other things keep popping up as super-critical tasks that take priority. So I've really only had a handful of days to *focus* on this, usually I've got a few minutes here and there to port things. And until tonight it has been a blind port - tonight I finally got enough ported to actually push data through the system. Of course, that meant I found many nasties that were hiding in the code, but at this point it is reliably giving me the right error messages when I push in broken values. There is still a lot of work to be done, but from now on I should be able to test things as I go, which should reduce that 'groping in the dark' feeling a bit.

I have also learned that porting things from languages with different structures is a bag of worms. For example:
1. ColdFusion is apparently case insensitive. So the code I was porting from has things like setErrorMessage and SetErrorMessage. In Perl those are NOT the same thing, Perl being case sensitive and all. I tripped over a few of those. I need to sit down with my boss (he who does the ASP & CF) and normalize our variable naming scheme so this shit doesn't happen.

2. Since the two existing implementations are ASP and CF, I'm working from both as a basis. Unfortunately neither one is a straight port of the other - both have diverged a little from small fixes, etc. And some of the function names are different, so I've found places where I used the CF name once, and the ASP elsewhere, which is annoying.

3. CF and ASP seem to have a very different namespace than Perl. pcFunctions uses a function in Merchant, and Merchant uses functions in pcFuctions... That seems to automatically work in CF and ASP. But Perl gets snippy if I try to do a 'use pcFunctions' in Merchant and a 'use Merchant' in pcFunctions. It doesn't seem to like the recursion (not that I blame it, I don't either). My restriction is that I need to keep the ported structure as close to the original as possible so that the same docs can be used for all the languages. Otherwise I'd look at shuffling everything into more of a direct tree instead of the back-and-forth referals. For now I've gotten around it by using explicit package referals on the calls - pcFunctions::functioname. If anyone has a good way to make the recusive 'use' work, I'd love to hear it.

I'm just glad that it is starting to work. If I get these functions working, I have one large file left to port and the basic PayCash functionality should be done. Then I get to start porting the Kiosk code, which means XML parsing. I'm leaning towards libXML for the DOM support, but I'm open to suggestions on that - I've never worked with XML in Perl, so any module I use will be new to me anyway.

I am: satisfied satisfied
Current Media: t.A.T.u. - All The Things She Said

4 STDOUT || STDIN
Comments
atarikeiko From: atarikeiko Date: April 22nd, 2003 08:14 pm (UTC) (Direct Link)

haha, 6'6" man listenning to t.A.T.u.!!
So sweet!!
zonereyrie From: zonereyrie Date: April 22nd, 2003 08:17 pm (UTC) (Direct Link)
Yep, I have eclectic tastes - I was actually listening to the import CD Single from Australia, which has 4 mixes on it. Earlier I was listening to the Crossing Jordan Soundtrack, and Ani DiFranco's 'Evolve'.
atarikeiko From: atarikeiko Date: April 22nd, 2003 08:19 pm (UTC) (Direct Link)

Re:

I was just kidding! I can jump from PuffyAmiYumi to System Of A down, to La Traviata.
Being open to music horizon is ALWAY a good thing. It just made me giggle!
From: norikos_author Date: April 24th, 2003 04:45 am (UTC) (Direct Link)
See why I kept plugging T.a.T.u? Fun, aren't they?

And, hey, the album inspired ~25K words on a novel, so that's goodness all on its own.

Shalon Wood
a.k.a dstar
4 STDOUT || STDIN