[Phoenix-pm] Thanks for the AJAX Demo; Who Was That Unshaven Hippie?

Metz, Bobby W, WCS bwmetz at att.com
Thu Jan 26 08:37:03 PST 2006


Holy crap.  You should change your signature line to Benjamin "Tolstoy"
Ginter.

B

-----Original Message-----
From: phoenix-pm-bounces at pm.org [mailto:phoenix-pm-bounces at pm.org]On
Behalf Of Benjamin R. Ginter
Sent: Thursday, January 26, 2006 1:46 AM
To: phoenix-pm at pm.org
Subject: [Phoenix-pm] Thanks for the AJAX Demo; Who Was That Unshaven
Hippie?


Hello,

I just wanted to thank you for the ajax demo and brief runthough of a
few 
modules.  I'm the guy who arrived really late (as usual) and this was my

first ever Perl Mongers meeting.  For some background on my Perl and 
technical experience in the Phoenix area, read below.  It's long winded 
and full of hubris, so don't say I didn't warn you.

Beginnings and Golden Age of ISP Roots

Let's see, I've been using Perl for about 9-10 years now.  I became 
interested in it while working in an apprenctice-like Junior Admin role 
(promoted from Tech Support) at AbilityNet, an ISP in Tempe that later 
swallowed NetValue, CyberVault, and FirstInter.net.

The senior admin there was a guy named Darrin Chandler who allowed me to

watch over his shoulder as he wrote a couple of programs in Perl and I 
was fascinated at the flexibility of the language.  In time, he
eventually 
went to work somewhere else (wonder what he's up to these days, hrm) and

I moved into a senior network and system administration role.  I ended
up 
replacing all but a couple of the NT machines with this neat little 
free operating system I had been running at home called Linux, replacing

the NT RAS and multiport serial card/modem banks with computones, ascend

max tnts, as5200s, mc3810s, 3com hiperarcs, etc..

Anyway, I wrote some Perl modules to automate account provisioning for 
all the services we offered (a big improvement over doing it by hand)
and 
created a network daemon using that module that a client command-line
app 
could communicate with to create, modify, suspend, and delete users, 
virtual hosts, domains, etc..  When we bought NetValue, I tied this 
system along with additional service accounting features into their 
billing database and techsupport/sales web-based environment for 
immediate account setup, usage billing, etc.. Sounds all routine now but

at the time it was fairly sophisticated.  I did a bunch of other perl 
stuff, bought and used the excellent all perl radius server called 
Radiator, and basically got real world use of Perl to solve problems 
with nasty kludges all over the place.. you get the idea.

POOP at e1040.com

Worked there until late 2000, then landed a job at e1040.com over on 
Broadway and the 101.  There, I worked as a lead programmer on a
web-based 
tax preparation service and was exposed to hardcore poop (aka perl
object 
oriented programming).

They had taken a dos app called Orrtax and written Perl programs to 
extract the screen formatting and tax calculation logic to autogenerate 
something on the order of 1000-2000 modules for all the tax rules for
the 
Federal government and each state.  I worked on the resulting modules
and 
control logic for these modules somewhat and learned mod_perl inside
out, 
maintained servers, wrote some daemons to communicate with the IRS 
(e-file, woot), and so on.  Learned about the group of four and design 
patterns, Perl's reference counting garbage collection (had some memory 
leaks), and so much more.  An incredibly intelligent guy named Ben 
Humphries was the Chief Technical Officer and while we eventually had
some 
personality conflicts, I remain indebted to him for exposing me to some 
previously unexplored paths.  He had macular degeneration (was losing 
his eyesight) which has to be so much more painful when you are a
computer 
whiz and can no longer program like you know you could otherwise.

At any rate, worked there until the beginning of the dot com crash
around 
the 1Q2001..  Did some, uhm, consulting while sending resumes out like a

spammer.  The consulting work was just getting pretty regular when I got

a bite and went for a steady, salaried income at nDev Technologies, Inc.

where I continue to work today.

PHP Developer

They hired me as a PHP programmer (even though I had applied for a
network 
admin/consultant job) to develop a web-based debt collections system.  I

tried to convince them of the merits of Perl over PHP at the time but
PHP 
has way better marketing and gets a lot more writeups in the magazines 
that PHBs read.  So I developed this product they named Lariat.

After a couple of deployments, we started having serious problems with 
PHP's memory management and flexibility.  It's core bloat and the fact 
that it wasn't really a general purpose programming language at the time

really hamstrung us.  Opened some bugs with the php guys with test
cases, 
got some feedback that some of them could reproduce the bug, provided
them 
with backtraces, tried cvs builds they thought fixed things but didn't, 
etc.

They eventually just stopped acknowledging the bugs existed.  I stressed

I would follow up on it because our product depended on it and do
anything 
they needed, including buying things, paying for core developer support,

whatever it took.  I explained we were using PHP in a real world,
complex 
application and had already purchased and intended to continue
purchasing 
their rather expensive "optimizers" and commercial tools.  We continued 
to be ignored.  This bug was eventually fixed in PHP version 4.4.0, 25 
months after I initially reported it.

Perl to the Rescue

So I rewrote it all in some extreme programming over the course of 
about two weeks using Perl, Template Toolkit, mod_perl, PostgreSQL 
(had already switched from MySQL due to it's limitations while using
PHP) 
and it continues to use these things.  Today we have 15 agencies using
the 
software handling a combined $193,140,833 in active debt belonging to 
128,328 debtors and are setting up new agencies at an increasing pace
with 
the addition of an ASP solution hosted from our colocated servers at 
LimeLight in Tempe.

Name Dropping

A guy named Scott Lillibridge was instrumental in the design and 
implementation of the software.  He recommended Andy Johnson, who joined

us for a short time when we still wanted database independence (I think
he 
did a port to Oracle).  Andy and I drove almost identical third-gen 
Firebirds, though I don't wreck mine every month, ehe.  Anyway, both
have 
since departed and it's a one man show now, though I've been getting an 
old Clipper/Delphi DoD programmer involved in development and he has 
picked up some rather complex Perl incredibly fast and seems to be 
enjoying it thoroughly.

About Lariat

We have 267 Perl modules in the latest release version -- 77 packages 
and 190 classes.  The sloccount program reports 85,663 source lines of 
code, 21.41 person years of effort, schedule estimate of 1.72 years, 
estimated avg number of developers (effort/schedule) of 12.48, and cost
to 
develop at $56,286/year (Hah, i wish) of $2,892,417 with 2.40 overhead.

Sloccount ignores the 14731 lines in 240 tt2 templates.  The database is

13,240 SLOC with values of 3.01 person years effort, 9.77 month 
development estimate with 3.70 developers at a cost of $407,028 to
develop 
at the same salary and overhead.  It has 129 tables, 271 plpgsql stored 
procs (looking forward to trying pl/perl), and 51 views.

I use CVS, maintain seperate environments (which include a postgresql 
database and seperate apache and apache-perl server instance since we 
utilize a reverse proxy set) for two developers, testing for our 
standalone (called IP) and ASP versions (in both pgsql 7.4.11 and
8.1.2), 
a release version for distribution and one for testing bugs reported by 
end users in their release version, demonstration in both IP and ASP 
flavors, and a training version.  I use bugzilla for enhancements, end 
user requests and bugs, and internal bugs and development and dotproject

for a higher level development track (though it remains underutilized by

mgmt).

You can check out the website at http://www.lariatcentral.com/ though it

is in dire need of an update with new features and screenshots.  This
year 
should be very good and most of the kinks have been ironed out, the 
development environment and process has matured, and our marketing and 
pricing plans have stabilized.  Might make for a good Perl success story

later in the year.

I would never have imagined myself developing a Debt Collections package

but it has proven to offer lots of interesting challenges and will never

be complete.  I've also done a lot of consulting for GCR Tires, a
division 
of Bridgestone-Firestone while at nDev, developing GCR's intranet and 
business intelligence software, payroll system, inventory and credit 
management, and so much more.

Other Dabblings

Lots of other consulting over the years, various side projects 
(myNewsPorn, a usenet binary decoder subscription site that predated 
guba.com and probably inspired them), Perl Modules I haven't touched in 
ages including Video::Info, MPEG::Info, MPEG::LibMPEG3, NetPacket 0.02 
(temporary maintainer fixing critical bug in TCP header option parsing 
before original author took over), and wrote the key polling daemon in
the 
now defunct Bronc RRDTool poller that Chris Snell (of TicketMaster) 
maintained.

I also was included as a friend of the company, the company being VA 
Linux Systems, back in.. what was it, December of 1999(?) when they had 
the IPO and bought 140 shares at the IPO price of $30 and sold them a
few 
hours later at $273.50/share, though I didn't have the full stake and 
offered 70 shares to my roommate (doh).  I was the first one to submit
it 
to slashdot when I got the e-mail so was listed as the author
(synaptic). 
They included me because of some silly little freeware POP before SMTP 
perl utility I wrote and put on Freshmeat to keep a berkeley db hash of 
IP addresses and timestamps from pop3 auth log entries that sendmail 
could read as a map accessed from local_check (with some Claus Abmann 
hacks) to permit SMTP access from foreign networks.

Hopefully I've not bored everyone and have dropped some name or company 
one of you may recognize.  If not, well you know my background and what
I 
might be able to share with the rest of the Phoenix perl mongers.  Hope
to 
see you all next month.

Best Regards,

Benjamin R. Ginter

"Beware the fury of a patient man"

_______________________________________________
Phoenix-pm mailing list
Phoenix-pm at pm.org
http://mail.pm.org/mailman/listinfo/phoenix-pm


More information about the Phoenix-pm mailing list