Monday, November 23, 2015

I Had Low Expectations for the APEX Gaming Competition 2015 from ODTUG. Wow, Was I Ever Wrong!

When the APEX Gaming Competition 2015 was announced by Vincent Morneau from Insum at the ODTUG Kscope15 conference this past year, I was very suspect.  I've seen many contests over the years that always seemed to have very few participants, and only one or two people would really put forth effort.  Why would this "Gaming Competition" be any different?  Who has time for games, right?  Well...I could not have been more wrong.

I was given the honor of being a judge for the APEX Gaming Competition 2015, and not only did I get to see the front-end of these games, I also was able to see them behind the scenes as well - how they were constructed, how much of the database they used, how much of declarative APEX did they use, etc.  I was completely blown away by the creativity and quality of these games.  There were 15 games submitted, in all, and as I explained to the other judges, it was clear that people really put their heart and soul into these games.  I saw excellent programming practices, extraordinarily smart use of APEX, SQL and PL/SQL, and an unbelievable amount of creativity and inventiveness.

I hated having to pick "winners", because these were all simply a magnificent collection of modern Web development and Oracle Database programming.  If you haven't seen the actual games and the code behind them, I encourage you to take a look at any one of them.

I truly don't know how these people found the time to work on these games.  It takes time and effort to produce such high quality.  These are people who have day jobs and families and responsibilities and no time.  In an effort to simply acknowledge and offer our praise to these contributors, I'd like to list them all here (sorted by last name descending, just to be different):

Scott Wesley
Maxime Tremblay
Douglas Rofes
Anderson Rodrigues
Matt Mulvaney
Jari Laine
Daniel Hochleitner
Marc Hassan
Nihad Hasković
Lev Erusalimskiy
Gabriel Dragoi
Nick Buytaert
Marcelo Burgos

Thanks to each of you for being such a great champion for the global #orclapex community.  You're all proud members of the #LetsWreckThisTogether club!

P.S.  Thanks to ODTUG for sponsoring this event and Vincent Morneau for orchestrating the whole contest.

Wednesday, September 16, 2015

If You're In Latvia, Estonia, Romania, Slovenia or Croatia, Oracle APEX is Coming to You!

In the first part of October, my colleague Vlad Uvarov and I are taking the Oracle APEX & Oracle Database Cloud message to a number of user groups who are graciously hosting us.  These are countries for which there is growing interest in Oracle Application Express, and we wish to help support these groups and aid in fostering their growing APEX communities.

The dates and locations are:

  1. Latvian Oracle User Group, October 5, 2015
  2. Oracle User Group Estonia, Oracle Innovation Day in Tallinn, October 7, 2015
  3. Romanian Oracle User Group, October 8, 2015
  4. Oracle Romania (for Oracle employees, at the Floreasca Park office), October 8-9, 2015
  5. Slovenian Oracle User Group, SIOUG 2015, October 12-13, 2015
  6. Croatian Oracle User Group, 20th HrOUG Conference, October 13-16, 2015

You should consider attending one of these user group meetings/conferences if:

  • You're a CIO or manager, and you wish to understand what Oracle Application Express is and if it can help you and your business.
  • You're a PL/SQL developer, and you want to learn how easy or difficult it is to exploit your skills on the Web and in the Cloud.
  • You come from a client/server background and you want to understand what you can do with your skills but in Web development and Cloud development.
  • You're an Oracle DBA, and you want to understand if you can use Oracle Application Express in your daily responsibilities.
  • You know nothing about Oracle Application Express and you want to learn a bit more.

The User Group meetings in Latvia, Estonia and Romania all include 2-hour instructor-led hands on labs.  All you need to bring is a laptop, and we'll supply the rest.  But you won't be merely watching an instructor drive their mouse.  You will be the ones building something real.  I guarantee that people completely new to APEX, as well as seasoned APEX developers, will learn a number of relevant skills and techniques in these labs.

If you have any interest or questions or concerns (or complaints!) about Oracle Application Express, and you are nearby, we would be very honored to meet you in person and assist in any way we can.  We hope you can make it!

Thursday, August 13, 2015

ODTUG APEX Gaming Competition 2015

If you're not aware, there is an APEX Gaming Competition which is already underway, and which is sponsored by the Oracle Development Tools User Group (ODTUG).  For those who don't know what ODTUG is, it is an independent user group and community of professionals, with a primary focus on the tools, products, and frameworks to build solutions and applications with the Oracle technology stack.  Although ODTUG is based in the USA, they have members (thousands of them) around the globe.

The purpose of the APEX Gaming Competition is simply to show off what you can do with APEX, and instead of crafting a business solution or transactional application, the goal here is a bit more whimsical and fun.  The solution can be desktop or mobile or both.  Personally, if I had the time, I'd like to write a blackjack simulator and try and improve upon the basic strategy.  I'm not sure that could be classified as a "game", but it would enable me to go to Las Vegas and clean house!

If you're looking to make a name for yourself in the Oracle community, one way to do it is through ODTUG.  And if you're looking to make a name for yourself in the APEX community, one way to stand out is through the APEX Gaming Competition.  Just ask Robert Schaefer from Köln, Germany.  Robert won the APEX Theming Competition in 2014, and now everyone in the APEX Community knows who Robert is!  I've actually had the good fortune of meeting Robert in person - twice!

Yesterday I listened to the APEX Talkshow podcast with Jürgen Schuster and Shakeeb Rahman (Jürgen is a luminary in the APEX community and Shakeeb is on the Oracle APEX development team, he is the creator of the Universal Theme).  And in this podcast, I was reminded how Shakeeb's first introduction to Oracle winning a competition, when he was a student!  You simply never know what the future holds.  So - whether you're a student or a professional, whether you're in Ireland or the Ivory Coast, this is an opportunity for you to shine in front of this wonderful global APEX Community.  Submissions close in 2 months, so hurry!  Go to

Wednesday, May 20, 2015

What is the APEX Open Mic Night at Kscope15?

At the upcoming ODTUG Kscope15 conference, on Monday night, June 22, there will be the Monday Community Events.  The Community Event for the Oracle Application Express track at Kscope15 is the ever-popular Open Mic Night.  Without a doubt, this is one of my favorite events at the Kscope conference.

An Oracle employee sent me an email today, inquiring about the Open Mic Night.  This employee, who is a user of Oracle Application Express at Oracle, will be attending the Kscope conference for the very first time.  As I replied to him in email:

Open Mic night will be on Monday evening, from 8:00P - 10:00P.  You would think that most people would call it a day (after a long day), but it's usually a packed room.

Open Mic night is the attendee's night to shine in front of their fellow attendees.  People are given roughly 5 - 10 minutes to show off what they've done with APEX - it's timed.  No PPT.  If you show a PowerPoint, you will be booed.  You're on stage, you plugin your laptop to a projector, and you present on a big screen.  It's just a great way for people in the #orclapex community to proudly show what they've accomplished.  I've seen some extraordinarily creative and professional solutions from our customers.

The time goes by fast, so you have to come prepared.  And the Oracle APEX team usually sponsors the beer for this event, so it can get a bit rowdy. ;)

If you're at Kscope15 for the APEX track, or even half-curious about APEX, it's a "must attend" event.

Here's a shot from last year's Open Mic Night:

Wednesday, April 15, 2015

Oracle Application Express 5 - The Unofficial Announcement

What started on a whiteboard in New York City more than 2 years ago is now finally realized.  I and the other members of the Oracle Application Express team proudly announce the release of Oracle Application Express 5.

The official blog posting and announcement is HERE.  But this is my personal blog, and the thoughts and words are my own, so I can be a bit more free.

Firstly, I don't ever want to see a release of Oracle Application Express take 2.5 years again, ever.  It's not good for Oracle, not good for Oracle Application Express, and certainly not good for the vast Oracle Application Express community.  We're going to strive, going forward, for a cadence of annual release cycles.  But with this said, I'm not about to apologize for the duration of the APEX 5 release cycle either.  It's broader and more ambitious than anything we've ever approached, and it happened the way it was supposed to happen.  Rather than say "redesigned", I'd prefer to use Shakeeb's words of "reimagined", because that's really what has transpired.  Not only has every one of the 1,945 pages that make up "internal APEX" (like the Application Builder) been visited, redesigned, and modernized, but the Page Designer is a radically different yet productive way to build and maintain your applications.  It takes time to iterate to this high level of quality.

At the end of the day, what matters most for developers is what they can produce with Oracle Application Express.  They'd gladly suffer through the non-Page Designer world and click the mouse all day, as long as what they produced and delivered made them a hero.  And I believe we have delivered on this goal of focusing on high-quality results in the applications you create.  I've seen my share of bad-looking APEX applications over the years, and with prior releases of APEX, we've essentially enabled the creation of these rather poor examples of APEX.  Not everyone is a Shakeeb or Marc.  I'm not.  But we've harnessed the talents of some of the brightest minds in the UI world, who also happen to be on the APEX development team, and delivered a framework that makes it easy for ordinary people like me to deliver beautiful, responsive and accessible applications, out-of-the-box.

What I'm most happy about is what this does for the Oracle Database.  I believe APEX 5 will make superheroes out of our Oracle Database and Oracle Database Cloud customers.  There is a massive wealth of functionality for application developers and data architects and citizen developers and everyone in-between, in the Oracle Database.  And all of it is a simple SQL or PL/SQL call away!  The Oracle Database is extraordinarily good at managing large amounts of data and helping people turn data into information.  And now, for customers to be able to easily create elegant UI and be able to beautifully visualize this information using Oracle Application Express 5,'s just an awesome combination.

I am blessed to work with some of the brightest, most focused, professional, talented, and yet humble people on the planet.  As my wife likes to say, they're all "quality people".  It truly takes an array of people who are deep in very different technologies to pull this off - Oracle Database design, data modeling, PL/SQL programming, database security, performance tuning, JavaScript programming, accessibility, Web security, HTML 5 design, CSS layout, graphic artistry, globalization, integration, documentation, testing, and on and on.  Both the breadth and depth of the talent to pull this off is staggering.

You might think that we get to take a breath now.  In fact, the fun only begins now and plenty of hard work is ahead for all of us.  But we look forward to the great successes of our many Oracle customers.  The #orclapex community is unrivaled.  And we are committed to making heroes out of every one of them.  That's the least we could do for the #orclapex community, such an amazingly passionate and vibrant collection of professionals and enthusiasts.

When anyone asks about the "watershed event" for Oracle Application Express, you can tell them that the day was April 15, 2015 - when Oracle Application Express 5 was released.


P.S.  #letswreckthistogether

Friday, March 06, 2015

The Ideal APEX Application (When & Where You Write Code)

The real title of this post should be "What I Really Meant to Say Was....".

Bob Rhubart of the Oracle Technology Network OTNArchBeat fame was kind enough to give me an opportunity to shoot a 2-minute Tech Tip.  I love Bob's goals for a 2-minute Tech Tip - has to be technical, can't be marketing fluff, and you have to deliver it in 120 seconds - no more, no less.  So I took some notes, practiced it out loud a couple times, and then I was ready.  But because I didn't want to sound like I was merely reading my notes, I ad-libbed a little and...crumbled under the clock.  I don't think I could have been more confusing and off the mark.  Oh...did I forget to mention that Bob doesn't like to do more than one take?

So if I could distill what I wished to convey into a few easily consumable points:
  1. Use the declarative features of APEX as much as possible, don't write code.  If you have to choose between writing something in a report region with a new template, or hammer out the same result with a lovingly hand-crafted PL/SQL region, opt for the former.  If you have a choice between a declarative condition (e.g., Item Not Null) or the equivalent PL/SQL expression, choose the declarative condition.  It will be faster at execution time, it will be easier to manage and report upon, it will be easier to maintain, it will be less pressure on your database with less parsing of PL/SQL.
  2. When you need to venture outside the declarative features of APEX and you need to write code in PL/SQL, be smart about it.  Define as much PL/SQL in statically compiled units (procedures, functions, packages) in the database and simply invoke them from your APEX application.  It will be easier to maintain (because it will simply be files that correspond to your PL/SQL procedures/functions/packages), it will be easier to version control, it will be easier to diff and promote, you can choose which PL/SQL optimization level you wish, you can natively compile, and it will be much more efficient on your database.
  3. Avoid huge sections of JavaScript and use Dynamic Actions wherever possible.  If you have the need for a lot of custom JavaScript, put it into a library and into a file, served by your Web Server (or, at a minimum, as a shared static file of your application).
  4. APEX is just a thin veneer over your database - architect your APEX applications as such.  Let the Oracle Database do the heavy lifting.  Your APEX application definition should have very little code. It should be primarily comprised of SQL queries and simple invocations of your underlying PL/SQL programs.

My rule of thumb - when you're editing code in a text area/code editor in the Application Builder of APEX and you see the scroll bar, it's time to consider putting it into a PL/SQL package.  And of course, if you catch yourself writing the same PL/SQL logic a second time, you should also consider putting it into a PL/SQL package.

There's more to come from the Oracle APEX team on @OTNArchBeat.

Tuesday, February 10, 2015

Some changes to be aware of, as Oracle Application Express 5 nears...

As the release of Oracle Application Express 5 gets closer, I thought it's worth pointing out some changes that customers should be aware of, and how an upgrade to Oracle Application Express 5 could impact their existing applications.

  1. As Trent Schafer (@trentschafer) noted in his latest blog post, "Reset an Interactive Report (IR)", there have been numerous customer discussions and blog posts which show how to directly use the gReport JavaScript object to manipulate an Interactive Report.  The problem?  With the massive rewrite to support multiple Interactive Reports in Oracle Application Express 5, gReport no longer exists.  And as Trent astutely points out, gReport isn't documented.  And that's the cautionary tale here - if it's not documented, it's not considered supported or available for use and is subject to change, effectively without notice.  While I appreciate the inventiveness of others to do amazing things in their applications, and share that knowledge with the Oracle APEX community, you must be cautious in what you adopt.
  2. In the rewrite of Interactive Reports, the IR component was completely revamped from top to bottom.  The markup used for IRs in APEX 5 is dramatically improved:  less tables, much smaller and more efficient markup, better accessibility, etc.  However, if you've also followed this blog post from Shakeeb Rahman (@shakeeb) from 2010, and directly overrode the CSS classes used in Interactive Reports, that will no longer work in IRs in APEX 5.  Your custom styling by using these classes will not have any effect.
  3. As the Oracle Application Express 5 Beta documentation enumerates, there is a modest list of deprecated features and a very small list of features which are no longer supported.  "Deprecated" means "will still work in APEX 5, but will go away in a future release of APEX, most likely the next major release of APEX".  In some cases, like the deprecated page attributes for example, if you have existing applications that use these attributes, they will still function as in earlier releases of APEX, but you won't have the ability to set it for new pages.  Personally, I'm most eager to get rid of all uses of APEX_PLSQL_JOB - customers should use SYS.DBMS_SCHEDULER - it's far richer in functionality.
Please understand that we have carefully considered all of these decisions - even labored for days, in some cases.  And while some of these changes could be disruptive for existing customers, especially if you've used something that is internal and not documented, we would rather have the APEX Community be made aware of these changes up front, rather than be silent about it and hope for the best.