Monday 26 April 2021

Kicking the tyres on Oracle APEX 21.1

 It's lockdown on a long weekend, and Oracle APEX 21.1 has just been deployed to, how could I not have a play?

We've been provided a link to New Features, but for some aspects I'll need some help from the documentation, when it becomes available - and perhaps some examples from people more knowledgable than I.

Native Map

This will be one of those features where I'll need some more guidance, and I suspect this AskTom Office Hours session that I haven't watched yet would probably be a good start.

The create page wizard looks promising

Create native map

And after fiddling around with the region attributes, I was able to plot three lat/long addresses onto a map.

Native map runtime

I also noticed there were some native Dynamic Actions associated with the map region, but I'll patiently await further information on this one. 

Good to see it's dark-mode ready, though. 

Lazy Loading

This is one feature I've been waiting to become native, and I probably would have been a little disappointed if it didn't arrive with 21.1, and here it is, nice and simple.

Lazy loading option

We can emphasise the behaviour with the browser's device toolbar options, for instance, throttling to 'Low-end mobile'.

Here I have an IR and Classic Report both using the lazy loading option.

Lazy loading runtime

Custom built solutions can use the no-data-found message to inform the users data is still loading, I would like this feature to offer some facility in that regard.

Code Editor

I like it when we're giving options on what code editor features are available, and it looks like we've been provided a few more keys to the playground with the 'Monaco' based code editor.

Code editor settings

There are some APEX specific improvements, too. For instance, we're now notified when a page item doesn't exist - thought I think it needs a bit more polish. It appears to be case sensitive, and doesn't clean up very well once you've corrected the problem.

Code editor item reference check

It seems we have a few more keyboard shortcuts available now for case transformations. That's always nice.

Universal Theme enhancements

If you like the Redwood Light theme, it seems that's been given more love compared to the first round.

There are some added declarative options, but I'll probably need more context as to how they're used. I don't think the UT application has those guidelines yet, or I didn't see them.

Row CSS classes seems like it should have been there all along with Column CSS classes. What would be an example of it's use?

Grid layout property addition

CSS classes against the Theme Style seems like it will allow more elegance, but again, I'd like to see an example.

Theme style property addition

Having even a cursory look at these new features also made me consider how I've been utilising existing behaviours. The File URL for a theme style seems a better spot than I've been using for custom CSS I've added to fill gaps in the dark mode.

Template Options have always had a few surprises in version upgrades, though I'm not sure what the region Heading Level is supposed to do.

Region template options

Universal Theme application

I notice the UT app has some extra options in the navigation bar.

The version facility sounds like a fair addition for those who may be a version or so behind. I wonder what this changes, exactly. Does it affect content, or just the styling that's applied. Though I notice you can't select an older theme while dark mode style is applied.

UT app navbar

The Style option is pretty cool. I've been playing with a similar feature in my app, but it seems like I've been submitting the page like a chump - I'm curious as to how this work.

Date Picker

It's always good to get improvements on such a common component. The Maximum Item seems like a more declarative facility compared to what we have now, but now it appears to be dynamic - responding to a related item's selection. Perfect for from/to selections.

New date picker settings

Display Inline really stands out, must be for when date selection is rather important.

Now that DanielH is on the team, it almost seemed inevitable that the time picker would be enhanced in some form. This could mean another plugin is no longer required, though I'll reserve judgement until after I play some more.

Time picker enhancement

Import export as ZIP

This seemed inevitable, but I don't think it will impact me so much.

Application Data Loading

I need to spend time to revisit this feature. The column mapping aspect intrigues me.

Faceted Search enhancements.

I haven't used this facility in production yet, but it's good to see it progress as it's such a ubiquitous web feature.

REST Data sources

Schedule frequent loading of CSV data from the web? Getting data into the database easier has gotta be good.
Juergen has a good way of putting this:
"Put your Excel Sheet in your Sharepoint, change it as you like and I give you an real time App on top of it" feature

Markdown upgrades

This will float some people's boat.


I like the sound of client side numeric formatting, and improved client side validation.


This release seems in line with the stated roadmap, though as Andre describes, there are also some long standing painpoints that exist for the developer that could use some attention at some point.

The Oracle APEX development team have had some quality additions recently, though the whole COVID situation has potentially slowed some general improvements. 

That said, the product continues to improve, and the team responds well to community feedback. I also look forward to seeing improvements in the feedback application itself.

Get in there, kick the tyres, and give the development team some constructive feedback. We can all help make this an even better product.

Hold the phone! 

Just as I was about to clean the post up for submission, I saw Juergen's tweet about client side conditions on individual dynamic actions. I think the team are underselling that feature on the New Features list!

Client side condition in DA actions

Though as handy as this feature will be, I suspect it could be abused - in regard to maintainability. It could leave to code/behaviour that's a little difficult to follow. We'll have to keep an eye on that.

Monday 19 April 2021

Dare Mighty Things

As a data engineer (of sorts) I've handled some cool data in my times, and created some interesting plots.

I still remember when I used rpad with stddev() in SQL*Plus to prove the data we had formed a bell curve.

More recently I've used Oracle APEX activity logs to identify bottlenecks and high frequency pages.

But this evening I was in awe as I saw a simple plot appear on my smartphone. This plot used data that spent at least 15 minutes travelling almost twice the distance from the Earth to the Sun to reach us, across an incredible network of computers.

Data from a craft that made history as it made controlled, powered flight on another planet.

First Martian flight plot

Sure, it's no secret I'm a big fan of all things space, and some may say that this achievement is a little overhyped. 

Not me. 

This is one of those moments that's going to inspire little future engineers that see a diverse group of people around the control room creating a moment in history that's justifiably likened to the first powered flight on Earth over 100 years ago.

This event is going to be the baseline for exploring Mars in ways that have only been dreamed about so far. And the drive to improve technology to improve the capability of this exploration is going to continue to benefit those of us living on Earth.

This doesn't mean us humble data engineers crawl deeper into caves of inadequacy. It may have taken a few people to cobble together a small engine on some timber roped together to fly a few hundred feet, but it takes a team of all sorts to send a rocket containing a nuclear powered rover containing a battery powered helicopter to another planet, land it, then fly it in an atmosphere so thin. 

And I feel for that team right now who can't hug their colleagues during tears of triumphant joy at their pent up success. Well done JPL.

We just need to dare mighty things. Even with our little apps - they make a difference to someone.