Thursday, September 4, 2008

Apex training

Just finished a three day APEX training by John Scott and Dimitri Gielis of Apex Evangelists in my home city. It consisted of 10 one-and-a-half-hour presentations, one hands-on session and a quiz. The topics of the 10 presentations were well chosen. No time was wasted by explaining basic stuff. Instead they focused on some lesser known topics you won't necessarily encounter, like AJAX and JavaScript, customizing templates, security and debugging, to name my favourite ones. Unfortunately, there were also a few that I thought were either less interesting, a bit long winded or not properly explained. But overall it was interesting and I had lots of "wow, I didn't know this was possible as well" moments.

The best part - I think - was the hands-on session. There is no better way of learning than doing things yourself. Especially since the topic here was AJAX/Javascript, two areas I am not too familiar with. So this was a great opportunity to experience how relatively easy it is.

The quiz was hilarious at times. I can imagine the fun John and Dimitri must have had when coming up with some of the multiple choice options. The quiz was won by Rutger de Ruiter, who was just started a new APEX blog as you can see in the link.

If you have a little experience with APEX and want to learn more of this product, that is so nicely integrated with our beloved Oracle database, then I can definitely recommend this training.

One wish though: I have seen several "killer" features, as Dimitri likes to call it. But my killer feature would be to have APEX do real database authentication using proxy authentication. As it is now, you are always "APEX_PUBLIC_USER" in the database, or the user you specify in your database access descriptor. It would be so nice to be yourself, so features like auditing, database roles and privileges and virtual private database etcetera, would work out of the box. And yes, I know you can code around it using v('APP_USER'), but I like things as simple as they need to be, and coded or configured once: inside the database.

6 comments:

  1. Hi Rob,

    Thanks for the nice words. It was a pleasure to have you in our class.

    Dimitri

    ReplyDelete
  2. Hi!

    You can always use basic DAD authentication. Then USER and v('APP_USER') will be the database username you specified on logon. Remove the PlsqlDatabaseUsername and password from the DAD and activate APEX' database authentication scheme. We have a mixture of APEX and plain mod_plsql applications for internal use, works nice as a single sign-on. Proxy authentication would be good to have, though.

    Chris

    ReplyDelete
  3. Hi Chris,

    Thanks for the advice. Yes, that's indeed a possibility, but with a few disadvantages like a not-so-nice-login-page and the need of different URL's when your site has a public area and a private area.

    Regards,
    Rob.

    ReplyDelete
  4. Hi Rob,

    when answering to this post on Christopher Beck's Blog I realized that the product I suggested (a mod_plsql compatible J2EE container capable of serving APEX) does provide proxy authentication. I never had time to try it, but maybe you are interested.

    ReplyDelete
  5. Thanks Chris.

    It indeed looks interesting as a workaround and I'm sure I will have a look at it some time. Although, it would be so much nicer if I could just click on a radio button in APEX and say "give me a real database authentication scheme, please".

    Regards,
    Rob.

    ReplyDelete