Thursday 20 December 2007

Wishing you all a Merry Christmas and Happy New Year

(Okay, I couldn't think of a funny and original title, but this one says it all really)

To the readers of this blog, plus the great people I've met this year at OOW and other events, and those kind people who have helped me out via my overly insistent emails, and everybody in the Oracle blogger arena (did I miss anyone?), I'd like to wish you and your family a relaxing and fruitful Christmas and New Years!

I'm shutting the blog down for 2 weeks while I take a well earned, um, well, nearly well earned break from all things Oracle. I've been threatened with a thumping from the missus if I mention the "O" or "J" words over the next 2 weeks.

Have a beer for me! :)

Tuesday 18 December 2007

JDeveloper 11g guides

If you're using the JDeveloper 11g TP2 release and you're missing the single manual guides from JDeveloper 10g rather than the online help, check out the Oracle JDeveloper 11g Technology Preview page for the Oracle ADF Developer Guide (pdf) and the Oracle ADF Faces Web UI Developer Guide (pdf). Both draft guides have recently been updated and will provide great Christmas reading while you digest the left over turkey.

Friday 14 December 2007

Advert: JDeveloper workshops in Australia and New Zealand 2008


Scared of JDeveloper because you don't know Java, but worried you'll miss the boat in developing Oracle web applications with Oracle's development tool of choice for Fusion development?

SAGE Computing Services in conjunction with the Australian Oracle User Group (AUSOUG) are giving you the chance to attend this whole day event on Oracle's latest JDeveloper 11g Technical Preview 2 version. The workshop will be held around Australia and also in New Zealand in February and April 2008.

This 1 day workshop will introduce you to the simplicity of JDeveloper 11g's drag-n-drop facilities, wizard and editor IDE, as well as declarative programming model for quickly developing a web application using ADF Business Component and ADF Faces, without a single line of Java!

Check out the AUSOUG event web page for more information and how to register. We look forward to seeing you there.

Thursday 13 December 2007

New Aussie Oracle database blogger

Yah, my 100th blog post! You just can't shut me up.

Talking about people you can't shut up, with Marcel Kratchovil this year I had the chance to meet Richard Foote from the Australian Capital Territory (you know, where Canberra the capital of Australia is) at OOW this year. Richard is an ex-ACT Oracle User Group President, is full of great DBA stories and good opinions to boot, and I note he had a number of people rapped at his OOW Unconference session on indexes.

Richard has decided to finally dive in as an Aussie Oracle blogger, with his new blog Richard Foote's Oracle Blog. While I'm not going to give Richard any points for an inspiring blog name (sorry Richard, with a surname like "Foote" you had so many great puns you could have gone with), I wish him all the luck in his new blog endeavours.

+1 to the Aussie team. 0 for the rest of the World.

Wednesday 12 December 2007

Why doesn't the Oracle RDBMS feature in the web space?

There was a recent post by Nati Shalom analyzing Why most large-scale web sites not written in Java based on a statistics from Pingdom on What nine of the world’s largest websites are running on.

Assuming the Pingdom analysis is correct, there is a glaring whole in the database technologies category used by major websites; Where is Oracle?

Geva Perry picked up on this in his post Where is Oracle?. There are a number of other follow up posts within the blogosphere, but unfortunately mostly have degenerated into personality clashes, protecting personal agendas and the usual large corporation bashing; you can follow the trail if you so desire.

But the question is still valid and seems to have passed the Oracle blogosphere by in the last few month possibly thanks to OOW (unless I missed it of course). Where is Oracle in the web space? Given that there is so much publicity about the Web 2.0 world and innovation making it an important market at the moment, why doesn't the Oracle RDBMS feature in that arena? Many of us claim that the Oracle RDBMS is a very sophisticated product, but why is the apparent market leader in RDBMS technology not adopted as the RDBMS of choice by web companies?

Maybe it's a question of ongoing cost. MySQL and the LAMP stack are free.

Maybe these web companies came from the "start-up" mold, were experimental to start with, and as such the reliance of free products from day 1 was imperative to get their products and services out the door?

Maybe it's a question of open source, and the ability to rewrite and debug the entire stack?

Maybe the Oracle RDBMS is overkill for the database requirements of most websites?

Or maybe the analysis is just plain wrong.

What's your opinion of why the Oracle RDBMS is missing?

Footnote: You'll note that there are some obvious missing web companies in the Pingdom analysis, including Google, Yahoo etc.

Tuesday 11 December 2007

Conference widows

Filed under "I'm really all pink and squishy inside."

I've just come off 3 weeks of conferences, having visited OOW in San Fran, the Perth Australia leg of the AUSOUG conference, as well as the Melbourne leg too. Conferences, whether you're just attending or actually participating, can take up a fair amount of work and home time in preparation, during the conferences and the lead up time. Multiple that by 3 and you'll know that I've recently had a very busy time.

In all the excitement of attending such events, it can be easy to forget the "significant other parties" who make a pretty clear sacrifice to allow us to attend these events.

My partner said to me the other day that she felt like a "conference window" over the last few weeks, having looked after our baby daughter, kept the house running with the usual array of chores, and working part-time to boot. All of this without me around to lend much of a hand at all while I swanned around the world. As you can imagine, an ever-so-small-incy-wincy-tiny-bit of guilt invaded my conscious.

So here's a small public thanks to my partner, and all the other wives, husbands, boyfriends, girlfriends, family, children, friends and work colleagues, who kindly and patiently put up with all of us who follow the conference trail, who understand and support us while we pursue our passions and interests, who nod and humour us when we return and rant about the latest Oracle 11g feature, the future of Fusion Middleware, or how many free Toad shirts we scored this year.

Thank you very much.

At least until next year of course.

In the Mix - Oracle User Groups

It didn't take long for Oracle user groups and SIGs to be represented on Oracle's new site mix.oracle.com. The Mix proves to be a particular good fit for the user groups, because it allows non-technical discussions and posting of ideas for each group, unlike other technical forums hosted by Oracle or the user groups in particular.

If you're a registered user of the Mix, take the chance to dive in and start posting ideas and questions for your respected group. Given enough votes your ideas could persuade the group to take action.

User groups:
Special Interest Groups (SIGs):
Miscellaneous:
Apologies to any groups I missed out. Note I also haven't had the chance to check that these are all legitimate user groups, but you get the idea.

Saturday 8 December 2007

Post OOW 07 - a green summary from TreeHugger

....filed with the "I'm a greeny so live with it" department.

As follow up to my recent post about Oracle's greening efforts at OOW, TreeHugger covered the event with a good range of posts which I hope you may find interesting. For the uninitiated, TreeHugger is the SlashDot of the environmental world.

Of particular interest:
  • Michael Dell from Dell and Jonathan Schwartz from Sun received some points for their "green" message during the keynote, but Oracle's Larry Ellison received a big fat zero. Come on Oracle, you're not alone in this big wide world!
  • Jena Thompson from The Conservation Fund spoke on the importance of C02 offsets in context of the gathering criticism.
  • Michael Dell talks among other green initiatives at Dell, the concept of the Green Print where organisations go beyond just looking at their CO2 emissions, but look at collaborative efforts among all departments within an organisations to reduce their CO2 footprint.
  • Recorded by video are some enlightening opinions from the punters at the conference on what being green means, moving from the marketing corporate hype of it all to what the "common folk" are concerned about.
For more check out the complete set of OOW tagged posts. Well done to TreeHugger for capturing the green issues around such a large event. I look forward to their coverage next year.

On a secondary note, thanks to a change of federal government and a general public tired of a government ignoring the environmental issues and concerns of the Australian voters for over 11 years, Australia's new government has finally ratified the Kyoto Protocol. Officially "Hurrah!" Now I don't feel so embarrassed about being an Australian. This mean the USA is the last industrialised country to not make the leap. Come on America, pull your socks up!

Monday 3 December 2007

My cursed presentation

For the frequent readers of my blog, you may know more recently I've been running my "Take a Load Off!" presentation at Oracle Open World Unconference, as well as the 2007 AUSOUG Perth and Melbourne conference legs. This presentation took time out to look at load and stress testing the latest web technologies, in particular those from Oracle such as Application Express (Apex) and JDeveloper.

This presentation has turned out to be in fact "cursed". There's no other description that's suitable.

The presentation contained a significant amount of live demos ("oh-no" I hear you say). Yet regardless of the amount of preparation I put in and the number of successful dry-runs I had before my presentation, the live demos kept on failing right at the critical point of my "live stand up routine". First at OOW my database exploded taking 99% of my CPU making my presentation drag to a halt. Then in Perth Apache JMeter and JDeveloper refused to talk and I had to rely on good ol'Apex to demonstrate what I wanted to show. Finally in Melbourne my laptop's Firewall went nuts right at the last moment, and I later discovered I was running on battery power for the whole demo. This is of course not to forget the same morning my database Listener wouldn't talk to my database and I had to desperately call my boss and her ever handy DBA expertise to sort it out.

Read my lips: "aaaaaaaaaaaaaaaaargh!"

There's a line in Australian television acting circles (I'm sure it crosses international barriers), that you should never work with animals or children during live broadcasts. I'd like to extend that to Oracle products during presentations for the foreseeable future! ;)

As somebody pointed out to me today though, the common denominator in the presentation wasn't the various technologies that failed, but in fact the operator himself. Being an Aussie, you can imagine my response to that ;)

Anyway, I've learned my lesson. From now on, it's all canned demos with Powerpoint content. At least until my confidence returns. I'd love to hear other presenters' "disaster stories" if you're willing to share.

For those overly keen on the whole load and stress testing gig, as well as checking the latest database tuning and Apex presentations from my boss Penny Cookson, head along to the Sage website to download the content. However I make no promise that my presentation wont destroy your PC.

Sunday 2 December 2007

AUSOUG 2007 conference "yarn" + what's happening in 2008

It's now Sunday after the 2nd leg of the Australian Oracle User Group (AUSOUG) 2007 conference in Melbourne. The following is a bit of a "yarn" about the overall conference series format, and doesn't bother to mention speakers or personalities. If that's your gig, hit the back button now, otherwise if you're interested in Oracle User Group events in general, read on.

All in all the volunteers of the AUSOUG committee and staff need to be congratulated on a conference well done this year, building upon last year's successes.

This year saw both cities, Perth and Melbourne break the attendee records of the previous year, with over 400 and 500 attendees respectively in each (sorry, I can't remember the exact numbers). In 2006 AUSOUG decided to change the tired "all cities" conference series, run in Sydney, Melbourne, Brisbane, Adelaide and Perth to focus on a smaller (in terms of number of cities) but larger (in terms of the size of the event) program in Perth and Melbourne. This has paid off with falling delegate numbers arrested, instead the 2 city conference seeing a growth of 100 each for 2006 and 2007 respectively. It's no Oracle OpenWorld, but in my opinion not bad for a country that only has a population of around 20 million.

As a side note: Why the 2 city model rather than 1? Or more specifically why Perth at all given it's so far from the Australian action on the West Coast? It's a question of member numbers and geography. Perth has always enjoyed a strong support for AUSOUG with (at times) the largest state based membership base. In turn Perth is such a considerable distance away from the Australian East Coast, there is a fair risk that West Aussies just wont commit the time or effort to head to an East Coast only "1 city" conference model. As such AUSOUG is mindful of ensuring it still supports one of its largest membership bases, to ensure the overall success of the conference series, and to protect the future of the group. However on the East Coast, the Melbourne conference sees attendees from Darwin through Tassie, even Indonesia and New Zealand, so it shows the people on the "other-side-of-the-big-brown-bit" are much more willing to head anywhere on the East coast than the "sand-gropers."

Why Melbourne? Well it was a considered choice between East Coast cities, and Sydney is known as the "nightmare" city in conference organiser circles in Australia (success is far from guaranteed in Sydney and can be very financially risky or so I'm told), Melbourne was a natural choice in 06 and 07 as it has (at last count) the largest state based membership.

The other key benefit of the 2 city conference model and was recognized by the AUSOUG committee as a priority when it changed the program, is the new conference model is seeing more international speakers willing to make the trip across. To some Aussies it might seem strange that international guests wouldn't want to see all Australia has to offer once flying the kzillion hour leg to our fair shores. However in speaking to a number of such speakers, most can't commit the huge amount of time (and dollars) required to visit every city. Now with the advantage of only a couple of cities to visit, they are willing to make the trip.

The decision of which cities to hold the conference at is an incredibly difficult one, and one that I'm happy I'm no longer a part of having stepped down from the National committee. It's the usual "you can only satisfy 20% of the people 80% of the time" decisions, and will draw complaints no matter what (especially from the Sydney crowd).

However the fact of the matter is from the user group's point of view, the conference series has seen good growth showing membership satisfaction, continued commitment from Oracle and other exhibitors from local and abroad showing the worth of the conference to sponsors and vendors, and of course the generous commitment from international and local speakers, who are what the punters come to see after all (either that or those free Toad tshirts this year - hard to tell really).

As announced at the Perth leg of the conference this year, next year's 2008 conference location is not yet 100% decided, but the going bet is the Gold Coast (south of Brisbane in Queensland for the international readers), approximately 2 weeks after San Fran's OOW in September 2008. The format and timing of the Perth conference leg is still a work in progress. Please remember I don't sit on the AUSOUG National committee anymore, so I have no "special" window into what the National committee decides. If you wish to influence the decision you should contact your local AUSOUG state representatives and voice your opinion.... and from personal experience, they do listen.

Anyway, after a year of watching the 2007 conference series form, while I sat on the sideline of the organisational effort, I think the end result has been a good one, and I wish the user group all the luck for the 2008 events.

Wednesday 21 November 2007

AUSOUG Perth conference - from 45k down to 350

Day 2 of the Australian Oracle User Group (AUSOUG) conference in Perth is before me, and I thought I'd pen a very quick note about how the event is going.

I can't say my trip back from OOW was as bad as Babette Turner-Underwood's, but then as an Aussie I can pretty much say I blank the 19hrs of flying out of my life. Yes the flights are horribly long, yes the customs queues are annoying, but I did score a pair of socks from Qantas, so that made it all okay.

As Babette noted in a separate post, the move from OOW with ~45k attendees down to around 350 seems funny. So much so that in the opening keynote by Martin Power we were actually told where the bathrooms are. I don't remember Larry telling the delegates at OOW where the bathrooms were; Larry was rambling something about 30 years of innovation or something..... I guess it's the little things that make a great conference.

This year's Perth conference is up 100 on last year which is great growth over the 50 additional attendees in 2006. And a point I'd like to make is that I always think that at the small conferences, attendees get as much out of it as the larger ones. Presentations are a hit and miss affair, and you can only meet so many people in a day, so basically the end result is the same, though the tickets to the local event are far cheaper. In addition at a small conference like Perth's the atmosphere is much more friendly and far less corporate, which is the way we like it down here.

I can't say I caught too many presentations day 1 as I was hanging out with the SAGE crew, and also introducing speakers. I did sit in on my boss's (Penny Cookson) APEX presentation, where she demonstrated taking APEX to the extreme, and accused me of spending most of OOW at the pub. Strictly not true let me assure you ;) They don't have "pubs" in San Fran Penny, they're called "bars" :P

I also introduced and sat in on Duncan Mill's two JDeveloper presentations. Definitely numbers were up in these sessions this year, and I can see some people looking at the new feature set, particularly the new ADF Faces RC web pages with all the cool AJAX additions, and MDS customisations, and thinking "wow!".

Anyway, onto Day 2 of the conference. Today I present my Load/Stress testing paper "Take a Load Off!" which I presented at the OOW Unconference. Hopefully I've ironed out all the bugs this time. And finally I'll be participating in the "Great Oracle development tools debate" panel session where I'll be defending JDeveloper by tooth and nail.... should be good fun.

Next week is the Melbourne leg of the conference which will be bigger, but with better coffee, so all in all an event worth going to. I hope to see you there.

Monday 19 November 2007

New Oracle Wiki page - for bloggers

To assist new and existing Oracle bloggers on how to participate in the Oracle blogging community, I've taken the chance to create a Bloggers page on the Oracle Wiki. It's a rudimentary start at the moment, but I'm hoping the other Oracle bloggers will take time out to include any tidbits they'd like to share around. For example I've listed the Oracle RSS aggregators I'm familiar with, and some information on who to contact to get your blog added to the associated aggregation feed.

Happy blogging!

Save to Del.icio.us

New Oracle Mix development groups - Apex, Forms, JDev, SQL Dev

Oracle's new Oracle Mix site is enjoying an explosion of new users and shows potential for interesting times ahead in Oracle customer participation in the future of Oracle products.

I've taken the opportunity to create some new groups along the development lines, and I hope readers will join the groups to start pushing new ideas for the products:

Oracle Application Express (Apex)
Oracle Forms
Oracle JDeveloper
Oracle SQL Developer

In addition I've added the following RDBMS group:

Oracle Express Edition (XE)

Note participation requires membership of OTN.

I've also taken the chance to create a user group-group for the local Aussie chapter:

Australian Oracle User Group (AUSOUG)

Save to Del.icio.us

Friday 16 November 2007

OOW - Development tool usability surveys

I've often been told by other Aussies attending Oracle events in the States that Oracle is a very customer focused organisation. Over the last few years I've been part of a few surveys and phone questionnaires, and certainly have not been shy on lodging enhancement requests on the JDeveloper OTN forums which by-and-by the Oracle PMs are good in a least humoring me (I'm hoping they don't shake their heads too much when I email them each time ;) Yet this has all been at such a distance that I've never really emphasized with the whole customer focused idea.

At my first OOW however, hanging-out in the OTN lounge, it's been very interesting to participate in a number of surveys on the usability of Oracle development tools. Today I met Kristyn Greenwood, a manager for Oracle development tool usability and interface design. Kristyn and her team have been running a number of surveys asking various questions on Oracle development tools and their usability, as well as visual surveys demonstrating potential mockups of future development interfaces, specifically a reworked Help Center for JDeveloper. It's been an interesting experience to be part of the discussion on the IDE design before the products even go beta, and more so to meet some of the team behind the scenes, or more specifically behind the more visible product PMs.

The UI development team has a website that you can visit if you're interested in participating: http://ui.oracle.com, or alternatively you can participate in the same surveys that have been at OOW here (note that if you're at OOW, there appears to be a problem with the wifi and getting to these sites.... however after OOW if you're still having trouble accessing these links, let me know and I'll verify the URLs again). Otherwise you can even contact the team directly at devtools_ux_ww@oracle.com.

Disclaimer: I'm at OOW under the invitation of Oracle and the Oracle ACE Director program.

Save to Del.icio.us

Another OOW Unconference session worth checking out

My Unconference session at OOW yesterday went well, with only one minor database disaster during the presentation. It's not a live demo without at least one hiccup I guess. Anyway, I had fun and a few laughs, so here's to aceing the same presentation at the AUSOUG conference over the next few weeks. The Unconference sessions in my opinion have been a great idea and I hope we see the same program again next year.

In addition Marcel Kratochvil, Oracle PL/SQL Developer of 2004 from Oracle Mag, will be running an Unconference session today (Thursday) that will be worth checking out for its out-of-the-box nature: "A proposal for an open-source spam filter inside the Oracle database". Marcel has promised to demo his ideas..... I've the sneaking suspicion Marcel wants to use the Oracle database to take GMail on. Marcel is on at 3pm. If your feet are heavy and you're tiring of the normal OOW schedule, Marcel is always full of good challenging opinions so give his presentation a go. Otherwise check out some of his podcasts on PL/SQL at The Eternal Donut of the Soul.

Wednesday 14 November 2007

My OOW Unconference Session Wednesday - Take a load off

For those readers interested and are attending OOW, I'll be presenting my session "Take a load off! Load and stress testing Oracle Apex and JDeveloper web applications" at the OOW Unconference on Wednesday 4pm. Check out my Oracle Wiki page for more information. I look forward to seeing you there.

OOW Report 2 - Highlights

Day 3 at OOW, and the last day of Oracle Develop. Today I checked out the following sessions, mostly JDeveloper, with a smattering of left field topics:

Tom Kyte's "How do you know what you know?" - Tom's definitely the feel-good speaker of the conference. His presentations are like the stories you have at the end of the news where "Fireman saves dog from tree", or "Record sized pizza made downtown". Attendees came out of his session smiling, laughing, but more importantly looking like they'd learned something that wasn't necessarily all about Oracle.

Tom's best point for myself, effectively system requirements are mutable. I've been saying this for years of course to justify that what the customer really wants is not a boring asset management system, but instead for me to work on my blog ;)

Peter Henty's "Hands on Lab: A Practical Introduction to Oracle WebCenter" - this was my first play with WebCenter besides some failed attempts at home. I must admit the demos look good, but the performance at the moment is horrible. So much so that I have my doubts about the future of WebCenter if out of the ranks its performance is this bad. The JDev team has announced that performance is the key issue they're looking at for the Tech Previews, and I hope they can prove my doubts wrong.

I'm also very curious about the future of Oracle Portal when Oracle's focus appears to be on WebCenter. The cynical would say that Oracle has a large history of killing off multiple competing products regardless of what Oracle staff say, but I guess time will tell.

Frank Nimphius's "Mind the gap: Building Secure Ajax Web Applications with Oracle ADF Faces Rich Client and Oracle ADF Security" - Frank's knowledge on web security shows no bounds and Frank took time out to explain many of the security issues in the Ajax sphere. These sort of sessions really show the complexities of issues that Oracle has to solve when building products like ADF Faces, and again gave me new found respect for the Oracle products and the teams that work on them. Frank also looked at the new security JPS mechanisms within JDev 11g, and how the binding layer acts as a choke point for all security within our app.

Umm..... then I intended to attend Duncan Mill's "Oracle ADF Binding Internals: Understand what you are building" ..... but unfortunately my jet lag got the better of me, and I went and had an hour nap after a horrible night's sleep. Following my little nap, with a new spring in my step......

Shay Shmeltzer's "Hands on Lab: Developing Ajax-based UIs with JSF" - while I've played with the new ADF Faces RC components, I've not yet had a chance to create a drag and drop web page. The lab had a huge amount of steps to get through, but the drag and drop functionality was achieved in only a very few. I did hear somebody behind me say "I'm a Netbeans expert, and this stuff is impressive - I think we'll seriously need to investigate JDev further".

Frank Nimphius's "Integration ADF & SOA" (title paraphrased) - the last session for the day, and admittedly I'm typing this post up during the presentation, but an interesting demo of combining the 2 technologies for the uninitiated.

I'm off to the annual Blogger's dinner tonight organised by Mark Rittman. Very much looking forward to it; all the bloggers have very interesting opinions and personalities - it's great to talk about Oracle with people who are so passionate.... though we're not allowed to mention the "O" word tonight of course ;)

Disclaimer: I'm at OOW under the invitation of Oracle and the Oracle ACE Director program.

Tuesday 13 November 2007

OOW Report 1 - JDeveloper highlights + others

Day 2 at OOW, and the start of Oracle Develop Day 1 I had the chance to check out the following JDeveloper presentations, where frequent readers know my interests lie:

Ric Smith's "Oracle ADF Faces Rich Client: Building a next generation rich-client framework with AJAX, JSF and a side of Flash" - Definitely the "Wow-feature" in the JDev 11g ADF Faces RC components demonstrated.... besides Drag n Drop.... are "Active Data" components. An Active Data Component is one that automatically refreshes itself on data changes on the server without the user having to hit refresh.

You can check out a demonstration on the ADF Faces Rich Client Components Hosted Demo page hosted from the Oracle ADF Faces Components OTN site. To check out an Active Data demo, click on the Visual Designs tab then the activeData link.

Steve Muench's "Oracle ADF: New Declarative Features for Oracle Fusion Application Development" - JDeveloper 11g has so many new features and improvements on existing technologies it's hard to know where to start. Obviously Steve was very excited about the number of opportunities the JDev team have had to listen to customers and improve the product significantly, from removing the need for much Java programming with the introduction of Groovy expressions, page templating as missing from the JSF spec, through to the inclusion of declarative LOVs, even declarative cascading LOVs, providing a LOV function set way in advance of vanilla Oracle Forms with near zero programminng. Steve stole the thunder from Duncan's next presentation, another significant feature....

Duncan Mill's "Task and Page Flow in Oracle Fusion" - in my honest opinion this is the revolutionary feature in JDev 11g ADF. Other features are natural evolutions, extensions if you will of existing features, or features that should have been there in 10.1.3. But task flows takes web programming and JDeveloper to another level. The ability to define page flows, sequences of pages with logic, and turn them into reusable components, and embed into other page flows, is a very significant advancement. I can already see the JDev 12g feature set.... the ability to do mash-ups between separate page flows installed on different servers..... very cool.

All the feature's presented by Ric, Steve and Duncan are available from the current JDev 11g Technical Preview 2 release, available from the OTN web page.

Paul Dorsey's "Stateful versus Stateless for Web Development" - not exactly a JDev session but heavily related to the whole web development game, Paul's presentation highlighted for architects the many issues and differences between the two architectures.... and many lessons that we've either forgotten since we left the client-server world, or even issues they we haven't even bothered to think of in the stateless web world. Paul definitely has a lot of strong opinions and swims against the Oracle stream, but it's always good to have people who challenge the common conventions *and* have the ability to give many detailed examples to support their view, rather than boring generalisations.

All in all a very interesting day, and I'm looking forward to OOW Oracle Developer Day 2.

Disclaimer: I'm at OOW under the invitation of Oracle and the Oracle ACE Director program. However I did buy my own breakfast.

Thursday 8 November 2007

Oracle shows a little touch of Green

If you're concerned about the environment in general, you may be interested to note that Oracle is starting to show some touches of Green on their all mighty corporate Red colour scheme.

Firstly if you've downloaded the OOW Online Agenda and Show Guide, on page 10 you'll see a commitment to making the conference greener.

In addition, Oracle has published their We're good corporate citizens - so please buy another RDBMS license media release that among other things states:

1) (Oracle has) More than 20 energy conservation and "green" programs (which) have been adopted corporation-wide.

2) Oracle's Austin Data Center is a certified U.S. Environmental Protection Agency Green Power partner for its commitment to use a portion of power for renewable sources.

3) Oracle's energy management programs have reduced energy use at its headquarters by 25 percent per employee compared to 2000.

Nice to see Oracle is making steps in the right "green" direction and I hope they will increase their efforts. I'd love to hear directly from Oracle employees on any environmental initiative that Oracle is currently undertaking with real results.

Wednesday 31 October 2007

Top 10 signs your DBA might need to retire

The top 10 signs your DBA might need to retire:
  1. Complains about these "new fangled stored procedures".
  2. Rants about the good old days of Oracle PE (Punchcard Edition).
  3. Thinks Thomas Kyte is a whipper-snapper (even with the beard).
  4. Still demands all Oracle manuals in hardcopy.
  5. Has a service request with Oracle Support to forward port the RBO to 11g.
  6. Knows about Edgar's secret 13th rule.
  7. Thinks Oracle Support went downhill when they moved the HQ to Redwood Shores in 1989.
  8. Has larry@rsi.com in his address book.
  9. Still replaces blank lines in PL/SQL with single line comments.
  10. Has an open 10 year old Oracle Support "TAR" to fix a bug in version 7 which he/she wont close because of the "principal of the thing."
If you enjoyed this, you may also enjoy Top 10 signs your new Oracle DBA may not be all what he (or she) seems.

(Yep, still a slow week while I prepare for OOW and the AUSOUG conference, as well as teach a SQL course. I promise no more "DBA bashing" ;)

Friday 26 October 2007

A little self promotion.....

This post is a little self promotion for SAGE Computing Services. If you're not interested in marketing, use the back button now! I promise I wont be doing this sort of post often.

To all the SAGE Computing Services fans out there (hi Mum!) we've had a chance to update our website. What made me particularly excited about the site is we've managed to include flashing text, JavaScript menus, Flash animations, and audio of the SAGE team singing "row, row, row your boat".

On a slightly more serious note, we've gathered the last 3 years of the 40 odd Oracle papers, presentations and masterclasses we've run in Australia and internationally, which you can now download. I must admit we've been a bit lazy in indexing this list, because marketing isn't really our thing.

To the various user group members out there, we're more than happy to support your group and present for you. Why? Well lets just say we're a bunch of Oracle geeks. So if you have a topic that you know we specialize in, particular Oracle development, Oracle RDBMS tuning, SQL, PL/SQL, Oracle Application Express (Apex), JDeveloper or Oracle Portal, drop us a line, and we'll work something out. As long as we get a free bottle of wine out of it, we're normally happy (no white wine please).

Hopefully the updated site will generate us slightly more revenue so we can take next Friday off, rather than sitting here posting about our updated site.

Wednesday 24 October 2007

OOW Unconference - oh, me, me, me!

I've taken the chance to throw one of my presentations into the Oracle Open World Unconference ring and hopefully it'll be selected. You can check my session proposal on the Oracle Wiki:

Take a load off! Load testing your Oracle Apex or JDeveloper web applications

I note Andrejus Baranovskis has entered a JDeveloper paper too:

Oracle JDeveloper/ADF Real Life Story

....great to see a JDeveloper case study; more of these please Andrejus! I'm sure we're both very keen to meet our peers interested in JDeveloper too (assuming either of our sessions are selected of course ;) so please show your support if you can.

I think the Unconference is a great idea, giving lesser known mortals a chance to present something they're interested in at this mega-event. I must admit it's also an important learning opportunity on how to present in front of an American audience for myself; let's just say I need to learn to turn down some of my Australian colloquialisms ;)

I hope more attendees will take up this great opportunity, real users presenting real topics, it doesn't get much better than that.

Tuesday 23 October 2007

Top 10 signs your new Oracle DBA may not be all what he seems

The top 10 signs your new Oracle DBA may not be all what he (or she) seems:
  1. Arrives day 1 with "SQL For Dummies" in hand.
  2. Searches for ORA-00600 errors on AskJeeves.
  3. Is president of the local MS user group.
  4. Resets the production database password to "manager" to make life easier.
  5. Thinks utl_file is a package the developers wrote.
  6. Is planning an organisation wide upgrade to Excel (but then shelves the plan as copy 'n paste from SQL*Plus to Excel proves too difficult).
  7. Proclaims "A reboot a day keeps the Oracle demons at bay."
  8. Uses ANSI SQL joins.
  9. Looks blank at the mention of Thomas Kyte.
  10. Proclaims that administration is impossible if SSMS isn't installed.
If you enjoyed this, you may also enjoy Top 10 signs your DBA might need to retire.

(This post courtesy of a slow blogging week while I prepare for OOW, and papers for the AUSOUG conference)

Friday 19 October 2007

AUSOUG 2007 conference JDeveloper presentations

....logged under the "yes I'm an AUSOUG state committee member" department.

My first exclusive "you-heard-it-here-first" news post!

I'm happy to announce that Lynn Munsinger and Duncan Mills from Oracle will be presenting on JDeveloper at the Australian Oracle User Group (AUSOUG) conference in Melbourne and Perth respectively.

Last year Melbourne was very lucky to have Lynn present, and Lynn has decided to return again which is great news for everyone on the East Coast of Australia. For those who said to me they were impressed by what Lynn demoed last year, I'm pretty sure you haven't seen anything yet with the new JDev 11g release imminent, and these presentations straight from OOW.

For us West Coast Oracle developers, Perth is very privileged to have Duncan Mills, senior Principal Product Manager from Oracle, give us the low down on JDeveloper. Perth doesn't usually get to see such high caliber Oracle and Java speakers grace its fair shores. Do a little Google on Duncan Mills and you'll understand what I mean.

Given that I've seen zero JDeveloper presentations by local Aussie Oracle staff, this may be your only chance to see the latest for JDeveloper and ask the tough questions of very experienced Oracle staff. So make sure to sign up for this year's November conference in Perth or Melbourne, and I look forward to seeing you there.

Thursday 18 October 2007

The zen of the Oracle development landscape

Grant Ronald has recently blogged about Modernising your Forms Applications - SOA or bust, which (once again?) revisits the perception (or myth?) that Java is the one and only future of Oracle's development. I'd like to revisit why I think this perception has come about.

I think one of the reasons (and I emphasis the word one here, there are certainly more) Oracle developers look to Java and therefore JDeveloper by default as the Oracle development future is a matter of circumstances that eventuated in the past.

Around 1998 through 2004 Java was the buzz in the development industry and it was pretty important change time for the industry. Languages were revolutionized, the web was coming to the fore, and Java is famous for being the first cab off the ranks so to speak in the Web programming world (thanks to its servlet technology - which it is now partly infamous for).

I believe many Forms programmers came to the conclusion that Forms wasn't the future because of its clunky 2 tier architecture (later hammered into 3 tier) and plain-Jane interfaces. As such they were interested in what else was happening out there way back when. It just happened that Oracle invested in JDeveloper at the time and through Oracle's marketing, coupled with the buzz around Java, it gained popularity and became the perceived future of Oracle development. Forms programmers picked up on this fact and stored it away in their little box of tricks.

Then the world moved on.

Today those same typical Forms programmers are facing the following problems:

1) The majority of Forms systems are now legacy and it has taken them a long time to come around to adopting new technologies for various reasons regardless of their originally interest in other technologies, due to organisational lack of mobility in technology adoption, lack of in-house skills, lack of interest by management to move on and so on - take your pick. So their initial interest in other technologies has been stalled by the slow moving IT corporate world. It's hard to move to a new technology when you have to fix current problems in existing legacy systems.

2) There has been an incredible amount of change in the industry between 2000 and 2007 (as usual in the IT industry). Traditional Forms and PL/SQL Oracle programmers are outside the whole web world, revolution in web scripting languages, scratch their head at the term Ajax (it's something Google does isn't it?), have very little exposure to industry wide frameworks (as separate to inhouse frameworks), and so on. Keeping up with all this change is a full time job, much easier to keep the blinkers on, do what your job demands you to do, and just keep with what you learned way back when.

3) The perception that development of Forms from Oracle has stalled.

4) A potential alternative Oracle Application Express (Apex - formally HTML DB) has only appeared to have become (again a perception thing, not necessarily reality) a viable mature development alternative more relatively recently.

....that because of these issues and perceptions (and I can't emphasis the word perception for this discussion enough - don't start arguing that's what I believe please), because typical Forms programmers haven't kept up with all the changes, because Forms is an old technology, because the marketing has at times focused on Fusion and JDeveloper and not Apex....

....that because of all these perceptions.... and how history eventuated.... and given a reluctance to give up on the potentially false or outdated perception learned way back when, that Java is still the only way to go....

.... that we see Forms programmers coming back again and again to thinking JDeveloper/Java is the future of Oracle development, and then becoming terribly disillusioned when they struggle with Java, JDev and ADF, can't see why the huge frameworks don't fit into their simple problem sets, struggle with the huge learning curve of adopting not one but several new technologies, and see an easier alternative in Apex, or scripting languages, or .Net or take whatever your pick in what you're more familiar with (it's always easier to say technology X is better than Y when you know X, but you don't know Y - that's human psychology for you).

Now given this whole discussion, does this mean I think Java and JDeveloper don't have a viable future for Oracle development? Not at all. For myself I've overcome the JDeveloper learning curve moving from Forms and I'm very excited about the future of the product. The rich AJAX components in JDev 11g ADF Faces Rich Client has me jumping up and down in excitement .... I can't believe I don't have to do hardly any JavaScript programming (don't get me started Apex programmers) at all to get these great AJAX enabled components in my web application .... Web 2.0 here we come.

For you and your organisation, like Grant says in his blog, to paraphrase, there are a number of ways to skin a cat, and what technology you pick should be dependent on your circumstances, or more precisely your organisation's circumstances. Don't invest in one of these technologies before understanding your organisation's circumstances or you will get burnt. For example investing in a huge Java project with just PL/SQL programmers without any Java training or experience will certainly burn you unless you're very lucky. And you should have known that fact before you start. That's the risk of falsely thinking Java is the holly grail of development. The same holds true for investing in an Apex project, a scripting language project and so on, there is no holly grail in development, particularly if you have none of the needed skills or the tool is badly suited to your environment. And for the record (you can quote me) there will never be a holly grail (unless you consider turning all the computers in the world off) – so get over it (the exception being of course Lisp ;).

So take Grant's point on board. Java and JDeveloper match certain problem sets and backgrounds. As does Apex as does Forms..... let your mind free itself from what you learned before and re-assess the Oracle development landscape today, to what suits your needs.

....and thus the title of this post.

Now, I seem to have broken my soapbox. Until I find another one, I'll keep the blog free of rants for a while. I think it's a time for a humorous post. Maybe I'll pick on DBAs or something fun.

Usual disclaimers to stop the unnecessary flames:

1) Please note I'm not trying to put all Forms programmers in one outdated boat. There is always a bell curve of people and skills; people who are as much as in the box as out, so put yourself in whatever box makes you happy for this discussion. When I say "typical" Forms programmers I'm drawing from my experience as a consultant and I'm referring to a generalisation of the Forms programmers I'm meeting on a day by day basis, not a specific person or group. There are certainly Forms programmers who I meet who know everything outside the Forms sphere too.

2) It's a false perception that Forms development from Oracle has stalled, as thanks to Grant's blog we can see there is still changes occurring in the Forms arena, just more subtle than before.

3) For the readers of one of my original posts A career path for Oracle developers - consider JDeveloper!, you will certainly be able to see a certain maturing in my thoughts about this, thanks to many discussions with Apex specialists, JDeveloper experts and other contemporaries.

Wednesday 17 October 2007

OOW Blogger catchup

OOW 2007 is nearly upon us, and Mark Rittman has kindly organised a meetup at the Thirsty Bear on Tuesday 13th 7pm for all the Oracle bloggers.

Of course the challenge is on not to talk about Oracle all night. Maybe a game of "If you mention Larry it's a round of drinks" is in order ;)

Monday 15 October 2007

3 things you can do at home *AND* work to reduce your IT environmental footprint

In honour of Blog Action Day, this post is given over entirely to the discussion of ways in which we as IT professionals, developers, administrators, team leaders and managers can help to reduce our footprint on the planet, reduce our carbon emissions, and enable our employees, employers, and associates to reduce theirs.

3 things you can do now at home AND work to reduce your IT CO2 footprint:

Power down your home *AND* work computers each night, and turn them off a the wall socket.

Most would know that there is a number of ways to "switch off" your machine, including stand by, hibernate and shut down. But the power consumption of your machine doesn't stop there. It's important to note that anything that has a transformer (the old 'power brick') such as a laptop, LCD screen, printer / fax / MFP, continue to consume power when plugged in to a live power outlet (i.e. the switch at the wall is on), regardless of whether the appliance is powered off or not.

Even mobile phone (cell phone) chargers plugged in and turned on draw a current, whether or not the phone is actually attached. Treehugger makes the claim that 40% of the energy used for electronics in your home is used while these devices are turned off.

And here's the trick, many consumers are becoming conscious of doing this at home to save some dollars on their electricity bill, but how many of us think of turning off our PCs and powered devices at work when we leave for the day? I haven't been at an IT department or an organisation yet that advocates this at a department or organisational level.

Concerned about the "Wear and Tear" of powering your devices on and off? Well, there is anecdotal evidence that powering a machine down every day may increase wear and tear on components such as the hard drive, however Google Research reported "Surprisingly, we found that temperature and activity levels were much less correlated with drive failures than previously reported."

Turn off your "flashy" screen savers

Screen savers use as much power as a screen in normal use. Change your power options to turn the screen off after a period of inactivity, and don't use the screen saver. The original need for them has now all but disappeared with modern screens, the burn in effect doesn't occur in modern monitors, but "burn-ing" of fossil fuels to show that boring Windows logo is very much a problem.

Mystery Machines

Mark Monroe, Sun Microsystem's Director of Sustainable Computing, coined the term Data Centre Drift to describe the situation where a server is installed to run an application, eventually that application is no longer needed and is turned off, but the server remains on, serving no purpose but to use power and take up space. He also described the role of server virtualisation in minimising the number of physical machines required and save energy and emissions in the data centre. Maybe it's time for an audit of your servers to save a few CO2 tonnes and decommission that redundant server?

Many thanks

Many thanks to my friend Ben Harrison for helping me to put this post together. We hope that this post will make at least a few out there think about changing their IT practices at home AND work for the better of us all.

Sunday 14 October 2007

4 things I read more recently (about all things "developer" and "programmer")

4 things I read more recently about "developer stuff":
  • Cost of Developer Interruptions - having been a consultant at many customers' sites, I'm used to being stuck in all sorts of odd locations, including cupboards, hallways and kitchens. Mostly the environments are noisy, and interruptions are undoubtedly a productivity killer, especially to my Internet surfing. David Carr blog's about his observations on this issue.
  • Thirteen Patterns of Programmer Interviews - it would be funny if it wasn't so true -- I haven't had to undertake a serious interview for just on 7 years, having realised they're all a farce. Greg Jorgensen blogs at Typical Programmer the kind of joke interviews we all need to go through at some stage. Thanks to devizen for the original link.
  • Younger developers are better & faster? - apparently old people "learn dumber" at programming. Rey Bango asks should old programmers retire into management and let all the whipper-snappers take over the programming world? At 32 years my opinion is, um, ah, am I considered young or old? Dunno.

Tuesday 9 October 2007

New OTN article: Integrating JDeveloper and Designer's Table API

I'll tag this post under "another 23 + 6.2 seconds of fame".

Thanks to OTN, my article Integrating the Oracle Designer Legacy Table API with Oracle JDeveloper 11g ADF Business Components has been published, and even indexed on their front page.... be quick! I'm sure it'll be gone soon.

Without attempting to sound like a complete amateur, but indeed sounding like a complete amateur, it's pretty neat to be published at this international level. Up till now most of my articles and white papers have been published in the Australian Oracle User Group's (AUSOUG) magazine Foresight. Suddenly I've an article up in lights on the OTN front page, and for the record, a big cheesy grin to match.

My Mum will be so proud..... except she doesn't understand anything I do and listens with a blank look most of the time. I think I lost her way back in 1998 when I mentioned the acronym RDBMS.

Thanks to Justin Kestelyn and the Oracle team for accepting and editing the article, and putting up with my poor grammar, spelling mistakes, and outrages demands.

This of course makes me excited that hopefully Oracle will accept my next article, a romance-crime-mystery Oracle-Forms crossover.

Thursday 4 October 2007

Apex Cascading LOVs revisited

Like the JDev community, the Apex community has plenty of blogs and example sites on achieving certain functionality which cuts down the learning curve or reinventing the wheel. I recently had the immediate requirement for a cascading LOV in Apex 2.0, and went with Carl Backstrom's example on his sample site.

For my own notes, and possibly of benefit to others, I'd like to extend Carl's example by describing the actual steps needed to implement the solution.

A cascading LOV is where a web page containing 2 poplists called Select Items in Apex, or sometimes loosely referred to as List-Of-Values (LOVs), where the 2nd poplist's values are dependent on the 1st poplist's current selection. When the user selects a value in the primary LOV, the secondary LOV should show a subset of values relevant to the primary value rather than all values.

To implement Carl's example follow these steps:

1) At the application level create an Application Item named: TEMPORARY_ITEM. Application Items are created through the Shared Components page for your application. On creating the Application Item accept the other defaults.

2) Also within the Shared Components, create an Application Process. Carl's example assumes the name of the process is "otn_Select_XML", but you can call it anything you want such as RESOURCE_LIST. On creating the Application Process, ensure the Process Point is "On-Demand", and enter the Process Text as supplied on Carl's website -- essentially an anonymous PL/SQL block with a cursor that constructs a list of items.

3) Within the Application Process change the cursor's SQL query to what ever you want your secondary poplist to show, for example as follows:

select description, code from resources where type_code = :TEMPORARY_ITEM

Note how the query needs to have a predicate (where clause) that is restricted by TEMPORARY_ITEM.

Ensure that within the cursor for loop, you change the column names for the rec pl/sql datatype to match that of your select list aliases in the cursor.

4) Again within the Shared Components, create a List of Values entry that is either a static list of values, or a query driven dynamic list, which you will use for your primary LOV. For example:

List of values name: RES_TYPE_LOV
List of values query: select name d, code r from resource_types order by 1

5) In the web page that will contain the cascading LOVs, within the page's attributes (accessible in Apex 2.0 by clicking on the Edit Attributes button near the top of the screen), in the HTML Header option, embed the JavaScript code from Carl's webpage.

Note that Carl's JavaScript example makes a number of calls to method $x which isn't supported in Apex 2.0. Thanks to the comment in this blog entry by Patrick Wolf, you may replace the call to $x with html_GetElement. If you're using a later Apex version you should be fine.

An alternative easy hack to get this working is to include the function $x in the JavaScript code you just included before the other routines:

<script language="JavaScript1.1" type="text/javascript">

/* begin $x functions */
function $x(pNd){
  try{
    var node;
    switch(typeof (pNd)){
      case 'string':node = document.getElementById(pNd);break;
      case 'object':node = pNd;break;
    default:node = false;break;
    }

  if(node.nodeType == 1){return node;}else{return false;}
  }catch(e){return false;}
}

....other functions....
</script>


The $x function here comes from htmldb_html_elements.js, presumably a JavaScript library available in later versions of Apex?

6) Note within the JavaScript code you just copied in, within the function get_AJAX_SELECT_XML, there is a call to a function htmldb_Get on approximately the 3rd line of the function. Within that function call, there is the following parameter:

'APPLICATION_PROCESS=otn_Select_XML'

otn_Select_XML refers to the Shared Component Application Process you created some steps back. Change otn_Select_XML to whatever you called the Application Process.

7) Still within the web page that you're interested in showing the cascading LOV, create your primary LOV field, a Select Item, named RESOURCE_CODE for example. Base it on the LOV you created in the previous step (ie. RES_TYPE_LOV). Accept the other defaults.

8) Now create your secondary LOV field as a Select Item, named RESOURCE_TYPE for example. Alternatively the actual item you want to be the Select Item may already be on the page as a Text Item for example, so just change it from a Text Item to a Select Item. Base the Static Item on a static list with one dummy item.

9) Once the poplist is created, invoke the editor for the primary poplist, and within the HTML Form Element Attributes option, specify a JavaScript onChange event as specified at Carl's site:

onchange="get_AJAX_SELECT_XML(this,'P37_SELECT_DROP_XML')"

You'll note the onchange code mentions P37_SELECT_DROP_XML. This in fact should be whatever you specified for your secondary Select Item's name.

....

That's all the steps you should need to do. If I've missed out any obvious steps let me know and I'll update the example for the benefit of others.

Thanks to Carl Backstrom for the original example. Note that Patrick Wolf has a more generic solution suitable to later Apex versions than 2.0 that could be better solution for your site.

Sunday 30 September 2007

An open invite to present in Perth Western Australia

I recently made the jump from the Victorian Australian Oracle User Group committee to the Western Australian AUSOUG committee, which presents a unique set of challenges in user group activities.

In Victoria as the local President I had presentations a plenty; it wasn't hard to drum up any number of great speakers to present to the local Victorian members, from Melbourne, interstate and overseas.

Western Australia and Perth is a different story. As some may know, Perth the capital of WA, is the most remote city in the world. It takes ~5 days to drive from Sydney to Perth, ~5 hours to fly, and just over 5 minutes for somebody from the East Coast of Australia to realise that people from Perth couldn't care less how far they are from everyone else ;)

One of the problems for the local Oracle user group though, is that it's darned hard to get non local talent to present in Perth. With a population of 1.5 million, there is only so many local presenters before you have to beg your grandmother to present again, and grandma likes Bill more than Larry. And in turn somehow a 5 hour flight isn't that attractive to people outside of Perth for a 45m presentation.

Another problem for the local group, and frustratingly so, is that plenty of Oracle talent visit Perth each month on business, who would make great presenters, but come and go before we get a chance to nab them for a 45m Oracle stand-up routine. Dag nab it!

So we'd like to make an open invite to anybody who knows they'll be in town or would like to visit, to drop us an email, and we'd love to slot you in to one of our monthly meetings. For the international speakers, don't forget that Perth is near the Margaret River wine region, has some of the best beaches in Australia, and makes a great tax-write-off for your next family holiday.

If you're interested I can be contacted at chrisdotmuiratsagecomputingdotcomdotau (replacing the "dot" and "at" with the appropriate symbols). We hope to hear from you soon.

Sunday 23 September 2007

If I had five Oracle wishes, they would be.....

After 4 days of recovering from a case of food poisoning, with little else to do but consider my naval, I thought I'd rehash Brian Duff's post idea sometime back with my own little spin.

If I had 5 little Oracle wishes I'd like to come true, they would be:

5. Fix the email .zip issue - I don't know how many times I've emailed an Oracle employee with an attached .zip file, and had to change the .zip extension to .zippy or something else silly, to get through their email firewall. And the Oracle employees have to do the same thing too.

4. Allow more OTN forum markups - The OTN Forums are based on Jive Forum software. The Jive Forums allow a considerable amount of markup to enhance your posts (like BBCodes), yet it appears Oracle has disabled most of these. The Jive markup would allow me to include a mugshot of my smiling face in every post.... or maybe a screen shot or 2 of problems I've encountered best expressed in a picture.

3. Regular Oracle XE updates - the Oracle core database gets regular updates, including essential security fixes. Why not Oracle Express Edition (XE)? Surely they're mostly the same code base, and a new build of Oracle XE is only a couple good Ant scripts away?

2. Free ADF - JDeveloper is free, or kinda. There's this nagging little caveat that the JDeveloper IDE is free, but the ADF libraries are only free if you happen to own an OAS license. In the world marketing it's a false positive. Yes JDeveloper is free so it competes with other Java IDEs. But you wouldn't bother with JDeveloper without ADF, so essentially it's not free, because you have to buy an OAS license or similar. Confused? See now the messed up marketing message? Maybe JDeveloper and ADF should have the same unrestricted license of Oracle Apex?

1. Open Metalink to the web .... or Google I guess - to solve an Oracle problem I first search with Google, then I search Metalink. While I suspect Oracle will always want to protect the Support revenue base in Metalink, it would be nice if it wasn't so. Imagine the pure joy when school children around the world could spend their lunch times productively reading 11g bug reports rather than surfing for pictures of the Smurfs.

So what would your 5 Oracle wishes be?

Thursday 13 September 2007

What features would you like to see in PL/SQL?

Every day I read posts that start "I was going to blog about X but Y beat me to it". It looks like it's my turn. I've been sitting on a post for improvements I'd like to see to PL/SQL, and it turns out Steven Feuerstein has set up a site to capture PL/SQL improvements we'd all like to see. Dag-nab-it!

Anyway, the gist of my original post follows, slightly rewritten to make it look like I didn't think of the idea first ;)

With the arrival of Oracle 11g we see a new set of features for PL/SQL. PL/SQL from my point of view has always been the ideal procedural language for the Oracle database, as many years ago I programmed with Ada which was the basis for PL/SQL syntax so I didn't have to learn a new language from scratch, I find the syntax very easy and clear to work with, and a breeze to teach (compared to Java for instance).

From experience, my positive outlook on PL/SQL is shared by a number of Oracle experts out there, with the main comment being "PL/SQL does what it needs to do." In other words it's a very mature language.

This doesn't mean that we shouldn't drive for further innovation in the PL/SQL language though, as there are many features in other languages that could make our PL/SQL programming experience more rewarding. If you look at the Java camp, committees upon committees, and blog entries upon blog entries are dedicated to improvements in the language for the next version. I can't say I've seen the same for PL/SQL, so Steve's initiative here is a good one.

So what improvements would you like to see in PL/SQL?

To start ball rolling, I'll suggest a couple and will post onto Steve's site:

1) I miss the ternary operator from other languages such as Java. The ternary operator takes the form:

(<boolean>) ? <return true expr> : <return false expr>;

So for a trivial example from Java:

boolean b = (1 < 2) ? true : false;

The ternary operator is really a short hand CASE or IF-ELSE-END IF statement. The power of the ternary operator is it supports expressions within each component, and expressions within expressions and so on. However the ternary operator is also responsible for some evil looking code because of this ability, so definitely it has its pros and cons.

2) To retrieve a sequence number in PL/SQL, you need to wrap this in an implicit SELECT-INTO statement or similar. What I really want to do is the following short-hand:

v_number := my_seq.nextval;

(and thanks to Justin Cave's response to my question on OTN, turns out this is available in 11g, as published in this AskTom article under the section "It's the little things". Neat!)

3) Assertions are a common feature in many languages beyond simple exception handling. They allow you to test a condition, and if it fails, stop the program. They are ideal for debugging programs because you can (for example) place the assertions at the beginning of each PL/SQL module to ensure incoming parameters are not null.

So what features would you like to see in PL/SQL? Why not head over to Steve Feuerstein's site and record your thoughts.

Saturday 8 September 2007

Drowning in Oracle blog aggregators

Have you ever wanted to merge all the separate Oracle RSS aggregators into one, and subscribe to the merged feed?

Lazytom's FeedJumbler provides such a service, where you can list a number of RSS feeds, and FeedJumbler will publish a single RSS/Atom which you may subscribe to instead.

This has been a godsend for myself, having nearly drowned in Oracle aggregator feeds more recently. The FeedJumbler site feed makes it very easy to see duplicate entries and only read what I need to.

Now, if I could only find another RSS service that eliminates duplicates from a feed, I'll have 100% perfection.

Tuesday 4 September 2007

SQL Developer Hotkeys

I've recently had some spare time to start writing training notes for a Oracle SQL Developer course here in Australia for my company SAGE Computing Services. While SQL Developer in its infancy contained few features compared to Quest's Toad, today as new revisions come along it's developing quite a varied set of features that are making it a tool of choice for many sites (not to mention it's free).

In writing the training material I've collated all SQL Developer's hotkeys into one document which I share with you here. You can of course determine these for yourself by visiting the Tools -> Preferences -> Accelerator menu options, but this collated document should save you the hassle of reading through all the different options.

Happy SQL Developer-ing!

Sunday 2 September 2007

AUSOUG Conference 2007 presentations accepted

For the local Aussie readers, I'm excited to announce my presentation has been accepted for the 2007 AUSOUG conference in Melbourne and Perth both in November.

In order to drum up an audience that doesn't just include my Mum, here's some details of my presentation. I hope to see you at the conference.

Take a load off! Load testing your Oracle Apex or JDeveloper web applications

"Geeeez, after demanding you unit test, system test, black box test, white box test, test-test-test everything, your manager is now demanding you load and stress test your brand spanking new Oracle web application. How on earth can you do this? .... and stop your manager from nagging?

This technical presentation will explain the concepts behind preparing for load and stress testing, the Http protocol's request/response model, and live demonstrations using Oracle's Http Analyzer and Apache's JMeter to stress test your Oracle web application.

The presentation is suitable for anybody, be it DBAs or developers, who are concerned about the performance of any web based application, possibly an Apex or JDeveloper or 3rd party web application. Knowledge of Apex or JDeveloper is not mandatory for this presentation and will not be covered in any depth. "

Wednesday 29 August 2007

JDeveloper documented "Recommendations"

I've been sitting on this post for a long time, 4 months in fact, as a back up post in case I'm too busy to write anything new. The next few weeks are such a time and it's about time I published this post before the imminent release of JDeveloper 11g Gold! (not that I know anything, but I'd be placing my bets on a November release date)

Oracle's JDeveloper team has to be commended for the large leap in the quality and breadth of documentation from the 10.1.2 to 10.1.3 releases, with the introduction of the ADF Developers' guides. In my opinion the effect of this has been noticeable on the JDev OTN forum where beginner questions have become thinner on the ground, possibly thanks to RTFM.

Of course now with so much documentation -- one such guide is over 1000 pages -- there is an awful lot to digest. Unfortunately within such a large set of documentation, Oracle's "JDeveloper Recommendations" and best practices can be lost or forgotten.

I recently took time out to search within Oracle's JDeveloper 10g provided documentation for any JDeveloper and ADF BC/Faces recommendations that they thought necessary to document. I provide a summary of the recommendations below to assist your JDeveloper experience, may it be a good one ;)

The mileage you experience from each recommendation may vary. Some are trivial, others encompass the whole development cycle.

Disclaimer: please note this is not a definitive list of recommendations, just my own summary. You should persist in regularly reading white papers, blogs and attending Oracle related conferences to keep up with the latest recommendations. If I've missed any of the recommendations you think crucial in the JDev documentation, let me know via a comment with appropriate links, and I'll update this blog. Also take time out to read the original quote in context of the actual JDev documentation by following the links.

Copyright disclaimer: the following quotes are all sourced from Oracle's own documentation and as such please respect their copyright if you source this page and acknowledge their efforts appropriately if you reference a section.

Final comment and appreciation: Thanks to Victoria Lira for her assistance in getting this post finally published.

JDeveloper recommendations
....(from the Oracle documentation set)

JDeveloper migration

Migrating Projects from Pre-Oracle9i Releases - Direct migration from pre-Oracle9i releases to Oracle JDeveloper 10g is not certified. We recommend that you first migrate to release 9.0.x (see the 9.0.x documentation), and then proceed from there.

Migrating System Settings to Oracle JDeveloper 10g - Select the settings and customizations you want to migrate. We recommend selecting all available options.

Projects

Working with Large Projects - It is strongly recommend to use ANT for such tasks as building and deploying.

ADF Business Components

Introducing Oracle ADF Business Components - In addition, if you are an Oracle Forms user, we recommend reading the following topic: About Oracle ADF Business Components: An Oracle Forms Developer's Perspective

Working with ADF Business Components in the Model Project - If you are comfortable with UML modelling, we recommend selecting Business Components Diagram, which provides a graphical interface for designing your business components. You can drag tables onto this diagram to create business domain components. For more information, see the Related Topics list.

ADF BC Application Modules

Accessing a Root - Level Application Module From an Entity Object - You can access a root-level application module directly from an entity object if the entity object is hosted by the application module. Generally speaking, this is not the recommend approach, as your entity object will only work with that particular application module. You might want to do this, for example, if you need to create rows of a view and insert new records in an entity object's doDML() method.

Creating a Package of Data Model Components - We recommend using packages to separate your data model components (view objects, view links, and application modules) from your business domain components (entity objects, associations, and domains). This allows you to reuse your business domain components with multiple sets of data model components. For more information, see the related topics list.

About Oracle ADF Business Components Packages - We recommend putting business domain components (entity objects and associations) in a separate package from data model components (view objects, view links, and application modules). This allows you to reuse your business domain components with multiple sets of data model components.

ADF BC View Objects

Understanding the Default View Link Consistency Setting and How to Change It
- Conversely, you could globally enable this feature by setting jbo.viewlink.consistent to the value true, but Oracle does not recommend doing this. Doing so would force view link consistency to be set on for view objects with secondary entity usages that are not marked as a reference which presently do not support the view link consistency feature well.

Efficiently Scrolling Through Large Result Sets Using Range Paging - As a general rule, for highest performance, Oracle recommends building your application in a way that avoids giving the end-user the opportunity to scroll through very large query results. To enforce this recommendation, call the getEstimatedRowCount() method on a view object to determine how many rows would be returned the user's query before actually executing the query and allowing the user to proceed. If the estimated row count is unreasonably large, your application can demand that the end-user provide additional search criteria.

Consider Whether Fetching One Row at a Time is Appropriate - Caution - Unless your query really fetches just one row, leaving the default fetch size of one (1) in the in Batches of field on the Tuning panel is a recipe for bad performance due to many unnecessary round trips between the application server and the database. Oracle strongly recommends considering the appropriate value for each view object's fetch size.

How a RowMatch Affects Rows Fetched from the Database - Oracle recommends using database-level filtering to retrieve the smallest-possible rowset first, and then using RowMatch as appropriate to subset that list in memory

Creating a Calculated Attribute at the View Object Level - Ensure View Row Class > Generate Java File and Generate Accessors are selected. We recommend selecting Ex pose Accessors to the Client as well.

Adding a View Link Instance with a New View Object Attribute - Based Definition at Runtime - Note: This is the most flexible, but the most complex, way to create view link instances dynamically. If you have a view link definition or association that might be appropriate, we recommend that you use another method. For more information, see the related topics list.

Using Parameterized WHERE Clauses - In the Where field, enter a WHERE clause using parameters. Do not include the word "WHERE". Unless you are running against a non-Oracle database, we suggest you use Oracle-style parameters: ORDER_TOTAL > :1 + :2

ADF BC Runtime Properties

Oracle ADF Business Components System Properties # 1 - jbo.locking.mode - Note: In the case of session-oriented programs, such as web applications, it is recommended that the Oracle ADF Business Components property jbo.locking.mode should be set to optimistic unless you also set the RELEASE_MODE property to Reserved. Pessimistic locking is not compatible with Stateful or Stateless modes because the database transaction is always rolled back to allow the connection to be reused by another user. This results in the lock being released and makes pessimistic locking unusable. If you want to use pessimistic locking, you must set RELEASE_MODE to Reserved.

* and *

jbo.maxpoolcookieage - The maximum age of the browser cookies used to help clients retrieve stateful application modules. If these cookies do not time out, the value is -1. It is recommended that the max cookie age is always set less than or equal to the session cookie age. It is set that way by default (both are -1). If you change the the max cookie age then you must also change the session cookie age to the same value.

ADF BC Java stack

oracle.jbo.server.EntityCacheOverRowSet jdoc - getRow - use instead findByKey() for larger datasets

Note this discussion is repeated in:

oracle.jbo.common.ws.WSObject
oracle.jbo.client.remote.ViewUsageImpl
oracle.jbo.RowIterator
oracle.adf.model.generic.DCRowSetIteratorImpl

oracle.jbo.CSMessageBundle - In general, we recommend using EXC_INVALID_PARAMETER instead of EXC_INVALID_PARAM_NO_EXPL_GIVEN.

ADF Faces

The ADF Faces Dialog Framework - Note that we've also set "partialSubmit" on the commandButton to "true"; we highly recommend using this option on buttons that launch dialogs, as it avoids an otherwise unnecessary flash of the main page as the dialog is launched.

Configuring ADF Faces for Performance - In adf-faces-config.xml.....

When configuring ADF Faces for deployment, it is most critical that debug options have been turned off. Specifically: < debug-output > should be removed or set to false. oracle.adf.view.faces.CHECK_FILE_MODIFICATION should be removed or set to false. oracle.adf.view.faces.DEBUG_JAVASCRIPT should be removed or set to false.

* and *

The < c:if > will show "You're in an English locale" if the locale's language is English. This means that in English, a user's version of the page will have an extra component over users who aren't using English; the state will vary accordingly. This sort of problem can cleanly be resolved by using "rendered" instead of < c:if > , which is always a recommended JSF best-practice:

ADF Faces Page Definitions

What You May Need to Know About Binding to Values in Other Pages - While Oracle does not recommend this approach, you can access the bound values in another page's binding container from the current page using the data binding variable in an EL expression. The data binding variable references the binding context itself, which provides access to all the binding containers that are available. Use this variable when you want to bind to an object in the binding container of another page. The data variable must be immediately followed by the name of a page definition file that defines the binding container being referenced. For example: #{data.mypagePageDef.BindingObject.propertyName}

*and*

You may find cases, where you need to use the data variable to bind to values across binding containers. However, Oracle recommends that instead you use a backing bean to store page values and make them available to other pages. For more information about storing values in backing beans, see Using a Managed Bean to Store Information.

ADF Faces Components

<af:subform>
+ oracle.adf.view.faces.component.core.CoreSubForm

We strongly recommend the use of a single < af:form > per page, and using < af:subform > where you might otherwise be tempted to use multiple forms. Multiple forms require multiple copies of page state, and user edits in forms that aren't submitted are always lost. When a page using subforms is submitted, page state is only written once, and all user edits are preserved

ADF Faces Support Platforms

About ADF Faces Supported Platforms - Tip: On a UNIX server box, button images may not render as expected. Assuming you're using JDK 1.4 or later, we strongly recommend using -Djava.awt.headless=true as a command-line option with UNIX boxes.

CVS

About CVS and JDeveloper - We strongly recommend that you read the CVS Manual ("Version Management with CVS" by Per Cederqvist et al), which is freely available from www.cvshome.org

Note. Even if you know how to use existing checked out modules with JDeveloper CVS version control, you should not do so. We strongly recommend that you instead perform fresh checkouts from within JDeveloper.

Configuring JDeveloper for CVS - If you wish to use an external CVS client, we recommend the following: CVSNT 2.0.58a for Windows platforms - http://www.cvsnt.org/archive cvshome's CVS 1.11.9 for other platforms

Sunday 26 August 2007

Yet another OOW Connect card

Well I haven't been to a conference before where you can actually meet and talk to delegates before you get there. Having worked on a number of conferences down-under the OOW Connect facility is impressive stuff.

Anyway, for reference, my OOW Connect card with charming mug-shot :)

Join Me at Oracle OpenWorld Connect!

Anybody interested in starting a JDeveloper OOW Connect group?

Tuesday 21 August 2007

4 things I read more recently (about Java)

This is a my usual regular post on links around the web I've been reading, this time posts specifically related to Java that may interest those in the Oracle Java and JDeveloper arenas:

  • Get to know Java EE 5 - the last few months has seen the publication of some good "new features" Java posts, including this one from Roland Barcia at IBM that specifically looks at JEE. Articles like these are good for those who don't have time to read the huge array of publications but would like to keep up to date in a concise form. Obviously being from IBM this article has a Websphere focus but looking further afield to see what others are doing can provide some valuable information.
  • Java EE 6 wishlist part 2 and part 3 - the wheel never stops turning and JSR 316 has been approved for the development of JEE 6.0 specification. Already the Hibernate Team have jumped forwards for suggestions on improvements and issues to be addressed from J2EE 5.0 and earlier. These discussions I find interesting because I find my learning of JEE is fairly boxed in by the Oracle world and others sources can provide useful insight into what needs to be improved in the technology I use -- either that or I just like reading stuff and not doing any work. I linked to part 1 in a previous post.
  • Why do people insist on doing EVERYTHING in Java? - I've encountered sites where I have to ask why are we using Java? -- where the only serious answer seems to be we're using Java because Java is Java. Huh? Anyway, Gregory Pierce has started a bit of a barney on why some sites insist on doing all development in Java. Your opinions may vary.....
  • JUGs Offer More Than Free Pizza - okay, Jason Lee's post here could equally apply to any technical user group including Oracle User Groups. Given my own background as an Oracle Ace Director which was greatly facilitated by my committee participation in the Australian Oracle User Group, Jason's words ring true here for me, Java User Group or not. Forget all that Web 2.0 social website belavar, head out to your local user group meeting and meet some real people.