Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

milardj (4452)

milardj
  (email not shown publicly)

Journal of milardj (4452)

Thursday January 05, 2006
11:23 AM

Automated Build Process

The company I work for now used to be a client of my previous employer. For whatever reason they decided to buy the source code and develop/support the product (a pharmacy claim adjudication system) on their own. The company is US based and they hired 11 of us (8 developers, 2 QA, and an architect) and set us up in an office in Canada.

The company is not a software development shop so the first year or so was ... interesting. CM (configuration management) for our product (dozens of applications written in C, C++, PB, perl, sqlplus, Java comprised of 12K+ files) was left in the hands of our overloaded QA team. This responsibility gradually became my responsibility (I lead a team responsible for GUI, server infrastructure, financial subsystem, and database loads).

Here was our process at the start of the year:

  • developer checks out/modifies/checks in source
  • developer fills out a paper 'code promotion form'
  • CM collects the forms and starts the build process
  • CM manually extracts the files from VM (Merant Version Manager) to Windows. Since VM is not task based and their labelling functionality is a joke (if you do a get based on label the app interogates *every* file in the repository to see if it has the specified label which can take up to 10 minutes per promotion form)
  • CM manually ftps the extracted source to our build area on Unix
  • CM determines if there are any database change dependencies if so migration scripts are manually applied to the dev database
  • CM kicks off the build script
  • CM ftp's the build to the QA staging area
  • CM manually composes a build notification e-mail
  • when QA is ready to apply the new build CM must apply any migration scripts to the QA database (and manually apply grants and create synonyms)

Depending on the stage of the release I was sometimes doing up to 5 builds a day at a loss of 2.5 to 5 hours of productivity a day. Keep in mind I was a hands on Team Lead - still developing for each release.

Our process now:

  • developer checks out/modifies/checks in source
  • developer fills out a web 'code promotion form'

That's it. Happy times are here again.

The goal for 2006 is to introduce automated smoke and regression tests into the process (at least for core components like our OLTP engine) and generate pretty graphs like the Pugs team has done (http://kungfuftr.com/pugs-smoke.html - loads slowly).

Wednesday August 17, 2005
09:49 AM

DOM/IE woes and mod_perl2 woes - Woe is me!

I have a web page that allows for the definition and generation of reports. The report is defined by adding columns, selecting the value for that column, and allows shifting of columns.

The column definitions are wrapped in divs where each div has a id in the format column#

When shifting columns I move the actual div and (for whatever reason) change all the ids (the div and all childnodes) to reflect the new column number.

This works fine and the columns are shifted, when the form is submitted everything is fine *but* before the form is submitted things seem to be screwed up in IE. For example if I grab one of the elements within the div after shifting:

var name = document.getElementById("column1_name") alert(name.id)

The id displayed is the old id: column2_name!!

Please note that I *got* the element BY ID!

My mod_perl2 woes: I've installed the latest mod_perl2 (2.01) and libapreq2 (2.06-dev) and everything seems fine except for when I try to serve up excel files (generated by Spreadsheet::WriteExcel)

The sample mod_perl2 program for SS::WE sets headers/content type as:

$r->headers_out->{'Content-Disposition'} = "attachment;filename=$filename"; $r->content_type('application/vnd.ms-excel');

But I get an error when I run:

69.158.152.228] Can't locate object method "STORE" via package "APR::Table"

The pod for APR::Table seems fine but the changelog for libapreq2 has the following:

Perl API [joes] Support for table set/add/delete methods is formally withdrawn. Technically this feature died with the module API refactoring in 2.05-dev.

Based on my error it would seem the "table" in question is probably APR::Table but why is the pod for APR::Table still showing set/store etc

I'm obviously missing something ...

Thursday June 16, 2005
10:19 AM

I defy you* ...

... to read this (Perl6 is Here Today slide show) and not get excited.

* Perl developers who think P6 is fubar'd

Tuesday June 14, 2005
04:16 PM

Vee belief in nossing, Lebowski! NOSSING!!

                WAITRESS
        You folks ready?

The German shouting stops.  Dieter looks sourly up.

                DIETER
        I haff lingenberry pancakes.

                KIEFFER
        Lingenberry pancakes.

                FRANZ
        Sree picks in blanket.

The woman speaks to Dieter in German.  He nods.

                DIETER
        Lingenberry pancakes.
04:10 PM

Well sir, it's this rug I have,really tied the room together

           DUDE
    They're nihilists.

            WALTER
    Huh?

            DUDE
    They kept saying they believe in
    nothing.

            WALTER
    Nihilists!  Jesus.

Walter looks haunted.

    Say what you like about the tenets of National Socialism,
    Dude, at least it's an ethos.
Monday June 13, 2005
10:23 AM

A Very Good Thing

It seems that Leo and Chip are tending to agree much more then disagree (opcodes, continuations/registers, fallback behaviour etc). This is a very good thing.

Not so much from a technical/architectural perspective but simply from a project viability perspective. I can't effectively argue the technical de/merits of the decisions to date (although the new approach towards of deriving from a Float if you want "Floatish" behaviour makes more sense to me, and I have never seen an effective rebuttal to Leo's posts regarding the problems with continuations/registers) but I also feel that it is largely irrelevent. As long as there are no feature gaps for target languages and assuming that we meet (at a very minimum) Perl5 performance then I don't give a crap.

I trust there are enough eyes on the project that decisions taken will not prove disastrous. Having the head honcho and the lead developer on the same page is a very good thing ...

Tuesday June 07, 2005
04:10 PM

IE Leak Detector

Wednesday May 18, 2005
09:29 AM

Must Reads - Blogs

I follow 40 or so technical blogs but there are 3 that I check faithfully every day:

Check them out if you don't already have them bookmarked and please let me know if you have any favourites that touch on dynamic languages, web programming, configuration management, or design.

Friday May 13, 2005
10:38 AM

Summer Reading Suggestions

Some books that I've read or reread recently that deserve a larger audience (all links to amazon.com):
  • White Teeth by Zadie Smith: a major talent. She was in her early to mid twenties when she wrote this book and it just blew me away.
    http://tinyurl.com/b46d6
  • The Brother's K|The River Why? - by David James Duncan: these are older books but I've reread each one at least 3 times. Don't be put off by the length of Brother's K
    http://tinyurl.com/8wwfh http://tinyurl.com/8x57k
  • Malazan Book of the Fallen (Series) by Steven Erikson - it's hard to to take away from George Martin but *this* might be the best fantasy series around. Take the money you were going to spend on Jordan's next piece of crap and buy Gardens of the Moon instead. You might find it tough going at first but if you stick with it you will be well rewarded.
    http://tinyurl.com/8dkyu
  • Witch Blood by Wil Shetterly - this is an oldie (mid 80's) but well worth looking for. With less pages then a typical Robert Jordan prologue it has more action the Jordan has written since volume 4 or 5 of the Great Wheel. Find this book!
    http://tinyurl.com/c98lm
  • The Guards|The Killing of the Tinkers by Ken Bruen - short on plot but miles upon miles of style, atmosphere, and characterization. If Chandler and Lehane had an Irish love child that was beaten up by Jim Thompson - his name would be Ken Bruen (no offence pudge - I realize that Chandler and Lehane are both men but I wasn't suggesting marriage - just speaking metaphorically)
    http://tinyurl.com/aah8r
  • The Club Dumas (or anything he has written) by Arturo Perez-Reverte - the Club Dumas was made into a movie starring Johnny Depp but don't let that stop you. I'm usually slightly disappointed by Reverte's endings but the rest of the book always makes up for it.
    http://tinyurl.com/amrfu
10:00 AM

Kitchen Sink Language

I sporadically follow discussions on lambda (I'm not a PHD but I play one on TV) and while Parrot seems to be *legitimate* in the minds of most lambdaheads Perl6 is openly sneered at.

Perl6 is a kitchen sink language and lack[s] elegance or conceptual consistency and there is some really ugly stuff planned for Perl6. It probably doesn't matter because the language spec is so complex it would be a wonder if it is ever fully implemented (I'm sure Autrijus would concur with that - given his slow progress to date). But all is not bleak with Perl6 design because [o]ccasionally it stumbles across a good idea, in the same way that a construction worker might unearth a fossil when drives his pickaxe through it. Ok not exactly a rave but I guess if we trim a bit of context then we might get a good review:

Perl6 has "[snip][snip][snip][snip][snip][snip][snip][snip][snip][snip][snip][snip]good idea[s] [snip][snip][snip][snip][snip][snip][snip][snip]".

Score one for @Larry.

The flaws in Perl6 design (they aren't really pointed out beyond broad generalities but I'm sure it must be flawed) are most likely due to @Larry's alcohol issues - being a responsible Canadian I've already called every bar, restaurant, licqour|beer store in the greater GTA so there will be no alcohol served to @Larry during YAPC - I REFUSE TO BE AN ENABLER - no more drunken meanderings for @Larry.

I've also started a collection to send @Larry[0] to Lourdes in order to cure his vision issues - no longer will Perl 6 design docs be equated to a blind man's account of constructing a puzzle. PRAISE THE LORD and pass the compiler!

I have a solution to Perl6's image issues. I think everything can be solved with a strategic renaming. Perhaps if the 1.0 press release reads: "After years of effort we are pleased to release version 1.0 of ........... ARC", then like CSN&Y and an entire birkenstock-wearing, barbershop-fearing, and recreational-drug-using generation we would be golden. Or we can change Larry's name to Larry von Wall. Whatever.

Anyway ... keep up the good work everyone and maybe one day Frank Atanassow will finally say: "Perl6? You know what it almost is an improvement on sh" or at least "Perl6? At least it's not Perl5".

References http://lambda-the-ultimate.org/node/view/687
http://lambda-the-ultimate.org/node/view/690#comment-6284
http://lambda-the-ultimate.org/node/view/593
http://lambda-the-ultimate.org/node/view/309#comment-2405
http://lambda-the-ultimate.org/node/view/186