Skip navigation.

Development

KScope14 (Sunday) - APEX Symposium - before noon

Dimitri Gielis - Sun, 2014-06-22 12:54
Sunday is typically the day where the Oracle development team is on stage to talk about what they do, give insight in the product etc. - for me personally one of the highlights of the conference.

The Awesome Evolution of Oracle Application Express 5.0 by Joel Kallman
Joel demoed HTML DB 1.6 again, the predecessor of APEX - went live in 2004, so 10 years ago (time goes fast!). Next he timed doing development in APEX 4.2 compared to APEX 5.0.  
Conclusion: APEX 5.0 is more productive, efficient, intuitive, modern and easy.
Joel highlighted the other new features in APEX 5.0, most of them I already blogged about or you find them here.

The Game Changed - APEX Designer by Patrick Wolf
Patrick showed the time it takes to build components and items in previous versions of APEX. Next he compared it to how you do things with the new Page Designer in APEX 5.0.
There're so many new features in the Page Designer, just give it a try to explore them. It will take a bit of time to get used to them, but it will be the future. 

Turbo Mobile Development by Marc Sewtz
APEX uses jQuery Mobile behind the scenes. APEX 5.0 includes the latest version (jQuery Mobile 1.4). The philosophy is to create "mobile first" applications.APEX 5.0 will include a new mobile theme, which support the new jQuery Mobile swatches. It's very easy to use ThemeRoller to create your own swatch and upload the zip in Shared Components in APEX and add a style to the theme and make it active.
There are many more new features in APEX 5.0 for mobile development like for example a new region type called "Reflow table".
Categories: Development

APEX 5.0 - Rejoin Session

Denes Kubicek - Sun, 2014-06-22 03:38
This great feature is finaly there. I remember asking for a solution back in 2007. I needed to send emails with application links to my users. If they would receive an email they would click on the link and were supposed to land on a particular page. The problem was that they would already have an open session and they expected the link to go straight to the page without asking for a new login. The solution I found was quite tricky and it stopped working with the version 4.1 because of the changed session handling. APEX 5.0 finaly introduces this option out of the box. You can enable it in the security attributes for:

- Public Sessions only
- All Sessions



You can of course override these settings on the page level, which makes a lot of sense.

Categories: Development

APEX 5.0 - Page Designer; immediate feedback and more

Dimitri Gielis - Fri, 2014-06-20 14:30
In APEX 5.0 you (can) develop in the new Page Designer.

The Page Designer makes you way more productive, less clicks and quicker results. You have to get used to it, and you probably want a big monitor (time to ask your boss!), but once all that is done - you will love it.

The Page Designer is so intuitive and attention was put in the details. When you make a mistake APEX gives you immediate feedback. Here's a screenshot:


The region where the error is, is highlighted.
You get a notification message top right in red with the error message and inside the property panel it's highlighted what you need to change. Once you click on the field it will give another text notification e.g. that it is required.

There's also the Messages tab which gives you an explanation of what is wrong. Clicking on the link will bring you right where you need to go.

But just look at the Page Designer for a while; notice the small top left red triangles; it identifies it's a required field. The "Show Common" and "Show All" tabs are great too.

So many things, small, large, ... but so useful.

Here's another one - Developer Comments for the page. If there are comments you see a number in the comment icon. When clicking on the icon you can add more comments. I believe it would also be useful to see the existing comments, hopefully that will be in the final release.


This post is based on Oracle APEX 5.0 EA2, but there's more coming it looks like. Linked to the previous feature, I see a tighter integration with Team Development already too.

So many things to explore in the APEX 5.0 Page Designer... definitely worth your time.
Categories: Development

Resolving Problems with the Embedded WebLogic in JDeveloper on Mac

Shay Shmeltzer - Fri, 2014-06-20 10:03

Just a quick entry about something that I ran into in the past with JDeveloper 11.1.2.4, and that some of you who are using Mac might run into.

When you try and run your web application and the embedded WebLogic tries to start you might run into an error like:

Unrecognized option: -jrockit
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit. 

This is most likely due to the fact that JDeveloper is trying to use the wrong JVM to run your WebLogic.

To solve this - go into the system11.1.2.4.39.64.36.1/DefaultDomain/bin directory and locate the setDefaultDomain.sh file.

Edit this file and add the following lines:

JAVA_VENDOR="Sun"

export JAVA_VENDOR 

By doing this you'll instruct WebLogic to start with a regular JVM and not the JRockit variant which isn't on your mac. 

Categories: Development

APEX 5.0 - Button Appearance (template options + Font Awesome)

Dimitri Gielis - Wed, 2014-06-18 22:58
With the new template, the new buttons for example are highly customisable in APEX 5.0(icon on the left or right, spacing between, etc.)

In the Appearance section you find kinda the same options as in APEX 4.x, but when you look a bit further, there's so much more now.

You can declaratively change the way your button looks like, by clicking the Template Options:


The icons you can chose for your button are based on Font Awesome, a great scalable vector icons library.

I use Font Awesome in APEX 4.x too, but I had to create a new button template and put the name of the icon in the class section. This is now all integrated and declarative in APEX 5.0.

Categories: Development

APEX 5.0 - Keyboard shortcuts

Dimitri Gielis - Wed, 2014-06-18 22:40
Develop even faster? use the keyboard shortcuts in Oracle Application Express (APEX) - you find them defined here:



Here's the list:
  • Display From HereCtrl+Option+D
  • Display From PageCtrl+Option+T
  • Go to Dynamic ActionsOption+2
  • Go to Gallery ButtonsOption+9
  • Go to Gallery ItemsOption+8
  • Go to Gallery RegionsOption+7
  • Go to Grid LayoutOption+5
  • Go to HelpOption+F1
  • Go to MessagesCtrl+F1
  • Go to Page Shared ComponentsOption+4
  • Go to ProcessingOption+3
  • Go to Property EditorOption+6
  • Go to RenderingOption+1
  • Keyboard ShortcutsOption+Shift+F1
  • Page SearchCtrl+Option+F
  • RedoCtrl+Y
  • Restore/ExpandOption+F11
  • SaveCtrl+Option+S
  • Save and Run PageCtrl+Option+R
  • Toggle Hide Empty PositionsCtrl+Option+E
  • UndoCtrl+Z

  • For Mac users like me; the Option key is "alt". For the F1 etc. use "fn".
Categories: Development

Oracle APEX 5.0 EA2 - first impressions

Dimitri Gielis - Wed, 2014-06-18 22:23
You can now request a workspace in the brand-new version of Oracle APEX 5.0 (EA2).


Once requested a workspace you will get an email to activate it - and you're up-and-running!


The login screen looks awesome:


And then you see the new APEX Builder - new theme, with all new icons:


The Application Builder looks different now too - look at the nice icons and new style of Interactive Report:


Creating a new application - the wizard is more streamlined:

Creation of a new page is now with a modal window implementation:

When finished it opens the page in the new Page Designer:


It looks like all the components are now available in the Page Designer (Shared Components for ex. wasn't available in EA1 - but it is now)

Creating new pages work well and the new universal theme (theme 42) looks nice too.

Oracle APEX went flat design, with bright color blue and grey and nice icons (which are available as a font).

More to come in other blog posts... have fun! and thanks to the APEX Development team for another great release.
Categories: Development

A terribly oblivious ultra-rich man

FeuerThoughts - Mon, 2014-06-16 08:48
Steve Ballmer is a terribly oblivious ultra-rich man.

His offer of $2B for the Los Angeles Clippers is so ridiculously outsized and unjustified, plus it so richly rewards Sterling for, um, for saying something in private.

[Interesting to consider how in the US, land of free speech, this nasty brutish fellow is being punished -well he was being punished before Ballmer rewarded him - for his private thoughts. That's pretty awful when you think about it.]
Anyway back to Ballmer. His offer is so absurd that it becomes patently obvious to everyone that he has so much money it's simply no big deal for him to throw $2B on the table to unambiguously cinch the deal. 
The aristocracy in France did quite well, too, until they forgot that they were supposed to pretend at lesat a little bit that everyone else weren't virtually slaves for them. But when they got too flagrant, they paid, oh how they paid.
And here in the 21st century, in what is supposedly and still formally a democracy, with citizens supposedly being equal under the law, you really don't want to draw attention to your beyond obscene wealth.

Bad move, Ballmer. If I were a fellow billionaire, I'd get in touch and tell him to tone it down. 
Categories: Development

The closer you look....

FeuerThoughts - Mon, 2014-06-16 08:45
In the last couple of years, I have shifted my attention away from the human condition (wars here and there, cool new gadgets, etc.) to the non-human condition: the natural world of trees, water, creatures large and small, the process of evolution.

Along the way, I have been reminded that what you pay the most attention to is what your brain spends the most time thinking about (at least the parts of my brain that "I" am "conscious" of). So I need to be careful about what I pay attention to (one reason that I have stopped watching television almost completely). 
And spending ten plus hours a week outdoors, in the woods, cutting back invasives and rescuing trees, has reinforced this to me:
With living things, the more I watch and more closely I watch (and smell and taste), the more amazed I am by the wonders of life. And the more alive I feel,
With manufactured things, it is just the opposite.
The more closely I look at something made by humans, the more sterile, dead and energy-sucking it appears. And the more I watch (or smell or taste), the more deadened I feel.
Perhaps this is not such a big surprise, since everything that humans make is dead, and built upon the deaths of many creatures. Sorry if that sounds like such a downer, but I believe it is simply a statement of fact.
Anyway, no need to feel down. Just go outside, into the trees, into a field, away from things we make, take a deep breath, feel the sun on your face....and you will feel much better.
Categories: Development

APEX 5.0 EA2 available in the next days

Dimitri Gielis - Wed, 2014-06-11 14:34
Joel just blogged that the 2nd Early Adopter release of APEX 5.0 is around the corner.

Here are some screenshots posted on twitter:



I'm sure this new EA will carry many changes and looking at some screenshots it looks awesome.
I especially look forward to the new universal theme.

Here's what should be in - based on the statement of direction of APEX 5.0 :
Oracle Application Express 5.0Oracle Application Express 5.0 will focus on both new features and enhancements to existing functionality to improve developer productivity and is planned to incorporate the following:
  • Page Designer - New page definition IDE which incoroporates tree controls, drag and drop layout editor, and a property editor.
  • Multiple Interactive Reports – Allow any number of Interactive Reports to be defined on a single page.
  • Modal Dialog - Enhance the ability to declaratively define modal dialogs.
  • Navigation Lists - Ability to define hierarchical lists for navigation, with pull-down menus and sub-menus, instead of being constrained by tabs.
  • Mobile - Enhanced responsive tables, including reflow tables and column toggles, and introduction of panels.
  • Calendar – New calendar region which allows duration based events, improved functionality, and better control over drag and drop operations.
  • Universal Theme – A new central theme which readily allows developers to customize simply using CSS.
  • HTML5 Capabilities – Improve native capabilities for handling HTML5 constructs.
  • Application Builder Security – Allow different authentication schemes to be used to control developer access to the Application Builder.
  • Numerous functional improvements.
Categories: Development

Oracle APEX Cookbook: Second Edition

Dimitri Gielis - Wed, 2014-06-11 14:24
For the first Oracle APEX Cookbook I was involved as a reviewer.

Michel and Marcel updated their book end of last year, but I didn't take the time to blog about it yet - and months fly. The concept stayed the same as the first edition, but it got updated with the latest info for APEX 4.x.

"People who followed a beginner training or learned APEX at their own and they want to know how to do a specific thing which is covered in the book, it's great to have the book, as you can just follow what the authors wrote and you also have an idea why it's done like that."

If you need onsite Oracle APEX training, you can also contact my company APEX R&D :)
Categories: Development

Social Authentication (Facebook) in WC2014Challenge

Dimitri Gielis - Tue, 2014-06-10 15:33
People expect these days from a public website you can authenticate with Facebook, Google+, Linkedin, Microsoft etc. It's very convenient as you don't need to create a specific account per website.

Background

All of the social networks have very good documentation how to call their APIs.
Here's for example the Facebook Login explained.

Most of the API's use the OAuth2.0 protocol, there's an application key and tokens that are send with the requests. Here's an overview how it works with Google+


So how easy is it in Oracle Application Express (APEX) to do such social authentication?

Unfortunately Oracle APEX doesn't provide us with a native social authentication mechanism just yet. But nothing prevents you from building it yourself.

Here are the options I reviewed:

  • Custom build; in PL/SQL you call the different url's and make some procedures public so when the social network comes back you can intercept the call and move on.
  • Oracle REST Data Services supports OAuth 2.0 and the calls are mostly REST calls, so I also looked into writing the logic in ORDS (and PL/SQL) and integrate that way with my APEX application.
  • Some people in the community wrote an authentication plugin which does the hard work for you.

I went with a combination of the Facebook plugin in combination with my own PL/SQL code.
Peter was so nice to share his work with me, thanks again for that Peter. I first thought that the authentication plugin would be plug-and-play, just like the other APEX plugins... but that is not the case.
It hasn't much to do the way Peter's team implemented it, it has more to do with the complex setup of SSL certificates etc. So when downloading the plugin, know that it will take some time to configure it. Luckily Peter provides good documentation so it makes it a bit easier.

So, to see the authentication to work, login with your Facebook account on the wc2014challenge.com site. I extended the plugin a bit so it will automatically create a site account for you behind the scenes so regardless if you create a site account or login with Facebook it can hook up the scores, bets etc. in the same way.

Challenges with Social Authentication

If you want to provide Facebook, Google+, LinkedIn and a normal site account in your app, I found some challenges with that. How do you hook-up a person that logs-in with Facebook the first time, with the same player logging in with Google+ the same time? You could use the email address maybe? But what if they use different ones? There are many blog posts about this topic and how to get around it, but it would bring me to far in this post. I might do a follow-up post later as it's an interesting challenge.

Future 

I really believe that most public sites will allow social authentication, so I hope the team of ORDS or the APEX development team will make something available to do the social authentication natively in the future. I believe that would be the best solution (fast to implement and secure).

Categories: Development

Security Audit of WC2014Challenge

Dimitri Gielis - Mon, 2014-06-09 15:34
A few weeks ago I asked my friends at RecX to do a security audit of the World Cup 2014 Challenge app.  The result was a security assessment document which explained what they tested, an explanation why it was important and the results they found. I found it very interesting to see how other (security) people approach your code.

Here are the areas they went into:

Access Control
  • Hidden items
  • Item Protection
  • Page Access Protection
Configuration
  • Session Timeout
Cross-Site Scripting 
  • Column From LOV/Query (make use of )
  • Direct Output
  • Indirect Output
  • Report Column Display Type
  • Template Variables
Tip: make use of apex_escape.html, apex_escape.html_attribute, utl_url.escape
Data Protection 
  • Page Autocomplete
Tip: Ensure sensitive data is not held in the browser cache

Warnings
  • Direct URL
You can read more about security in their Hands-On Oracle Application Express Security book.

Thanks Nathan and Tim.
Categories: Development

Telling Tales

Greg Pavlik - Sun, 2014-06-08 17:50
After struggling to find time for many months, I finally was able to sit down and watch without interruption Benjamin Bagby's Beowulf performance - an adaptation that relies on Bagby's voice and a reconstruction of a 6th century 6 tone Anglo-Saxon harp. The performance is engrossing and provokes a strong imaginative response, one that would have been communally experienced. Of course the only way to revive a sense of communal experience in the case of Bagby is to see him perform live - however, given the performance is entirely in Old English and as such most unintelligible without subtitles, I think a digital adaptation may be a necessary tradeoff. In many ways, Bagby's Beowulf is a reminder of how impoverished our notion of entertainment is - ephemeral, base, isolating and essentially throw away as a rule.

By the way, it's not entirely the case that the English are unable to create something of the same texture today - several times during the performance I thought of Judith Weir's one person, unaccompanied opera King Harald's Saga. Weir's work is much shorter, principally a musical composition and less poetically rich, so it is difficult to compare the two directly: Beowulf remains the provenance of a balladeer first and foremost, and this is a genre that more and more feels lost to our world - poetry today rarely seems to be meant to be read allowed and even more rarely follows epic formats. This is a lost social phenomena, for which we are impoverished: in fact, the last long work of a balladeer I read was Ethiopian Enzira Sebhat, itself a medieval work dedicated to the Virgin Mary. The closest - though only indirectly comparable - works to the Enzira Sebhat that I am aware of currently being composed are akathistos hymns of the Russian Orthodox tradition. And while many of those recent compositions are less-than-accomplished literary works, they unquestionably represent a rich and living and at times very beautiful means of transmission of communal memory and values. I am not aware of any recent akathistos compositions that have the expressive beauty and originality of the Byzantine hymnographer Romanos the Melodist, the modern akathist has sometimes proven a source of inspiration for exceptionally great art: the late Sir John Tavener's setting of the "thanksgiving akathist" being perhaps the most significant case in point.

Automatic Time Zone Support in WC2014Challenge

Dimitri Gielis - Tue, 2014-06-03 11:27
How do you show to people in different timezones the schedule in their own time?

That is the issue I had when building the wc2014challenge.com site.

So I started to just show the schedule in the "local time" of the stadium the match was in, so I didn't have to deal with the issue :)

But as you might think, people started to ask to see the schedule in their own time.

In previous years I solved the issue by adding a select list, so people could select the timezone they wanted to see the game in. Behind the scenes I reran the query and added the offset to the time - that worked just fine. Now the challenge this year is that the Brazilian timezone exist out of two timezones, so I couldn't really use the mechanism of before.

In the Oracle database, instead of a date column, you can use a timestamp with timezone column and can better calculate the difference. Another way is to use the "timestamp with local timezone", so you see the data in your timezone (after alter session set time_zone = your timezone).

Instead of doing the timezone conversion, I also thought of doing it on the client (browser), with momentjs for example.

They all have advantages and disadvantages... but at the end I decided to use the native APEX way.

Step 1: make sure your column is of type TIMESTAMP WITH LOCAL TIME ZONE:


Step 2: set Automatic Time Zone to Yes in "Edit Globalization Attributes" (Edit definition of your app).


And you are done!

Looking at the schedule it shows the times in my timezone, automatically. The nice thing is that this is cross application, so the calendar automatically shows the times in your timezone too. Very, very nice - no additional code.


So it's very easy to make your APEX application time zone aware... the only drawback I find is that this solution requires a redirect the first time you hit the site. That is not really good for Google rankings, but the advantages weight way more than that for now.

You can also read Joel's blog about automatic time zone in APEX 4.0, he build another example which you can follow.

Categories: Development

Em12c Creating Metric Extension(User Defined Metrics) for BPEL Process State OFF

Arun Bavera - Tue, 2014-06-03 11:14

 

clip_image002

clip_image004

clip_image006

clip_image008

clip_image010

 

select Domain_ref,process_id,state  from ORABPEL.PROCESS where state=1;

 

 

clip_image012

clip_image014

clip_image016

1) Save as Deployable Draft

2) Publish Metric Extension

3) Deploy To Targets : Cluster Database

4) Add this metric to your incident Rules to get alerts

clip_image018

clip_image020

Categories: Development

Memories of the way we were...

Greg Pavlik - Sat, 2014-05-31 15:13
The fascinating thing about Hadoop is the obviousness of its evolutionary needs. For example, MapReduce coupled with reliable scale out storage was a powerful - even revolutionary - effect for organizations with both lots of and multi-structured data. Out of the gate, Hadoop unlocked data "applications" that were for all intents and purposes unimplementable. At the same time, it didn't take much imagination to see that separating the compute model from resource management would be essential for future applications that did not fit well with MapReduce itself. It took a lot of work and care to get YARN defined, implemented and hardened, but the need for YARN itself was fairly obvious. Now it is here and Hadoop is no longer about "batch" data processing.

Note, however, it takes a lot of work to make the evolutionary changes available. In some cases, bolt on solutions have emerged to fill the gap. For key value data management, HBase is a perfect example. Several years ago, Eric Baldeschwieler was pointing out that HDFS could have filled that role. I think he was right, but the time it would take to get "HBase-type" functionality implemented via HDFS would have been a very long path indeed. In that case, the community filled the gap with HBase and it is being "back integrated" into Hadoop via YARN in a way that will make for a happier co-existence.

Right now we are seeing multiple new bolt on attempts to add functionality to Hadoop. For example, there are projects to add MPP databases on top of Hadoop itself. It's pretty obvious that this is at best a stop gap again - and one that comes at a pretty high price - I don't know of anyone that seriously thinks that a bolt on MPP is ultimately the right model for the Hadoop ecosystem. Since the open source alternatives look to be several years away from being "production ready", that raises an interesting question: is Hadoop evolution moving ahead at a similar or even more rapid rate to provide a native solution - a solution that will be more scalable, more adaptive and more open to a wider range of use cases and applications - including alternative declarative languages and compute models?

I think the answer is yes: while SQL on Hadoop via Hive is really the only open source game in town for production use cases - and its gotten some amazing performance gains in the first major iteration on Tez that we'll talk more about in the coming days - its clear that the Apache communities are beginning to deliver a new series of building blocks for data management at scale and speed: Optiq's Cost Based Optimizer; Tez for structuring multi-node operator execution; ORC and vectorization for optimal storage and compute; HCat for DDL. But what's missing? Memory management. And man has it ever been missing - that should have been obvious as well (and it was - one reason that so many people are interested in Spark for efficient algorithm development).

What we've seen so far has been two extremes available when it comes to supporting memory management (especially for SQL) - all disk and all memory. An obvious point here is that neither is ultimately right for Hadoop. This is a long winded intro to point to two, interrelated pieces by Julian Hyde and Sanjay Radia unveiling a model that is being introduced across multiple components called Discardable In-memory Materialized Query (DIMMQ). Once you see this model, it becomes obvious that the future of Hadoop for SQL - and not just SQL - is being implemented in real time. Check out both blog posts:

http://hortonworks.com/blog/dmmq/

http://hortonworks.com/blog/ddm/


New Continuous Integration tutorial published

Lynn Munsinger - Mon, 2012-07-02 09:44
Hot off the press – a new continuous integration tutorial. It’s really not just about continuous integration, though! You’ll find it useful even if you aren’t using a continuous integration server like Hudson. It’s useful if you are doing any part of the scenario it documents: Setting up Team Productivity Center for your team and [...]

Advanced ADF eCourse, Part Deux

Lynn Munsinger - Tue, 2012-06-19 15:11
In February, we published the first in a series of FREE(!) online advanced ADF training: http://tinyurl.com/advadf-part1 The response to that course has been overwhelmingly positive as more and more people are moving past the evaluation/prototype stages with ADF and looking for more advanced topics. I’m pleased to relay the good news that the 2nd part [...]