Thursday, March 29, 2012

Day 3 de panne, double shift

Tour of de panne wrapped up with a lovely split shift consisting of a 115km rd stage in the morning followed by a 14km TT in the afternoon. Its been a fairly challenging few days of racing for me with re aquainting myself to the argy bargy of the peleton particually on the belgium footpaths we have been racing on. Unfortunately this has meant wasting a rediculous amount of useless energy just trying to hold my spot in the bunch, this ideally being toward the front. Coupled with that and the fact we have been traveling along at 45kmph average for the 550km of racing over the past 3 days, its has been quite a blowout to the system here in belgium.

So the morning stage started out easy enough with katusha keen to control from the gun for there man kristof whom was leading the race and indeed went onto win the stage. You know you are starting to gain your racing rythm when the bunch is roleing along at 50kmph and it feels normal so it was a relief to be enjoying this feeling as appose to the tank running empty struggle st feeling i had felt for the first half of the race. We did a lovely little circuit through the felmish country side before entering the finish lap around de panne itself. This circuit had its usual vast amount of rd furniture to avoid but also they threw in perhaps the craziest of them all, tram tracks! As we rounded a corner at 60kmph with 5km to go not only did the the rd half in its width but also running down the rd was 3 sets of tram lines or 6 in total. Consequently bikes were hopping and bouncing around left right and centre and while it only lasted 1km or so it was certainly a monsterous relief to get out the other side without meeting the pavement. It also became evident that we were not even on a rd, they had litteraly sent us down a tram only area so i gues i should be greatfull to the organises that there ensured no trams needed there stretch of tracks at that time!! In the rain the mind boggles at what could have occured. Anyway we all pretty much got accross the line safely and my team mate aaron kemps finished inside the top 10 in the sprint and is improving his placing every day so can expect a big result from him in the future. As the team spends some more time together also we will be able to assist him alot more which will help him alot, being a new group and specially in the european peleton we need to work really hard on working as a team as the big teams do it exceptionally well, anyways step by step but as always safety in numbers and as we learn to move about as one which comes with confidence and trust in each other we will inturn make some good improvements i feel.

In the afternoon was the more straightforward 15km time trial which before the race i had been looking forward to for a few reasons, 1st to test our new kestral TT rig and 2nd as i had done some good work on the TT early in the year and wanted to see if i was at all competative. after being left pretty empty following the 1st 3 stages i knew the TT was going to be a major suffer fest and thats how it turned out. in the end in a TT you can only give all you have and accept the result you achieve, in the end i was 1min of sylvain shavanel, i can perhaps see where i could have improved a bit but 1' gap i think i would have had trouble doing on a motor bike let alone a TT bike, he was certainly a class above. After he the 2nd place getter louie vuestra the field was with 35 sec to me in 23rd so i am atleast satisfied i was not completely out the back door and have a nice marker to improve on.

I am now off to tenerife for 2 weeks of altitude training with Ivan Basso to start preparing for the hilly stage races i have coming up, races which i feel will suit me a little more and especially with the amount of suffering i have had over the past few days in belgium i feel it has certainly sent some good reminders to my muscles and lungs of what is required at this level.

Time to get back on a plane

Cjw

Sent from my BlackBerry® wireless device

Wednesday, March 28, 2012

Day 2 de panne

Stage is all done and dusted and the predicted bunch sprint prevailed. I had a little more enjoyable day and even managed to get my lazy backside to the front of the bunch at an ideal time as quickstep decided to split the field in the crosswind. Being the first time i felt appart of the race all week i duly joined in and about 30 of us built a small gap for 10-15km. It is amazing how different you feel when a bit of adrenaline kicks in and you are up front, i felt like a completely different cyclist to the one that has been fighting for 100th wheel all race thus far looking for any opening on these flemish foot paths to move up a little. Anyway in the end vacansole and greenedge missed the split and eventually chased us down and from then on the bunch went back to idol pace and i resumed my position in the middle getting biffed from piller to post. Was first on the scene of a nasty crash with 1km to go so courtesy of the 3km rule was able to resume pedaling at a leasurely pace to the line and save a few bicsuits for tomorrows double day, 100km in the wind in the morning which is sure to be utter chaos and the stage i am most excited about, the 14km TT in the afternoon. Time for some rest



Cjw

Sent from my BlackBerry® wireless device

Tuesday, March 27, 2012

1st stage de panne

Today was the 1st stage of the 3 days of de panne, as the would indicate it consists of 3 days of racing in the de panne region of belgium. Like all races i am rapidly learning in belgium it is the most difficult flat land racing with of course a few sections of cobbles thrown in for added variety. Like my first race here last week, it took a blistering 100km of racing at 50kmph average before the first small breakaway was formed which on one hand was good as it only took 2hrs to cover 100km but on the other hand the lactate is already up to your eyeballs and you are only half way with the real race yet to start. Here position is key and to maintain good position on rds that in australia we would deem inadequate for a foot path, riding good position takes on a whole new meaning. Combine the fact that there are 200 riders on these medium strips!!! And you get real intense racing on all levels. The biggest issue i am having is that my prescription lenses are yet to arrive for my fancy new oakley's, when the gaps between you, other riders, the side of the rd and all the numerous obstacles the belgium council and inhabitents of the various villages we pass through put on the rd and i am far from feeling comfortable. As a result i am riding terrible position and as a result of that getting my backside apsolutely belted from piller to post and suffering like crazy for the privilige of getter demolished by the crafty and strong powerfull riders and teams. For example while i was 9min out the backside of the race today my old team mates at liquigas were up the front running 1st 3rd and 4th! How wide appart my world is from there's today. So with the crazyness of the rds and fighting eating in the race is becoming quite a challenge for me with my hands firmly fixed to the bars and me being very reluctant to take them off for a split second. This has resulted in me going lights out hunger flat with about 40km to go of a 200km race these past 2 days of racing and conveniently for me at the moment the racing really starts at the front. So got some work to do and experience to garner racing here in the heart of the flemish rds in belgium. Strangly i am actually loving it. I really enjoy suffering and going to limit, would prefer to be doing it up the front but for the moment that aint happening but i know with a bit more experience, my new prescription lenses so i can actually see where i am going, and perhaps finding some easy to consue fuel whilest bulleting along these goat tracks, i will be able to get myself a little closer to the front. Next year i will certainly be putting my hand up to have a nice big block of racing here as appose to the 4 days i will do this year as despite the suffering, humitiation and getting my backside apsolutely belted it is very addictive and a challenge i really aim to get the better of.

Stats for the day
200km in 4hrs 35min
152 heart rate average!! Saw north of 190 a few too many times!!!

Time for some sleep before no doubt another exciting adventure on the flemish footpaths tomorrow in stage 2.

Cjw

Sent from my BlackBerry® wireless device

Monday, March 26, 2012

"Politicians and The Price of Gasoline"


Last weekend I was honored to be a judge at the National History Day competition.  Why is it that Middle School kids understand what adults don’t:  that you can learn from history and, hopefully, not repeat the same mistakes?  Case in point, the tax on gasoline.

As gas prices push toward the $5 per gallon mark, politicians are trying to give the impression of doing something they cannot do:  get prices back down.  Politicians don’t set gas prices, the free market does.  But sometimes, in their haste to appear engaged, the pols do more harm than good.

Obama speaks in Oklahoma, saying he’ll fast-track the southern portion of the Keystone pipeline, even though the White House has no say on the already approved project. It’s political grandstanding, but harmless enough.

But in Hartford when the D’s and R’s get together and agree to mess with gas taxes, watch out.  This is no more than bipartisan pandering to motorists, which will end up hurting both drivers and the users of mass transit.   Here’s the story.

In Connecticut we pay about 49 cents a gallon in taxes… 25 cents in regular taxes and the balance in the Gross Receipts Tax paid by wholesalers and passed along to us at the pump.
The lawmakers want to put a cap on the Gross Receipts Tax for about a year, savings us about 1.7 cents a gallon.  That’s right… less than two cents.  

Pennies in savings, but at what cost?  Do lawmakers forget where the gas taxes go… and what happened the last time they cut gas taxes when Rowland was in office?

Here’s the math:  for every penny a gallon collected in gas taxes, $15 million goes into the Special Transportation Fund to pay for highway and bridge repairs, salt for winter roads and subsidies for mass transit, taking cars off the road.

That fund is already in trouble and could run out of money in two years, leading to talk about finding new sources of revenue… like tolls.  A political stunt like this gas-tax cap will save the average motorist pennies, but leave our highways in disrepair and push bus and train fares ever higher.

Even at $5 a gallon, gas in the US is cheap compared to the rest of the world.  Yet, we drive the biggest and least fuel efficient cars and moan at the cost.  Why do Americans think they have a God-given right to cheap gas?

Sure, gas in New Jersey is cheaper.  But they have tolls on their roads.  Pick your poison… taxes or tolls… because there is no free ride.

What’s driving gas prices higher is not state taxes but Wall Street speculation and geopolitics.  Why not do something to regulate investors betting gas prices will go higher and, in effect, making them do just that?

And when (not if) Israel attacks Iran and the Straits of Hormuz are closed, choking oil deliveries and sending gas to $8 to $10 a gallon, do lawmakers really think that a two cents a gallon saving in state gas taxes will mean anything except for less spending on our roads and rails?
Next time you’re driving on I-95 and wonder why the potholes aren’t filled or worry if the bridge you’re on might collapse, thank your elected officials in Hartford for their short-sighted penny pinching.

Wednesday, March 21, 2012

It’s not too late but it almost is

The set up

I know you’re all coming to KScope12, right?  Right.

Why?  Simply because it is the best combination of deep technical content, training, and networking the Oracle world has ever seen.  (Some call me biased, I call myself well informed, at least on this particular topic.)  I hear the parties are pretty good, too.

What, you’re coming to KScope12 and you haven’t signed up yet?  For shame.  
The horrible, horrible shame
The real shame is, by not signing up BEFORE
26 March 2012, you will have to pay an extra $300.

Who would want to do that?  No one I know.  C’mon, if you’ve got an extra $300, give it to me.  :)

The resolution where you, the hero of our story, are fully redeemed (and quite a bit richer)

Big secret – use my buddy/mentor/geek idol Tim Tow’s company code, AOLAP, and get another $100 off this week.  That’s $400 off the list price.  

Now are you going to sign up?  I hope so.  $400 is not exactly chump change and like I said, if you feel like $400 is insignificant to your pocketbook, take advantage of the early bird sign up and send me the dough, moolah, cabbage, dosh, etc.

As you’re all too smart for that, I’ll expect you’ll simply save yourself the unnecessary expense and enjoy Kscope12 that much more.  See you in San Antonio!

Sunday, March 18, 2012

Why I hate (and love) Calculation Manager, part 2

You had your (mostly) two minutes of hate.  Now what?  Ah, the love.

Honestly, I don’t hate Calculation Manager (CM).  There are some differences to HBR but what should anyone expect with a new product?  Of course it’s different.  And an awful lot of CM, from the Planning rule perspective, is quite nice.  So it’s time for love.

So is there anything new on the calculation front?

There sure is.  I’m not going to cover why a focused aggregation makes sense – you already know that because you either figured it out yourself (It came to me on a project in Binghamton, NY like a bolt of lightning and no, I have no idea why.  I wish I did because then maybe I could use that thinking process to come up with other good ideas which are, if I am being honest, far and few between.  A man can dream, can’t he?) or you read this post.  The theory still holds true.

There’s an issue with what I wrote almost three years ago (It is hard to believe it’s that long ago, but it is.)  What happens when there’s a shared rollup?  In this example, I have not so modestly named one “Cameron’s favorites.”  

We’ll get to that shared hierarchy but first a review of the focused aggregation approach.

Let’s review

Let’s take a look at the basic form (oooh, no more HTML – Smart View rocks!):

What the CM rule needs to do is only aggregate the ancestors of DVD Recorder and PA.  What does that code look like?


This is the same code as before.  I created application level variables for:  Year, Version, Scenario, Entity, and Segments.  The last one was a bit tricky but I described (erm, I stole it from another blog) above how to make it happen through creating a dummy variable, exporting it to xml, modifying the xml, and importing it back in in the previous CM post.

I deployed the rule from CM to the Planning app, and then assigned it to the form.  Move along folks, nothing to see here.  Okay, just for those who forgot, or haven’t bothered to read my two old HBR posts, I set the rule to Run on Save, Use Members on Data Form, and Hide Prompt to drive the run time prompts in my CM rule:


Remember those variables I set up in CM?  They are going to read that form.  Does it work?  Yep.

Here’s what the parent of DVD Recorder looks like in Planning ad-hoc mode:


I enter 1999 into the form and click on the Submit button.


And oh yes, I had one of these as a wee lad.  Looking back, I was (am) such a geek.  Destined for EPM, I think.  Clawing back to relevancy, let’s see what happens when I click on that Submit button.

And here’s what the data looks like after the save:


Does 287854 – 285855 = 1999?  Why yes it does.  

And how long does it take?  For those of you without the eyes of eagles, that’s 0.038 seconds.


How long does a CALC ALL take?  

 

Quite a difference, eh?  Even this limited calculation is quite a bit slower:








Again, for those who need spectacles, that’s 0.61 seconds.   

The focused aggregation takes 0.038 seconds.  That’s just over 6.2% of the time it takes to do the limited calc and just 0.36% as long as CALC ALL.  Pretty neat, eh?

But what about shared members?

This approach, alas, doesn’t work when you’re working with a shared rollup.  Not important you say?  Why not?  If you’ve entered data either in a shared rollup or in the base hierarchy, don’t you want to see the shared parent(s)?  @ANCESTORS and @IANCESTORS do not, unfortunately, handle this.  Let’s take a look at that approach.  

I modified the form so that only “Cameron’s favorites” shows up because I am a megalomaniac moron:












I then enter 1066 into the grid and click the Submit Data button:

And the result is:



Uh oh, the value should be 1,159,269, but Essbase/Planning returns 1,158,203.  What we need to do is bring in the new for 11.x @ALLANCESTORS and @IALLANCESTORS functions to the code.  Isn’t progress wonderful?
And what do we see?


The parent “Cameron’s favorites” now works.  Isn’t that nice?  But what about the real parent, “Electronics”?  Oh yes, it works as well.


And just a little bit slower – 0.056 seconds.  Which makes sense as more blocks are being calculated.

It’s all in the blocks

Or the number of blocks, to be more correct.  The fewer that are processed, the better, because disk access to read or write blocks is where an aggregation slows down.  Less blocks = less time, more blocks = more time.  Even I can follow this kind of logic.

For giggles, I used the SET MSG SUMMARY setting in the rules and then grabbed the following statistics from the application log.  Pretty eye opening, eh?  

Calc All

Total Block Created: [0.0000e+000] Blocks
Sparse Calculations: [2.3357e+004] Writes and [1.1164e+005] Reads
Dense Calculations: [1.0968e+004] Writes and [1.0968e+004] Reads
Sparse Calculations: [1.0695e+008] Cells
Dense Calculations: [2.6093e+007] Cells

NB – Ignore the dense calculations – that is because the sample application has an odd view of a BSO dense dimension (why exactly there are dense stored calculations is not known to me).  I (and you should, too, if you don’t already) only build fully dynamic dense Account dimensions.

Sparse calcs = 23,357 writes and 111,640 reads
Sparse calc cells = 106,950,000

FIX on AGG

Total Block Created: [0.0000e+000] Blocks
Sparse Calculations: [2.0330e+003] Writes and [6.8710e+003] Reads
Dense Calculations: [0.0000e+000] Writes and [0.0000e+000] Reads
Sparse Calculations: [9.3091e+006] Cells
Dense Calculations: [0.0000e+000] Cells

Sparse calcs = 2,330 writes and 6,871 reads
Sparse calc cells = 9,309,100

Focused Aggregation

First FIX

Total Block Created: [0.0000e+000] Blocks
Sparse Calculations: [8.0000e+000] Writes and [6.8000e+001] Reads
Dense Calculations: [0.0000e+000] Writes and [0.0000e+000] Reads
Sparse Calculations: [3.6632e+004] Cells
Dense Calculations: [0.0000e+000] Cells

Sparse calcs = 8 writes and 68 reads
Sparse calc cells = 36,632

Second FIX

Total Block Created: [0.0000e+000] Blocks
Sparse Calculations: [5.4000e+001] Writes and [2.0700e+002] Reads
Dense Calculations: [0.0000e+000] Writes and [0.0000e+000] Reads
Sparse Calculations: [2.4727e+005] Cells
Dense Calculations: [0.0000e+000] Cells

Sparse calcs = 54 writes and 207 reads
Sparse calc cells = 247,270

Total sparse calcs = 62 writes and 275 reads
Total sparse calc cells = 283,902

What’s my point?

To roll up a form, your code could process 23,357 writes and 111,640 reads (those are blocks, btw) or you could process 62 writes and 275 reads.  Which do you think is faster?

Reusable code

CM has a whole series of standard templates, mostly for use in graphical rules.  Actually, the graphical nature of a rule (you drag and drop objects into a flow) means that rules are a bit more like HBR Sequences although in fact CM has its own version of Sequences called RuleSets.  But tell me; isn’t this essentially stringing together multiple rules?  


Regardless, writing once, using many times is a good thing (unless you are in love with repeating the same code and maybe getting it wrong).  Let’s review how this is done in HBR before we go into CM and see what’s different.

Macros and Templates

HBR Macros

In HBR, there’s a (not used all that often from my experience) way to reference common code called a macro.  I like putting the focused aggregation script into a macro (or a template) as that code tends to get called again and again.  Putting it into a callable procedure means I can focus the unique code in each form and do the routine stuff simply by calling code.  

Here’s what it looks like in HBR:

















The macro mcrConsHBRConsolFocusedAggTemplate is just the focused aggregation code:


Parameters
If I want to get fancy, it’s easy to pass positional parameters to a HBR macro:

















On the receiving side of this macro it looks like this:















CM Templates
In essence, HBR macros are customized by you, the developer.  In CM, there are, as I mentioned, lots and lots of standard templates that do all kinds of interesting things.  Which I am going to ignore as you can go read the documentation far better than I can repackage it.  I will focus on Custom Defined Templates, or just plain old templates because I am just plain old Cameron.

Things are definitely a bit different in CM.  

Here’s what you can NEVER do in CM.  Or can you?

Being the generally ignorant kind of guy that I am (I have been called worse), my first instinct with a template was to drag it into the CM rule script.  Uh oh.
 Oh, that’s a nasty error.  But here’s the funny thing – if you deploy the rule, despite the nasty message, which looks just like the one where the RTP prompts weren’t valued, Failed to validate against Essbase. One or more unresolved RTPs found" [ID 1235676.1], it works.  I’m probably breaking all kinds of rules when I just drag and drop it but it works.

The approved way

Boo!  Hiss!  Who wants to do something the right way when hacking is available?  Oh, you mean people who don’t want to place their necks right on the chopping block and ask the executioner to swing the axe?  Nope, living out episode two of The Death of Mary Queen of Scots on Radio 4 isn’t a good idea.  So what is the right way?

It’s all graphical

It’s really a colossal pain, in my opinion, because you have to set the FIX statement in the first script.
 Then insert the template.

And finally insert the end FIX.  Not so easy to read as it requires a lot of clicking about.  But it does validate.  And I will note that this concept of using a flow chart to do this kind of thing is 100% the graphical CM way, so I guess I shouldn’t be surprised.

And one big thing you CAN’T do

I have to say there aren’t that many people out there that use parameters, but I have used it to drive rate types in HBR macros that calcuate currency conversion (one of these days I will blog that as well) for Planning applications.  

Remember this?

















And this?
















That ability to pass parameters simply can’t be done in CM.  My advice:  lobby Oracle to expand the functionality/don’t write code that works that way.  Such is life.

What’s your story, morning glory?

So is Calculation Manager (see, I am writing its full name for the end) a bust?  Nope, not at all.  Think of all of the Oracle components it addresses:
  • Financial Management
  • Essbase BSO
  • Essbase ASO
  • Oracle General Ledger (for Essbase)
  • Planning


That’s a fair bit more than HBR ever talked to (Essbase BSO + Planning).

And of course you can actually generate decent code with this graphical interface as opposed to the awful stuff that came out of HBR.

Did I mention that there are tons of predefined templates?

Did I also mention that if you use EPMA for Planning, you must use Calc Manager?  But if you’re using EPMA, you knew that already, and are using it.

While only time will tell if this is true or just a random rumor I picked up, it sounds like there’s a good chance EPM 11.1.2.2 is going to force you to move to Calc Manager even if you use Classic Planning.

And of course there certainly are a whole bunch of cool things in Calc Manger – I am a big fan of the way it organizes rules, variables, and just about everything else in a hierarchical manner,  of course no more inability to select an outline as HBR has suffered literally for years and no more insanely long Hungarian notation naming conventions as in Hyperion Businsess Rules.

All in all Calc Manager does bring quite a few things to the table.  I hope you’ve enjoyed this trip down Calc Manager lane, and maybe even learned a few things or two.  We even got a few unauthorized hacks in there as well to make life interesting.

And yes, I lurve you, Calculation Manager.  :)

Popular Posts