1. Success Story
- Posted by Derek Parnell <ddparnell at bigpond.com> Jun 08, 2007
- 601 views
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
2. Re: Success Story
- Posted by Alan Oxley <fizzpop at axxess.co.za> Jun 08, 2007
- 594 views
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.
3. Re: Success Story
- Posted by Ricardo Forno <ricardoforno at tutopia.com> Jun 08, 2007
- 553 views
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.
4. Re: Success Story
- Posted by Thaddeus Quay <ThaddeusQuay at gmail.com> Jun 08, 2007
- 599 views
- Last edited Jun 09, 2007
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.
5. Re: Success Story
- Posted by c.k.lester <euphoric at cklester.com> Jun 09, 2007
- 562 views
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!
6. Re: Success Story
- Posted by c.k.lester <euphoric at cklester.com> Jun 09, 2007
- 572 views
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
7. Re: Success Story
- Posted by Pete Lomax <petelomax at blueyonder.co.uk> Jun 09, 2007
- 610 views
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
8. Re: Success Story
- Posted by Derek Parnell <ddparnell at bigpond.com> Jun 09, 2007
- 584 views
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
9. Re: Success Story
- Posted by henrikmk <henrik at webz.dk> Jun 10, 2007
- 598 views
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.