Tuesday, December 28, 2010

Study, study and more study (JSB)


I have just written a rather lengthy blog on the woes and travails of the programmer trolls and mostly dealing with how hard are our lives. Then, leaving it for a while to incubate (as is my wont upon occasion) I continued my reading on "Bach" - a rather large compendium on the boy and the man, Johan Sebastian Bach (there were many Germans in his area named Bach), dealing in minute detail with his life, friends, studies and teachers. At just before the age of 15 he left his home in Thurengia (as well as Ohrdruf and Eisenach) and traveled 200 miles (mostly on foot) north with his close friend who was 18 years old (Georg Erdman) to Luneburg, a city much larger (10,000 residents) than his native home of the Bach family. This was also so that the could be close to the town of Hamburg that was home to the largest and most fabulous organs in the world at that time. His study at St. Michael's church was very prestigious and each class consisted of only 20 noblemen's sons as well as a few highly-gifted singers and musicians.

Students at this Ritter-Academie studied
  • theology
  • philosophy
  • classics
  • ethics
  • politics
  • history
  • mathematics
  • physics
  • French
  • riding
  • fencing
  • dancing
All designed to turn out a well-rounded person in a program in keeping with the civil, military and social obligations of the German aristocracy. The academic year began at Easter and, in addition to the normal classes, Johan Sebastian Bach also had to study (for the first two years at age 15):
  • Leonhard Hutter's Compendium locorum theologicorum (Wittenberg , 1610) - a reference work that required a didactic memorization of questions and answers of a complex nature
  • Chrstoph Reyher's Systema logicum (Gotha, 1691) who first volume (Prolegomena logica de natura logicae) focuses on the definitions of fundamental terms
  • Heinrich Tolle's Rhetorica Gottingensis (Gottingen, 1680) - a concise summary of Aristotelian rhetoric
  • Latin Classes included Virgil's Bucolica and Aeneid, Book IV and Cicero's De Catinlina.
  • Further classes in Latin and Greek
  • Monograph on Alexander the Great by Quitus Curtius Rufus
  • Cicero's De officiis
  • Selections from Cicero's Epistolae
  • Horace's Carmina
  • Kebes of Thebe (Cebetis Tabula)
  • Phocylides
  • Isocrates
  • Theoginis
  • German Hisory
  • Geography
  • German Poetry
  • Mathematics (advanced)
  • Physics (advanced)
  • Modern History
  • Modern Geography
  • Modern Physics
And ALL is this was the "core" of their studies. In order to pay for this schooling they were members of (lowly paid) choirs - usually four or five - and played various parties and gatherings. In addition, they studied fencing, dancing and Sebastian taught himself Italian. All of this is contained in "Johan Sebastian BACH, The Learned Musician" by Christophf Wolff, ISBN 978-0-393-32256-9 ot 0-393-32256-4, depending on which ISBN numbering system is being used by the vendor. My copy was published by W. W. Norton, New York / London. They were very, very busy little boys (young men) who slept very little and ate whatever they could find in the up-scale courts and parties.

All of this to apologize for my earlier complaints that we lowly programming trolls might be overworked. Perhaps we are not worked hard enough and we are raised in a society that values the family and social groups more than one's own work and career. Whatever... I'm much too old to change now but perhaps this might inspire some younger folks to study more and play less? :-)


Monday, December 6, 2010

What is a Rule Repository?


What is a Rule Repository? What does it do? Why have one? Believe it or not, I actually went out to everyone in the industry that I could think of who might have an opinion, searched the web, went to my old text books on rulebased systems and this is all I can come up with. My friends came up with everything from “Who needs it if you have CVS?” to “Absolutely Critical and 50 reasons why you need it.” (Don’t panic – I won’t give you those 50 reason why.) But, all in all, it’s quite a bit like doing ITIL (Information Infrastructure Information Library) and SOA (Service Oriented Architecture); some do it and are quite good at it and can show a HUGE benefit from even getting started. (See InfoWorld Article on ITIL, 10/23/06, page 23+) on how to get started on ITIL and the one on getting started on SOA.) Meanwhile, others just don’t understand it at all. And there’s everything in between. So, here goes. Generally speaking, a Rule Repository is much like a source code control system with some really cool enhancements. First – what are a few of the things that a source code control system like CVS or Clear Case should provide for you?

  • Life cycle management, from creation to retirement and store the retirement
  • Version control, from to the latest pre-alpha
  • Audit trail. For Auditors and bookkeepers (The IT variant).
  • Who put what where, when did they put it there and the reason that they gave.
  • Check-out and check-in and privileges thereof

So, what should a Rule Repository give you other than that? Well, things like

  • Really, really fine-grained access management
  • Search for objects accessed during the last run of the rules
  • Search for objects not touched by the last run of the rules
  • Search for which rule fired the most on the last run
  • Search for which rule fired the most on the last ten or twenty runs of the rules,
  • Search for which rule never fired on the last run of the rules
  • Search for which rule never fired on the last ten or twenty runs of the rules
  • Search for which rule has NEVER fired
  • Search for which rules ALWAYS fire and how many times, average, for each one
  • Stepping through the rules with a debugger for each line in the rule (lots of overhead for this one) and this one is the trickiest of all
  • Tracking who put the rule into the system and why but more complex than CVS
  • Authorization for anyone to put rules into the system
  • And lots more…

Now why in the world would you need all of this (and more) clutter? Answer: Auditing for Sarbannes-Oxley, SOA, IT Auditing compliance, and, most of all, debugging of the system when something doesn’t go according to plan. If you’re using one of the "open systems", "free-ware" or "share-ware" versions like OPSJ, Jess or JBoss Rules you can always integrate the rules with the CVS or Clear Case. On the other hand, if you’re using the rich rule repositories of IBM/ILOG JRules or FICO Blaze Advisor then you will have laid the basic ground work for SOA, Sarbannes-Oxley or any other IT auditor who comes around. All you have to do is do it right the first time. Again, you might want to go read the article in InfoWorld and maybe something more recent.