Sunday, May 31, 2009

APEX 5 on Google Wave?

I was watching the video of the announcement of Google Wave and thought by myself "this is really cool!".

HTML5 looks amazing no? You see changes on the fly and everything is integrated, which is incredible! And it seems to be fast as well and runs in a standard browser!

Adobe Flex and their Flex Data Services have something similar. I played a bit with Flex two years ago and it was pretty nice. I even integrated it with APEX, but the downside was you need a Flash player for it. Also at that time, the rumors were the Flex Data Services and the instant updates weren't always as fast as they should, especially with a lot of concurrent users. Anyway...

I would love to see more about Google Wave and try it myself. There are not that many details available yet, but as it will be an open platform, I'm sure we'll hear more about it soon.

If Google Wave takes really off, maybe we'll see in a later version of APEX (e.g. APEX 5?) the wizards allow you to create these HTML5 Google Wave apps. I really wonder how this would work, having an Oracle Database with your data on one server and on another server the Google Platform. It seems everything works with XML in Google Wave.

I guess we'll see what the future brings!

Saturday, May 23, 2009

APEX training/sessions in the US - ODTUG

Although I won't be able to go to ODTUG myself next month, I can recommend the ODTUG Kaleidoscope 2009 conference.

Especially this year, if you search for some APEX training in the US or you just want to speak to other people doing APEX or hear their experience with this fantastic development tool, this will be a good opportunity. It will be the biggest (most sessions) APEX event so far.

I'll follow the conference remotely as it's difficult for me to leave home and not being able to get back in a few hours. I asked a lot of people to keep me up-to-date and the more people going, the more people blogging about it, the easier it will be for me to keep up-to-date ;-)

The advance registration deadline is set for June 2nd, so there are 10 days for anyone to sign up and still not pay the full conference price (thus saving $200).

Enjoy the conference!

Friday, May 22, 2009

Using APEX_UTIL.GET_BLOB_FILE_SRC on a Public page

I had to show images on a public page. I've used my own procedure to do that, but when the build-in APEX procedure APEX_UTIL.GET_BLOB_FILE_SRC came available, I tend to use that. Last year I blogged about how to show an image on your page with that procedure.

So I already used this method for a while, but this time when I ran the page it didn't show my image. I was sure my code was right, because somewhere else in the application it worked just fine. The only difference was the working page is not a public page, but authentication is required.

It remembered me to a question we got last year on our training, why a picture didn't show up in somebodies APEX application. It was the same problem, the use of APEX_UTIL.GET_BLOB_FILE_SRC on a public page didn't work if it references an item on a page that requires authentication.

So here are the steps to let APEX_UTIL.GET_BLOB_FILE_SRC work on a public page.

1) In this example we are on a Public Page 6.
2) On that page I've an hidden item that looks like this:


3) My code to show the image looks like this: APEX_UTIL.GET_BLOB_FILE_SRC('P6_FILE_BLOB', r.id)

4) You would think the above is enough to let it work, but it isn't as we didn't tell from which table this image is coming from. So I had to create an after submit process that links to the right table. I 've a condition to Never on the process, so it never runs, but apparently the APEX_UTIL.GET_BLOB_FILE_SRC procedure looks at that to figure out from which table the image comes from.

That should be enough to show images on your Public Page using the APEX_UTIL.GET_BLOB_FILE_SRC procedure.

Friday, May 15, 2009

Video - How to install the Anychart integration kit for APEX

I just added a video to the Anychart integration kit for APEX website which shows you in five minutes how to install the kit.

In the video I don't "upgrade" the Flash charts of APEX, but instead I show how you can use both versions together. So you'll be able to use both the Anychart 3 charts you get out-of-the-box with APEX and the Anychart 5 charts you get with the integration kit.

I uploaded the video to YouTube, but the quality seems to have dropped quite a bit.



I recommend to look at the original video as the quality is a bit better. You can download the video and play in your favorite media player (e.g. QuickTime) in full screen.

Thursday, May 14, 2009

Another weird APEX video

I came across another video to promote Oracle Application Express. At least I think that is the goal, but as I don't understand the language I'm not sure about it ;-)

What I find a bit strange is that the author of the video doesn't have a high-speed connection to his APEX instance. So whenever he clicks it takes some time to load the page. Just for the people who didn't see APEX yet, this is not normal. There is definitely something wrong at his end or he must have a very slow line.

Anyway I like there are more videos coming out... actually I'm working on a couple too ;-)

Sunday, May 10, 2009

Another fun APEX video

I just came across a blog post of Jeff Erickson, Tech Editor at Oracle Publishing where he shows a nice video. An "Excel Master" becomes an "APEX Master"! djing!

Thursday, May 07, 2009

Collaborate 09 - Thursday

The final day... only one session to follow, one session to do and then flight back to Belgium.

The first session of the day was by Francis Mignault. He presented "How to build a multi-tenant SAAS application with Oracle Application Express".
I liked the presentation a lot. He started globally, but also went into the technical part. He showed some really nice things, like their integration of jquery in their application. Some people have doubts about performance and dynamic sql, but Francis showed once more APEX scales well. He's getting very good performance on modest hardware and is using dynamic sql a lot. He creates every page depending on the organization. So one APEX application for multiple customers. It looks like they have all their own application, but underlying it's the same one.

Next it was my turn to present "What happens on an APEX Page?"
I talked about how an APEX page is structured (page - multiple regions - multiple buttons and items and navigation for your page flow) and how an APEX page is working. A lot of people didn't know (or where not conscious) the page has two phases: a show (rendering) phase and an accept (processing) phase.
You can also view your page in different ways. The picture on the right shows you the page in the Events view. These steps you'll also see if you run your APEX page in debug mode. At the end I demoed some more advanced techniques; for ex. how you can track things if your page does AJAX. The session got also recorded but it might be hard to follow certain parts (especially demos) if you don't see what I'm actually doing on the screen. I'm also asked to do a webinar of it, but there is no date etc for it yet.

After having some final lunch we went to the airport. I'm on the same flight as a lot of other Europeans of the conference for ex. Jonathan Lewis, Mark Rittman and John Scott.

I look forward to see my family again...

Collaborate 09 - Wednesday

Before noon I didn't do that much. I stayed in the nice lobby of the Peabody Hotel and worked a bit. At a certain moment the music started to play and ducks came through the hall. That was fun to see. Apparently every day there is a duck ceremony in this hotel.


In the afternoon I went to John Scott's session "Dispelling Myths About Oracle Application Express".
I've already seen the presentation a view times, but every time John puts different jokes in. He had some good laughs. His session got also recorded and streamed, so you might have seen/see it online. John covers the most frequently "untruths" he has heard about APEX. He will also do this presentation again at ODTUG.


The next session was "APEX Interactive Reports: The Good, The Bad and The Ugly" by Karen Cannell.
If you as a developer or business user wants to know how to get most out of Interactive Reports, this presentation is worth to follow. Karen had a theme (The Good, The Bad and The Ugly is also a movie) and she even played the music of the film :-)

In the evening there was the "big" party. We were invited to Universal Studios.
It was my first time at Universal Studios and there were some pretty good attractions. One of my favorite was the Hulk and Spiderman. Universal Studio is divided in different parts and these parts are all by a certain movie theme.
John and I spend most of our time with Borkur and Mark Rittman. Later that night we bumped up to Karen Cannell, Crystal from ODTUG, David Peake, "RAC-lady" and many others.


It was a good night with a lot of fun, the only pity was we had to pay for our own drinks and food. But not having to queue to get onto an attraction made it good.

Tuesday, May 05, 2009

Collaborate 09 - Tuesday

It looks like my jetlag is not over yet as I woke up at 4 am again.

It's a habit to get at least once Egg Benedict as a breakfast while I'm in the States, so that is what I took today. It was not bad, but I think the Eggs Benedict in San Francisco was a bit better.

My first session of the day was "Introducing SQL Developer Data Modeling" by Sue Harper.
She gave a nice overview and demo of the possibilities of this Data Modeling tool. I believe this product is worth your try. You can both create a logical, relational and physical diagram or you can reverse engineer an existing database. The product is currently in beta, but it shouldn't take long anymore before it hits production. She also mentioned SQL Developer Data Modeling will be available as a stand-alone product and as an extension for SQL Developer. The first production release will be without a repository, instead it uses XML files.

The next presentation on my list was one of my favorite presenters Steven Feuerstein. Steven talked about "Coding Therapy for Software Developers".
You can actually download this presentation (and all his others) on Steven's ToadWorld website.
I liked his presentation a lot and he hit the nail on the head in a lot of his quotes. One I really liked was: "The fastest way to get the job done is to take your time." For ex. in APEX you can quickly create applications, but if you didn't think about the data model or anticipated the project and the customers future requests that might cause you problems in the future. Of course this counts for every development language, it's just so that with APEX you happen to see it quicker ;-) But that quote counts in real life too. We have some builders building our new house and I found their way of working very different than mine... I want things to be perfect, but for them good is good enough. The problem is their good is even not good enough for me, so they ended up redoing a wall three times! Hopefully it reminded them to the saying "more haste less speed".

In the afternoon we had the "APEX - Ask the Experts Panel". The panel existed out of Tony Jedlenski, David Peake, John Scott and myself. As we were with a small group (around 20 people) it was a very interactive meeting with lots of good questions.
Here are some of the questions with a brief answer.

"Dr. Paul Dorsey mentioned in his presentation he had questions (doubts) about the Security and Dynamic SQL in APEX."

As with any other development language you can also develop insecure APEX applications. But APEX helps you with making your application more secure. APEX already gives you some out-of-the box security options like Authentication, Authorization and SSP (session state protection). But you can leverage all the security options of the Oracle database as well for ex. if you don't want to allow certain rows or columns to be visible you can use VPD (virtual private database). Paul also said there is no development tool secure enough for him, but APEX will be one of the most secure once around.
Concerning the Dynamic SQL, John Scott has a nice presentation about Dispelling Myths about Oracle Application Express where he shows some statistics about APEX apps... at the moment the use of Dynamic SQL is no issue. But it's recommended to use a PL/SQL package in the database than to put all the PL/SQL code inside an APEX process. In that case it can be pinned by the database etc. It also makes debugging easier.

"When I've issues with APEX where do I go?"

The APEX Forum on OTN is a great place to ask you question first. A lot of smart people are in the forum to help you and it's rarely you are the first to come across a problem. If it tends out you are hitting a bug it's good to also log it in Metalink (create a TAR). If you want a new feature in APEX, there will be an application to log these in the next weeks.

"How do you do configuration management for your APEX apps?"

If you define some working practices that should help you a lot. For ex. you can always use the same directory structure for your javascript files, css files etc. You can also use developer comments in APEX to help you document your application. If you are with a larger team of developers naming conventions and an agreed why of working is a good idea.

"In an Interactive Report I've problems with large datasets"

We would need to have a reproducible case, so the person of that question will create an example. John tried an Interactive Report with 1 million records and that worked without a problem, so we'll see about that... If you have found this too, please put a comment on this blog.

David also talked a bit about APEX 4.0. One of the things I heard for the first time was that they are looking to make multiple Interactive Reports available on the same page (out-of-the-box). You find more about 4.0 in the Statement of Direction.

Later that afternoon John Scott had a book signing session and he sold 100% of his books (Pro Application Express) and signed every single one!

At night John, Tony and I had diner at Maggiano's Little Italy. It was a nice and relaxing evening and I enjoyed being outside (we had a table on the patio).
When walking there I saw a very strange building! You see what is wrong with it?

Monday, May 04, 2009

Collaborate 09 - Monday

As usual I woke up at 4 am, but I'm still doing good.

Today I started slow... I didn't follow any sessions before noon.

My first session of the day was "Running Oracle in the Amazon EC2 Cloud" by Tony Jedlinski.
Tony described how he created his Oracle Enterprise Linux instance with Oracle Database XE on Amazon EC2. His presentation was based on the white paper of Justin Lokitz, but Tony extended it with the new Amazon UI. I liked the presentation as he brought the message at a nice peace and I think most of the people knew how to get started now.
We have been playing with Oracle and APEX on Amazon too and so far everything went well. We are not to far off to actually use it for production hosting. Another tip I can say is that next to the UI Amazon provides there is also a nice plugin for Firefox called Elasticfox.

The next session I attended was "Oracle Application Express 3.2 Forms Conversion" by David Peake. I've seen that presentation many times now, but I always find it interesting to see how the public reacts to the presentation, which questions they have etc.
David gave a quick intro into APEX as some people where completely new to it and then started to talk about the conversion tool. He also demoed it of course!

I really looked forward to my last session of the day: "An Architectural Review of Application Express" by Dr. Paul Dorsey. I have a lot of respect for Paul, he's a very knowledgeable guy in different areas especially PL/SQL, Forms and JDeveloper. So I wondered what he thought about APEX. Paul is also an advocate of thick databases and he developed a product called BRIM to support that idea. APEX is living in the database, so that is inline with his view of thick databases. Yesterday I was sitting next to him at dinner and we had a nice talk about a project he's currently doing in Ethiopia. There he has the challenge of delivering applications with very limited bandwidth. His BRIM product is much lighter (transferring data) than any other development tool, including APEX, so I knew a bit more about his background.


I did enjoy the talk and he raised some very interesting points, but on some things I have a different view on. My impression was he reviewed APEX as is for ex. he said that an APEX page can only be linked to one table, which is not completely true. If you base the standard process on a view and you use instead of triggers as I described here, you can support multiple tables. So Paul looked at everything APEX allows you to do with the wizards and how APEX is behaving out of the box, but nothing more. So in that respect I can understand what he was saying. But I see different levels of people using APEX:

  • Level 1: You just use the wizard in APEX and are able to be productive with it
  • Level 2: You know also the Oracle database including SQL and PL/SQL and include that knowledge into you APEX applications (APEX is living inside the database so you can use all the database features)
  • Level 3: You know also more about web development like javascript and css and use that in your APEX applications
  • Level 4: You know also web 2.0 and use AJAX, jquery, json and other plugins to get exactly what you want
Paul talked about staying in the APEX sandbox (level 1) and don't try to do other things with it. Of course it's true that you need to have (other) knowledge to achieve what the wizard is not doing for you, but I don't agree you should stay in the sandbox. APEX has some nice API's you can use, so why not doing it? If you first look at APEX you might not know about them, I agree with that, but if you follow training and/or you ask more experienced APEX people to coach you, it doesn't take that long to know how to achieve other things.

Although Paul was sometimes very critical on APEX, he didn't flame it. He even said he liked APEX and it's a great tool in some cases, but does not full-fill in others, which I can agree with. You need to use the tool that fits within the projects. And he made a very nice quote at the end of his presentation: "APEX is frequently used to prototype or “get something out the door quickly” until the “real” application is built using some enterprise-level took architecture. APEX systems are typically completed in a few months and two years later, people are still waiting for the “real” application to work."

Paul is doing this presentation again at ODTUG this year, so I'm interested to know other people's reactions.

After the presentation I went to the Exhibition hall and the party to get some drinks, food and had talks with some nice people like Sue Harper, OracleNerd (Ched) and his wife, David Peake, Tony Jedlinski, Jeremy Sneyder and many others...

Sunday, May 03, 2009

Just arrived in Orlando

Just checked into the Peabody hotel. At first sight it's looking like a nice place to stay.
It's very hot in Florida, but probably inside it will be cool (due to the air conditioning).


The flight was really nice, Business Class was worth it. I got some good sleep and it's much more relaxing laying down in a "sofa" than sitting in a seat.


Now I'm going to register, fresh up a bit and then start the conference...

Flying to Orlando

Today I'm flying to Orlando, Florida for IOUG Collaborate.
It will be a long day today as my train to the airport left already at 5 am. I'll arrive in Florida at 3.30 pm, that is 9.30 pm Belgium time, so a 16,5 hours journey.

I tend to work on the flight, that's why I've two batteries for my laptop, but that is even not enough to hold till the end, so a while back I ended up buying an airport power cable. If you travel in World Traveler Plus you have a power connection in your seat, which works great.

At the moment I'm waiting for my connecting flight in Gatwick and I got a very nice surprise from BA... I got a free upgrade to Business Class!
I already looked up the seat I have (sitting in 3rd row) on SeatGuru (see picture). I'll have a real bed (I think) and I'm very curious to see how different flying Business is :-) I'll let you know in 10 hours time!

It's always good to adapt to the local timezone as quick as possible so my evening is fully booked. I'll start with the Welcome Reception (there will be an APEX table there) and a bit later I'm going to a restaurant called the Redrock Canyon Grill. Mike Riley, President of the ODTUG board, was so kind to invite me.

The next days will be busy again...