Albert
Besides the obvoius in this case, like you beeing a hero (again)!
I still ove you a dinner why not come to Switzerland early September, that
woould be a nice bussiness/holiday,and chance for me to pay you back with a
dinner.
 
 

Gunnar Ekblad

Kontema IT AB

Hästholmsvägen 32

131 30 Nacka

Sweden

 

-----Ursprungligt meddelande-----
Från: [email protected] [mailto:[email protected]] För Albert Berry
Skickat: den 24 juni 2009 17:14
Till: RBASE-L Mailing List
Ämne: [RBASE-L] - Why we love R:Base the way we do. A case study.


A very simple application needing a large dose of rapid application
development. 

A week ago, Tuesday evening June 16, 2009, I attended a meeting of the
Knights of Columbus Council (I am a Knight) here to wrap up the annual soap
box derby preparations for last Sunday, June 21, 2009. The KC sponsor soap
box derby events all over North America as a way to get young people aged 9
to 14 involved in a good, clean, fun event. A good time has been had by all
in past years. Our Council puts on the Derby, which with the Soccer
tournament finals are the major activities on this, the last day of Coal
Miner Days, our little (less than 4,000 population) District of Sparwood's
annual community celebration. 

At that meeting I was informed that the spreadsheets (!!!) that had been
used for years to keep track of the racing were on a computer in a far away
land, not to be found. As some of the other council members had reason to
believe that once upon a time I had used a computer or two, I was promptly
voted unanimously the new chief score keeper. There was one abstaining. Me.
I was overruled. It should be noted that my only previous connection to this
annual event was as unofficial photographer. I had no idea what the whole
thing was about, let alone how the scoring worked. Later that evening, my
e-Mail contained the following "business information analysis". 
____________________________________________________________________________
_____________________
Guidelines for Soapbox computer programming for Race Day
Participants need to be listed by cart number for the starting gate people,
and the list should have the driver's name, sponsor's name and car number
for the announcer need to be
sorted by weight and lane for the first 4 runs.
The 4 lightest will race against each other, then the next 4 lightest,
etc,until the last
4 heaviest.
Each group of 4 will race 4 heats against each other - once in each of the 4
lanes.
never running in the same lane. The drivers & lanes need to be sequential
and can be color coded as per the ramps to distinguish this.
At the end of all the four heats, each child's' 4 heat times need to be
totaled and then a
completely new list begins for HEAT 5 - the final race for each child,
grouping according to the times.
The 4 slowest will race together, then the next 4 slowest, etc. until the
group of the 4 fastest will race last.
The computer should randomly pick the lanes for this 5th and final heat.
If the number of participants is not divisible by 4, then the lightest
weight and the
slowest should be in groups of no less than 3 (one or two groups as
required) so that
the heaviest or the fastest races as groups of 4.
In these last 5th Heats, in each group of 4, there will be 3 medal winners
and
the fastest in each of these groups of 4 will be a trophy winner.

Early Wednesday morning, I came down with food poisoning, and spent much of
my time in a room that is not equipped with a computer. The rest of the
time, I was horizontal. Late Wednesday I received a spreadsheet with the
preliminary list of cars, drivers and sponsors. Some (not all) of the
drivers' weights were present. The accompanying email also added a request
for the fastest single run in the race, regardless of heat. I was recovered
enough to start to look at this situation. 

Friday night, I had blocked out the system, created a database and loaded
the Driver/Sponsor data from the spreadsheets. I had created input forms for
each of the 5 heats, created corresponding reports - virtually identical
format - to hand to the announcer and to be run up to the top of the hill
for the starting crew. The sheets printed in order of groups and lanes. The
Deputy Grand Knight and his wife came over to vet the system Saturday
afternoon. Small changes and additions were made on the spot. Data was
updated based on emails and on site the last of the weights were entered at
about 9:30 am. The race start was scheduled for 10:00 am. The final list was
59 cars, 59 drivers and some number of sponsors I have not yet counted. Some
sponsors ran more than one car, some cars had two sponsors. 

The Deputy Grand Knight hovered, stapler in hand, mounted on his trusty
steed (a quad), as I crossed assorted digits and pressed the print button on
the menu form in the back seat of my truck for the first heat lineup to
print on the laser printer in the front seat of my truck. We checked that
the first and last groups were in the right weights, and off he went. The
race started 5 minutes late. I am reliably informed that was the closest to
being on time in the entire history of the event. The first group was
announced to us (at the finish line) by the starter (up the hill and around
the corner out of sight) "lane 1, Car 19; lane 2, car 37, lane 3, car 41, no
one in lane 4" The list matched ours (same report!) and it was good to go.
The ladies clicked the stop watches, came over to me, read off the times, I
entered them, we checked, times were cleared, the OK for the next group to
start was radioed up the hill. Car/Lane checks completed. 5,4,3,2,1,GO.
Click. Click ##,## [Enter], check , good.... 

15 groups and 57 cars later (two no shows!), heat 1 was complete. Then we
did Heat 2 (adding back one of the no shows and running him twice to make up
for missing heat 1), 58 cars each in Heats 3 and 4. 

After a 15 minute break while the Chief Score Keeper had a panic attack
while he looked for the cause of a mixed up list of competitors for the 5th
heat, finally resolved when he ran the stored procedure source file which
had not been reloaded into the database when it should have been, we ran and
timed Heat 5. 


The spectators were coming down the hill while the Chief Score Keeper did a
sorted UNION SELECT on all five heats to get all 75 runs in order from
quickest to slowest to find the one and only fastest run of the day. Bingo!
we have a winner. Print out the lineup sheets for heat 5 again (including
the scores this time) and scribble the fastest single on it. Hand to the
announcer. Collapse. 

********************************

Thanks to R:Azzak for writing a dbms with built in forms and reports that
can actually be used to quickly and efficiently do this in the time
available. If something went wrong, I knew it was I, not he. The R:Base for
Win 7.6 development environment is nothing short of miraculous. I agree that
this was a pretty simple application, but it worked first time out of the
gate. Race day was beta testing, and it did the job with only one glitch. 

We in this community are very privileged to work with the dedicated team at
RBTI. 

PS - I just printed out the sheets as PDF and mailed them to assorted
people. No development time here, just "PRINT Heat1 OPTION PDF" and attach
them to an email. You have to love it. 
Albert. 

Reply via email to