Quantcast
Channel: Grassroots Oracle
Viewing all 405 articles
Browse latest View live

Build option use case - experiments

$
0
0
I find build options as nifty tools to not only categorise components for the very purpose build options are documented for, but to help inform developers & testers of applications.

Here I've added a region on the global page to inform users of the status of the page - based on it's allocation to a build option.
Build option in action
I created the following classic report in my global page using region template DIV region with ID and report template One Column Unordered List, with some styling on the columns.
This shows detail of the build option allocated to the page (via page attributes).
select b.build_option_name, b.component_comment 
from apex_application_build_options b
    ,apex_application_pages  p
where b.application_id = :APP_ID
and p.page_id = :APP_PAGE_ID
and b.build_option_name = p.build_option
and b.application_id = p.application_id
I applied the following condition will ensure the global page region is only displayed when the page has been assigned a build option.
select null
from apex_application_pages p
where p.application_id = :APP_ID
and p.page_id = :APP_PAGE_ID
and p.build_option is not null
The region is also allocated to a relevant build option so it doesn't display outside development.

My build option in this case has a status of Include, but Exclude on export.
Build option setings
I'd like to see build option features expanded in future release, perhaps including extended release management options.

Build option use case - replace condition never

$
0
0
I first blogged about build options three years ago while still using APEX 3.x - I can tell by the green ;-)

I still use them regularly, but not often for versioning as they're allocated at a component level and not for attribute modifications - perhaps in later releases we'll see an extension of their use.

What I do see all the time is components with a condition type of "never". This is probably because it's the quickest way to turn off features that are broken or those you're not ready to completely remove for whatever reason.

The issue with this is they get forgotten. Future maintainers see these components in limbo and wonder if they should be removed or enabled, particularly if they lack comments regarding their status.

I have encountered valid circumstances when a report region is purposely set to "never" - where a link is available to export the relevant data as CSV.

Instead I would suggest creating a build option that looks like this:
Build option - to be removed
The 'Status' of 'Exclude' means I don't see the components at runtime - just like a condition of "never".
'Default on Export' being the same as current status means it will stay excluded as the application moves between environments.

One major advantage I find is the accompanying utilisation report. At some point during the project I went through everything I've allocated 'to be removed' and decided if it truly was time to sent these components to /dev/null.
Build option utilisation report
Do you have any interesting uses for build options?


Count number of rows returned in APEX report

$
0
0
Often I want to configure an APEX page based on how many rows have been returned in a (typically classic) report region. There are a number of methods for determining this row count, and some have advantages over others.

1) Computation while rendering the page.

This often isn't best for performance & maintenance since you effectively need to do a count(*) over the SQL you already have. 
An advantage is you'll know the count while the page is being rendered - but depending on what you want to happen based on the row count, this isn't imperative.

2) Add substitution strings to Region Footer

If you're using pagination on a classic report you can include substitution strings such as #ROWS_FETCHED#.

You don't necessarily want to see this displayed on the page, so you could use
<div id="emp_count" style="display:none;">#TOTAL_ROWS#</div>
Then interrogate this value using
$('#emp_count').text()
Trouble is these don't get updated as you paginate through your results, and are usually only handy when operating with one page of results (or no results). Then the "No data found" and "More data found" message attributes can come into play.

3) jQuery function call

Length() returns the number of elements matching your selector. Note size() is deprecated as of jQuery 1.8
This method will work regardless of pagination usage. All you need is to identify something in your report you can count.

In this sample page there are a number of options. There is one button per record, so you could count the number of .uButtonGreen
A safer and faster method would be to nominate a column within my table. So in this case I defined a static region ID for my report region (emp)
, and nominated to count the number of employee name cells.
$s('P6_ROW_COUNT', $('table#report_emp td[headers="ENAME"]').length);
To help decide on my selector I used the browser's inspect element tool
Firefox inspect element
Press the "Show count" button on my sample page to see the counting in action.

I'm really starting to love jQuery.

3 product releases from Oracle Dec 2013

$
0
0
So far this December Oracle has released version upgrades for three of their products:
  1. Joel Kallman announced Oracle APEX 4.2.4 is now available. It appears to be mainly fixes & enhancements to Package Applications, so maybe it's time to give them all a go & see if they may be useful to you. [bugs fixed]

    I'd also like to revisit a few and see if templates have been made out of some of their cooler dynamic PL/SQL regions. I've reverse engineered their hover functionality using a template & a list, but it would be nice to have these available in themes.

    Bring on APEX5
  2. Jeff Smith gave use 10 reasons to upgrade to SQL Developer 4.0. I haven't used it much so far, but it seems many of the hiccups from the early adopter downloads have been addressed - plus a gazillion new features.
  3. At the start of the month Jeff also announcedOracle SQL Developer Data Modeler 4.0 is available.
Do good things come in threes? No, they do not, but in this case we have a correlated co-incidence that we should certainly take advantage of ;-)

Win a free ebook of PhoneGap 3 by Packt

$
0
0
PhoneGap 3 Beginner's Guide
Packt publishing have generously given me the opportunity to give away 3 copies of their e-book PhoneGap 3 Beginner's Guide, by Giorgio Natili.

Details on how to enter are further below.

You don't think you need to be an APEX developer to appreciate this book, but I will be reviewing this book in greater detail over the new year as I plan to use it to help me deploy Oracle APEX applications as a hybrid mobile application.

Looking through the contents, I see plenty opportunities to improve your APEX applications by using PhoneGap - a free, open licensed distribution of Apache Cordova.

Chapter 1: Getting Started with PhoneGap
Exactly that - understand what PhoneGap is and what you need depending on your device.

Chapter 2: Building and Debugging on Multiple Platforms
A little deeper preparation for how we might debug issues, even desktop debugging since APEX developers are building hybrid applications.

Chapter 3: Getting Started with Mobile Applications
A good look at some web development basics everyone should be familiar with - JavaScript, CSS.

Chapter 4: Architecting Your Mobile App
Might be a bit heavy for us APEX developers, but we may end up being able to hook in our APEX landing page using this information.

Chapter 5: Improving the User Interface and Device Interaction
I think some lessons in here will be deeper than we might get out of an Oracle-centric book.

Chapter 6: Using Device Storage and the Contacts API
Even though we're database developers, I think we're going to be able to provide some clever ideas with HTML5 storage. The Contacts API looks like a great lead in to communicating with the device.

Chapter 7: Accessing Device Sensors
The clear advantage your hybrid APEX applications will have over web deployments - access to hardware sensors.

Chapter 8: Using Location Data with PhoneGap
I think this is more functional than current HTML5 capabilities.

Chapter 9: Manipulating Files
As interesting as this looks - don't jump the gun, I think the chapter you're really interested in is next up.

Chapter 10: Capturing and Manipulating Device Media
Another marquee features for APEX applications - eg: easily uploading photos taken with the device.

Chapter 11: Working with PhoneGap Plugins
Just like APEX has some awesome plugins, so does Phonegap.
They'll probably feed your APEX application ideas even further.

Appendix A: Localizing Your App
We may get away with not needing this, but handy nonetheless. Besides, I've had limited exposure to localisation requirements.

Appendix B: Publishing Your App
No point having an app you can't publish, right? Luckily with our APEX hybrid, this may be a process that can be avoided after initial release.
All versioning can be done within your APEX environment.

Appendix C: Pop Quiz Answers
Pop quiz, hot shot - have you been comprehending what you're reading?

For your chance to win


1) Please post a comment below and mention which chapter you think would help you the most.

2) Double your chances by tweeting about this giveaway.

3) If you include a link to your tweet in the comments, I'll give you three entries.

I'll feed all entries into an Oracle table and run some SQL to randomly determine the three winners
- as oppopsed to using Random.org - come on, I'm an Oracle geek!
I'll post the method I will use to deduce the winners sometime soon, possibly over the new year.

Note: the closing date for this giveaway is 31st Dec 2013

Don't forget to include some form of contact information so I can contact you if you've won the prize.

Good luck!

Small SQL puzzle - discrete top 3

$
0
0
Being the APEX geek I am I've created a page that lists all the entrants so far to the Packt Publishing Phonegap ebook giveway

Check it out here
http://apex.oracle.com/pls/apex/f?p=73000:22

I'll post more about how I've extrapolated records from derived column values, but I am looking for suggestions to improve the 'prize?' column

This is the current calculation - basically highlighting first three records in output.
case when row_number() over (order by dbms_random.value()) <= 3 then 'maybe?' end prize
But what if two of those records share the same name?

Here is some test data, where socrates, plato & yeats need to win the prize
with data as
(select 'socrates' name, 1 entry, 1 ord from dual union all
select 'plato' name, 1 entry, 2 ord from dual union all
select 'socrates' name, 2 entry, 3 ord from dual union all
select 'yeats' name, 1 entry, 4 ord from dual union all
select 'aristotle' name, 1 entry, 5 ord from dual)
select case when row_number () over (order by ord) <= 3 then 'maybe?' end prize
,name
from data
order by ord
Go nuts

PhoneGap 3 ebook winners

$
0
0
Late last year Packt Publishing offered 3 e-books to help promote Giorgio's revised edition of PhoneGap 3. People who commented or tweeted the blog post received entries to win.

While I prepared some SQL to randomise selection of winners, I didn't get a chance to arrange the job to be executed at midnight on new year's eve.

I still wanted to schedule a job as not to be biased with results, so I picked another abitruary date instead, one that might excite the numerologists out there - Jan 2nd, 2014 at 3:45 - yep, there's a sequence in there.

Here is the code the scheduled the job, which created a table with entries in random order.

begin
sys.dbms_scheduler.create_job(
job_name => 'SW_PACKT_WINNERS'
,job_type => 'PLSQL_BLOCK'
,start_date => to_date('201301020345pm','yyyymmddhhmipm')
,enabled => TRUE
,job_action => q'{
begin
execute immediate q'[
create table packt_contest_winners as
with data as (select name, case when linked='Y' then 3
when tweet='Y' and post='Y' then 2
when tweet='Y' then 1
when post = 'Y' then 1
else 0 end entry_qty
,null rn2
from packt_contest)
select xz.rn entry, entry_qty, d.name ,dbms_random.value() rnd
,case xz.rn when 1 then 'Posted comment'
when 2 then 'Tweeted post'
when 3 then 'Included backlink' end reason
,case when row_number () over (order by dbms_random.value()) <= 3 then 'winner!' end prize
,sysdate ts
from
(select rownum rn
from dual
connect by level <= 50) xz
join
(select rownum rn, name, entry_qty from data) d
on xz.rn <= d.entry_qty
order by rnd
]'; end; }');
end;
/

You can see the results on this page http://apex.oracle.com/pls/apex/f?p=73000:22

The first three won - so congratulations to


I have contact information for all three winners, so I'll hunt you down when I have further information from Packt.

I've been busy building an APEX website over the holiday season so I haven't had a chance to try out the examples from the book yet - but I really look forward to it!
My first read showed it was really promising for Oracle Developers to really take advantage of PhoneGap as a tool to make our mobile applications even better.
As I mentioned, I'll write a fuller review once I've had a play - and I'll see how people's comments regarding the chapters of interest come through.


Here's to a productive 2014.

Scott

2013 Blog Review

$
0
0
Just like every other tom, dick & harry on the internet, I thought I'd look back at the year that was.
Keep an eye out for interesting tangential and useful links.

A vague attempt at humour

Readership continues to grow. Rapidly. From my first full year (2010) with 5k visits, I'm now at 50k visits & 69k page views for 2013, averaging 70 posts per year - cool stuff!

I've been impressed with the growth of referals from google/yahoo/bing searches, and the top pages reflect that in regard to the year published - four from previous years.
Either people are searching for these topics (as search terms suggest), and/or people are bookmarking/remembering my blog as a place to visit - so thank you.

On blogging


Other things come above raw numbers, however, and what I find enjoyable about my job is learning. Learning things well comes with trying to describe it to others. 

That being said, I think I've got the knack of blogging regularly. This year I tried to output one technical entry per week, usually on a Wednesday, but it always depends on the post. I found a oraclenerd's 2009 review, and he had an era where he was posting something every day or so. I'm happy with one a week, with maybe the odd non-technical thrown in.

As many bloggers do, I have plenty of ideas in an e-mail folder - and that thing about learning? I find converting snippets of code & thought into blog posts a good source of reference and when using a tool like APEX you need your references only a click or two away.

I think I'll be further updating my blog reference map - I'm starting to use that frequently now, along with my recently sorted APEX bookmarks that includes documentation, how-tos and sample apps.

Issues


I've switched to google+ commenting, and while I like the integration - I'm missing people's comments, not seeing accurate comment counts in the blog homepage. Searching in chrome hiccups when it detects the site you want to search on - did the same thing as the search widget - no search results.

I'm considering moving to an APEX based blogging platform - but it might tempt me to import my back catalogue using XML from Google Takeout. Wouldn't that be fun?

So now onto the pages and behaviours that make this journey interesting.

Top visited pages


Note which year some of these were published - only two-ish from 2013.
  1. Upgrading to apex 4.2 in three steps (2012) -- done on my laptop, basics only
  2. CSS pulldown menu (May 2013) -- common request, neat solution
  3. Form report tutorial (2011) -- what I mostly aim for in this blog
  4. Modify login page (2011) -- includes link to modifying workspace page
  5. A common oracle error (2012) - an experiment based on some search results. Hypothesis verified.
  6. Tree region use case (Feb 2013) -- honourable mentioned because of when published

Top Referrers


Thank you for those linking to my pages, talking about them, reading them, searching & opening them. I hope you find things as useful as I do. There are also some predictable behavioural differences compared to 2012.
  1. ODTUG - Not surprising since moving from apexblogs.info
       #63 apexblogs.info - down 100%
  2. Twitter - I post all posts here, given recent social media trends, and #oraclapex, I'd expect some throughput
  3. scoop.it - should bloggers be concerned? it seems to attribute authors and encourage site visits. WOT doesn't say anything nasty.
  4. orana.info - from nothing to something? I was added in 2009, but only 1 visit recorded from 2012?
  5. apex.oracle.com - I've referred to my posts a few times when answering questions
  6. Feedly - of course... long live google reader!
  7. Feedburner - must relate to greader? down 61%
I found apex blogger love at a number of places. A humbling pleasure it is to be on people's blogroll.
  1. #10 oracle-and-apex.com - on all things extending apex (only a comment and backlink?)
  2. #12 www.oraclealchemist.com - ACEriffic all-sorts (a mention... in a massive collection of 12c articles)
  3. #13mikesmithers.wordpress.com - The anti-kyte (blogroll)
  4. #14 oraculix.wordpress.com (a mention regarding coalesce)
  5. #20 sqlcur.blogspot.com (a mention about a post on trees)
  6. #23 dbswh.webhop.net - an APEX jQuery guru I may collaborate with this year (blogroll)
  7. #49 oracleinsights.blogspot.com - a fellow Aussie (mention)
  8. #68 jeffkemponoracle.com - many woven interactions with this fellow Perth blogger, who unknowingly seeded my drive to blog.
  9. #81 inside-oracle-apex.com - good internal APEX resource (a few mentions, comments)

My top 10


I perused the 2013 archive and decided on favourite posts of my own - either those I visit regularly as a reference, or those that have helped my journey as a software developer.
  1. Learning APEX - I'd recommend these particular books depending on where you are on the spectrum.
  2. Customising workspace login - I do this for training, differentiating environments or just being a control freak.
  3. Starting jQuery - I started to do stuff with jQuery, beginning with client side features I remembered doing in Oracle Forms. Then I moved to tarting up reports.
  4. Customising plug-ins - it's easy to tinker & learn with other people's plugins. I've played a lot with Enkitek's navbar.
  5. Lists shared component - I've really appreciated the simbiosis between lists & templates. You can APEX-ify just about anything you see on the web, typically with a List template.
  6. Performance - I've made a number of discoveries this year regarding performance. A few of them are in my draft folder already.  
  7. Published! - I'm a published author, of sorts - a screencast/video series on Oracle APEX techniques. Not a bad first effort, I think.
  8. 12c - whether c is for cloud or consolidation - it sounds like fun - I want in.
  9. Off topic fav - Tim Minchin is an entertainer + educator - an edutainer, if you will. I plan to share more off-topic randomness this year, I hope you don't mind. Twitterers get it already, google+ posts are mostly science/tech.
  10. Consuming plug-ins - having trouble implementing someone's plug-in? Try this sample application with accompanying instructions.

A fun 'top 5' - cities


Just for giggles.

  1. Bangalore
  2. London
  3. Perth -- my home city
  4. Chennai
  5. Moscow
  6. ...
  7. #7 NY (top US city)

Predictions


At the start of 2013 I made promises regarding posts on mobile, RW, Ubuntu and what search terms showed me.
  • I haven't explored the mobile theme as much as I'd hoped, but I've been involved in a great tablet project. 
  • RWD pains me and I'm still getting the hang of manipulating APEX's templates. I wonder how much this will change in APEX5.
  • Ubuntu's been flowing like pitch (again), but I have been learning plenty of jQuery. I'm really loving it and plan to continue sharing things I've learnt - one in the form of a prezi.
  • 4.2.y did not deliver a third user interface - but I imagine they held back to make sure it's delivered even better in APEX5.
  • Search terms... meh, I just went where things took me
I did finish the year creating a few simple item plug-ins. That's a garden being cultivated, I'm not sure what it will bring but I'm keen to explore more. The penny has dropped and the gates are open!

As hinted, in 2014 I predict heaps of posts about APEX5, looking at IDE, modals, interactive reports, templates, tablets, editing layouts & hopefully not lacking improvements in release management & page/region caching control. No doubt APEX will deliver other surprises to find along the way.

This year I also hope to implement a PhoneGap delivery; learn more about jQuery; and deliver some more public facing APEX applications.  It would be nice to develop on 12c, but I'm not holding my breath.


Here's to averaging a post per week!

ps - I'm also increasingly curious about Big Data...

New OTN forum features

$
0
0
It seems more new features are coming to the Oracle forums
https://community.oracle.com/thread/2619317

Further discussion regarding the syntax highlighter here
https://community.oracle.com/thread/2618350

As syntax highlighting is a fundamental part of forums, the recent upgrade took it in the wrong direction and they are looking to rectify it - but engaging users on it's specifications.

Feel free to contribute to the discussions, it will make the world a better place :-)

Public speaking tips by Tim Hall

$
0
0
If somehow you haven't seen them, go check out Tim Hall's recent series on public speaking tips.

I think he's finally finished, and I've been able to nod my head in agreement with many things he's said. I also learned a few things, for instance when reading thoughts on international speaking - something I haven't done yet (but look forward to).

Even if you never plan on speaking at a conference or anything remotely similar - it's worth a read. And it certainly isn't restricted to Oracle topics.

Definitely a good primer on those considering it.

OTN says I'm an APEX guru :-)

$
0
0
Just before the new year I became a 'guru' - at least as per the measuring stick over at the OTN APEX forum.

scott.wesley
I tried to find my tweet when I reached the 'Expert' status, just to see how long it's been - but I couldn't find it - maybe too small a speck in the big data that is twitter.

However, milage varies when it comes to forum usage and I must be humble.
There are true gurus out there that do not use the forums, and there are some that do.

As I scroll through the (9 pages!) of documented OTN gurus to find myself, I encounter some true APEX experts such as

  • jQuery expert Jari Laine (17k+) - one of the best APEX blogs around (also using APEX, no less) - dbswh.webhop.net
  • Ever-present fac586 (13k+) - apparenlty people also know him as Paul MacMillan, I believe the handle some form of reference to the band "New Order". I named my computer Floyd.
  • TexasApexDeveloper Tony Miller (6k) - who has one of the best  LinkedIn profile photos I've ever seen.
  • ACE Directors Denes Kubicek& Roel Hartman (5k+) - the former has an extensive sample application, the latter has blogged some interesting posts integrating APEX with all sorts of valuable stuff - recently mobile related.
On a side note, it's interesting how different forums attempt measure people and the value of their responses - apparently stackoverflow also has dejectors regarding it's system.

For those who are not regulars on the forum, I do recommend it. Either by reading and/or participating, you will learn tricks regarding SQL, PL/SQL, jQuery, CSS, dynamic actions, plug-ins, version differences and general coding techniques.

It's also just to see what people are talking about - you might just skim through the headers and open a topic that relates to something you've just been working on.

I truly do enjoy helping others, which is probably why I get a kick out of training. And while I feel I'm learning from these forums - I'm also glad I'm contributing to the greater community in helping people build better (APEX) applications.


nanos gigantum humeris insidentes

Where February went

$
0
0
(not to scale)
When it comes to blogging, I completely skipped the month of February - even after I said I'd average one post per week, thought I have an excellent excuse... my wife & I had a baby girl ;-)

Even though I had posts pre-drafted, I thought I'd just cut the noose & envelop myself right into those first few weeks with our girl. It was an enjoyable time, and I'm torn coming back to work I really enjoy.

I couldn't not read in my time off. Our girl is treating us really well and spent time enjoying a great Clarke/Baxter book. I also found myself flipping through Twitter & my RSS reader occasionally and saw some interesting posts & developments particularly in the Oracle world. Some I e-mailed myself to get back to and will be posting about in the near future - get my average back up ;-)

First day back was a bit of a struggle - while APEX5 Early Adopter is sitting there waiting for me to play - I was dusting off an APEX 3.x application and doing some Oracle Forms maintenance.
Luckily I have a few other small projects I look forward to sinking my teeth into - technology has stalled my play with PhoneGap; I have a 2nd edition book to review; and a few pseudo-exams to try; and I'm writing a jQuery presentation.

Onward!



Oracle news you may have missed

$
0
0
During my time off I noted a bunch of information to dig into later, and I thought I'd make some notes as I go - see if you missed any interesting news.

I'll do a separate post for noteable blog posts.

Oracle REST Data Services

As Dimitri announced here, Oracle has another product "formerly known as" - this time it's the APEX Listener. Now known by what I think is a name that may also be confusing to some, though after reading this wiki on REST it's not as bad as I originally thought when I posted my comment on Dimitri's blog. Another good discussion can be found at Kris' blog.
Most importantly, it now get its own cool little logo.

Time to upgrade

This post from Dimitri was back in December, but it's more than relevant now. Just to get to the bar, you should be looking at APEX 4.2.x.
The sooner you're away from APEX 3.x or an earlier v4, the sooner you'll be ready to face APEX 5.
If you're using SQL Developer or GlassFish, those versions should also start with a 4. As mentioned, the APEX Listener/REST Data Services is already one up from his diagram.
If you have any say in your database, apparently 12c is all the rage - hopefully this year I can really start exploring the developer features.

Oracle Developer Day

I did attend one work event in my month off, giving my wife some practice without me home to help. Oracle held a Developer Day in Perth and as usual I learnt a zillion things about 12c new features from Connor McDonald. Reading the massive slide deck will never do the talk any justice, but he does show great examples describing why certain features are awesome and long awaited.

I didn't get to see Penny talk about APEX, though she guarantees I knew her content already. It was also interesting to get ADF workhorse Chris Muir's perspective on mobile development.

SQL Challenge


I'm not sure what Jeff meant with 'keeping the Aussie dream alive' but I did afford myself half an hour to take the first annual SQL challenge at Steven Feuerstein's PL/SQL Challenge website. As the rankings show, I came a respectable 12th out of 39. If you look closely, I did this in the 2nd lowest total time. This isn't because I knew everything, rather I had baby-induced tiredness and I thought I'd fire though the questions as quickly as I could. Some of them were quite tricky, and some required some 12c nouse - but I made some educated guesses and learnt some things.

If you don't know, the PL/SQL challenge not only holds daily (5/week) quizzes on PL/SQL, but also weekly quizzes on SQL, Database design and Logic puzzles. The design quizzes are mostly written by Chris Saxon and are worth a shot.

SQL Quiz

Speaking of quizzes, I see this tweet and of course had to accept the challenge.

They were the perfect selection of 5 questions on general SQL tuning. They were Oracle based, though vendor specific questions were available for other DB technologies. There is a great write-up of the results here - but it'll only take a minute to try first - give him some more data.

APEX Certification BETA

David Peake announces we have until mid-May to take a BETA version of a new APEX 4 certification exam. Amazingly there is a testing centre within 10 minutes drive of my place - I think it might be worth looking into.

ODTUG APEX Theming Competition 2014

Reading through the submission guidelines, this sounds like it would a brilliant learning exercise - but as much as I'd like to give this a crack I might have to pass this time. Besides, I haven't worn a watch since last millenium! Though I would love to attend (and speak at) KScope - maybe when it's back at New Orleans ;-)

APEX 5.0 (EA)

Who could miss this? Well, me so far.. Having babies & all, I haven't had a chance to play with this yet - I've even held back reading much about it before I can really dive deep.
Dimitri once again has a great overview, but I'll be sure to post some myself

Evolution of APEX Evangelists

This sounds like an interesting enterprise, I look forward to seeing where it leads.

Please let me know if I missed any other cool announcements.

In the meantime, enjoy this short history of UX design.

Off topic: If the moon were a pixel...

$
0
0
I love infographics that demonstrate the sheer scale of the world around us, I've posted on this topic before.

One that's been doing the rounds recently is this one from Josh Worth: If the moon were only one pixel
His website is also worth checking out, and you can find him @misterjworth

Universe Today has a nice summary of it. It reminded me of doing this Solar System Walk at the Gravity Discovery Centre in Gingin, Western Australia.

Click the icons at the top to shortcut to the celestial bodies, and look at the page source to see all the funny commentary text. Worth the 5 minutes to check it out and ponder the universe...
If you were on a road trip, driving at 75mi/hr, it would have taken you over 500 years to get here from earth
Space travel sure will be boring if we can't figure out a way to go faster...

Review: Oracle Apex Cookbook 2nd Edition

$
0
0
Now with extra zing
It's been bang on three years since I reviewedOracle APEX Cookbook by Marcel van der Plas and Michel van Zoest (don't ask me to pronounce their names, I'll do it no justice).
It was my 2nd book review and I've enjoyed reviewing Oracle related books & technology ever since - thank you to all publishers involved. Hopefully my technique has improved over time.

Now we're cooking with APEX 4.2 (get it?) and the kind team at Packt have informed me there is a second edition hot off the presses (one idiom that surely has a finite lifespan).

Additional kudos to the six technical reviewers. I've done this job a few times and I appreciate the time & effort it takes to help authors with the book...though one of their bios is very familiar...

The book is aimed at those new to APEX and intermediate developers - a statement I look out for when assessing books so I know what to expect or what I'm in for. Though I think anyone can learn something new, or adapt a technique you may not have seen before.

There are some references to 4.0, but I also share duties for updating manuals and understand you can't be expected to tackle every page, every screenshot in a revision. Looking through the contents I quickly picked up plenty of new & expected additions to this edition:
  • Data upload pages
  • Using shipped files
  • Authorisation plug-ins
  • RESTful web services
  • Using Tomcat with APEX Listener
  • Error handling
  • Packaged applications
  • Table APIs
  • HTML5/CSS3
  • Mobile
My first review covered the recipe style of the book which I think works well and has it's place. As Alex Nuijten describes in his review, the recipe format works for some - and depending on how you're reading/applying the book.

It's also good for feature awareness, so I thought I'd list out what to expect as far as content, highlighting the new content I spotted.
  • Chapter 1 takes you through the essential basics of APEX development.
  • Chapter 2 explores themes and templates - the sort of stuff developers need to do all the time so it's a great reference.
  • Chapter 3 tackles extending APEX with external libraries, and shows how to hook them in with APEX attributes.
  • Chapter 4 addresses Websheet applications - something rarely spoken about in the forums so you won't often find info on this.
  • Chapter 5 now includes how to define an Authorisation plug-in, probably the first type of plug-in you'll typically make - mainly for reusability.
  • Chapter 6 covers multilingual applications, something I may need to look into one day ;-)
  • Chapter 7 has good concise examples of how you can use supplied APIs.
  • Chapter 8 covers webservices, including RESTful which is available from 4.2, with APEX listener 2.x
  • Chapter 9 provides examples on how you can publish reports natively from APEX
  • Chapter 10 on APEX environment has been extended to include great improvements such as error handling.
  • Chapter 11 is on Administration, and includes something missed from the original edition - table APIs.
  • Chapter 12 on Team Development, another underutilised feature with recipes that might get your creative juices flowing
  • Chapter 13 is brand new and covers HTML5 & CSS3. Recipes include how to use HTML5 item types, vital for mobile applications.
    There is a drag/drop recipe that I look forward to playing with - I have a few use cases for this but haven't had a chance to get my head around it, but it looks like I could tailor this simple example to suit my needs. Another recipe covers storage - the modern way of creating more robust websites.
    The geo-tracker recipe will be good to compare with my solution, see if I can learn from how others have done things.
  • Chapter 14 speaking of mobile, this chapter's recipes is a really good range of topics for learning mobile. Creating an app, a hybrid app, list views, mobile forms, item types, calendar, working with images, GPS, swipe events... there's even a nifty trick included regarding QR codes.
I'd recommend it as a reference to any APEX developer.

You can find further details of the book here Packt Publishing - Oracle APEX Cookbook, 2nd Edition.

APEX 5.1 Statement of Direction

$
0
0
David Peake recently announced an updated APEX 5.x Statement of Direction.

Some features haven't made it to the 5.0 release and have been relegated to 5.1 - so they can get them done good & proper.

  • New multi-row edit region type - The more I think about this, the more I look forward to it. I think a lot of developers spend time doing this sort of work
  • Mater Detal Detail
  • Tablet UI - shame, I'm working on a tablet project right now
  • Web Services Report
  • PDF Printing - I'm glad they're spending time to get this one right, this will vastly increase the value of APEX
  • Packaged Application - keeps on keeping on

Nothing has slipt in or out since I originally looked at the SOD.

I haven't had a chance to play with the 5.0 EA yet - except open it up briefly thinking "this is very jdevy"
I wonder if any of those features even made it to the EA, or this is an official notification now we're closer to the public release of 5.0?

Intriguing...


Australian 2014 Oracle Conference series suggestions

$
0
0
This morning the kind folks at AUSOUG sent me an e-mail asking who I'd like to see present which topics at the Perth/Melbourne conferences in November this year.

To perhaps help get you started, I thought I'd mention who I submitted - in part as a hint to those nominees that there is at least one person who would like to see you present in Austraila this year.

The survey asks for 2 Australian/2 international/2 topics for DB/Dev/EBus - our typical program spread.

Database:

  • Connor McDonald - he's like the little bit of sugar that helps the medicine go down - a must have at every event.
  • Yury Velikanov - I enjoy his passion, though I don't always understand his topics - but we're there to learn, right?
  • Arup Nunda - I've always enjoyed his blog, but never seen him present. I'm sure it would be quality.
  • Tim Hall - in Australia we might call him a cheeky b-st-rd - but here that's a term of endearment. Surely he's got nothing better to do than come over? ;-)
I'd be happy with anything tuning or technical talks on 12 features & concepts.

Development

  • Mark Lancaster - always pushes my boundaries with APEX use, bring it on.
  • Jeff Kemp - He's got my kinda topics, plain & simple
  • Martin Giffy D'Souza - I see him once in Melbourne and would like to repeat the experience.
  • Patrick Wolf - APEX use down under is growing fast, and I'm sure everyone down here would like to see what he has to say.
Can't go past APEX content, particular version 5 stuff. 
Anything PL/SQL is a treat these days - new fodder in 12c...

E-Business

I have no particular interest in this area, so I'll just say Phil Robinson - and anything he'd like to present.!

But I tell you what, it was tough pinning it down to just 2 people!

You can find the survey here
https://www.surveymonkey.com/s/ZPNVHXD

Scott

Thursday Thought - Look up & avoid boring

$
0
0
In the last slot of last year's Perth user group conference, my boss Penny Cookson & I presented a talk that was originally written by Tim Daniell in Queensland. It was called "Being Productive in IT", and it was an interesting, light-hearted comparison of how the human brain works using analogies with computers systems.

One of the lessons learnt was allowing yourself to be bored. Even to the point of doing some menial task while letting your creative side go nuts. It's kind of how rubber ducking works.

And it's also why the advert I'm seeing on Australian television for a mobile company really irritates me.

In the age we live we're all doing our best to close the laptop lids, put the smartphone in the pocket (even leave it at home occasionally) and turn the music players off - and we get an advert telling us to "avoid boring.". Click on that link to check out the ad.

No doubt many will tell me I'm just David vs the goliath marketing engine, but don't you think we should allow ourselves some time to sit at the bus stop and look around - or as Dr Karl or Neil Tyson would say... look up, even during the day. You'll never know what you'll see... or what you'll think of.
APOD

APEX 5 first peek

$
0
0
Last week I finally started to play with the first APEX 5 Early Adopter product at apexea.oracle.com.
For a short answer on what's coming, just scroll down on that home page - looks good APEX team.

Instead of talking about the marquee features found in the SOD& those Dimitri described or what's in the page designer videos since the page designer truly is the fundamental game changer in this release - I thought I'd explore other areas of the APEX 5 release, starting by looking at the new feature descriptions and accompanying known issues.

You would have to say the very first thing you notice is the flat icon style - yep, once again screenshots from training manuals everywhere need to be adjusted. I'll talk more on that later, but I also notice the login sequence has been adjusted.

Administrators will now be able to define other authentication schemes for the Application Builder - this is evident as we use our Oracle account (same as used at OTN) to authenticate (SSO).
Logged in, select workspace from list
We'll then select from a list of workspaces. It will be interesting to see what this looks like in our own environments.

I aim to post on the following topics in further detail during the next week or so
but I'll mention a few other miscellaneous items I spotted in the new features list.
  • 3rd party libraries - as usual these have been brought forward: AnyChart; CKEditor 4.3; jQuery Mobile 1.4; jQuery UI 1.10.3. These always bring better options to the developer.
  • Calendars - I don't often use them, but the new features sound sweet. Head to Dimitri's blog post for more.
  • Data loading - among other improvements, the incoming date format has been address - a huge pain in past releases.
  • File handling - it seems there are some key changes in the way you can manage your supplementary files including some new attributes, making it easier to load from a web server. This needs further exploring.
  • Themes - can also have their files stored within the definition, just like plug-ins
  • Mobile - reflow table and column toggle - features relating to responsive design that look 
  • Interactive Reports - pivot views have been introduced, as well as a welcome increase to the Group By column limit. You can also manage them at the application level - I hope this brings other management improvements.
  • Navigation lists - modern alternative to tabs... yes!
  • Other extras
    • little things like trim spaces attribute to text fields, saving on extra computations
    • an APEX sys_context() for performance
    • developer toolbar updates
    • optimised export
Great looking release so far looking at calendar year 2014 release - short odds for months starting with J after 1-2 more EA releases.

APEX 5 first peek - Performance

$
0
0
APEX 5 EA has shown some interesting improvements in regard to performance.

Icons

If you haven't noticed the swelling trend of flat designs in the past few years, you haven't been using the internet or held a smart device. Here are three goodarticles about this modernism, and like me you may learn the word skeuomorphic.

How does this affect APEX? Well of course all the icons have changed again.
How does this affect performance? The new icons are base64 encoded strings.

Where previously they were rendered like this:
<img src="/i/apex/builder/menu-pkg-128.png" width="128" height="128" alt="">

Now a small spacer image is used, then dressed up with a class with the image definition in the CSS file.
<img src="/i/f_spacer.gif" width="128" height="128" alt="" class="gi-Icon-pkg">


APEX5 rendering of CSS icon
This improves performance of your page. I find these days performance increases are not just improving your SQL & PL/SQL standards, but CSS & jQuery considerations for the browser as well.

Exports

The feature list described the following in regard to "Optimised application export format"
The APEX export file format has been optimized to make it easier to interrogate with diff/merge tools, to consumes less space, and make it faster to import.

So I thought I'd check it out:
APEX 4.2 export
APEX 5 export
As you may notice from the samples - extra spaces have been trimmed and unnecessary lines have been removed. A smaller export size might be beneficial for some of the applications I've worked on.
A quick import/export of a 4.2 application shows new export is 4/5 the original size - rather respectable.
4.2: 3,427,727 btyes
5.0: 2,730,066 bytes

I reminds me of much happiness when I discovered the TRIMSPOOL option in SQL*Plus

New export option "Export with Original IDs" is available for those for instance wanting to use diff tools.

APEX variables

I've previously posted about the dangers of using certain substitution options in your SQL, namely v('ITEM') and &SESSION.

The APEX team have now introduced some sys_context() options - and I've only discovered this so far thanks to Chris Neumueller posting on Jeff Kemp's post on the same issue.

This query returned successfully in the SQL workshop:
select sys_context('APEX$SESSION','app_session') app_session from dual

Recently I've found using context variables quite useful for improving performance and the parameterisation of views - spurred on by Jeff's great post on the topic. And we can both thank Connor McDonald for the idea.

Supplementary files

This topic requires a post on its own - and a bit more investigation, but maintenance and performance improvements have been gained.

--
No doubt there are some other performance nuggets to be found in the new release, not counting the productivity improvements for developers in the builder itself. Let me know if you find any!
Viewing all 405 articles
Browse latest View live