The storm had now definitely abated, and what thunder there was now grumbled over more distant hills, like a man saying “And another thing…” twenty minutes after admitting he’s lost the argument.


Follow crokitta on Twitter

Source Article from http://rokitta.blogspot.com/2012/08/running-standalone-apex-listener-as.html
Running Standalone APEX Listener as Windows Service
http://rokitta.blogspot.com/2012/08/running-standalone-apex-listener-as.html
http://rokitta.blogspot.com/feeds/posts/default
Oracle & Apex Geekery
And another thing …

euro-2012-official-logo-transp Tonight (CET) the European Football Championship kicks off. As with every EURO or World Championship I’m organizing a predicting game where you (Yes, you too!) can bet on match results FifApex. And again, the website is build with Oracle Application Express. New this year: I created a mobile version of FifApex (m.fifapex.net) with APEX and the jQuery Mobile framework. If you want to know how I’ve done this, come visit my presentation at the ODTUG KScope12 conference in San Antonio, Texas, end of this month. Meanwhile, register for FifApex, enter our predictions, and maybe you will be one of the winners of the prizes …

 

mFifApex

 

BTW: if you missed the first games: you still can enter the competition AND, from my experience, I can tell you: there is not a lot football/soccer knowledge required for a good ranking ;-).

Source Article from http://rokitta.blogspot.com/2012/06/apex-jquerymobile-euro-2012.html
APEX + jQueryMobile + EURO 2012 Championship = Lots’s of Fun
http://rokitta.blogspot.com/2012/06/apex-jquerymobile-euro-2012.html
http://rokitta.blogspot.com/feeds/posts/default
Oracle & Apex Geekery
And another thing …

This article describes a solution to determine the client device category (i.e. desktop, browser or tablet) your APEX application is accessed from.

categorizr

Until recently, building a web application with Oracle Application Express usually meant to build a desktop browser application. But if you look at the growing number of mobile devices, this will change very soon, if not already has for some of you. Being able to develop applications, that can be accessed by tablets or smart phones offers lots of new possibilities. But it also comes with some challenges. Mobile devices are different. Interaction by touch screen, screen size and (non-) support of certain common web functionality (flash, for example), just to mention a few.

Oracles announcement to integrate the jQuery mobile framework into APEX 4.2 will help us to deal with many of the challenges, developing for multiple devices will bring. Until now, one of the biggest challenges is, to determine the actual client your application is accessed on. Is it a desktop browser, a tablet or a smart phone? In this post I want to offer a solution that will provide an answer to this question, and can be used in APEX.

When building a web application, as a developer, you want to be able anticipate on how your application is being accessed. You might want to redirect the user to a different page or entirely different application. Or you might want to hide (i.e. not render) or show certain portions of a page. To be able to do so, you need to know the type of client used, and, ideally, be able to use this information in (PL/SQL) conditions.

Getting the info you need to decide

Every page request comes with a HTTP header, containing some generic information about the browser client it has been issued from: The HTTP_USER_AGENT string. This string holds information about browser, platform and version. The string itself can easily be accessed in PL/SQL by using the OWA_UTIL package function call:

l_user_agent := owa_util.get_cgi_env (‘HTTP_USER_AGENT’);

Once you’ve got the user agent string, the hard work starts. There are all kind of values you can get returned to you in the user agent string. It can be messy – VERY messy. Sometimes browser even lie about who they are, and the format is not standardized.

There are many approaches trying to find a way through this mess, and you can find a few articles on this at the bottom of this post. Some use databases with almost all possible user agent string stored, others try to decipher the string programmatically. Most of the code is available in Java, PHP or .net. I didn’t find any appropriate code for PL/SQL. So I had to write my own or port some code I can understand.

Categorizr

What I wanted to achieve, was to be able to categorize the client device rendering the page in my application. I found some PHP code doing just that: Categorizr. The solution has some advantages:

The PLSQL package (specification) I have written offers these functions that you can use in your (APEX) PL/SQL code:

CREATE OR REPLACE PACKAGE categorizr
AS
   /******************************************************************************
      NAME:       categorizr
      PURPOSE:    detect web user agent device type

      Based on:
      Categorizr Version 1.1
      http://www.brettjankord.com/2012/01/16/categorizr-a-modern-device-detection-script/
      Written by Brett Jankord - Copyright (c) 2011

      REVISIONS:
      Ver        Date        Author           Description
      ---------  ----------  ---------------  ------------------------------------
      0.1        30-3-2012   crokitta         Created this package.
   ******************************************************************************/
   g_tablets_as_desktops   BOOLEAN := FALSE; --If TRUE, tablets will be categorized as desktops
   g_smarttv_as_desktops   BOOLEAN := FALSE; --If TRUE, smartTVs will be categorized as desktops
   g_user_agent            VARCHAR2 (2000); -- User Agent String used for detection
   g_device                VARCHAR2 (100);

   FUNCTION get_category
      RETURN VARCHAR2;

   FUNCTION isdesktop
      RETURN BOOLEAN;

   FUNCTION istablet
      RETURN BOOLEAN;

   FUNCTION istv
      RETURN BOOLEAN;

   FUNCTION ismobile
      RETURN BOOLEAN;

   /*
    The package is initialized automatically when called, trying to fetch the value of
    the HTTP_USER_AGENT, which naturally only succeeds when called through a web gateway.
    Additionally the package just offers a mean to test a user agent strings manually by
    passing the string with a procedure call
   */

   PROCEDURE set_user_agent (http_user_agent_string VARCHAR2 DEFAULT NULL);
END categorizr;
/

If you are interested the package body, click the link below and it will show up:

CREATE OR REPLACE PACKAGE BODY categorizr
AS
   /******************************************************************************
      NAME:       categorizr
      PURPOSE:    detect web user agent device type

      REVISIONS:
      Ver        Date        Author           Description
      ---------  ----------  ---------------  ------------------------------------
      0.1        30-3-2012   crokitta         Created this package.
   ******************************************************************************/


   FUNCTION preg_match (pattern    VARCHAR2,
                        subject    VARCHAR2,
                        switch     VARCHAR2 DEFAULT NULL)
      RETURN BOOLEAN
   IS
      l_pattern   VARCHAR2 (32767) := pattern;
      l_subject   VARCHAR2 (32767) := subject;
   BEGIN
      IF LOWER (switch) = 'i'
      THEN
         l_pattern := LOWER (l_pattern);
         l_subject := LOWER (l_subject);
      END IF;

      IF REGEXP_INSTR (l_subject, l_pattern) = 0
      THEN
         RETURN FALSE;
      ELSE
         RETURN TRUE;
      END IF;
   END;

   PROCEDURE set_category
   IS
   BEGIN
      CASE
         -- Check if user agent is a smart TV - http://goo.gl/FocDk
         WHEN preg_match ('GoogleTV|SmartTV|Internet.TV|NetCast|NETTV|AppleTV|boxee|Kylo|Roku|DLNADOC|CE-HTML', g_user_agent, 'i')
         THEN
            g_device := 'tv';
         -- Check if user agent is a TV Based Gaming Console
         WHEN preg_match ('Xbox|PLAYSTATION.3|Wii', g_user_agent, 'i')
         THEN
            g_device := 'tv';
         -- Check if user agent is a Tablet
         WHEN (preg_match ('iP(a|ro)d', g_user_agent, 'i')
               OR preg_match ('tablet|tsb_cloud_companion', g_user_agent, 'i'))
              AND (NOT preg_match ('RX-34', g_user_agent, 'i')
                   OR preg_match ('FOLIO', g_user_agent, 'i'))
         THEN
            g_device := 'tablet';
         -- Check if user agent is an Android Tablet
         WHEN preg_match ('Linux', g_user_agent, 'i')
              AND preg_match ('Android', g_user_agent, 'i')
              AND (NOT preg_match ('Fennec|mobi|HTC.Magic|HTCX06HT|Nexus.One|SC-02B|fone.945', g_user_agent, 'i')
               --or preg_match ('GT-P1000', g_user_agent, 'i')
               )
         THEN
            g_device := 'tablet';
         -- Check if user agent is a Kindle or Kindle Fire
         WHEN preg_match ('Kindle', g_user_agent, 'i')
              OR preg_match ('Mac.OS', g_user_agent, 'i')
                AND preg_match ('Silk', g_user_agent, 'i')
         THEN
            g_device := 'tablet';
         -- Check if user agent is a pre Android 3.0 Tablet
         WHEN preg_match (
                 'GT-P10|SC-01C|SHW-M180S|SGH-T849|SCH-I800|SHW-M180L|SPH-P100|SGH-I987|zt180|HTC(.Flyer|_Flyer)|Sprint.ATP51|ViewPad7|pandigital(sprnova|nova)|Ideos.S7|Dell.Streak.7|Advent.Vega|A101IT|A70BHT|MID7015|Next2|nook',
                 g_user_agent,'i')
              OR preg_match ('MB511', g_user_agent, 'i')
                AND preg_match ('RUTEM', g_user_agent, 'i')
         THEN
            g_device := 'tablet';
         -- Check if user agent is unique Mobile User Agent
         WHEN preg_match ('BOLT|Fennec|Iris|Maemo|Minimo|Mobi|mowser|NetFront|Novarra|Prism|RX-34|Skyfire|Tear|XV6875|XV6975|Google.Wireless.Transcoder', g_user_agent, 'i')
         THEN
            g_device := 'mobile';
         -- Check if user agent is an odd Opera User Agent - http:--goo.gl/nK90K
         WHEN preg_match ('Opera', g_user_agent, 'i')
              AND preg_match ('Windows.NT.5', g_user_agent, 'i')
              AND preg_match ('HTC|Xda|Mini|Vario|SAMSUNG-GT-i8000|SAMSUNG-SGH-i9', g_user_agent, 'i')
         THEN
            g_device := 'mobile';
         -- Check if user agent is Windows Desktop
         WHEN preg_match ('Windows.(NT|XP|ME|9)', g_user_agent, 'i')
              AND NOT preg_match ('Phone', g_user_agent, 'i')
              OR preg_match ('Win(9|.9|NT)', g_user_agent, 'i')
         THEN
            g_device := 'desktop';
         -- Check if agent is Mac Desktop
         WHEN preg_match ('Macintosh|PowerPC', g_user_agent, 'i')
              AND NOT preg_match ('Silk', g_user_agent, 'i')
         THEN
            g_device := 'desktop';
         -- Check if user agent is a Linux Desktop
         WHEN preg_match ('Linux', g_user_agent, 'i')
              AND preg_match ('X11', g_user_agent, 'i')
         THEN
            g_device := 'desktop';
         -- Check if user agent is a Solaris, SunOS, BSD Desktop
         WHEN preg_match ('Solaris|SunOS|BSD', g_user_agent, 'i')
         THEN
            g_device := 'desktop';
         -- Check if user agent is a Desktop BOT/Crawler/Spider
         WHEN preg_match ('Bot|Crawler|Spider|Yahoo|ia_archiver|Covario-IDS|findlinks|DataparkSearch|larbin|Mediapartners-Google|NG-Search|Snappy|Teoma|Jeeves|TinEye', g_user_agent, 'i')
              AND NOT preg_match ('Mobile', g_user_agent, 'i')
         THEN
            g_device := 'desktop';
         -- Otherwise assume it is a Mobile Device
         ELSE
            g_device := 'mobile';
      END CASE;

      -- Categorize Tablets as desktops
      IF g_tablets_as_desktops
         AND g_device = 'tablet'
      THEN
         g_device := 'desktop';
      END IF;

      -- Categorize TVs as desktops
      IF g_smarttv_as_desktops
         AND g_device = 'tv'
      THEN
         g_device := 'desktop';
      END IF;
   END;

   PROCEDURE set_user_agent (http_user_agent_string VARCHAR2 DEFAULT NULL)
   IS
   BEGIN
      g_user_agent := http_user_agent_string;

      IF g_user_agent IS NULL
      THEN
         BEGIN
            g_user_agent := OWA_UTIL.get_cgi_env ('HTTP_USER_AGENT');
         EXCEPTION
            WHEN OTHERS
            THEN
               g_user_agent := NULL;
         END;
      END IF;

      set_category;
   EXCEPTION
      WHEN OTHERS
      THEN
         g_user_agent := null;
   END;

   FUNCTION get_category
      RETURN VARCHAR2
   IS
   BEGIN
      RETURN g_device;
   END;

   -- Returns true if desktop user agent is detected
   FUNCTION isdesktop
      RETURN BOOLEAN
   IS
   BEGIN
      IF g_device = 'desktop'
      THEN
         RETURN TRUE;
      END IF;

      RETURN FALSE;
   END;

   -- Returns true if tablet user agent is detected
   FUNCTION istablet
      RETURN BOOLEAN
   IS
   BEGIN
      IF g_device = 'tablet'
      THEN
         RETURN TRUE;
      END IF;

      RETURN FALSE;
   END;

   -- Returns true if SmartTV user agent is detected
   FUNCTION istv
      RETURN BOOLEAN
   IS
   BEGIN
      IF g_device = 'tv'
      THEN
         RETURN TRUE;
      END IF;

      RETURN FALSE;
   END;

   -- Returns true if mobile user agent is detected
   FUNCTION ismobile
      RETURN BOOLEAN
   IS
   BEGIN
      IF g_device = 'mobile'
      THEN
         RETURN TRUE;
      END IF;

      RETURN FALSE;
   END;
BEGIN
   set_user_agent;
END categorizr;
/

The functions can easily be used in APEX region conditions or any other PL/SQL code. Install the package in your workspace’s schema or in a separate schema with execute granted to public and a public synonym on it.

You can download the whole package HERE.

I tested the package against a list of. 11,000 common user agent strings. The algorithm is not failsafe, but reasonably accurate. Of course I cannot test every client possible. Try the demo page I prepared and drop me an email if you believe the outcome of the package is not correct.

 

References:

Categorizr – A modern device detection script

User Agent String.Com

WURFL, the Wireless Universal Resource FiLe, is a Device Description Repository (DDR)

Source Article from http://rokitta.blogspot.com/2012/04/are-you-client-device-categorizr-for.html
"Who are you?" – client device Categorizr for APEX
http://rokitta.blogspot.com/2012/04/are-you-client-device-categorizr-for.html
http://rokitta.blogspot.com/feeds/posts/default
Oracle & Apex Geekery
And another thing …




The OGh organization committee again managed to invite well known APEX experts
as speakers: Dimitri Gielis and John Scott (the dynamic APEX Evangelists Duo),
Roel Hartman, Alex Nuijten, Patrick Barel (all ACE or ACED so far). Iloon Ellen
Wolff, from Oracle NL, gave us some previews on Oracle’s Cloud Service, mostly
slides and video’s. A live demo wasn’t possible, because there is something
going on at Oracle and we may can expect some exciting news very soon.


The highlight, in my eyes, was Patrick Wolf’s keynote presentation, talking
about the recent enhancements of 4.1.1,and, much more exciting, giving us a
glimpse of what will come in the long awaited 4.2 upgrade. After showing the
usual “Oracle Save Harbor Statement” the conference participants were treated
with some live demos of the Oracle Application Express teams work on the new
version. As far as I can tell now, they are doing a great job, especially in
integrating the jQuery Mobile framework into APEX in a way that perfectly fits
the “declarative way” you would expect from building applications with APEX. To
mention just a few highlights (well, you know: everything mentioned might OR
might not be a feature in a future version of APEX):


Multiple theme support in one application: means you can create mobile and
“standard” pages in one application. This enhancement would take away the need
to build and deliver separate applications for targeting different devices.

  • HTML5 Form Input Type support
  • This is a
    really essential feature for mobile support. APEX 4.2 will (or may not)
    support sub types for (Text) input elements.

  • Declarative Configuration
  • If you have
    taken a look at the jQuery Mobile framework already, you know that its
    components configuration is done by adding additional “data-” HTML
    attributes. In the screens I saw, these attributes where translated and
    integrated as element/region properties, just as you are used to from other
    APEX builder screens.

  • List-Views
  • One of the main components in
    jQuery Mobile with respect to presenting data on a mobile device will be
    (or may not be) very well integrated and support (or may not) all the
    major features the jQuery Mobile framework has to offer in a declarative
    way, like List Dividers, Count bubble and Search Bar Filter.

Pity I didn’t take any photos of APEX Builder screens during Patrick’s
presentation. I was too busy modifying my own presentation about jQuery Mobile
usage in version 4.1 that was scheduled later that day. I just had to refer to
his presentation somehow. Integration jQuery Mobile “manually” looks so clumsy,
compared to what we can expect from Oracle Application Express 4.2. I’m
looking forward to the first (EA) releases of 4.2. When will that be? That’s
the one question Patrick didn’t answer, not even under “Save Harbor”
conditions.

Source Article from http://rokitta.blogspot.com/2012/03/glimpse-of-apex-42.html
A Glimpse of APEX 4.2
http://rokitta.blogspot.com/2012/03/glimpse-of-apex-42.html
http://rokitta.blogspot.com/feeds/posts/default
Oracle & Apex Geekery
And another thing …

The storm had now definitely abated, and what thunder there was now grumbled over more distant hills, like a man saying “And another thing…” twenty minutes after admitting he’s lost the argument.


Follow crokitta on Twitter

Source Article from http://rokitta.blogspot.com/2012/03/themes4apex-custom-ui-for-your-apex.html
themes4apex – custom UI for your APEX application
http://rokitta.blogspot.com/2012/03/themes4apex-custom-ui-for-your-apex.html
http://rokitta.blogspot.com/feeds/posts/default
Oracle & Apex Geekery
And another thing …

Due to the overwhelming number of registrations (250+ participants, entirely sold-out) the OGh Apex Day 2011 “Mini” congress had to be relocated to a different, larger location. This states the enormous interest in APEX in the Netherlands. Oracle Application Express is hot in NL. Another reason for the large number of participants (mainly developers) must have been the subjects of the presentations and the lineup of well known and respected (international) speakers: Dimitri Gielis & John Scott, aka the APEX Evangelists, where scheduled for 3 (!) presentations; Hilary Farrel represented the Oracle APEX development team; Roel Hartman and Iloon Ellen Wolf, both known for their high quality APEX presentations; Peter Raganitsch, APEX expert from Vienna and developer of the OpenSource Framework ApexLib.

Line-up

The OGh Apex Day 2011 was kicked off by Tony Andrews en Nigel Blair from Northgate (UK), presenting their experience with migrating a large Oracle Forms application to APEX. It was very interesting to hear, that moving from traditional Forms to browser-based increased customer satisfaction and actually earned Northgate new customers. 1500 forms+ thousands of users: who said APEX isn’t scalable?

Next Hilary Farrel from Oracle revealed some functionality planned (you probably know the usual Oracle disclaimer sheet) for release 4.1. Most of it you will find in Oracle’s SOD. I really liked the APEX & jQuery Mobile demo. Although Hillary mentioned, that jQuery Mobile will only be included with APEX 4.1 if the production release will be available by then. Maybe will hear a release date for jQuery Mobile production from the jQuery Conference in April. Maybe this could be an indication for a release date of APEX 4.1?!

Last session before lunch: the first ever duo-presentation of the two APEX Evangelists, John Scott and Dimitri Gielis, demonstrating the AE-way of handling an APEX project. Preconfigured plug-and-play installations, version control and an integrated custom issue tracking (APEX-) application: very impressive. The whole approach showed just how experienced AE is in executing APEX projects.
During the presentation Dimitri and Scott revealed the latest AE project : FoogleTwit.

 

After lunch I had to choose from 3 parallel tracks:

Core APEX
  • APEX Translation Mechanism (Peter Raganitsch)
  • Building APEX 4 Plugins (John Scott)
  • Customizing Apex Templates & Themes (Christian Rokitta; Yes, that’s me!)
APEX and “?”
  • APEX and Security (Iloon Ellen Wolf)
  • Charting and Dashboards (Roel Hartman)
  • APEX and Locator/Spacial – A Success Story (Dimitri Gielis)
APEX at Work
  • Eneco (Jasper Alblas)
  • Province of Zeeland (Hans Quist)
  • golfscores.eu (Hans Wijnacker)

 

I decided to listen to Peter’s and John’s Core APEX presentations.

Peter Raganitsch demonstrated the possibilities of translating APEX applications into different languages. It became clear, translation mechanism in APEX is not trivial and does have some pitfalls.

 
John walked the audience through the process of developing Plugins for APEX. Some of the examples where extraordinary educational and useful (the “Hello World” Plugin was just amazing). In fact, John dit such a good job, he got an extra 15 min from his audience to teach and demo.

The last presentation of this OGh APEX Day 2011 was my personal highlight: Myself speaking about Templates and Themes. I’m not talking about the quality of the presentation – that’s for others to decide – but the experience to be allowed to speak to a large audience.

Many thanks to the OGh organization for this excellent congress and for the opportunity to present.

Source Article from http://rokitta.blogspot.com/2011/03/ogh-apex-day-2011.html
OGh APEX Day 2011
http://rokitta.blogspot.com/2011/03/ogh-apex-day-2011.html
http://rokitta.blogspot.com/feeds/posts/default
Oracle & Apex Geekery
And another thing …

masterchef cookbook

 

 

 

Title: Oracle APEX 4.0 Cookbook

Language : English
Paperback : 328 pages [ 235mm x 191mm ]
Release Date : December 2010
ISBN : 1849681341
ISBN 13 : 978-1-84968-134-6
Author(s) :
Michel van Zoest, Marcel van der Plas

 

 

 

A cookbook is a book that contains information on cooking. It typically contains a collection of recipes, and may also include information on ingredient origin, freshness, selection and quality. – Wikipedia

Entrée

The APEX 4 EA release got available almost exactly a year ago. What could be a more appropriate anniversary present than a book entirely dedicated to and based on APEX version 4? I was very much looking forward to this book release, as this is one of the first APEX 4 books and the title suggests that there will be some recipes with new feature as ingredients.

Main Course

In formal dining, a well-planned main course can function as a sort of gastronomic apex or climax. In such a scheme, the preceding courses are designed to prepare for and lead up to the main course in such a way that the main course is anticipated and, when the scheme is successful, increased in its ability to satisfy and delight the diner. – Wikipedia

The Oracle APEX 4.0 Cookbook combines the well known “Create my fist APEX Application” tutorials with detailed step-by-step guides through new APEX functionality. It makes this book suitable for beginning APEX developers. For more advanced developers it is a good reference while working with functionality, introduced in APEX 4.0.

If you are new to APEX, you can start learning APEX by working through the first chapter (Creating a Basic APEX Application). If you have read Oracle’s “2 Day + Application Express Developer’s Guide” (as a beginning APEX Developer you should have!), some of the recipes will look familiar. Both, the book and the 2+Day Guide will take you by the hand while making your first steps with APEX. The book’s introduction does cover more aspects but compared to the 2+Day Guide, the Guide offers more explanation and background. More advanced user’s developers will probably use the recipes when they need it, or browse the chapters instead of working through the whole book chapter by chapter, just as you would do with an actual cookbook.

Each chapter is organized like an OTN Oracle-by-Example articles and one can choose between try-to-understand or just get-it-done-by-following-the-instructions approach:

  • Getting ready – prerequisites
  • How to do it… – step-by-step instructions
  • How it works… – short explanation
  • There’s more – suggestions and explanation on extending or varying the recipes
  • See also – reference to related recipes or documentation

All together, this book contains 80+ APEX recipes, varying in complexity ranging from “Creating a simple report” to “Setting up version control with APEX and SVN”. The examples are well selection and cover most of the aspects one has to learn when developing with APEX.

Dessert

This book is a great companion when developing applications with APEX. The recipe’s format helps you to take the necessary steps to get your job done. In some cases I would wish some more detailed information in the “How it works…” sections. Much of the recipes are not new. Lots of information and How-To’s have been published on blogs and downloadable documents on the internet since APEX 4.0 has been released, but it’s very convenient to have them in one place in a book, nicely arranged by subject.

 

Have a look at the Table of Contents on the publisher’s site, to see if it contains your favorite dishes.

masterchef

 

Having written this “Oracle APEX 4.0 Cookbook
Marcel and Michel sure deserve the title of APEX M@sterchefs!

 

 

Source Article from http://rokitta.blogspot.com/2011/01/book-review-oracle-apex-40-cookbook.html
Book Review: Oracle APEX 4.0 Cookbook
http://rokitta.blogspot.com/2011/01/book-review-oracle-apex-40-cookbook.html
http://rokitta.blogspot.com/feeds/posts/default
Oracle & Apex Geekery
And another thing …

kscope11 

1 ½ years ago I went to Monterey to visit the ODTUG Kaleidoscope 2009 conference. I was very impressed with the presenters, content and great atmosphere of the event. After the conference, on my way home, I promised myself to come back to KScope, as a presenter, if possible. This year is the second time I submitted an abstract. And …

This week I received an email from the ODTUG confirming that my abstract has been accepted for presentation at ODTUG KScope11, June 26-30, in Long Beach, CA.

I feel very honored and happy to get this opportunity.

Join the Cool Kids at Kscope11

Whether you’re interested in my presentation or not, if you are into Oracle Development, have some training time and budget left: Come to Long Beach next year and participate in this unique event. Kscope11 offers:

  • More than 200 technical sessions on Application Express, BI and Oracle EPM, Database Development, Oracle Fusion Middleware, MySQL
  • Five all day symposiums – No extra charge
  • Lunch and learn sessions with Oracle ACE Directors
  • Plenty of time to meet and talk with the experts and other participants

My Abstract

For who is interested, here is the abstract of my presentation:

Presentation Title:  APEX Face/Off – Designing a GUI with APEX Templates and Themes
Session Type:  1 Hour Presentation
Abstract: 

A practical guide to the concept of APEX themes and templates.
Today’s internet sites are often a blend of websites and web applications. Web application interface design is, at its core, Web design. Oracle Application Express provides facilities to customize and manage your application design.
This presentation is for Oracle APEX developers who wish to learn how to provide their applications with a professional looking custom GUI design using web standards HTML and CSS together with APEX templates and Themes.
It will outline the skills, tooling and steps necessary to create a custom APEX GUI design using the concept of APEX templates and themes.
The presentation focuses on the practical aspects, from graphical GUI design to translating and integrating this design into APEX. It will be escorted by live, visual examples, suggest “Best Practices” and discuss the limitations of APEX.

 

I hope to see you in Long Beach next year.

Source Article from http://rokitta.blogspot.com/2010/12/odtug-kaleidoscope-2011.html
ODTUG Kaleidoscope 2011
http://rokitta.blogspot.com/2010/12/odtug-kaleidoscope-2011.html
http://rokitta.blogspot.com/feeds/posts/default
Oracle & Apex Geekery
And another thing …

1063EN_MockupCover

 

 

Language : English
Paperback : 320 pages
Release Date : March 2011
ISBN : 1849681066
ISBN 13 : 978-1-84968-106-3
Author : Mark Lancaster

 

March 2011 the book “Oracle Application Express 4.0 with Ext JS”, written by Mark Lancaster, is expected to be published by Packt Publishing, but it’s available NOW already as a RAW edition.

RAW?

What is a RAW edition? Well, basically, it’s a prerelease (Read As we Write). Some chapters are still missing and no guaranties, that anything you’re reading in this RAW edition will actually be in the final book release. So, this article will be a pre-review. Is it worth reading? I think it is. You will see: for this book, RAW means VERY WELL DONE already.

Do be mislead by the title. This book is not solely about how to spice up your APEX GUI with ExtJS. This book discusses application GUI development with APEX in general and extending APEX functionality with ExtJS in particular.

What will you learn from the book?

The book will guide you through the whole installation and setup process of your APEX development environment, discussing the different web server alternatives. One of my favorite chapters here is the explanation of how to combine APEX with Subversion as version control system to automate your build process.

If you’re not familiar with Ext you will get an (APEX free) introduction to get acquainted with Ext, starting with a simple hello-world-like example , learn about CSS manipulation, DOM navigation and manipulation, event handling and finally advance to object notation and namespacing. All in about 30 pages, code examples included. Just enough to get stated without getting bored.

Ext offers lots of web GUI enhancements, but to use those in APEX you will have to work with templates and themes. The book explains the of the APEX model, how to create your own template step-by-step and integrate ExtJS into it.

Once familiar to the basics of ExtJS enabled APEX GUI building, you now will go through a number of detailed examples, creating, modifying and enhancing templates with ExtJS and CSS techniques: Regions, Labels, Lists, Button, Popups, Breadcrumps, Calendars and Reports to start with. Next you will get some examples of how to add some more advanced Ext layout elements to your Application, like the Ext.DatePicker, Auto-growing text areas, auto-completing text fields, tab panels, toolbars and menus.

A book about APEX 4.0, especially when covering GUI aspects, should spent some pages on Plug-ins and Dynamic Actions. This book will teach you, how to build your (first?) own Plug-in with a simple example, step-by-step and create a AJAX enabled Plug-in and Dynamic Actions.

So far the well done RAW version of the book. What’s still to come? The Mark Lancaster plans include chapters about:

· Interactive Components

· IFramed Tabs and Popup Windows

· Mixing Ext with jQuery

· Performance tuning your JavaScript

Conclusion

I like this book already. Lots of I’m-going-to-try-this-immediately examples, clear writing, good basics and well explained advanced examples make me recommend this book. You should have some experience with Application Express, experience with Ext is not required.

Pity the complete source code of the examples is not yet available on the Packt Publishing site.

I’m looking forward to the finished version. Meanwhile, if you are interested in the RAW edition of the book. Packt offers a nice deal: buy the RAW version of this book and place a pre-order for the print book right now, with a 40% discount on both.

Source Article from http://rokitta.blogspot.com/2010/11/pre-review-oracle-application-express.html
Pre-Review: Oracle Application Express 4.0 with Ext JS : RAW
http://rokitta.blogspot.com/2010/11/pre-review-oracle-application-express.html
http://rokitta.blogspot.com/feeds/posts/default
Oracle & Apex Geekery
And another thing …

statementofdirection Oracle just came with an update on its “Statement of Direction” for APEX. Once again Oracle confirms that APEX will continue its efforts to enhance this development platform, which should not be a surprise, but there were often doubts (especially from IT management) whether APEX will be a platform to base long term planning on, preferring ADF as the framework primarily promoted as the-way-to-go. Apex is mature, and will become more mature with the announced enhancements in this SOD.

 

  • Oracle continues to invest in the development and support of Oracle Application Express and new versions of Application Express will be released at least annually.

So, version 4.1 should not be too far away from being released, as 4.0 is almost half a year “old” now (not taking into account the time the EA release was available).

Oracle lists some features planed for the upcoming version, and I just would like to comment on some of them:

 

  • Development for Mobile Applications – Include themes and HTML templates suitable for smart phones and mobile devices.

Creating an APEX GUI for mobile devices using themes and templates is already possible with the current release, in fact, was possible with earlier releases as well. So I’m very curious what the Apex team comes up with, as I’m currently migrating a web application to Oracle/Apex which must be accessible from both: mobile and PC-based browsers.

  • Charting – Provide for chart rendering without using Flash (to enable display on mobile devices).

iWhatever users will be very thankful ;-).

  • Interactive Reporting – Allow multiple reports on one page and support pivot queries.

Great! Finally a pivot feature in Apex. I believe, this is the number 1 missing feature in Interactive reports, which keeps business users from using Apex as “Excel-replacement” analysis tool. Hopefully the user will be able to customize the pivot report just like in Excel.

  • Tabular Forms – Allow multiple tabular forms on one page and continue to expand tabular forms validations.
  • Master-Detail-Detail – Allow the generation of pages to support master-detail-detail relationships.

Not being able to have multiple tabular forms on one page (out-of-the-box) is one of those annoying things almost every developer has experienced when starting to develop with Apex. Developers and customers/users will appreciate this enhancement.

  • Use of ROWID – Allow usage of ROWID for Automatic DML processing (as an alternative to identifying the PK columns).

So a developer will be able to choose between ROWID and (manually identifying) PK columns? That would definitely be nice.

  • Modal Dialogue – Add ability to display a dialog on top of a page (the rest of the page will be grayed out).

This is possible now too, but only by using some JS library or writing your own DIV based layout. A build-in functionality would be of great help, as this often is a wanted functionality.

  • Data Upload – Enable end-users to upload data into an existing table (within an application).

I bet there are numerous Apex applications which have just this functionality. So, no need to come up with custom solutions anymore? Wizard based? How customizable will this feature be? I’m very curious.

Source Article from http://rokitta.blogspot.com/2010/11/oracle-updates-apex-statement-of.html
Oracle updates APEX Statement of Direction
http://rokitta.blogspot.com/2010/11/oracle-updates-apex-statement-of.html
http://rokitta.blogspot.com/feeds/posts/default
Oracle & Apex Geekery
And another thing …