The CSS Calendar is based on Full Calendar 1.6.4, at the moment of writing, the current latest production release. The creator of this JQuery plugin, Adam Shaw, is currently working on version 2. A few days ago he released beta 2. It remains to be seen which version of Full Calendar will make it in the final release of APEX 5.0.
Following the wizard in APEX allows us to add a Source for the calendar.You can just enter a SQL query here.
In the next step you define which column contains your start date, the end date etc.
There are some nice features that come with Full Calendar, for example the integration with Google Calendar and JSON (APEX WebService URL). Another interesting feature is the export to different formats like iCal and CSV.
Finally running the page shows you the new CSS Calendar. You can change the color scheme of the calendar by changing the css.
This CSS calendar is also responsive... when you make your screen smaller the calendar automatically switches to the Week view.
The only thing that's missing with this calendar is a year view... there are people who created extensions for example here and here to offer the year view. Hopefully version 2 of FullCalendar will add the year view native. Wonder if the final release of APEX 5.0 will include the year view too...
Click the Create Page button in Application Builder and select "Feedback Page":
The next step looks like this:
The Page Mode can now be set to Modal, so instead of a popup it will render as a modal.
Note that in the EA1 version there are some known issues with the Feedback Page, which will be resolved in one of the next iterations of EA.
One issue made me think that once I upgraded my applications to APEX 5.0 I probably want to start searching for "apex.navigation.popup.url" and change those to become the native APEX 5.0 modal windows. It's those "small" things like declarative modal windows which make a big difference in development effort and clean code. But more on modal windows in a dedicated post.
I love the Feedback mechanism and how it integrates with Team Development, but if it had one more feature, I would be thrilled. It's great to know session state, it's great people can add a comment, but sometimes a picture shows more than a 1000 words. So if we could click a button that took a screen capture and we could annotate that... wouldn't that be awesome? The result would be an image with the feedback in Team Development.
Some of us in the community build some custom solutions to do that. For example Martin and I "hacked something together" for the OSN-competition at OOW which did the screen capture and annotation, but having such a feature native in APEX and integrated with Team Development would be even better :)
In the Application Builder you start by hitting the Create button.
There are a couple of improvements here:
- You'll see APEX 5.0 includes a complete new set of icons which are flat and fresh and immediately give you an insight what the button is doing. This is throughout the entire release.
- The icons are now driven by base64 encoded strings in css which is more performant than to call every icon as a separate image (what happened prior APEX 5.0).
- There's a direct link to create a Mobile application
Next we will define the name and id of our application
The improvements here lay in:
- The cleanup of the screen; some options are now moved to an advanced attributes section
- You select the theme already at this stage instead of waiting till the end
- The default theme is now "Blue Responsive (Navigation List)", which makes a lot of sense as its inline with the industry standards to make responsive applications. The "Navigation List" replaces the "Tabs" of before. Personally I already used Lists to do the navigation in 99% of the cases in APEX 4.x, as they are way more flexible than Tabs, and if you want you can give the List the look and feel of a Tab anyway.
- New is the "Theme Style" which has currently two options: Default and Red. So the themes in APEX 5.0 will be easier to change based on a style. The main HTML in the templates stays the same, but with a different css you get another look and feel.
Moving on in the wizard gives the possibilities to add pages to the application.
Improvements lay in:
- The look and feel
- More intuitive icon in front of the page to edit the page (see next screenshot). In APEX 4.x you could edit the page to by clicking on the name of the page. That gave a popup window, where in APEX 5.0 it's implemented as a modal window. This is a good showcase of the new Modal window feature of APEX 5.0 which you can define declarative now (more on that in another post).
The final screen gives an overview of the application and what APEX will create.
As you can see, already in the creation of a database application in APEX 5.0 many new features and small enhancements are included.
Overall this new version of Oracle Application Express tries to put even more power and speed in the development. The UI is made simpler and cleaner with a fresher look and feel.
Not every part of APEX got an overhaul in EA1, it remains to be seen if in EA2 more pages are updated.
I'll update this post with links to the more detailed blog posts of the specific parts.
- APEX 5.0 (EA) Page Designer video's
- APEX 5.0 (EA): Creating a new application
- APEX 5.0 (EA): Feedback Page
- APEX 5.0 (EA): CSS Calendar
So stay tuned... this post is the index for the next series of APEX 5.0 (EA) posts.
This is how the page builder looks like:
And this is a result of my first test:
And here is the link: https://apexea.oracle.com/pls/apex/f?p=4000:1
Requesting a workspace is not working yet at the time of writing this post, but I expect it can be opened every moment now.
APEX 5.0 carries many new features, one of the biggest is the new Page Designer which should increase developer productivity even more. David Peake recorded some videos, here's the APEX 5.0 Page Designer Overview:
You find more detailed videos for the specific sections of the APEX 5.0 Page Designer on YouTube:
Sometimes saving the picture worked, sometimes it didn't. If it didn't work I hit the following error: "Post too large". It turned out that my Max Post Size in Configurations - server-config - Network Config - Network Listeners - http-listener-1 under HTTP was set too small.
After increasing it worked like a charm.
- Run Top on Linux or Use Process Explorer on Windows to identify the Top CPU Process
- Press Shift -H to enable the Thread view or use "top -H -p ". Watch for several minutes to make sure the particular thread is always consuming top CPU%
- Convert the top Thread PID to HEX, you can use online tool or Calculator: http://www.binaryhexconverter.com/decimal-to-hex-converter
- Take the several Thread Dump for the Java PID using jstack or kill -3 when the thread consumes top % CPU to check which method consumes the CPU cycle
- Match the HEX Thread in the Jstack thread dump
Here are some of the articles which helps in identifying the High CPU consuming Java threads:
You can also use other tools like Jconsole with plugins, visualVM, Oracle EM JVMD
Actually, the second edition of PL/SQL programming is what jump started my career as a PL/SQL developer. I was sold to my first Oracle customer as an Oracle developer, while I had actually never written any PL/SQL. So I raced to the biggest bookstore in Rotterdam and guess what I found [Steven: the biggest computer book he ever saw? :-) ]. The sad thing is these kind of books cannot be found in physical book stores anymore. For years I used to visit Barnes & Nobles in WPB and pick up an Oracle book when on holiday. Every year the computer book section would occupy less space, and would recently only offer books on iPhone programming, Excel for dummies and such. This year I didn't even bother. Even my favorite bookstore of all times, Computer Book Centre in Funan Centre Singapore is now on line only.Wow, his favorite bookstore is in Singapore. I like that!
I sure enjoyed my time in Singapore, though bookstores didn't figure much into the visits....
I have to say that I've never been overly concerned about how my books might help a corporation improve its bottom line. But I have always felt very satisfied when I hear how my books may have helped an individual's career.
Oh, this Dutch developer also shared with me his orange bookstack:
OK, then. So if you are still reading this, I will assume that you have a healthy respect for the scientific method (including, at its core, a constant challenging of its own "theories" - current models for explaining how the world works) and a growing horror at what we humans are doing to our world and, just as importantly, doing to the millions of other species of living creatures on this incredible planet.
But we shouldn't give up, right? We should do whatever we can, whenever we can, to heal the world from the worst of human ravages, cut back on our consumption, educate our fellow humans about the importance of changing our ways.
Absolutely. But first allow to express a bit of concern about the chance that anything we do will have much impact.
1. "Free Shipping"
Among the many incredible accomplishments of e-selling juggernaut Amazon is that "visionary" Jeff Bezos has managed to zero out the entire cost of the infrastructure of transportation of products in the minds of consumers. We have become addicted to "free shipping" (hey, and if you pay just $79 for Amazon Prime, free second day shipping) and fully expect that we should not have to pay anything to:
a. Move the product from the factory in China to a truck.
b. Drive the truck to the train.
c. The train chugs its way to a port.
d. A truck takes the product from the train to a container.
e. Container is loaded onto massive cargo ship (holding thousands of said containers).
f. Cargo ship crosses big sea, consuming enormous amounts of fuel.
g. Ship arrives in San Francisco and lets all its ballast water out into the Bay, releasing billions of creatures who do not belong, some of whom will invade and wipe out native creatures.
h. Move container off ship to truck.
i. Truck to train.
j. Train to truck.
k. Friendly Fed-Ex or UPS fellow leaving a box at our door.
All of that, and not only for free, but cheaper than we can get it ANYWHERE ELSE including the store down the street.
Causing this shift in our perspective is no small accomplishment - and has, I fear, nothing but bad consequences.
Seems to me that 2014 is the wrong year (as if 2013, 2012, 2011 or 2010 were any better) for humans to no longer have to pay any attention - or money - for the vast and vastly destructure globalized movement of products.
Not promising at all!
2. "All the News That's Fit to Banner"
It's not hard to find an article or blog post or (even better) a tweet about how our attention spans are decreasing, how young people don't read lengthy books or articles anymore. They are easily distracted and tuned to receiving short bursts of highly packaged data. Yeah, OK, we've heard all that.
And I believe it.
So I found it really striking and downright depressing that none of our major newspapers even include the Environment, Planet, Ecology, Climate Change, etc. as a top-level entry on the banners of their websites. Take a look:
If these hold-outs of reason and deep(er) thinking can't seem to manage to accept the world-killing efforts of humans (also a major killer of humans) as a significant category of news in 2014, then I truly do not find it easy to be optimistic about the chances that we will change our consuming ways.
3. Dolphin and Killer Whale Shows
Well, I am not going to repeat what I already said here, except to say:
The next time anyone sounds off about the superiority of human beings over other creatures, ask them what they think about us enslaving other sentient beings.
Die Erfolgreiche Trainingserie geht auch in diesem Jahr weiter. Dietmar Aust und ich organisieren ein weiteres Best Practice Training am 26.05.2014 in Bensheim. Diesmal findet das Training auf der Basis von APEX 4.2 statt. Nutzen Sie die Möglichkeit von Experten zu lernen und melden Sie sich an. Einen Link zu der Anmeldeseite finden Sie hier.
A couple months ago i used this trick with one of the dba_ views in own query for convenience.
SQL> conn scott/zzzxxx@orasql Connected. SQL> select count(*) from all_catalog; COUNT(*) ---------- 30088 SQL> with v$enabledprivs as( select -level as priv_number from dual connect by level<=1000) 2 select count(*) from all_catalog; COUNT(*) ---------- 36453
As you see, i just redefined v$enabledprivs with subquery factoring clause, and look at the code of “all_catalog” view now:
CREATE OR REPLACE VIEW SYS.ALL_TABLES AS select u.name, o.name, decode(bitand(t.property,2151678048), 0, ts.name, decode(t.ts#, 0, null, ts.name)), ...<skipped>... from sys.user$ u, sys.ts$ ts, sys.seg$ s, sys.obj$ co, sys.tab$ t, sys.obj$ o, sys.obj$ cx, sys.user$ cu, x$ksppcv ksppcv, x$ksppi ksppi, sys.deferred_stg$ ds where ... and (o.owner# = userenv('SCHEMAID') or o.obj# in (select oa.obj# from sys.objauth$ oa where grantee# in ( select kzsrorol from x$kzsro ) ) or /* user has system privileges */ exists (select null from v$enabledprivs where priv_number in (-45 /* LOCK ANY TABLE */, -47 /* SELECT ANY TABLE */, -48 /* INSERT ANY TABLE */, -49 /* UPDATE ANY TABLE */, -50 /* DELETE ANY TABLE */) ) ) and t.dataobj# = cx.obj# (+) and cx.owner# = cu.user# (+) and ksppi.indx = ksppcv.indx and ksppi.ksppinm = '_dml_monitoring_enabled' ;
I used to be big into sci-fi. I read lots of fascinating stories involving ingeniously crafted aliens. It was very entertaining and thought-provoking.
Like many humans, I looked on with awe as humans found their way into space, peered ever deeper into space (and the universe as it existed long ago), and searched avidly for life on other planets.
Now I find all of that to be a grotesque mockery, since that search for extra-terrestrial life is possible only through our utter disdain for and vast destruction of life on our very own planet.
The only life we know for sure exists.
How many species of frogs, butterflies, trees, bats, birds and myrid others have gone extinct so that humans could establish and operate the vast network of factories, homes, aircraft, trucks, trains and more, required to send rockets (and humans!) into space?
Clearly, humans don't really give a shit about life, in general.
All we give a shit about is us: sentient, self-aware, tool-making us. Special and unique us.
And what we are looking for "out there" are others like us: tool makers, manufacturers, consumers.
If that wasn't the case, if what we really wanted to do was establish contact with other sentients, regardless of how they lived in the universe, so that we could learn from each other, then, let's see:
- It would be considered murder to kill a whale.
- It would be considered slavery to keep a cetacean captive (and performing tricks) at places like SeaWorld and Shedd Aquarium.
- We'd be working awfully damn hard to learn how to communicate with cetaceans.(even if only as practice for the "real thing")
Repeat after me: cetaceans are self-aware.
Too bad, then, that they don't make stuff. Because as far as humans are concerned, if you are not ravaging your planet in order to build things to make your lives more convenient and comfortable, then you are a lesser being. And that renders you simultaneously uninteresting (except as a source of entertainment) and available for exploitation.
And so here it is, 2014, and still our governments can't even agree on enforcing a worldwide ban on whaling, thereby ending the rampant slaughter of these extraordinary creatures (who, we should recall, evolved from land-based mammals, reclaiming a life in the ocean. Amazing!).
Don't worry, though: even if all the whales are dead, we will still have recordings of their haunting, beautiful songs.
And we can still take our children to "educational shows" that feature those cute, smiley dolphins leaping on command and wiggling their tail in delight over being fed a fish.
As if dolphins need humans to feed them fish! This sort of travesty is what passes for the most high-minded, progressive education of our youth.Yuck.
The fact that humans can't even accept cetacean self-awareness shows clearly that we do not respect life and we do not respect sentience. The only thing we respect is the ability to manufacture and consume things, regardless of the cost to the rest of our planet and its inhabitants.
C'mon, SeaWorld: let your killer whales go!
Hey, Shedd Aquarium, close down your abomination, the Abbott Oceanarium!
Oh, and NASA (and China National Space Administration and India Space Research Organization and European Space Agency and...)? Please shut down operations. Now.
If we are going to drive to extinction hundreds, probably thousands, of species, and obliterate the lives of trillions of individuals, let's at least commit the resources that result from those deaths to finding a way to reduce the awful impact we have on our world.
"Learn something new about Oracle almost every day"
"Learn a new technology outside the comfortable realm of Oracle Database".
Resolutions I try to follow myself every year...
I love to try and integrate different technologies with Oracle APEX. Looking back at the last two years, just from the Oracle stack alone, in 2012 I played around integrating APEX with E-Business Suite (see blog). In 2013 I played around with Big Data and Endeca and tried to see how APEX could work with that (see presentation).
But you might wonder, how do you start with a new Oracle technology?
You can download and install almost all Oracle software from OTN for free to try-out.
There's also the Oracle Cloud where you can try their cloud solutions.
But maybe even easier are the pre-built Oracle VMs. A complete environment with all necessary software installed and some guides to get started.
Here's why FIJI Water thinks we should buy "their" water:
In Fiji, rainfall filters through volcanic rock over hundreds of years, adding vital minerals that give FIJI Water its unique and refreshing taste. The water collects in an ancient artesian aquifer deep within the earth, where it is protected from external elements. It's the way nature intended water to be. Untouched.
Here's why I think we should NOT buy this water:
In Fiji, rainfall filters through volcanic rock over hundreds of years. The water collects in an ancient artesian aquifer deep within the earth, where it is protected from external elements. It's the way nature intended water to be. Untouched.
So don't touch it, FIJI Water. Leave it the f%$k alone.