The Cameroon Airlines Corporation, trading as Camair-Co, is an airline from Cameroon, serving as flag carrier of the country, a role which was previously filled ...
Wednesday, December 28, 2011
Metro-North's "Passenger Pledge"
Wednesday, December 21, 2011
Anyway within my allotted time frame managed to find an ice cream maker, board shorts, face and cream, beach towel, gym cloaths and polo shirts, the best part had most of them gift wrapped thanks to gold coin donations for charities, great initiative.
Time for a massage to recover from the mornings TT session and my 30min of shopping madness!!
Cjw
Sent from my BlackBerry® wireless device
Saturday, December 17, 2011
Stupid Programming Tricks #9
Keeping it G-Rated
I have a focus problem – no, that’s not the part that is G-Rated. My focus problem is that I jump around so many technologies I sometimes tie myself into knots trying to figure what should be, and maybe are, simple things. No, that’s not bragging, more like an expression of frustration. But it’s all fun, right? Right? My hat is off to those who find this stuff easy, ‘cause that for sure ain’t yr. obdnt. srvnt.
So with the warning to myself to keep both the whinging and the cursing to a minimum, let us proceed with an ODI Stupid Trick.
Going faster miles an hour
Oh dear, that version is NSFW. But you have to give the Pistols artistic license. And it’s a fairly good comment on how much this issue frosted my cookies.
So I am working on my Essbase Special Project using ODI 11.1.1.5 and all is going swimmingly, sort of. I’m even doing it all in the Cloud. So what?
I had a Procedure that logs process status to a table (too many steps for emails). I wanted one of the fields to be appname.dbname with those values passed by #VAR_AppName and #VAR_DbName. I had these defined as Alphanumeric variables, No History, with a default value initially of ASOSamp and Sample; I subsequently set these to blank because I wanted to assign them via a Load Plan. In any case, these were set to Declare Variables in my Package and off I went.
The problem
Except that some of the Procedures that used these variables didn't change their value. Odd. I deleted the variables from the Package and readded them and regenerated the Scenario(s). Nope, still stuck, actually, no, only one of them. Huh?
The Stupid ODI Trick, and yes, it was just luck that I found it
After a lot of experimentation which I believe included scratching my head and rubbing my belly while typing (that's hard to do with one’s nose but I managed it), I was just about ready to delete the silly things (this would NOT have been a trivial exercise as they are used through the Project) when I came across this (unanswered) post on OTN’s ODI forum by Steve Truesdale:
https://forums.oracle.com/forums/thread.jspa?messageID=9973095�
Which then led me to these two (instructive) links:
http://public.sttruesdale.fastmail.fm/ODI%20Variables%20-%20with%20History%20-%20Prompt%20at%20Runtime.png
http://public.sttruesdale.fastmail.fm/ODI%20Variables%20-%20No%20History.png
Simple, right? :) Just like everything else in ODI.
Nuke the entire site from orbit, it’s the only way to be sure
Channeling my inner Ripley, looking at the diagrams made me think -- I can't get that !@#$ing variable (whoops, so much for the G-rating) to change its value -- what if I changed its type from Alphanumeric to Numeric or Date or Text? One of those ought to be an illegal type conversion and make the value GO AWAY.
And so it was.
Sigh.
At least the variables value now in the Load Plan, just the way they ought to. That was NOT intuitive, but at least it worked.
Quiet Cars Finally Arrive On Metro-North In Connecticut
Wednesday, December 7, 2011
Two (no three) tips from Oracle Support
Introduction or who am I, anyway?
I like things that come in threes. Perhaps my OTN handle should be “RD” instead of “CL”.By the way, Rene Descartes had three dreams that drove him to pursue science. FWIW, I had dreams (all too real) of working in a mainframe Adabas shop (that was subsequently off-shored) forever – I ran to the tender embrace of OLAP just as fast as I could. I wasn’t always an idiot as a recent college graduate – just mostly. As for what I am now I leave it for you to decide. Good grief, what a digression that was. Okay, the rest of this post is actually useful stuff.
Information Center
Would you like to have all of your EPM (and related BI) Support goodness wrapped into one package so you didn’t have to chase hither and yon, looking for specific articles? How about a single location that’s even more consolidated than the Master Note Indexes and Oracle Advisors? What, you like searching through Support? Uh-huh, you were only joshing me.There is now one single place to get:
- EPM/BI Release News
- Enterprise Performance Management Smart View 11.1.2.1.102
- Oracle Business Intelligence Enterprise Edition 10.1.3.4.2
- Oracle Business Intelligence Enterprise Edition 11.1.1.5.1
- Oracle Blogs
- Webcasts
- Did You Know
- Support Tips
- Oracle Documentation
- OBIEE - News Articles
- Voice of the Customer Program
- EPM Defects Fixed Finder
- Product Advisors
- EPM System Cumulative Feature Overview Tool
- Information Centers
- Communities: EPM and BI
- My Oracle Support 5.4
- Documentation and Whitepapers
- Oracle Support Policy Information
- Social Media
- Other Oracle Support Newsletters
- Newsletter Subscription and Feedback
And there’s more than the above, a lot more. I think I could easily spend a month (or maybe more like a quarter) exploring all of the goodies on this page.
Pretty nifty, eh? And how do you find this treasure trove, that is, by the by, updated every quarter?
Go right here to find out more:
EPM and BI Support Newsletter Current Edition - Volume 2 : December 2011 (Doc ID 1347131.1)
ODI is left out, but there’s still great stuff for it
I’m working on a Special Project using ODI right now and it has been an interesting experience. I’m pretty sure productivity in ODI = being beaten down by the product’s obtuseness, arbitrary nature, and just plain weirdness and then getting built back up by its awesomeness. I guess it’s sort of like the Army’s BCT except we ODI developers don’t run around to a cadence march or yell Hooah! I digress yet again. Regardless, ODI really is very powerful but anyone who doesn’t use it as part of his "normal" (can normal be used with me?) job can use all the help available.ODI isn’t part of the EPM and BI newsletter, but here are three articles for you to obsess about. What, you don’t do that when I post this stuff? For shame.
- Oracle Hyperion Essbase and ODI (Doc ID 1089114.1)
- Oracle Hyperion Financial Management and Oracle Data Integrator (ODI) (Doc ID 1073272.1)
- Oracle Hyperion Planning and Oracle Data Integrator (ODI) (Doc ID 1076220.1)
There is a lot of good information in these notes – I wish I had known about them before I began my Journey of Pain that is ODI 11.1.1.5.
HTML rules, Flash, not so much
Oracle Support has this whiz-bang, super-duper web site full of all kinds of nifty interface functionality. This is good.If you are on a slow PC or a slow internet connection, it is S-L-O-W. This is bad. Do it on a laptop tethered to your mobile phone as an internet gateway and it is beyond slow. Pouring molasses on a cold New England’s winter morn comes time mind as a barely-adequate analogy.
There is another way to get into Oracle Support’s web page and if you clicked on the above link, you’ve already experienced it – it is https://supporthtml.oracle.com. All of the same great content, 100x (it is possible I am employing hyperbole to make the point, but it is fast) the UI speed. What’s not to like?
And that’s it, for now
Yet again, Oracle Support does their very best to make our lives a little bit easier. I for one am thrilled that this kind of consolidated information is making its way to us. These products areI don’t know who in Support is responsible for supporthtml.oracle.com, but whoever that is – thanks, you are a life saver.
Monday, December 5, 2011
Winter on Metro-North
Tuesday, November 29, 2011
Time off to recharge and reload
During this little break it's a great time for me to spend as much time as possible with my beautiful girlfriend Jess, plenty of rounds of golf, some time helping out at my old school Hutchins with there rowing and cycling programs and plenty of coffee catchups with my pals about town. Jess recently brought a new home so its been great to have some time to help her digging up dirt and planting trees in the garden as well as some odd jobs about the place, all activities designed to bring couples closer together through renovating!!!!! Golf is a huge passion of mine and I really enjoy getting down to the royal Hobart golf club as much as possible to sharpen up my rusty swing after the season on the bike and also catch up with all the great members I have the honor of playing with on Wednesday's and Saturday's in the members comp. It is nice to use the mental energy I usually use thinking about cycling and channeling it into improving my game, being nice and relaxed and comfortable with the fact that I don't need to be any good at golf has meant that as I have improved in my cycling I have made equal improvments to my golf and getting my handicap down to single figures, all be it just at 9, which I put down to the improvements I feel I have made learning how to learn. This year I certainly learnt more than ever on the bike and I certainly find that my analysis of what I do on the golf course to improve my game has benefited so I have enjoyed that.
Next stop for on my break time is back to the hutchins school to help out where I can. The school has the number 1 u19 rowing program based on last years national championships and I love helping out and being involved there. Also they have recently added a cycling program aswell s the tasmanian institute of sport u17 development program based there so it is really a thriving sporting hub for school boys. For the record the school is also #1 in the state for academics so the priorities are certainly in the right spot and I certainly make it very clear to the kids that there education is the most important thing and then sport, I must be getting old!! Its really great and in many ways inspiring watching the kids push themselves and show such a passion to learn. It helps me to look harder at what I am doing swell as it is always easier to demonstrate things than putting it into words so the content new challenge of teaching is something I really enjoy. Seeing the kids improve and get excited about there achievements is really gratifying and likewise the challenges that crop up with the pressures of coaching. All in all it's a great activity for the off season as it is not only physically draining and tiring, the return to 5am mornings to help out at the rowing sheds is not something I miss, but the added mental fatigue by constantly thinking of ways to help up to 10 kids at once really give me a massive appreciation for what great job our teachers must do being able to deal with this day in day out year after year. Along with the coaching I was honored to be the guest of honor at there annual awards assembly where I handed out the numerous awards and did the closing speech. Doing a speech in front of so many does not seem like such a daunting task as from time to time interviews are just part and parcel of life as a sportsman, the only but major difference is you are simply answering questions during interviews so half the work is done for you whereas when you write a speech you have to do all the work yourself. So after about 300 pages of ultimately useless notes in preparation I had finally narrowed it down to one page of dot points and it seemed to go all ok. Most importantly I got some laughs which I think is always a nice feeling when delivering a speech, you know at least for that moment the audience is actually listening. All good practice none the less.
So now it's back to work and into the daily training regime. The first couple of weeks are always a bit painful as the body has forgotten what exercise is to a large extent but this is exactly what you want to feel. It means that you can also trick you body into thinking you are back in great shape within a few weeks cause you feel so much better than when you got started again, unfortunately the power meter is always a little reality check of where you are at really. I certainly feel the best I have ever felt following a season of racing and feel like I am starting from a good base, each year I seem to start out a little bit ahead of where I was at the same time 12 months before, a combination I guess of exposure to the higher level of racing and also the body learning to recover and also rebuild following the seasons racing. So with that in mind it's full gas in preparations with my first major race of the season at the national championships in early January.
Cue
Sent from my iPad
Sunday, November 27, 2011
AWS tricks #2 -- Treating that AWS instance as a real server
Introduction
I really like Amazon Web Services for development purposes. It’s fast (enough), big (more than enough), and flexible (ah, just right) for my purposes. What do you do with it? Have you given any thought to treating that AWS EC2 instance (that’s an Amazon Web Services Elastic Computing Cloud virtual machine for the uninitiated) as a full-fledged server?
Splendid isolation
One approach, per the my earlier post, is to install all client software, including Microsoft Excel, on the server and just use Remote Desktop Connection (RDC) to connect to that EPM cloud instance. This is a great approach if you are the only user of the instance (like me in my development/kick the tires/play with the product till you understand it usage). But what happens when you want to collaborate with someone else or have multiple users check out the awesomeness that is your Essbase/Planning/HFM/Profitability/Close Management/Profitability/Studio/ODI/etc./etc./etc. work?
No geek is an island
Amazon Web Services (AWS) is predicated on servers, and after all the EPM software is server-based – why not treat your instance like a server and your PC like a client? While connecting as a client to your EPM instance in the cloud is slightly harder than connecting to a server down the hall, it is easier than you think and requires just a few changes to the AWS Security Group.
And of course there is a huge benefit – more than one person, e.g., your customers, be they internal or external, can connect to the EPM server. You do like to share, right?
Requirements
You must have:
- A valid AWS id
- An already created security group
- A PC with Excel 2007 or 2010 (2003 is also supported but the examples show 2007/2010’s ribbon interface)
- Already read the most-read (Google Analytics tells all) post I have ever written
- Microsoft’s Remote Desktop Connection (RDC). This client is standard in Windows; Macintosh users go here: http://www.microsoft.com/mac/remote-desktop-client)
- Time and a willingness to experiment :)
Make sure you do not have Smart View installed as its download and installation is covered below.
Understanding AWS Security Groups
Ports
Security groups are used to define the open ports between an Amazon Web Services (AWS) instance and its clients. By default all server ports are closed by Amazon’s firewall. These ports must be opened for a client to connect to the instance.
As was illustrated in the “Yeah, yeah 11.1.2.1 is here, so what?” instructions, managing the AWS Windows instance required port 3389 to be opened to allow RDC to connect.
IP addresses
AWS provides a powerful method to limit unauthorized connection to an instance – internet protocol (IP) address filtering. In essence, AWS allows you to do define which client external IP addresses will connect to a given instance. It can be the whole world, or it can be just the EPM users in a given location or company.
This external IP address is not the same as your PC’s internal address on the LAN – it is the address the outside world sees and interacts with; usually one address is shared for a given organization or location. Sophisticated AWS security is beyond the scope of this post (not to mention my abilities) but to get a taste of what is possible, investigate Amazon’s Virtual Private Cloud and the Elastic IP component of Elastic Compute Cloud for more information.
For simplicity, this document will use a 0.0.0.0 IP address, as did the 11.1.2.1 instructions. In AWS, a source IP address of 0.0.0.0 allows connectivity from and to all client IP addresses on the internet, including the ones belonging to those nasty people who do nothing but troll the ‘net looking for vulnerable servers. You do not want to use this completely open IP address range for anything other than training purposes. Figuring out your public IP address is easy; here is one site that provides this free service: http://whatismyipaddress.com/ip-lookup
One final note on wide open IP addresses -- when the authors connect to AWS, whether it be from work or home, they always use their public IP address, never 0.0.0.0.
Opening up the ports
A good test of true client/server connectivity is Smart View against Essbase. Smart View uses ports 19000 for shared connections and 13080 for Essbase private connections. If you set up your security group as described in the post-I-am-mentioning-yet-again, the only open port in your AWS security group will be Remote Desktop’s 3389.
Modifying the Security Group
You will need to expand the open ports by first logging in to AWS’s Elastic Compute Cloud (EC2) console and then clicking on the Security Groups link:
Once in the group, in this case it is called KScopeTest, click on the Inbound tab:
Adding port 19000
You will see port 3389 already open. To add port 19000, type in the port number in the Port range field and then the Add Rule button:
Adding port 13080
Do the same for the private connections on port 13080:
You can click on the Apply Rule Changes button at any time to commit the new port number; you must do so at the end of the port addition steps.
Knowing when to connect
As you know, it can be hard to determine when an AWS instance has started up after launch from an Amazon Machine Image (AMI). The AWS console instance information is limited to four states: terminated, stopped, pending, and started. Started means just what it says – the instance is started, but all that really means initially is that the server has been turned on, not that you can connect.
When an instance has not fully booted, it cannot accept connections; the only way to know if you can connect or not is to try.
Ping comes to the rescue
One way to gain some insight into whether an instance can be connected to is to see if basic networking protocols can be used, e.g, pinging the box using the ping utility. However, by default AWS instances can not be pinged because the protocol that allows ping and traceroute is disabled. Thus a further modification of the security group is required to allow ping from your client to reach the AWS instance.
To do this, click on the Create an new rule dropdown and select Custom ICMP rule:
When you select Custom ICMP rule, the Type dropdown automatically switches to All.
Click on the Add Rule button to add the ICMP ports. You must also click on the Apply Rule Changes button to commit the port changes.
Once committed, the Security Group should look like the following:
Port review
Port | Purpose |
ICMP/All | Allow ping, traceroute, etc. |
3389 | Allow Remote Desktop connection |
13080 | Smart View private connections to Essbase |
19000 | Smart View shared connections, Workspace, etc. |
We have only opened the ports required for connection: ICMP, 3389, 13080, and 19000.
As an example of port access, if your EPM instance were to support the classic Essbase Excel add-in, add port 1423 to allow connecting to Essbase and ports 32768 through 32778 to allow connections to the Essbase agent and databases.
As a general rule of firewall security, only open the ports needed for your work.
Launch that instance
The detail and rationale behind the steps required to launch an instance were covered in the post-whose-name-must-not-be-mentioned-lest-we-all-go-mad; refer to it for background. If you dare.
Which one?
For the purposes of this example, John Booth’s free and public EPM 11.1.2.1 AMI will be used. You can find out all about the AMI at http://www.metavero.com.
3…2…1…launch!
To find and then launch that AMI, enter the AMI id ami-de2bd4b7 in the filtering textbox in the AMI section of the EC2 console and click on the Refresh button.
Once it appears, right click on the AMI name and select Launch Instance. Make sure you use the Security Group KScopeTest you previously created.
Follow the Launch Instance wizard (see the below for the kinds of selections you should make) and at the Review step start the instance by clicking on the Launch button.
Two ways to see if the instance is really ready
Approach #1 – Check System Log
Right click on the instance and select “Get System Log”.
Review the log
Remember, you are firing up a Windows 2008 server. It is not going to be fast. Give yourself time to get a cup of coffee. In fact, you can likely dump the grounds, scrub the filter basket, put in a new filter, measure out the coffee grounds, put in fresh water, and hit the start button and wait for that delicious pot of Life Blood. In other words, there is likely a 10 to 15 minute wait ahead of you.
You will eventually see something like the below; you may need to check back several times. When you do see it, the log is telling you the truth – you can now connect via RDC.
Approach #2 – Ping the server
Checking the system log is all very well, but it can require multiple tests to ascertain if the instance is strated.
Instead, the familiar ping command can be used to go against the instance – when Windows has booted, the ping command will be echoed back to your client.
Get the DNS name
Once the AMI is launched, grab the public DNS name by trying to connect to the Instance. Yes, that instance will almost certainly not be ready to connect to – you are just going through the motions to get the address.
Right click on the instance name and select Connect.
The AWS console will show the DNS name. Copy that to the clipboard.
Ping from the comand line
Start up a command window, and then enter ping DNSname. In the case of the above DNS address (every launched instance will have a different one and yours will not match the above), the command would be ping ec2-184-73-120-11.compute-1.amazonaws.com
Although a successful reply from the instance is not complete proof that Windows is ready receive Remote Desktop connections, it is a good gauge that the EC2 instance and related Elastic Block Storage (EBS) drive have been created from the AMI and that the OS is in the process of booting up.
This is one of those differences between a GUI and a command line – the GUI requires you to act again and again, while the command line just keeps chugging away until it receives a reply. Which would you rather do?
Connect via Remote Desktop
Once you get a reply from your ping command or from the Get System Log menu, connecti via Remote Desktop by going back to that AWS dialog box and then clicking on the Download shortcut file link.
In Firefox, Remote Desktop will open the .rdp (a config file for RDC) file.
A scary message will ensue. Ignore it – this has nothing to do with AWS and is intead a feature of Windows 7/Remote Desktop.
Enter the password “epmtestdrive”.
Another scary message pops up – again this can be ignored by clicking on the Yes button.
When you have connected to your instance, minimize your Remote Desktop window as you will now connect from your client PC.
Connecting to an EC2 EPM image from your PC
Prove that Workspace is running
On your client PC, launch a browser instance (this example shows Internet Explorer as Workspace is optimized for that browser) and create a url to launch Workspace.
The normal Workspace url is:
http://servername:19000/workspace/index.jsp
The public DNS name of this instance is ec2-184-73-120-11.compute-1.amazonaws.com.
Incorporate the DNS name into the url as follows (remember, in your case the DNS name will be whatever Amazon assigns to the instance):
http://ec2-184-73-120-11.compute-1.amazonaws.com:19000/workspace/index.jsp
Type that url into the browser’s address bar and hit the Enter key. If all of the services are running on the AWS instance, you should see the below Workspace login screen.
Enter a username of admin and a password of epmtestdrive and you will see the familiar Workspace home page.
Download SmartView
The goal is to connect Smart View, not Workspace. Navigate to the Workspace Tools menu, select Install, and then Smart View. This will begin the download to your client PC.
NB – This guide assumes that Smart View is not installed. If it is, unistall it to follow the remaining steps.
Internet Explorer will prompt for a save location for Smart View.exe.
Install Smart View
Once saved, navigate to the same location and right click on SmartView.exe and select Run as administrator.
Vista and Windows 7’s User Account Control will ask if you really want to run this file – you do.
Click on Run and the installation process will begin.
Pick a language – in the case of this guide, that is English (United States) and click on OK. The installation process will begin.
The installation process begins…
Follow the wizard all the way through to the end.
Launch your PC’s local copy of Excel – you should see the Smart View ribbon.
Defining the Application Provider Services (APS) address
After going to the Smart View ribbon, click on the Open button and then the Shared Connections link in the Connection Manager. Smart View will surface a dialog box asking you to modify the url for Shared Services. Smart View connects to Essbase through APS – this is the address you are really providing.
In the case of this EPM instance, all services are installed on a single server.
The default url is: http://server:port/workspace/Smart ViewProviders
Using the same DNS name that was used to ping the server and to connect to Workspace, change that URL to (again, your DNS name will differ from the below):
http://ec2-184-73-120-11.compute-1.amazonaws.com:19000/workspace/Smart ViewProviders
Paste it into the Shared Connections URL dialog box in Smart View’s Options dialog box.
Smart View will then show the Connect to Data Source dialog box. Enter the same username and password of admin and epmtestdrive and then click on Connect.
Now go into Connection Manager and click on the server drop down to define an Essbase server.
Then click on the Add new server dropdown.
Paste in the public DNS name of: ec2-184-73-120-11.compute-1.amazonaws.com and click on OK.
Smart View will show you the Essbase service in your instance. Below are the sample applications that come with Essbase.
From here on out, you can connect to Essbase just as if the server was in your data center.
It’s the same Essbase you know and love, only in the cloud. It really is that easy.
When you are done
AWS instances are billed by the hour – if there is no usage, nor is it anticipated, it might be in your best interest to stop the server.
If you want to retain your work you have two choices:
1) Stop (not terminate) your server via the EC2 console. This is akin to shutting down your server. You can bring it up at any time and will incur small storage costs based on size of $0.10 per gigabyte month.
2) Create an AMI (coming soon on this blog) from the instance and Terminate the instance. Charges for AMI storage are slightly less than EC2’s EBS model, but mean that you have to launch the AMI and manage multiple AMI copies.
If this was throwaway work, simply terminate the instance. Remember, there is no going back to the data once the instance has been terminated.
DNS changes
Once you stop (or create an AMI and terminate the source instance) the instance, the public DNS name will be lost. On subsequent startup, you will need to rename Smart View’s APS server name.
One way around this is to use AWS’ Elastic IP service; find out more about it here: http://aws.amazon.com/ec2/ Elastic IP will allow you define a static IP address and AWS will map the dynamic IP address to that static one so that clients do not have to change their server names; there are further configuration steps beyond the scope of this guide – search the web for more information.
Two alternate DNS providers are:
http://www.dyndns.com/services/dns/dyndns/
Conclusion
What do you now have?
- A fully functioning Essbase server in the cloud that you, and your colleagues, can use for any purpose Essbase might fill.
- A test server that can be created in minutes for experimentation when your development server is unavailable.
- A platform for learning the features of the very latest EPM release.
- A server that can be almost instantly adjusted, whether it be the number of CPUs, the amount oF RAM, or the hard drive size.
All for mere pennies an hour.
Popular Posts
-
EPM in Massachusetts Another EPM meetup, another success. Monotonous, isn’t it? Here’s Mark Rinaldi and Norman Williams kicking off th...
-
What happens when a good idea goes bad? Consider Metro-North’s “Quiet Car” initiative. Sixteen years ago a group of regular commuters on Am...
-
With the arrival of winter, now is the time to be sure you’re ready to stay mobile, whatever Mother Nature may throw at us. Here are a few ...
-
I am an installation drama queen Corvus brachyrhynchos is a delicious meal, especially when garnished with a rosemary sprig. Why would I...
-
Introduction Writing this blog post was an absolute stinker. It really is a pity (at least from my bank account’s perspective) that I don’t...
-
Quiet day here in burgos today. It was one of those days where the 175km seemed to pass in the blink of an eye. Infact it was not until we c...
-
Riders on Metro-North just got an early holiday gift from the railroad and CDOT: a bright, shiny new train set… not toy, but real! We’ve...
-
Tired of paying $4+ a gallon for gasoline? Well, your pain has just begun. For decades we’ve lived (and driven) in denial, somehow assum...
-
A triumph, a warning, and a lament Yes, it’s another one of my “All of Gaul is divided into three parts” posts. Or maybe it’s my Descartesi...
-
If you’re not here, you don’t know what you’re missing Sunday at ODTUG Kscope14 is where Oracle let down their collective hair and tell us, ...