1. Success Story

Just thought I'd let the community know about a little success story concerning
Euphoria's use in the "real world".

You may already be aware but I work for a company that writes software for
financial institutions (banks, building societies etc...)

Anyhow, I have this collegue who has been using Excel spreadsheets to model some
reasonably complex mortgages. He is doing this to test some major changes to our
retail banking product. So he's been slaving away for 3-4 weeks on them and every
time he thought he'd finally got it, some little corner-case cropped up that
forced him to re-evaluate the Excel macros yet again, plus lots of 'manual
overrides' involved.

I sat with him on a few occasions to help him out with the macro coding. I
finally got sick of this process so last night I went home and used Euphoria to
develop a general purpose modelling language and wrote a model for one of his
scenarios - in one night! Today I presented it to him and taught him the
language, which took about 30 minutes, and now he has run though some test cases
that have all come out with exactly the values he had manually worked out
earlier.

So he is throwing out his Excel spreadsheets and rejigging his tests to use the
modelling language.

And it runs so fast that at first, he thought it didn't run at all. I had to
show him the output file to prove it did anything!

And sorry but I'm not making the modelling language available to the community
just yet. It has a few too many rough edges for my liking, that I'm still making
smooth.

-- 
Derek Parnell
Melbourne, Australia
Skype name: derek.j.parnell

new topic     » topic index » view message » categorize

2. Re: Success Story

Really cool!
You realise of course that you have created a monster that you
will expected to maintain. IMHO users will always come back and say
"yes its working the way I asked you to do it, but can't you just..."
And have to do a rewrite!  :>

I concur with the speed issue, where a user can't believe it.
After watching a buddy struggle with a Perl equivalent of "diff",
that took minites, he got a Euphoria equivalent that took under a second
for two multi meg files. Cache hits of course, but still.

new topic     » goto parent     » topic index » view message » categorize

3. Re: Success Story

Hi Derek!
Congratulations to you, to all Euphorians and, of course, to Rob!
Just a small question: what do you exactly mean by a "modelling language"
in a case such as the present one, I mean, excel, mortgages, banking, etc.?
Best regards to all.

new topic     » goto parent     » topic index » view message » categorize

4. Re: Success Story

Ricardo Forno wrote:

> Hi Derek!
> Congratulations to you, to all Euphorians and, of course, to Rob!
> Just a small question: what do you exactly mean by a "modelling language"
> in a case such as the present one, I mean, excel, mortgages, banking, etc.?
> Best regards to all.

What he probably means is the same as REBOL's dialecting.  Go to
http://en.wikipedia.org/wiki/REBOL and look under "Dialects".  REBOL makes a big
deal of how easy it is to do complex things when you have created a dialect, but
there are no non-trivial, real-life examples.  I would be interested to see what
Derek did, especially since Euphoria apparently doesn't have REBOL's
introspection ability, where REBOL can treat code as data and data as code.

I like REBOL, but I like Euphoria better, because REBOL is hard for me to read
and write.  However, given the major changes happening in REBOL, from about now
to the rest of this year, it may be worthwhile for me to take another look at it.
 In the meantime, I have a suggestion for Euphoria.  REBOL has flailed about for
the last few years, and only now appears to be getting its act together with
v3.0.  Similarly, Euphoria could launch itself into a new direction, but with
much less effort, thereby spawning many more, and much more public, success
stories.  I'll continue this under a new topic.

new topic     » goto parent     » topic index » view message » categorize

5. Re: Success Story

Derek Parnell wrote:
> 
> So he is throwing out his Excel spreadsheets and rejigging his tests to use
> the modelling language.

That's awesome, Derek! Way to go!

new topic     » goto parent     » topic index » view message » categorize

6. Re: Success Story

Derek Parnell wrote:
> 
> And sorry but I'm not making the modelling language available to the community
> just yet. It has a few too many rough edges for my liking, that I'm still
> making
> smooth.

Is it a derivative of LOLCODE? :D

new topic     » goto parent     » topic index » view message » categorize

7. Re: Success Story

Thaddeus Quay wrote:
> I like REBOL, but I like Euphoria better, 
OK
> because REBOL is hard for me to read
I just followed the link and also found it impossible to read...
What does it mean? Are the examples on Wikipedia just badly written?
When I install and run it, why does "help" disappear off-screen?


Anyway, that's all beside the point. Maybe like you I should have broken this
into two posts... Onto the meat:


If I'm really reading you right, which I somehow doubt, what you really ought to
do is set up a "sandbox" or three whereby EUforum users can plonk their Eu code
on a remote Windows or Linux Box, and then run it via IE/Moz/Opera/Konqueror
etc???

Guess I read you totally wrong, though.

Pete

new topic     » goto parent     » topic index » view message » categorize

8. Re: Success Story

Ricardo Forno wrote:
> 
> Hi Derek!
> Congratulations to you, to all Euphorians and, of course, to Rob!
> Just a small question: what do you exactly mean by a "modelling language"
> in a case such as the present one, I mean, excel, mortgages, banking, etc.?

The modelling language is used to simulate real-world scenarios. In this case it
is used to simulate the various activities that can occur to a mortgage loan over
its lifetime - such as changes in interest rates, in amount borrowed, terms,
repayment frequencies, missed payments, over payments, bounced cheques, bank
charges, etc...

Each of these things effect the loan and account data and the modelling language
enables the tester to simulate these effects without having to run the real
application in real time. The purpose is to use it to see if the application is
doing things according to the requirements specification.

Excel is often used to model complex interactions but there comes a point in
which one bumps into its limitations.

I was pleasantly surprised at how easy it was to write and how quickly it could
be done. I guessed beforehand that Euphoria would make the task possible to be
done in the time frame I had, but it really just flowed so naturally.

Also, I must give credit to Carl White's datetime.e library. 


Here is a sample of a testcase file:

****************
using iomodel
title "Interest Only with Monthly repayments, Account Keeping Fee applies"

Set Date:   2007/09/30
Settlement: $200,000.00             * Settlement
Draw down:  $-200,000.00            * Drawdown

Set Date:   2007/10/31
Interest:   $-1,227.40 id=1         * Interest posted
Fee:        $-300.00  id=2          * Account keeping fee

Set Date:   2007/11/01
Uncleared CR:  $1227.40 id=1        * Collect interest payment from Nom.Acct
End Cycle:                          * End of Repayment period
Uncleared CR:  $300.00 id=2         * Collect fee payment from Nom.Acct
Payment Due:   id=1                 * Interest due
Payment Due:   id=2                 * Fee due

Set Date:   2007/11/09
Clearing:   id=1                    * Clear Interest Payment
Clearing:   id=2                    * Clear AKF Payment

Set Date:   2007/11/30
Interest:   $-1,150.68 id=3         * Interest posted

Set Date:   2007/12/03
Cleared CR: $100.00                 * Cash deposit
EndCycle:                           * End of Repayment period
Payment Due: id=3                   * Interest due

Set Date:   2007/12/04
Withdrawal: $-200.00                * Cash withdrawal
**********************************

This is run using the model described in 'iomodel', which is a collection of
macro/script type blocks of code that reflect what happens to the various fields
in a loan account as the events are triggered.

At the end of the test run, a .CSV file is created suitable for loading into
Excel to see the effects of the test.

-- 
Derek Parnell
Melbourne, Australia
Skype name: derek.j.parnell

new topic     » goto parent     » topic index » view message » categorize

9. Re: Success Story

Pete Lomax wrote:
> 
> Thaddeus Quay wrote:
> > I like REBOL, but I like Euphoria better, 
> OK
> > because REBOL is hard for me to read
> I just followed the link and also found it impossible to read...
> What does it mean? Are the examples on Wikipedia just badly written?

PARSE is a "bad" example, because it's the most powerful function in REBOL and
only little documentation exists to explain how it works.

This one shows a bit more, although that section of the book is not yet
finished:

http://en.wikibooks.org/wiki/REBOL_Programming/Parse

I've built many real-life dialects, using PARSE (but you don't have to use
PARSE) to reduce access to a database from 5-10 lines of code to consequently 1-2
lines. Any dialect user, will be able to use my database, through a 3 minute
lesson.

A real life built-in example of a dialect is LAYOUT, the function that provides
the Visual Interface Dialect to render GUI elements on screen.

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu