Showing posts with label real. Show all posts
Showing posts with label real. Show all posts

Monday, June 26, 2017

Debugging Sparkl applications Pentaho JCR Repository Synchronizer real world example

Debugging Sparkl applications Pentaho JCR Repository Synchronizer real world example



Its undeniable that I really love the Sparkl concept - allows for very fast development of applications / extensions using technologies that we are very familiar with. And Im amazed by the quality of contributions that were recently done using it. BTable and AAAR are great examples.

Ill now show an example of how to debug and fix bugs in Sparkl apps. Youll see that its much, much easier than doing it at a java level where development knowledge is required

A real use case - Fixing a PRS bug



A user recently reported a bug to PRS (Pentaho Repository Synchronizer), saying it didnt work for him. After some investigation, we found out that the problem was caused by where his BA server was installed - something like "c:Program Files (64)pentaho..". Yeah, windows.... Still, a bug!

By changing my solution file to a file with weird chars, I was able to replicate the bug. This is what I see on the screen:


Clearly theres an error on the data that feeds that table. Lets figure out whats wrong then.

Identifying the problem in Sparkl


Starting from Sparkl, lets see what query feeds that table. Start by editing the Pentaho Repository Synchronizer project



In the elements, select the main dashboard and edit it


 By doing that, well go to CDE. Switching to the components, we can select the jcr2file table


We can see its using the diffTableQuery. In the datasources we can check which endpoint it refers too


So the culprit is the previewDifferences endpoint. Back to Sparkl, we can find that endpoint in the list


By running that endpoint (on this case the default values of the parameters work out of the box, on other cases we may need to explicitly pass them), well see the returning json:



This is clearly wrong. Its returning the full path to my file system. The paths should be relative to the repository (the stuff under repositorySynchronizer). So somewhere on the logic that is not being properly treated

Identifying the problem in PDI


All the backend of Sparkl applications is built using kettle. Theres physically a file called previewDifferences.ktr that we can simply open in PDI






Sparkl endpoints run the associated transformation and outputs the resultset thats on the step called OUTPUT. Theres a subtransformation there, we can inspect and execute it.

On the specific case of the PRS, in order to run the transformations we need to add some extra libs to the kettle lib dir, specifically libpensol.jar and libpenson.properties, that can be found in solution/system/repositorySynchronizer/resources/lib and some bi-platform jars (core, api and repository) that are in the bi server WEB-INF/lib.

When we run the list_and_compare transformation we see that we get the same output that we obtained through Sparkl:


This means that somewhere before theres something failing in doing the matches between what is on JCR and whats on the file system. After some previewing / investigation we see that the filename_without_location_dest isnt actually removing the main location!



Thats a UDJE snippet. Theres something wrong with it. The code is this:


It uses the following expression:

org.pentaho.di.core.vfs.KettleVFS.getInstance().getFileObject(filename).toString().replaceAll("\","/").replaceAll("^"+elementPath.replaceAll("\","/"),"")

Ah! It uses a regular expression! And our path has parenthesis. So this code is treating the parenthesis not as a literal character but an a regexp capture group. This is causing the problem.

Fixing the bug


Having this in mind, we can change this to a different form. I chose a more common substring:

org.pentaho.di.core.vfs.KettleVFS.getInstance().getFileObject(filename).toString().substring(elementPath.length())

By previewing this step we see that we get the expected result set - the file names without the initial repository location


Now if we go back to our dashboard, well be able to see if this actually fixed the initial problem


Et voila! Bug fixed, commited and a new version of PRS is now available for download.

I may be absolutely biased - but I do believe this is just awesome! :)




Read more »

Tuesday, April 7, 2015

Game 24 Chamber of the Sci Mutant Priestess Tyoo tor real

Raven Journal Entry 1: “Zorq has returned! The day we all hoped for has become a nightmare, as our unpleased god has gone on a rampage, imprisoning the people as his slaves within the Temple of Zorq under the watchful eye of the Protozorqs. I of course rebelled against this carnage, using my tuner powers to destroy any Protozorqs that stood in my way, but now my friend Sci Fi has been captured, so I had no choice but to let myself be captured also. I now find myself within the walls of the temple, tasked with completing the Five Ordeals and therefore collecting the five Vort Skulls. I have not yet succeeded in finding any, yet I cannot rest with only one hour to complete my task! Hold on Sci Fi...I am coming!"

 
Bubble on the Brain? What game am I playing?

I knew this game was going to be strange! The background documentation was truly bizarre, and the company behind it had a lot to do with that other French oddity, Captain Blood. Knowing it was going to be strange didn’t really prepare me for just how strange The Chamber of the Sci-Mutant Priestess really is though! You just wouldn’t see a game like this today, with game companies always playing it safe and copying tried and tested formulas. To even begin to describe the game is quite daunting to be honest, and I’m really going to have to run a bit of a tutorial to begin with so you know what the hell I’m talking about. Bear with me folks...and prepare to enter the Temple of Zorq!

 
Arent the Vorts the result of the peoples failed experiment? Zorqs experiment ate themselves!
 
The Chamber of the Sci-Mutant Priestess began with a bit of a presentation. I was given a quick run through of some of the important characters that I was likely to come across. Seven Protozorqs (at least I assume they are all Protozorqs) are displayed, along with some Vorts, with a short description of each. For those of you that didn’t read the background, here’s a summary.  Zorq (a God of sorts) came to “the people” (aka Offa) and impregnated a woman. The woman gave birth to children that ate themselves, and then Zorq flew away and left the people to choose a “Protizim” to rule until his return. The people selected a Protizim (Krill) and then another (Prass) after he died, and it was Protizim Prass that took it upon himself to create a new race to “obliterize” all other peoples. Needless to say, that didn’t go too well either, and the useless Vorts were the resulting offspring. Now Zorq has returned, and gone on a destructive rampage, turning the people into his slaves. Got it?

 
Wow! Ash has his arm back! Groovy!!!!
 
After the presentation, I found myself in The Master’s Orbit, confronted by The Master of Ordeals. I was tasked with passing the 5 Ordeals, and by doing so collect the 5 Vort skulls. I know from the manual that I have one hour to achieve this goal, and that I then have to put the skulls into something called The Changer. If I can manage it, I will become a Divo, will receive “the Egg”, and then be required to report to the “Chamber of Dreams”. The Master of Ordeals gave me a dagger, telling me that I would find the item useful “beyond the door called The Wall”. I was then left to figure out the interface, which I will briefly describe before getting on with the show.

 
So youre imprisoning me...and now youre helping me...hmmmm....

Let me start with the weird little pink creature in the top left corner. Looks like a foetus right? That’s because it is! His name is Gauss (or simply Foetus), and he’s a Hitachi-Gauss Amplifier, my telepathic link to the “tuner network”. He gives me hints as to what to do next, yet he does so in a rather cryptic way. It’s not unusual for him to say things like “sit you ation evolve ing norma lee” (situation evolving normally) and “sumbod een icefor wunss” (somebody nice for once). It’s a neat touch to be honest, with small hints available while still making me work for it at least a little bit. It does use up some Sci Energy to speak to Gauss though, which is vital for success in the game. What’s Sci Energy I hear you ask?! Well let me explain that next.

 
Gram ar andspel lingprob lemms canbee fixed withed youcasion

On the right hand side of the screen is a bar of icons, which are from top to bottom: Objects in the Room, Sci Powers, Possessions, Sci Energy Level, Wait, Load Game, Save Game and Time. The last four probably don’t need any explanation, but I’ll quickly run through the top four. It’s a sign of the game’s graphical limitations that an Objects in the Room button is required. Basically if there is any item anywhere in my current room, a red light shines on this icon. When I click on the icon, I can then see what the item is and interact with it. The object itself cannot be seen in the actual play area, which is pretty damn lazy, but probably for the best given how bad pixel hunting would be otherwise.

 
Well, having an Objects in the Room button sure solves the pixel hunting dilemma!

There are a total of eight Sci Powers available to be used at any time. They are: Solar Eyes (see in the dark), Sticky Fingers (climb on walls), Know Mind (read someone’s mind), Brainwarp (cause temporary stupidity in target), Zone Scan (reveal hidden items in a room), Sci Shift (move items with mind), Extreme Violence (go completely nuts on a target) and Tune In (getta hintfrom the effort less lee crypt ticgauss). At first I wondered how much use these were really going to have, but I soon found them to be critical to success. Basically I now enter any room and see what I can do in there unassisted, before seeing what information Gauss can give me, checking out the items I have that might help, before finally turning to the remaining Sci Powers as a last resort. It certainly gives me a few options to turn to when attempting to find a solution.

 
Its time for a bit of the old extreme violence!

The Possessions icon is basically my inventory, and I can click on any item within it and then choose an option from an alien looking menu system. Those options include things like Put In, Throw Away, Inspect etc. It’s crude, but it works. Finally there is the Sci Energy Level icon, which produces a beating heart that represents how much energy I have left. I haven’t yet got to a stage where I have no sci energy available, but then I’ve not been playing the game for very long. I don’t even know yet whether the energy recharges or once it’s gone, it’s gone, but I guess I’ll find out soon enough. Right, that should be enough explanation for you to have some idea what I’m talking about when I plunge you into the various temple rooms and start collecting skulls.

 
Apparently my sci powers are driven by my heart. Dont ask why!

So, I have a dagger that I need to use in a room called The Wall. Before I tried finding The Wall, I thought I should do what I’ve needed to do in every adventure game on the list so far. I’ll have a bit of a chat to the inhabitants and see what information I can get out of them. It quickly became apparent that these guys really didn’t want much to do with me. They all seemed to begrudgingly tell me that I needed to complete the five ordeals, but any further questions resulted in violence. I could kill one or two of them, particularly if I used the Extreme Violence sci power, but it always ended with me dying and having to start over again. Interestingly, every time I started again I was given a different item that would assist me in a different room!

 
No you die, mutant son of ape!

That piece of information is both a positive and a negative. It’s a positive because it means I can get a real sense as to how certain puzzles are solved (i.e. what item I might need) every time I restart. There seem to be four different items on offer, which are a dagger for The Wall, a goblet for The Twins, a rope for De Profundis, and a fly for The Scorpion’s Presence.  The negative is that it’s pretty much impossible for me to blog my exact experience through the game when I keep dying and starting again with a new item. I’ve decided the best way to approach Chamber of the Sci-Mutant Priestess is to focus on each item individually and the rooms they assist with. I assume that if I can figure out the secrets to each room, I might be able to figure out the correct path through them at a later stage. Speaking of rooms, here’s a map of the Zone of Ordeals to help you know where I am.


The Goblet

 
You wouldnt happen to have two goblets would you?
 
The second time I started the game I was given a goblet, which is apparently of use through the door called The Twins. Rather oddly, I was suddenly transferred to The Twins, without even having to find it. Within the room were a couple of serpent heads sticking out of a well and three doors. The door on the right apparently led to the Master’s Orbit (the starting room), the one on the left to The Source, and the one on the back wall to something called Who Will Be Saved? I decided to see what Gauss might have to say, but all he offered up was the word Inskripshun (Inscription). I couldn’t see any other items in the room that I could interact with, nor could I see anything that might have an inscription on it, so I focussed on the serpents.

 
The hand puppet show was just getting good when Gauss started banging on again!

My options available for each serpent were Inspect, Take, Shake and Open. Inspecting them resulting in “a beautiful bronze serpent with moving jaws”. Neither taking nor shaking them achieved anything, so all I was left with was “open”. I opened both the serpent mouths, then immediately wondered what I might need to put in them. The goblet suddenly sprung to mind, but since I had no liquid in it, I figured I’d probably have to hunt for something elsewhere. Intrigued by the strange name of the door in front of me, I tried entering Who Will be Saved?, only to be informed that “the door won’t open”. There was no point going back to the Master’s Orbit, so I entered The Source.

 
The synchronised serpent dying scene was a worthy climax!

Within the source was a serpent headed fountain in a bath, a plaque on the ground in front of it, and an inscription on the wall behind it. The “eureka” part of my brain started firing madly! Here was the inscription that Gauss had mentioned in The Twins, and there was also a bath containing liquid I could fill the goblet with and then pour into the serpent heads. The inscription said “one will drink, the other eat. And the passerby passes.” So it seemed pretty obvious that I was going to need to put liquid in one serpent head and some form of food in the other. What food though, and in which goes which? Before I tried filling the goblet, I investigated the plaque. I could touch, walk on, hit, lift, inspect or jump on it, so I tried all of them. Apart from discovering that the plaque is “really most lovely”, nothing happened.

 
So do I need to find beans, cabbage or onion?

I tried filling the goblet, and was surprised to find that “there’s no liquid here!” My options with the fountain were Take, Polish, Inspect, Talk, Smash and Climb On. When I inspected it I was told that “the eyes look worn out”. None of the other actions seemed to do anything, although polishing it resulted in “good”. I’m not certain whether it was inspecting it or polishing it, but all of a sudden I had the option to Press the Eye! Pressing it caused some liquid to flow from the serpent mouth into the bath, and I was then able to choose the goblet from my possessions and fill it up. I still couldn’t enter the Who Will Be Saved? room which also had a doorway from The Source, and I also had no idea what the plaque was for or what Gauss’ “inorder” comment might be about, so I went back to The Twins.

 
Some host you are!

I quickly emptied the goblet into the left serpent head and felt pretty satisfied when it filled it to the brim. Not only that, a small die appeared floating on the surface of the water. Before I could do anything, it disappeared down the serpent along with the water. I went back to the fountain to collect more water and when I returned and filled the serpent, this time I was ready to take the die as soon as it appeared. Awesome, I had a die!!! What the hell was I supposed to do with that? I threw it and it kept coming up with the number 2, but that didnt help. I eventually (after visiting other locations mind you) tried feeding the die to the second serpent, and was stunned that this was actually the solution! Once down, the door to Who Will Be Saved? unlocked!

 
The Dungeons and Dragons weekend came to a premature and traumatic end!

Obviously I haven’t taken you guys very far into the game yet, but I’ve spent so much time explaining the bizarre story and just as bizarre game mechanics, that I have to stop this post here. You’ll only need to wait a day or two to find out what was waiting for me in Who Will Be Saved?! I’m going to put my game time down as one hour, although I’ve actually spent closer to two exploring the various rooms so far. Writing the posts on the game this way will probably make me focus more intensely on each room instead of jumping about the way I was when I first started playing around. I really can’t comment on how I feel about the game just yet. I will say that there’s something oddly satisfying about the puzzles, but then some of it makes little sense at all. Only time will tell what the overruling level of enjoyment is.

Session Time: 1 hours 00 minutes
Total Time: 1 hours 00 minutes

Note Regarding Spoilers and Companion Assist Points: Ive recently written a set of rules regarding spoilers and companion assist points. Please read it here before making any comments that could be considered a spoiler in any way. The short of it is that no points will be given for hints or spoilers given in advance of me requiring one. Please...try not to spoil any part of the game for me...unless I really obviously need the help...or I specifically request assistance. In this instance, Ive not made any requests for assistance. Thanks!
Read more »

Sunday, April 5, 2015

Real Football Manager Edition Java Games Download For Mobile

Take your team in Real football manager edition to the victory. Choose a club among different leagues and teams. Make a training plan and an exclusive game tactics which will take you to the victory.To download Real football manager edition free java game, we recommend you to select your phone model, and then our system will choose the most suitable game files. Downloading is very simple: select the desired file and click "Java Real football manager edition - free download...!

Game features:



  • Many leagues and teams
  • Excellent graphics
  • Interesting playing process

 Real Football Manager Edition Java Games Screen Shot:

Real football manager edition


To download Real football manager edition free java game, we recommend you to select your phone model, and then our system will choose the most suitable game files. Downloading is very simple: select the desired file and click "Java Real football manager edition - free download", then select one of the ways you want to get the file. Just a few easy steps and will enjoy playing new game at your phone!
                                                                       




                                                               Click Here Download Now

                                                                                             
http://adf.ly/sLttY
 
Read more »

Saturday, April 4, 2015

Real free android games


Real free android games kern was the lye.




Free fixative echograms were assessing. Terret was pivoting. Fitly brawlsome erigerons viscerally reacts dangly under the viceregal nanowatt. Android bacterial real has online rediscovered. Breach games the pidgin.
Read more »

Tuesday, March 31, 2015

Real World Racing Z

Download Real World Racing Z Full

Game Real World Racing Z Full iSO Patch - 4 new zombie-ridden tracks set in London, Paris, Rome and Barcelona.. Zombie Carnage cash bonus on RWR:Z tracks. Real World Racing Z Full PC Game Download, Real World Racing Z Direct Link Game Torrent and Uppit, Firedrive, 180upload and more, Real World Racing Z original no repack.

Recommended System:

OS: Win7, Win 8, Win Vista, Windows XP, Win8.1
Processor: Intel Core i5 (or better)
Memory: 4 GB RAM
Graphics: Nvidia Geforce 560 Ti (or ATI equivalent) + DirectX Release
Network: Broadband Internet connection if online player
Hard Drive: 3 GB available space
Sound Card: Any compatible soundcard
Size game : 750MB 3Part
Release date 2014

Downloaded | Real World Racing Z Full Version
PC Games Real World Racing Z

Gameplay Real World Racing Z

Real World Racing Z iSO Torrent
Status | Tested & Played (Windows 7)
Read more »