Category Archives: Development

Kscope15, a celebration of tech…


Kscope15 promised to be a brand new experience in more than one way.

Kscope15LogoAs I start to write this report, I am flying from Düsseldorf airport to Atlanta. It will be the first time flying to the United States with a stopover, and because of Erik van Roon, I came prepared. With just carry-on luggage, I should end up at my final destination, Fort Lauderdale, Florida, together with my ‘stuff’. I am flying Delta Airlines this time, and for an airline that promises just a ‘lunch’ during the 9 hours flight, they do come up with a lot of food…

My colleagues of FOEX have already arrived at the event-venue and are setting up our booth.

On arrival at Fort Lauderdale airport, I am scheduled to meet-up with distinguished product manager for PL/SQL and EBR, Bryn Llewellyn. From there, we would travel to Hallandale Beach to check into our hotels. This plan was only hindered by sheer force of wind shear at Atlanta International, which delayed my flight.

The first day, the Sunday, started off with a boiling walk to the Diplomat hotel. Upon registration I was pleasantly surprised that FOEX had graciously upgraded my conference pass to a full pass, which is cool as I get to attend sessions! And the kind ladies of ODTUG had even attached an ACE Associate ribbon to my name-tag, of which I am kind of proud.

I had so many cool meet-ups and run-ins at Kscope. Just to name a few new friends in no particular order:

Of course I spent most of my time in the APEX and database development tracks. If you look at the momentum that APEX is generating, I think we can safely say that we are making a difference… We can say with confidence: #LetsWreckThisTogether!

The “together” bit was beautifully expressed by Joel Kallman as you could hear a pin drop when Carl Backstrom and Scott Spadafore of the APEX team were remembered…

But still there is a lot of work that has to be done to further spread the word on APEX. I guess I have had at least 4 conversations where I had the opportunity to talk about and explain APEX to people who were still oblivious. That is one of the most rewarding this to do.

Nikki beachThe week passed so quickly and most experiences are becoming great memories very quickly now. The countless meet ups with friend and heroes from the Oracle world, the white party at Nikki Beach and the after party at The Mansion and of course the Oracle content which was dished out with great quality.

Just on more thing… Travelling Über is the best! I have been doing this in San Francisco and used the service here to get back to the airport. Why would you take a taxi with this service around? Because of the way it works, the drivers I have met, have been much more friendly than regular ‘cabbies’. I would recommend this any day.

So, now I am heading home, hanging in the sky somewhere between Fort Lauderdale and Atlanta. Thinking back on Roel’s blog post on his first Kscope… will this have changed my life? Quite possibly, but on the other hand things could not get much more crazy than they have been over the last 6 to 12 months!!

If you are looking to read up on the business side of things, please check out the FOEX blog!

Please also don’t forget to check out the #Kscope15 hash tag on Twitter and remember, when you are at an Oracle conference, also use the #orclconf as additional hash tag. This will help to make it even easier to follow your favorite tech-community on-line!


Register redo-log manually with Divisit Replicate

For those of you who haven’t been working with on-line data replication; in short, it is a way to copy data from a source database to a target database and do this on-line (both databases are active) and do it near-real-time.
This means that when you enter data in you source database, you can immediately query it from your target database. This makes on-line data replication ideal for numerous tasks, like moving and / or upgrading your database while it is being used, with almost no downtime at all.

This tale is of an actual project that I conducted. I used Dbvisit Replicate as my tool of choice.

dbvisit-replicate-logical-replication-made-easy-18-638Dbvisit Replicate can use a so-called FETCHER process to act as the “long-arm” for the MINE process. Mining extracts the information from the redo-log files, but, in specific situations, this can be too much of an overhead for the source database server. By moving the MINE to a proxy server, this overhead can be significantly reduced.

In some cases it can be useful to manually transfer redo-log files to the mining stage directory of Dbvisit.
I came across this requirement when catching up a lot of redo from a RAC database. In this case, the RAC cluster creates two streams of redo. When starting the replication processes, the first thread is transferred by FETCHER from the source server to the proxy, before the second thread is transferred. This means mining will pause until the second thread successful delivers the first redo-log file of the second thread. The redo-log information from the second stream is necessary to create consistent and chronologically ordered SQL-statements for the target database. In effect, the SCN’s from first redo-log information of the first stream need to line up with the SCN’s of the second redo-log information.

In this case, this meant having to wait a day or more before mining can start. This is why I decided to copy a number of redo-log files from the source server to the proxy server, where the MINE process is running, manually.
After the copy, the files need to be registered with in the dbvrep-repository. Without this information, the MINE process has no knowledge of the files that are present and about what their contents are.

The update is an easy insert statement, but it should be handled with care, as this needs to be quite precise and it needs a bit of specific information about the redo-log files being added.
You can use the following insert statement to register the files:

insert into dbvrp.dbrsmine_redo_log_history
       (
       ddc_id
     , mine_process_name
     , sequence
     , thread
     , resetlogs_id
     , first_scn
     , next_scn
     , online_name
     , arch_name
     , read_count
     , from_fetcher
     , last_mine_start
     , last_mine_end
     , create_date
     , last_change_date
       )
values
       (
       1
     , ‘MINE’
     , 128779 -- sequence number of the copied file;
     , 2 -- assuming you are updating this thread.
     , 804864915 -- the reset-logs id from the redo-log file
     , 199910296688 -- the first scn from the redo-log file
     , 199911476897 -- the next scn from the redo-log file
     , null
     , ‘/u01/app/oracle/some-big-storage/dbvrep-mine/mine-stage/thread_2_seq_128719.1485.804864915’
       -- full path and name of the file
     , 0
     , ‘Y'
     , null
     , null
     , sysdate
     , sysdate
       )
;

And you can get the information you need about the files here:

select lh.sequence#
     , di.resetlogs_id
     , lh.first_change#
     , lh.next_change#
  from v$log_history lh
 inner join v$database_incarnation di
 using (resetlogs_change#)
 where sequence# = 128779
;

After registering the first file for the second thread, in the Replicate-console, you can watch the MINE process kick off. This process will then again halt after the first file of the second stream is processed in parallel with the first file of the first stream.

Schermafbeelding 2015-05-31 om 21.23.11

I kept adding files until the FETCHER process was able to take over, or you could do this until you test-case or PoC is over.

Complex UI’s versus Simple UI’s

A few days ago I attended the AMIS UX & UI event.

During this interesting event, Niels Mansveld from AMIS presented about UX Frameworks. And he started off his presentation with an illustration about how user interfaces can create an “experience”, so to say. This illustration was a movie clip by Pixar, taken from the movie “Lifted”. It was so funny and, if you would watch it, you immediately know what Niels meant!

lifted uiThe day after I thought to show this movie at home and I found the YouTube link (https://www.youtube.com/watch?v=pY1_HrhwaXU). When I watched the clip, I realized that there was a second part to the preview, which Niels had left out, probably because of time concerns.
What struck me is actually the following…

I have seen quite a few views on user interfaces lately… Most of them talk about having clean and intuitive layouts and that it is important to think thoroughly about this. Shakeeb Rahman and Ultan O’broin are names that pop into my mind when thinking about this, and these gentleman are very clear about this!
Clean, intuitive UI’s make the Enterprise thrive!

Okay, but, as said, the clip went on for a little bit!TOAD saves

The second half tells the story of the Toad saving the situation, by using this same ultra intricate interface! By knowing what knob did which function, he was super-quick in saving the day!
Now, what would that mean?

Having a clean and intuitive layout may not be the ultimate solution in any situation, regardless! Having an application with a learning curve (not immediately judging the steepness of this learning curve is not always bad. If this interface helps the professional do his/her job in just a fraction of the time, because he/she knows what button to push, I think it’s a good thing.
I have to admit, there were one or two remarks about this in the flashing demo by Paco van der Linden… Bit I guess it is too little emphasized.

cockpitThere are several applications where these, more complicated interfaces do a superb job in helping the task at hand. And, as with anything, don’t blindly follow “best practices”, also in designing user interfaces!
Step back and think what would work best in your situation!

Hope this helps!

Updating SQL Developer to use newer Java version

I was being teased by SQL Developer.

Everytime I started it came nagging about that it was being forced to live in an old Java version called jdk1.7.0_45 and that is was not feeling happy about it.
So, I should remedy this, I thought to myself.

First visit was, inspired by some search-work on the WWW, a file called product.conf. Which offered two possiblities:

java

SetJavaHome to some logical location
or
SetJavaHome to nothing, and then SQL Developer would kindly ask me to point it to somwhere to live.

Well… no. My SQL Developer refused it all and just started with this jdk 1.7.

Same hack done in another file on another location, a file called sqldeveloper.conf.
Same result.

Freshly downloaded SQL Developer, put in place… No help!

Erm…

Rename
drwxr-xr-x  3 root  wheel  102 Jan  6  2014 jdk1.7.0_45.jdk
in /Library/Java/JavaVirtualMachines
to
drwxr-xr-x  3 root  wheel  102 Jan  6  2014 xxx-jdk1.7.0_45.jdk

Nope! Still the same nagging…

What now?

In the end, I wound up with one of Jeff Smits’s helpers.
This guy aksed me to “start SQL Developer from the commandline”. Right, but how?

So I finally found:
/Applications/SQLDeveloper.app/Contents/MacOS/sqldeveloper.sh

And that did start SQL Developer from the command-line…

But… wait… an .sh-file!! Interesting!!

And, behold… in this .sh-file lies the answer:sqldev_startup1

So the file reads:
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
Which I hacked to:
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`

And, presto, error-message gone and SQL Developer now happily lives in Java 8.

Hope this helps somebody out!!

Setting up SQL Instant Client on MAC

In doing more work directly from my Macbook Air, I ran into a situation where native connectivity to an Oracle environment was needed.Connectivity over Oracle Instant Client
From experience I have always been a big fan of the Full Oracle client, just because it comes with a lot of tools and utilities for troubleshooting, which makes the actual experience a bit more pleasant.
Looking & asking around, though, I learned fairly quickly that this client is just not available for Mac OSX… Thanks to Osama Mustafa for confirming.

So, a fact, although quite a number of IT pro’s are working with Mac!

This leaves no other choise than to divert to the Oracle Instant Client 11, which then, indeed, is just an 11g Instant Client (11.2.0.4)!
It would humor me if Oracle were to bring out a 12c Full Client for Mac, as well as an instant client, if someone would so desire.
To have some more tooling around the client, I downloaded all the packages including at least SQL*Plus.

Though the install process is relatively straight forward (download the archives and unzip them in place) getting SQL*Plus to actually run is a somewhat different ballgame!
As usual, when you start a tool, you’re bombarded by messages about unfound dynamic libraries. This set me (very briefly) on a path to place these files where they were expected on my Mac.

In a place like:

/ade/b/2649109290/oracle/sqlplus/lib

for instance, you would need to place a number of these libraries.
This leaves you with the option to populate your system with all these specific libraries, which is of course just fine, but not my choice (think of the mess in ever having to clean up) and especially not when it can be avoided.

A quick search pointed me to this excellent blogpost by Casey Lucas about this exact same issue. With a tool called ‘otool’* applied as suggested, I am now able to run SQL*Plus natively on my Mac without error messages.

* otool – object file displaying tool
If you need it, call it from the command line. It will install this and other development tools on your Mac.

That is nice, but it’s just only over halfway there.

manneke stopt de stekker erin

 

Now I want something where I can just run:
sqlplus <username>@<database>
without intricate connect-strings.

 

 

This leaves one minor “hack”, or rather “edit” required, your .bash_profile needs a bit of a path addition and an environment setting:
alias ll="ls -l"
export TNS_ADMIN=/Applications/instantclient_11_2
export PATH=/Applications/instantclient_11_2:$PATH

Note: the alias was already in there 😉

To top it off, I created a small tnsnames.ora in the directory with the instant client (keeping all related files neatly tucked away together)

xesource =
(DESCRIPTION =
(ADDRESS =
(PROTOCOL = TCP)
(HOST = 192.168.56.66)
(PORT = 1521)
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = xe)
)
)

And voila, goal acquired.

sqlplus usera@xesource
Never specify the password on the command line. Not only will it be shown, it will also be sent (most probably) unencrypted over SQL*Net

My Oracle 2014, what a blast…

Twenty-fourteen… What a year!

As the year draws to a close, I just wanted to take a few minutes to look back at the passed crazy 12 months… Crazy from a personal as well as a professional point of view!

ougfIn June things took off for the Oracle stuff with a visit to OUGF14. My second real talk after starting to speak in UKOUG-Tech13. Plus the bonus, the first ever Round Table on Oracle Standard Edition, together with my friend Philippe Fierens and the support of Ann Sjökvist. Always imagined, never experienced, the way technology binds people. For all the events happening in Haltia, Finland, please read this post.
OUFG14 was also where I met Gurcan Orhan for the first time. My partner in (hard) rockin’ Oracle stuff!! Together with my international peers, we have quite a team and this makes me super proud.

I owe an apology to the Scotts! I should have been in Linlithgow presenting. I was honored to be selected to travel to the beautiful city of Edinburgh in one of the most beautiful parts of the world, but there were to many things going on, so I had to cancel. I am so sorry!!Scotland

The next stop on the agenda was Oracle Open World. But before I could pack my bags, up and leave, there was A LOT of work to be done at VIR e-Care Solutions coordinating and rolling out a brand new Oracle infrastructure to all of their clients.
And not alone that, there was a trip to Hamburg for Dbvisit with a presentation at the DOAG Data Replication SIG meeting, organized by Johannes Ahrends. Of course, also Björn Rost was present, plus a number of the other representatives of the data replication scene in Germany.

Oracle Open World was not the high-point of 2014, which was somewhat surprising, actually… I cannot really put my finger on it, because the days were packed with good stuff, unexpected encounters and many more goodies… But somehow, the second time around, and with a lot more OUG-experience, it didn’t crack up to be event Numero Uno of 2014! I can safely say, looking back, that national Oracle User Group events are more interesting. You get to have more quality time with the people you just get to meet a few times a year.
Still, with all the content and with everything that happened… And especially the lunch with Martin NStretchedLimoash in the sun at the CCM as well as the unparalleled drive by Stretched Limo to Treasure Island, hosted by Portrix (Henning and Björn) with Yuri Velikanov, Ilmar Kerm and others. I am not complaining!!

Coming back from America there was a huge surprise and honor for me.

ACEAssociateNominated by my peers, Oracle Corp. saw it fit to award my efforts for the Oracle Community with the Oracle ACE Associate recognition. I had never thought or expected this to be a possibility for me, so this was a complete surprise which started a chain of events, ending at the end of this post.

The final event for 2014 was the DOAG Jahreskonferenz in Nuremberg. I guess the biggest event in Europe and the biggest even for me by means of contributions. I had my “Pre-APEX” talk, there was the second edition of the Standard Edition Round Table, co-hosted by Philippe and chaired by Johannes Ahrends!! What a shock 😉 There was the Data Replication forum and Dbvisit #RepAttack!
DOAG also, and again, brought a sheer endless list of new and re-encounters with Oracle Hero’s. My good friend Peter Raganitsch was also there…

At the end of the year, you would think that you would be “home free”, right?

Well 2014 had a last trick up it’s sleeve! The year ended with me saying goodbye at VIR e-Care Solutions BV. After 16 years we had to decide to break up. It’s like tearing off a band-aid. You do it quick and it hurts less, but still…

So, I am a free man!

With this last development, set in the light of everything I had the chance of doing this year, it has been a great deal to handle. The first visit to Oracle Open World, back in 2010 has started a chain of events that has invoked some quite unforeseen twists and turns. It all looks and feels like it has been worth it, but it has indeed taken it’s toll.
Currently I am enjoying some well deserved but also much needed time off with my wife and family and I will start thinking about new ventures in a bit.
Please take a look here and here for some more information!!

Rest assured, there are some new ideas and they are EXCITING!!!
One of them being that  I will be speaking at #OUGN15, better known as the boat conference, with a brand new talk.
But hey, we’re looking back here and I wouldn’t want to spoil too much of the surprise.

Stay tuned…

A new form of on-line data protection

In the last few years I have been active with data replication solutions in the Oracle realm as you may know. This data replication field is one that has many angels, so there is something new to learn every day and sometimes there even are really new possibilities!

Take heed…

The first and most familiar form of the data replication forms is ‘physical data replication’, also known as ‘Standby Database‘.
In this form of replication, both source and target database are binary identical. Changes are propagated by copying the archived redo logfile from the source database to the environment for the standby database lives. Most often this is another server, preferably in another building in another town, far enough away to not be struck by the same havoc.

There are basically 3 ways to accomplish this;

  1. Use Oracle Data Guard (in Enterprise Edition Oracle database)
  2. Use Dbvisit Standby (in all Oracle database Editions)
  3. Write your own scripting (not recommended in any case)

The second and more emerging form of data replication is ‘Logical Data Replication’.
In this form of replication, there is not real relationship between the source and the target database, other than that the target database houses data coming from the source database. They can live on different systems, be from different database version, a different operating system or even be from a different vendor.
Data is harvested from the source database, converted and copied over to the target database / system. On the target system this data is being applied, in the native speech of the the target database.

There are a few ways to accomplish this, but basically every vendor has the same technique. It is more a matter of pricing, basically.

  1. Oracle Golden Gate (expensive, complex)
  2. Dell Shareplex (somewhat expensive)
  3. IBM Infosphere (ComPlex, expensive)
  4. Dbvisit Replicate (easy, affordable)

So, having discussed this, as this is not new, why this blogpost?

Well…

A Standby database is more or less closed. You can open it occasionally to query some data, but that interrupts the apply-process.
On-line data replication does what it says, you have an active database, where data is continuously added. This way you can, for example query, the same data on two sources to spread load.

The case I mean to discuss is the following:

“I have 10 source database and I want one target database (ah, presto, on-line data replication) and I want to backup 5 tables from each source to the target database (again, on-line data replication, but wait, backup?) so I can easily copy back specific data to the source (eeeuhm, yes…) whenever a user messes up the source tables (aï…) and I want the target to be update each day at 23:00 (so… okay!)

This reeks after somewhat of a hybrid approach!

We cannot do regular on-line data replication, for this is aimed at being real-time.
And we cannot leverage Standby database, since it needs to be centralized in one database and not 10. Next to that it would take some administration to open up the standby database in read-only mode, take the copy, and close the database again.

Working with Dbvisit, we came up with “Pause Apply” and “Resume Apply”, which we combine to form “Delayed Apply“.
This delayed apply would neatly answer the question posed.

  • By “delaying” the application of changes to the data, we could make sure the requested tables are only updated from 23:00 on;
  • We can combine the 50 tables (10 databases x 5 tables) in one single target database, since it is a logical approach to the matter;
  • We can easily restore or copy back corrupted data, since both the source and the target database remain continuously open.

Using Dbvisit Replicate, having this kind of protection for your “logical test-cases”, what this company was doing to require this solution, is really affordable.
It can help in dynamically and quickly resetting specific data-sets or test-cases while remaining much more flexible than creating scripts to reset a specific data-set or test-case! And, of course, there are many more ways to use this neat feature…

DOAG 2014, Nüremberg visited

Traveling to Nuremberg, anticipating three days of Oracle submersion. There are so many speaker heading over there it cannot be anything but successful.
This will be the first conference I will attend after being accredited as Oracle ACE Associate which, for me, makes it again a little more special.TurboProp
The first surprise, though, was just that. Arriving, by bus, at the boarding-location, there was a Bombardier DASH8-Q400 waiting, which turned out to be a turbo-prop aircraft. Okay, I jumped from a Cessna Caravan twin engine turbo-prop before, but this was still a first. As I am writing these lines, we’re descending upon Nüremberg.

On the first day of the conference, which started with a beautiful but rainy morning stroll to the conference center, The action started to really kick in from about 12:00 with the first session of my good friend Peter Raganitsch, talking about the 10 worst practices in APEX. A refresingh way of looking at software development by focussing on how to do it wrong!
The day ended with one of the “most pleasantly unorganized sessions” of the conference, where Johannes Ahrends and Philppe Fierens joined me on stage for the Standard Edition Round Table, #DOAG14-edition.

The second day was full of sessions, and I vistited Joel Kallman “APEX fast=true”, discussing the the knowledge needed to do serious application development on APEX, creating #DBADev. And, off course, the sharp presentation of my friend Franck Pachot about interpreting AWR-reports!
At 17:00 it was time for my third event, the “Electronic Patients Records system based on Oracle APEX” talk, which had quite a good turnout.
GatheringThe day ended with a super-cool meet-up with Mia Urman, Lonneke Dikmans AND Brynn Llewellyn… And later on we had a real nice depiction of #DBADev 2.0, involving Joel Kallman, Philippe Fierens, Illoon Ellen and myself.

Gathering

The third and last day of the conference was spend executing #RepAttack. This session concluded 3 full days of hands-on hacking with cool software and getting a feel of some of the new stuff.

RepAttack

A few of the cool new meetings (which we’ve dubbed the e-people to real people conversion by IRL) involved:

Thank you, DOAG, for a superb conference. I thoroughly enjoyed it. To all the Oracle aficionados, until next time!!

Printing directly with APEX

When looking for a print solution with APEX you will find .PDF

You will find a lot of .PDF

And .PDF is good. There is nothing wrong with .PDF. In fact, .PDF looks cool and you can do a lot of neat stuff with it. With toolkits like pl/pdf you can create .PDF’s directly from PL/SQL.

But sometimes there is the need to be able to print directly.
For instance with batch-processing or with nightly print-runs or whatever. And this is where you would find yourself locked out with .PDF and, glancing Google, you would guess you’d be out of luck!
Since we had:

  • created a web based solution
  • the need to print directly
  • print in nightly-runs

plus we had:

  • about 400 reports (.rdf files) which we need to reuse (without having the opportunity to rebuild them in something like pl/pdf)
  • combine different output / distribution mechanisms

we needed to tackle this challenge!

So we did !!

It was fixed by using some old and new technology mixed together:

Oracle reports builder
and
Oracle Fusion Middleware, more specifically, Oracle Reports Server, aka WLS_Reports

By using this combination of products, you can create a printing solutions which is capable of printing directly to your network printer, create HTML or PDF reports.
Schedule them, e-mail them, and all this by URL-control!

http://<your-reports-server-node>:8888/reports/rwservlet?command=argument&command=argument&and-so-on

Use the following (much used, but far from a complete list of) control-commands:

  • report=<name of your .rdf>
  • userid=<userid/password@database>
  • desformat=HTML/PDF
  • destype=type of output of the report
  • desname=name of your output (device, file, whatever)

More commands in the link to the documentation on the bottom of this post!!

Notes:

  • You can post these parameters to the Reports Server without calling them in the original URL!
  • You can set a “local” on your Reports Server for omitting <@database> in ‘userid’ for your default database
  • Actually you can set all environment variables, like TNS_ADMIN, NLS_LANG, REPORTS_PATH, etc.

What we found is we needed to run Oracle Reports Server on Windows, just to take advantage of the Windows Printing System which is quite stable and easy to configure. (So, yes, okay, there you have it, a good thing about Windoze!)

Basically you can create a simple solution, but you can easily expand it quite a bit, making a printing and reporting solutions worthy of and enterprise environment, with distributing reports via e-mail, creating reports in file-systems, embedding reports in websites, and basically anything you want or would need.

And, you get a nice Management Console for free with this installation!

08-forms-em
Oracle Enterprise Manager Console

From this management console you can administer your print-jobs, set all kinds of parameters, which is quite neat!!

But, wait… the catch… It’s gonna cost you!

Or, can you keep it under control?

But of course!

Printing is mostly a half-on-line thing, and for a lot of stuff, it’s not extremely performance / time critical… So what can we do?

Oracle Reports Server is licensed as “Oracle Forms & Reports Server” and it will set you back € 370 per Named User or € 18.200 per CPU (being Oracle CPU’s according to the Core Factor Table!)
It’s still a whole lot of money, but would you really need more than 2 cores? If you give the machine enough memory and fast disks? Probably not.

Is it worth considering taking another node in your environment? Perhaps. This print-solutions could be a viable reason to do so. It brings you quite a bit of functionality straight from the box. But, as always, do your math and make educated choices.

The documentation link promised:
https://docs.oracle.com/cd/E16764_01/bi.1111/b32121/toc.htm

If you would like more info, please just drop me a line!

Oracle Open World 2014

In flight to San Francisco on the 27th of September 2014. Heading out to Oracle Open World for the second time.
Much has changed since my previous visit.

The previous time I came to this biggest of IT events in the world, I came as a spectator, representing an IT company, where my mission was to soak up as much knowledge as I possibly could, submerging myself in the flow of the event.
This time ‘round, I come as a participant, representing another IT company that wants to add to the scene and deliver a smart alternative.
And also personally there is a huge difference! Previously I went alone and was thrilled to find Frits Hoogland at the gate, which was already a familiar face to me back then! Now I am travelling to meet up with many more friends… listening to Metallica on the flight already reminds me that I will meet Gurcan Orhan over there! And in the pervious weeks many promises were made for quick meet ups and catch ups on the grounds of what we call “Oracle Open World”!

Clock set to Pacific Summertime, good morning world!!
Time has come a long way since my previous trip! Where I was bound to the onboard entertainment system a few years back, now I can work, prepare and write this text in flight. Hoping to meet all of you guys out here.
And today, Oracle Open World came to a real kick-off, when we went to the Golden Gate Bridge Run, organized by @thatleffsmith, where we ran or walked with a great number of Oracle celebrities, ranging from @oraclebase through @helifromfinland and Frits Hoogland to @dbvisit!
After this @ilmarkerm, myself and two lovely ladies from Finland shared a cab to Moscone where we met up with the RACAttack Ninja’s at the OTN Lounge…

image

It is turning out to be a good day, with the building of the Dbvisit stand, sneaking into the sessions of the Dbvisit speakers and meeting many, many friends!