Wednesday 24 June 2015

KScope Day 2

I struggled a little bit this morning, for the first time in a few days the alarm woke be up with a start. I'm not sure my brain was ready. Kudos to those that tackled the 5k, I had the energy a few days ago...

Printing with node.js

Dimitri provided a great intro to help us all understand what node.js is all about and how to learn more, covering
- Installing node
- Nodeschool
- Node package manager
Then he showed a simple text-to-speech demo using the npm.

The demo that generated a word and ppt document really showed the potential, and there were plenty of good questions about how to take this further.

Apparently an earlier session when into detail regarding an oracledb driver to help negotiate with information direct from the database.

It was certainly code heavy, and it was great to see Dimitri jump straight into the concept of using Word to create a template to be used instead - of course solved with a plugin. Though when googling "APEX Office Print plugin", I couldn't find until I removed "plugin" - It does come at a cost.

FOEX Vendor Presentation

Matt Nolan reckons he struggled but it's just nerves, I think he did a great job of demonstrating the capabilities of the FOEX feature set. It was good to finally see first hand, and hear another Aussie.

When comparing value for money on the product's value against development time, it seems worth further investigation.

Once again I found myself conflicted with the other option in the same slot with the Insum team talking about what makes the profile of the best APEX developer.

Creating Hybrid APEX applications

I've seen a similar presentation online, but the great value in attending the conference in person is to see and hear everything Roel (pronouced "rule" ;p) has to say about the topic. We've been using Cordova to create hybrid applications at a client site with success, giving us the benefits of talking more directly to hardware features, but through a black box.

Roel had some great coding examples showing how to synchronise contacts to/from the database/phone, utilising RESTful web services to do some heavy lifting.

He mentioned this as a resource for finding other plugins suitable for your hybrid app:

Lunch & Learn

What a great idea to add some excitement to an otherwise awkward lunch. After following murphy's law (as described by Don McMillan yesterday) I picked two bad lunch lines to grab a box of food, but made it in time before the start.

There were some great questions asked by the audience to a panel of experts, plus a few comments from audience gurus.

One more generic question was regarding some wish list items for future APEX versions:

  • Better IR printing
  • Two instances of APEX on the same DB to help upgrading
  • Version control
  • Easier local documentation/help (there is some recent history in this regarding supplying a zip)
  • Pivot tables with drag drop (a plug-in to come available soon)

Another interesting outcome was the news that AnyChart has a finite future within APEX and will not be upgraded. A related add-on will be available at oraOpenSource soon.

I managed to get a couple of questions in, the crowd seemed a little shy and David Peake was accomodating. I first asked a somewhat open question about debugging steps if an app seems ok from an SQL perspective yet bottlenecks appear when the user set grows. Tracing seemed to be a common response to ensure it's a problem, but do check middle tier settings in regard to connection pool management. Some sort of new quality assurance setting was suggested (I think my swyped note on the phone gave me a red herring)

I also asked for suggestions when dynamic actions start to get "complex", partially since conditional (re)actions are not yet available. General consensus was to head into jQuery land after all.

I had another more technically esoteric question which I managed to ask Anthony Rayner afterwards regarding the async parameter. This relates to the "wait for result" option in JavaScript actions, where calls can effectively be made synchronous. Browsers will at some point stop supporting this, and APEX will make changes at some point.

APEX, node.js, HTML5 (websockets)

I was particularly interested in this session from Alex and Alan and it certainly delivered. The paired up well and gave the perfect lead up to help people understand the potential of websocket solutions, even with mundain examples of echoing output and chat, which ended up being a simple yet effective example.

In short Alex described websockets allow push notificaitons in lieu of continuous polling from the client. Alan highlighted node.js as having an "event driven, non-blocking" capability.

Alex said node.js could live on either the database or middle tier, but the wow factor came with their demo. With the connection I have I'll limit it to this tiny video, or you can check the picture in this tweet.
They combined a lego mindstorm with a brick hacked it accept websockets, with a rasberry pi (I still don't get it) to allow APEX to control which coloured bricks would be accepted or rejected.

Touché boys, touché. Most creative demo ever.


I took a session off before an interview during the final session (all the best spots were gone) with Martin D'Souza. I've never been interviewed before and it was an interesting experience. Martin said I did well, and I can't wait to see the final product. We'll have to keep on eye on the ODTUG youtube channel at some point in the future.

During my time-out I took Zara to the pool and saw none other than Steven Feuerstein already doting on some other kids who'se dads are also in the nerd-pool upstairs. He's bumped into her a few times already as I've taken her up to the exhibition hall a few times, his grandkids must love him.


We've gotta be halfway through already, right?

Tuesday 23 June 2015

KScope Day 1

Day 1? Really, is that all? There are so many things going on it feels like day 3.

And I'm not even participating in everything since I'm also coming back to do some family time each day.

Chi Gung

I gave this a go this morning after not being able to find Kent on the first day. It was interesting and there were some good exercises that everyone should consider doing in the morning, though with respect to Kent, for me the woo outweighed a lot of good that can come out of meditation and moving your body.
I preferred the look of whoever the other guy that comes out by himself in the morning was doing. That's more my thing ;p

APEX Printing

The first session I attended today was by Paul Broughton talking about the 8+ methods of printing something from APEX. There are obviously pros and cons to each and Paul demonstrated some of the open source/free options.

His session was demo heavy and did well to combat some gremlins crawling through his macbook today.

Evidence Based APEX

My first Kscope session went well, though a little over time, for which I apologise encroaching into people's coffee time. I think it went well, people laughed at the appropriate times and I got some positive feedback afterwards.

I also had plenty of people in the oddly shaped room, and some very recognisable faces which was quite humbling.

Single Page Applications in APEX

Unfortunately I came in expecting more HTML5 solutions than JavaScript interactions, which I've been doing a lot of recently myself.

With respect to Dick Dral, since he had a great slide deck and promised a future blog post, I decided to take the oppotunity to listen to Steven talk about PL/SQL for the second half.


ODTUG had a great idea to colour code table cloths at lunch to help like minded people come together. I ate at a great table, had and interesting discussion with Morten and a fellow fairly new to APEX who asked some good questions.

I then decided to do some table hopping and meet a few other people, and listen in to what David Peake was rambling about to some other people. I also finally got a face (and accent) to Hillary Farrell.

Why PL/SQL developers are the most important on earth

Over I beer last night I heard Steven talk about his recent realisation that this was the more correct title for this session, and he ran off to change it.

He certainly has many passionate things to say about PL/SQL (no surprises there) but I think the best slide was his top tips for being a developer

  • Drink lots of water
  • Use it or lose it, work on your abs, stretch and more
  • Turn off TV, and other screens  
  • Go outside, perferably amongst the trees

Sound advice. And I think I do well with 3/4 of these, though recently I've been quite the consumption junkie. Writing a book doesn't help...

You don't lack APEX skills, you lack Oracle Skills

I was really torn between this session and seeing Peter's take on APEX worst practices. I personally probably should have gone with Peter, but Joel delivered some great tips for "citizen" APEX developers and it was interesting to see his selections.

  1. Use data model - even if you only have a handful, a picture paints a thousand words
  2. Don't do in PL/SQL what you can do in SQL - advice Steven and Tom have been delivering for years, it never gets old
  3. Know how to tune SQL - it's not just about indexing
  4. Avoid adding PL/SQL to SQL - and I will add become familiar with scalar subqueries
  5. Avoid DB links, this includes web services (see comments) - go local where possible, consider materialised views
  6. Use static PL/SQL - I emphasised this in my session, an easy win to avoid interpreted PL/SQL
  7. Instrument your code - try
  8. Use the free analysis tools - SQL developer QA reports
  9. Never do in APEX what you can do in the database - constraints & triggers 
  10. Avoid write hot spots - I lost the ball here and missed his point, but it related to sequences and RAC
  11. He had another that he quickly skipped over due to time
  12. Bonus - get connected, APEX blog aggregator, database evangelists, and some major players on twitter
Turns out it was quite similar in a way to my session, just less sciencey ;p

Comedic Session (sponsored by InterRel)

I'm not sure how I forgot about this in my original post, but the comedic stylings of Don McMillan were featured in this session. I thought we was bloody funny, though I was probably one of the 1% of people that laughed at his joke on the Heisenberg uncertainly principle. I saw it coming, though he gave a great variation on the one I knew. This probably made me one of the uber-geeks he talked about.

Kscope16 location was also announced (Chicago) in addition to some other ODTUG related announcement, probably better described elsewhere, though I must congratulate Sarah.

ACE Dinner

I opted to pass on this one, though these events are always a great way to make new friends. I had some family time instead, first introducing my young Zara to the Oracle crowd. She found plenty to look at in the exhibition hall, and found herself a beach ball at one of the stands.

Open Mic Night

This was a really great idea to allow anyone to stand up without slides and just demonstrate APEX apps they had built. I came out with plenty of ideas but the standout came with an Australian accent. Ed showed a minecraft style world with content served out of the database. Very impressive, thought put him out of contention for this year's APEX competition announced at the end of the night.
The competition theme reminded me of the first real program I wrote with Pascal in high school, which was a wordsleuth type game. Unfortunately I'm not sure I'll have the time to give this a go this year since I better finish my book!

Had I realised the format and the limited number of spots, I probably would have done a very brief showcase of about 3 pages showing our tablet based application, which would really about how much time we've saved the users from mucking around with paperwork, spreadsheets, and using Oracle Forms over Citrix - not necessarily in the order.

Martin also announced plenty of activity over at, I highly recommend you check it out.


A jam packed day were I kept forgetting it was only Monday. 

Monday 22 June 2015

Listen to Kscope15 on Twitter

If you're at Kscope15 (even if you're not!), do you realise there is another set of conversations going on beyond the talks and beyond the between-session banter?

It's online of course, and it's on Twitter. It's live; it's interactive; and it's worth 'listening' to, if not contributing as well.

Visit this URL to read what's going on, even if you're not registered.
It might change your mind on registering for (yet another) social media outlet. It helped me get on it, now I use it as a tool for other things as well.

For more detail, read this post.

KScope15 APEX Symposiums

Kscope15 officially kicked off on Sunday with a set of symposiums, I stayed in the APEX room the whole day, though I really wanted to hear what Steven Feuerstein had to say after lunch in the other room. I also hear a great discussion was had in the ADF room on tablet first vs mobile first.

APEX Episode 5 (A new frontier)

Joel Kallman kicked off the movie themed symposiums with a great talk about how APEX really is the enterprise solution people want/need, despite what other people say about it - and the fact it has been so for some time.

It wasn't a technical talk, but set a great tone for rest of the conference. Kudos to his delivery, it seemed well thought out and provided a powerful message about the wonderful tool that it is.

He mentioned interactions with various community members and highlighted how powerful the community has become in driving the evolution of the product. His praise indicated how vital community interaction is for the success of APEX compared to other tools on the market that have limited to no interaction with their customers.

This reminded me of something mentioned by Mike Hichwa regarding how the team uses the product to build packaged applications, compared to the Oracle Forms team who never used the final product. It makes a big difference.

Need for Speed (Page Designer)

Patrick Wolf formally introduced the group to the APEX 5 Page Designer, and various little tools within it that make development so much easier. The IDE truly is a marquee feature that shows how APEX has matured as a modern, advanced development tool.

Here are some great nuggets that are worth checking out

  • A specific grouping for dynamic actions fired on Page Load
  • Additional context menu facilities on various components, such as "create opposite action", something originally found just within the create DA wizard
  • Right click to delete, no prompt since we can just undo actions in the IDE
  • Drag/drop in the grid layout, far advanced compared to 4.0
  • Bulk property edits, just like Oracle Forms - one of my favourites
  • Updated help text for component properties
  • Code editor highlighting, including validation and auto-complete for page items and core packages
  • Block edit within code editor
  • In-browser searching including option for regular expressions
  • Shared component references and grouping, another of my favourite innovations 
Polite applause was extended for some of the features as Patrick announced them, showing community appreciation.

Interstellar (Universal Theme)

Shakeeb Rahman gave us an overview of the fantastic Universal Theme. It was an overview as opposed to a detailed look at how it all works, I think other presentations will be going into further detail on specific features.

One admission that came early was that further enhancements are to come as further feedback comes in, but the theme has been integrated into the APEX environment in such a way to make it easier to incorporate these in your applications in future releases.

He covered three major points.
  1. Responsiveness - the new theme is leagues ahead of the capabilities of Theme25, which admittedly had shortfalls. It was interesting to note that accommodations have been made for things like tap event handling, to hand the 300ms wait time back to the users. I've used Touch Punch in the past to help with this.
  2. Versatility - Lists are more heavily used in APEX 5 for navigation aids, which I think is great because they are a versatile feature. The menus are built with Accessibility in mind, and support keyboard navigation. Icon libraries have been included, with room to extend in future releases.
  3. Options - I can't remember if this was the actual heading, but the declarative options now provided with templates will help developers build more consistent applications without the need for deeper CSS skills. Template Options give developers the same type of declarative CSS assistance Dynamic Actions did for JavaScript. It's a deep topic that needs it's own sessions but there are plenty built in demonstrated in the Universal Theme sample app.
    The Theme Roller enables re-colouring the application to a far greater extent than 20 variations on a similar theme could ever do. I reckon even my colour-blind friend could use it to build a scheme that contrasts well.
    Entire themes can also now be subscribed.

The Fifth Element (Mobile + HTML5)

Marc Sewtz braved the world of live demos to show developers improvements made to the mobile user interface. I found this interesting to compare to how we solved problems in developing for 10" tablets using the desktop interface. 

Not much appears to have changed from the developer's perspective (except for integration with the new IDE), but many HTML5 features have been incorporated into the build.

Out of the various suggestions Marc made for developing responsive apps with the universal theme, I think the most important was thinking "mobile first". This is regardless of the technology you're using.

Matrix Reloaded (Interactive Reports)

Anthony Rayner (one of a few faces I'm not sure I've ever seen) ran through what features APEX 5 provides for Interactive Reports.

  • Intro - reminder for the group on what IR are all about
  • Modernised - more CSS, more client side processing means more snappy interaction for the users.
    Accessibility standards are now met and plenty of people seemed to have questions regarding this, though it's a shame it got picky and slowed the flow of what Anthony had to say. His main point on this was regardless of whether you need to meet these standards, you should consider them while developing to help promote better applications.
    • Action icons have been restored. 
    • Single row view has been modernised. 
    • Column options have been modified to help accessibility issues, but all will reap benefits. 
    • Report and column widths are responsive to the page. 
    • Dialogs are used instead of dropping down content. 
    • Settings and filters have been cleaned up and enhanced.
  • Extended - plenty of new features added in APEX 5
    • an impressive pivot feature has been added to user options. 
    • Multiple IRs can now be defined per page, it's best to ensure they have their own ID.
    • Headers fix to the top of the page
    • Theme roller also integrates with IR 
  • Upgrading - Main issue coming out of complete IR revision relates to the gReport object and upgrading older reports. Any markup on 4.x report will probably no longer work.

The Prestige (Migrating to Theme 42)

Shakeeb came back to help the community migrate to the Universal Theme, using pre-packaged applications as an example..

Head to and find the Bookmarklet to help with migration to switch to Theme 42.

Reset grid option. Default option probably handy, "Reset fixed region positions" but worth exploring what happens to your application with each. It will really depend on where you're coming from. Plenty of help on the topic by clicking ? icon next to option.

Shakeeb started by demonstrating how to update the login page to match a pre-packaged application built on APEX 5. He showed how easy it was to find, copy and apply various properties using the Page Designer.

Icons were real easy to add to the navigation menu using pop-list options to select font-awesome icons.

Existing regions had plenty of customisations to aim for responsive layout. Shakeeb removed a bunch of these, showing how ready Theme 42 is out of the box.

Buttons were easy to adjust and modify with some dragging and dropping in the grid layout, with basic tweaks to make them iconic.

Template options also came into play to help tweak page layout.

We can now create copy (and/or subscribe) of existing plugins from another application which was missing from previous releases.

List template attributes are introduced in APEX 5 to help work out what the 1-10 attributes are for the relevant tempate - very neat.

Change one attribute to convert existing pages into modal pages and all the links automatically treat the page accordingly. Now clean up the page to suit being modal, again solved with declarative features and region template options.

Rinse and repeat for your entire application, I guess! Shakeeb certainly had plenty to say about conversion and offered to give the crowd more (but I think many are ready for a beer). I look forward to more session content from him.


Bring on day 1

Saturday 13 June 2015

Washington memorials

I'm no patriot, and I'm certainly not American.

I'm somewhat of a pacifist, but I appreciate the efforts of the brave in years past. I certainly felt an urge to to shake the hands of some of the aging veterans we saw as we passed the WWII memorial.

What moved me most, however, was walking through the Lincoln memorial.

There was some amazing prose on those walls. Considered words, unbiased by the various media of today.

It surprised me how much it touched me. As we walked towards it I thought about a joke I could share with friends upon discovering it wasn't a statue of an ape sitting up there.

But as we walked towards the elevator and read the history, then walked out towards the statue it commands respect.

I was familiar with much of it already, but to see the memorial first hand I really came to appreciate the hurdles overcome by those in our history. I recommend it.

Kudos, cousins.


Boston is a nice city, smaller than expected but full of culture.

The weather was great for us and we took one of the Duck tours which took off from right outside our hotel.
From out piggy tumblr
We don't get much in the way of American history in Australian schools, and most of what I know comes from movies or general interest. We had an amazing character driving our duck, a fella named Tim Burr. He was Canadian, loved his sport and his adopted town of Boston. What an amazing history this town has.

We also met up with someone we only knew from some facebook game Tracey played years ago, such is the weird world we live in. He ended up being great and after a cruisy lunch at Hard Rock (I'm still cut they played Rihanna at one point) we taxied, trained, and walked a great distance through some pleasant locations (bar one set of smelly train station elevators).

I didn't hear too many iconic accents, but our friend laid it thick a few times and we drank plenty of warta.

Next stop - Washington.

Friday 12 June 2015

Kscope Journey

Boy that was a long trip.

Sure, Perth to Dubai was 11 hours but on a brand new half full Airbus it wasn't so bad, even if we didn't get in early to move away from the bulk head seats. The leg room was handy while bubba was awake, but arm rests that don't fold up made it harder to get her to sleep.

I think though the most boring part was the 3 hour layover in Dubai. Took some creativity to keep our little 17 month old amused.

The second leg was the doozy. 13 hours to Boston on a jam packed plane. I've got to commend little Zara though, she was pretty awesome throughout. Emirates staff were also great, thank you.

I have a suggestion for creating jobs in the states - put more border protection staff on. Over an hour in the queue and the finally put more than one person on to process us foreign folk, just as we reach the front. Customs was a breeze, almost comical watching others.

Our transfers were MIA, that sucked. Half or wait for nothing and $40 later we made it to our hotel.

Before we all crashed at the ripe time of 8pm, we tried some classics in the hotel sports bar. Clam chowder isn't bad, though rich. Corn bread isn't bad, though rich. And my burger could well have just come from McDonald's. All washed down with a fine pale ale, where I'm glad I asked the size difference between 16 and 32 ounces.

I've made some interesting observations about differences in culture here so far, but I best reserve comment for now. For now I'll just try work out why I can hear kids play outside my 23rd storey room.

Some sight seeing today, more food, then tomorrow (as I write this, not sure when I'll connect to post it) we head to Washington.

Tuesday 2 June 2015

Review: Ex Machina

Do yourself a favour and buy, beg, borrow (don't steal) the movie "Ex Machina".

Don't watch any trailers, don't read any articles, and don’t even read up on IMDB. Just trust that if you have any interest whatsoever in what it means for a machine to be self-aware - this is the movie to watch.

I'll just say it does a brilliant job in exploring the philosophical repercussions of the Turing test. For me it filled the void left by my expectations of "The Imitation Game", and then some.

It is the sort of movie that will be spoiled by the trailer, and I watched the trailer afterwards and thought it made some of the dialog sound real cheesy - so don't do it.

Immerse yourself then give yourself time afterwards to process what went on.

I've been thinking about it for days. I heard about it through one of my favourite podcasts, and they do an interesting breakdown review in SGU Episode 515, if you want to hear a great deconstruction.