Friday, November 20, 2009

Black Holes: Courtesy of APEX

Well, not really.  But I just stumbled across a job posting from CERN that has Oracle APEX listed as one of its requirements.

If you're in the market for a job, and don't mind flirting with the end of existence as we know it, you may want to check it out. :)

Tuesday, November 03, 2009

Logger: A new PL/SQL Logging & Debugging Tool

I just found out from a client that Tyler Muth, ex-APEX developer and current Oracle SC, has just released a new utility aptly called "Logger".  Logger, well, does what you think it would: logs stuff.

What strikes me as innovative about Logger is not what's there, but what's not there: complexity.  It's just plain easy to use.  Easier than creating table t (col1 varchar2(4000)) and throwing insert statements all around your code.

You simply call it like this:  logger.log('something to log');  That's all you need to get it to work.

Sure, there are a number of great features as you peel back the covers, such as a configurable auto-deletion of logs parameter, timings, and of course, my favorite:  APEX item name & value logging.

You can download Logger here:  All you need is a free OTN account.

Thursday, October 22, 2009

APEX Certification On The Way

At Oracle Open World, I spoke with the APEX Development Team about a number of things, including a new pilot program to become APEX Certified.  The program is open to anyone with "at least 6 months of APEX development experience", according to Joel Kallman's post about it.

I think that this is a good step on Oracle's part, as it shows more and more commitment to APEX as a platform.  It also creates a career milestone that APEX developers can strive for that is similar to what is available with other technologies.

To sign up for the pilot, visit:

Monday, August 10, 2009

Presenting at GROUG in Richmond Wednesday, August 12th, 2009

I'll be presenting Many to One: Managing Multiple APEX Applications as One on Wednesday, August 12th, 2009 at 6:30 PM. The presentation is sponsored by the Greater Richmond Oracle Users Group (GROUG) and will be held at Markel, which is located in Glenn Allen, VA. There is no charge to attend!

Details, directions & registration for the event can be found on GROUG's web site here:

If you're in the Richmond area, I hope to see you Wednesday evening!

Friday, July 17, 2009

APEX 4.0 Presentation Now Available

Mike Hichwa & Company's APEX 4.0 Presentation from ODTUG was recorded and can now be viewed here.

Definitely worth the watch, even if you were there to see it live.

Tuesday, July 07, 2009

Blogging is Dead

Maybe I'm in the minority, but it seems that blogging has taken a sharp nose dive in terms of frequency. I monitor a bunch of Oracle-related and other blogs, and the traffic is definitely down. There were also few blog re-caps of ODTUG - which is in stark contrast to years past, where the coverage has been extensive. The few blogs that were updated were brief and light on real content.

So, the question must be asked: is blogging a thing of the past?

First of all, maintaining a blog is not easy. You have to select a topic that you want to blog about, hoping that it is of interest to not just you but your readers. Then, you may have to do some research on that topic, maybe create an example if its a technical blog, and then find the time to actually compose your thoughts. Sounds too much like school to me!

Using Twitter is easy. Many of the people that I follow "re-tweet" other people's Tweets that they find interesting. To translate for the non-Tweeters out there - you just re-send someone else's post. That's it. You can do it in literally seconds.

Some of the people that I follow do share some original interesting thoughts or ideas. Some are guises for corporate marketing. Others share trivial day-to-day events that won't change my life in the least. While others are, well, just uninteresting. It definitely takes some time sifting through the noise that Twitter can generate. There's a lot of "popular" Tweeters that flood the Internet with largely boring or useless information. There's also quite a few that are useful and interesting. It's like anything else - some are good, some, not so much.

I think that many bloggers started a blog because they felt that they had to. They never enjoyed writing, and had little interest in it before blogging became popular. But feeling left out, they created a Blogger account, posted their "Hey, this is my first post, I have so many things to blog about" post, and probably never signed in again.

We're not all cut out to be writers. Or painters. Or musicians. And that's just fine. Writing is a talent that few people have. This is why major news outlets don't employ everyone, but only a select few. Those few produce content, we read it. It's that simple. Blogging opened things up for anyone, but really just exposed just how many bad writers are out there.

Despite this, we can and have been consumers of information that other people author for some time. For example: If you read a good article on say, Internet Security, you may e-mail a group of friends and share the link to the article. Typically, you'll preface the link with a sentence or two, highlighting your favorite part of the article.

Twitter is just that; a new way for non-authors to share content with other non-authors and authors alike, and potentially comment on it. Its just that simple.

It's not a new medium, but rather a new distribution channel. It allows us to share information or content with others that we share interests with. You can easily click on a link, see the title of a document, and determine if you want to read more based on the topic, author, or a combination thereof. You only read what you want to read. At most, you're investing the time it takes to read 140 characters or less and clicking a single link. Even that may be a lot for our attention spans these days...

Is Twitter a fad that will be gone in a couple of years? Probably. But maybe not. I think that Twitter will represent the foundation of a new content delivery mechanism that the Internet and Internet-enabled devices adapt to. It's like any other version 1.0 technology - we're only seeing parts of it working, as the other parts have not been defined yet, despite the hype. It's clearly caught the attention of the global community, and will definitely be interesting to see how it shapes up over the next few years.

FYI: You can follow me on Twitter: @sspendol

Wednesday, June 17, 2009

This Revolution will be Digital

It's truly amazing what is going on in Iran. In the span of a little less than a week, our public perception of the Iranians has done one huge 180. No longer do we think that they all hunkered down in some mosque planning the next attack on America or hacking into our computers trying to steal nuclear secrets of burning American flags and effigies of our leaders.

All of a sudden, they look very different to us. We can relate to them better today that we could last week. They are simply standing up for themselves, trying to point out to the world that, "Hey, we're not all bad people - there's just a few at the top that are making things, well, difficult for us."

And during this crisis, a seemingly unlikely ally has rushed to their side - the global digital community. Since their government has imposed a virtual media and Internet blackout, the only way to get news out is via the Internet, specifically social networking sites such as Facebook and Twitter.

What was truly amazing to me is how Twitter changed the timing on a major upgrade to occur at 1:30AM Iranian time - smack in the middle of our business day - so that they would get a minimal disruption of service. That statement alone sums up the efforts of thousands of others who have stepped up by providing anonymous proxy servers, virtual machine images and the like to the Iranian bloggers, so that they can get their message out past the government censors.

No one can predict what will happen next, but I think that we are all seeing how powerful a community organized with new social networking technologies can truly become.

Monday, June 15, 2009

OfficeDepot Recycles Ink Cartridges and Gives you $3 each!

If you purchase a fair amount of office supplies, then make sure that you sign up for the Worklife Rewards program at Office Depot.  You get a quarterly gift card based on the amount that you spend, among other benefits - one of which I just found out about this weekend:  If you bring back a spent ink cartridge, you will get a $3 bonus reward added to your account.  Details are here:

Not only is it good for the environment - especially since HP stopped putting the free recycle envelopes in their packaging in favor of their useless promotions - but it can put some cash back in your pocket, which you'll likely just spend on more ink anyways...

Lots of New Stuff

The last few weeks have been quite hectic indeed!

In addition to my day job, I've been busy working with Doug Gault - Sumner's newest member - in re-structuring a number of our services and training classes.  I'm also happy to announce a couple of new products that we will be launching soon.

SumnerPrint is a PL/SQL-based solution that allows you to easily print APEX reports to PDF, HTML and XLS.  Built on top of PL/PDF, SumnerPrint easily integrates into any APEX application and allows your end users to print high fidelity reports with the click of the mouse.  Since it's built on PL/PDF, there is no middle tier to configure or extra servers to purchase.  You can be up and running with it in just a few minutes!

SumnerFramework is a set of APEX applications and tables that allow you to manage who has access to which APEX application.  It also provides a single point of management, so that you can centralize your role management for easier access and better reporting.

You'll be able to see demonstrations of both of these offerings at ODTUG next week.  If you can't make it, drop us a note and we can arrange for a private demonstration.

We've also launched a new corporate blog here:

While I will still occasionally still update this one, most of the APEX-related content will be posted on the new blog.  So be sure to bookmark both of them!

Tuesday, May 26, 2009

Last Chance for ODTUG Early Bird Registration

Notice: June 2nd is the last day that you'll save $200 on the ODTUG Kaleidoscope 2009 registration.

With over 50 APEX presentations and 2 full APEX tracks this year, there has never been a single conference that has encompassed so much APEX content! And since ODTUG is a fraction of the size of other conferences, you always get the opportunity to meet with the presenters later on to ask follow up questions or just to comment on their presentations. This is probably one of the largest benefits that ODTUG offers over other conferences, in my opinion.

So if you're already signed up, I'll see you there. If you're still considering, make sure to book your trip before June 2nd to save an additional $200!

Monday, May 11, 2009

"Every Day" Applications

Lots of good insight in this short article:

It's interesting that across the world, the number of sites that we use on a daily basis is relatively small and consistent. I can attest to this, as I fit pretty much in the 7-8 range.

Quite often when designing a site for use on the public Internet, we obsess over all of the little details that take up the majority of the development cycle. This evidence suggests that we should do otherwise.

Think about the relationships we have with brick & mortar stores - we probably also have just a few that we frequent on a regular basis - grocery store, gas station, dry cleaners, bank, etc. All of these stores are designed with efficiency in mind. They want you - the customer - to get in, get what you need, and then get out as quickly as possible: grocery stores now have self checkouts; banks have drive-throughs and ATMs; gas stations let you pay at the pump, and so on.

Stores that we only visit on a monthly or less frequent basis have a different and more complex challenge - actually getting us to go there and then keeping us coming back. Their marketing challenge is far greater than that of the grocery store, as they know that they are not a commodity site, and we - the customer - have more of a choice. These types of stores include furniture stores, car dealers, specialty stores, and so on.

The experience with one of these stores typically includes some sort of interaction with their sales staff. They don't focus on efficiency as much, as they prefer a more guided sale, which often includes attempts at up-selling us to a more expensive product or option.

Thus, when we're building a site that is not classified as an "every day" site, - which may be more frequently than we had originally thought - we should take care to do the same. Focus on ease of use and simplicity. Add in as much guidance and make it easy to contact someone, should the user deem that necessary. We have to assume that the visitors of our site are not frequent visitors, and we only have a few seconds to entice them to become a customer. Thus, the entire experience should cater to this fact.

One final point - I totally agree with one of the comments regarding Linked In. I have also signed up, connected to most of the people that I know, and have the same "now what" feeling. Please let me know if I'm missing something!

Wednesday, April 29, 2009

Returning a Value from a Popup Page

I just ran into a situation where I needed to pass back a value from a pop-up page to a tabular form item in the calling page. While I've done this in the past ny manually writing all of the JavaScript, I thought that I'd take a look at the new documented APEX JavaScript APIs.

I came across this function in the APEX 3.2 API Reference Guide (Part #E13369-01):

$v_PopupReturn(pValue, pThat)
Sets the value of the item in the parent window (pThat), with (pValue) and then
closes the popup window.
Return Value
Not applicable.
pValue (string)
pThat (DOM node | string ID)

Looks perfect!  In addition to passing the value back, it will also close the pop-up page, even though that is not documented.

On the pop-up page, I created a link with an Optional Redirect to URL, and put the following in the link:

javascript:$v_PopupReturn(#EMPNO#, '&P3_NODE.')

P3_NODE is the DOM ID of the tabular form item that I wanted to return the value to.  You'll need to make sure that it's formatted properly for this to work.  Thus, I am passing in a "1", but returning "f03_0001".  A simple computation can do the trick.

Since we're using a built-in tabular form, we need to put the calling JavaScript in the Element Attributes of the item that we want the popup form to set.  I used this:

onclick="popUp2('f?p=' + $v('pFlowId') + ':3:' 
+ $v('pInstance') + '::::P3_NODE:#ROWNUM#',250,600);" readonly

This will pop open a new window, based on page 3 of my application.  It will also grab the Application ID and Session ID from the DOM and use those in the link, so that we preserve our session state.  Finally, it will pass along the corresponding ROWNUM of the item that we clicked on to the item P3_NODE - where I will make the proper transformation with the computation on Page 3.  Lastly, the readonly option prevents users from making direct changes to the item.

Point taken from this - have a look at the APEX API guide before you embark on writing your own code.  There are a number of helpful functions there than can save a lot of time and hassle.

Tuesday, April 21, 2009

APEX on Mac OS X - Update II

After two days of consistent use, APEX on OS X has performed flawlessly! And it's fast - REALLY fast! Sure, there's no network there to slow things down, but when using Safari 4, it's just as fast as static pages!

Now that Oracle runs natively on OS X, I can stop relying on VMs for that service, and use SQL Developer, Firefox and other Mac tools for 100% of my development.

I just hope that the folks at Oracle make this a supported configuration at some point so that we don't have to keep running in an unsupported fashion.

Thursday, April 16, 2009

APEX on Mac OS X - Update

It seems as if the Embedded PL/SQL Gateway is a part of Oracle 10g for Mac OS X after all. Thus, if there's an EPG, then there's a way to get APEX up and running.

Alex Gorbachev has posted a step-by-step guide on how to do just this here. And if you missed his Installation Guide for Oracle 10g on Mac OS X, you can find that here.

As he stated, the workaround is not a very secure thing to do; however, if you're just using it for local development, there should be no major issues. You have been warned.

In any case, I did have an issue with the code that he had posted to disable the security on XDB. After some searching around, I used the following instead:

configxml SYS.XMLType;
configxml2 SYS.XMLType;
-- Get the current configuration
configxml := DBMS_XDB.cfg_get();

-- Modify the configuration

-- Update the configuration to use the modified version
A couple other notes: you'll have to also copy the images over to the database via XDB. You can map this drive via Mac OS X and then just copy the images over via the finder.

To do this:

1) From the Go menu in the Finder, select Connect to Server...
2) For the Server Address, enter: http://localhost:8080 and click Connect.
3) When prompted, enter XDB for the user and the corresponding password.

At this point, you should see the localhost volume on your desktop. Simply create a top-level directory called i and then copy the APEX images folder into that directory, and you should be good to go with APEX on Mac OS X!

Wednesday, April 15, 2009

New APEX "video"

The Oracle APEX team has released a new video that really does a good job covering how you can position APEX.  It's more of an animation than a video, but the visuals really do a nice job complementing the concepts that they are trying to get across.

Have a look at it on the APEX OTN Site.

Monday, April 13, 2009


No, this is not another rant about just anyone who doesn't know how to read manuals.  It's about me.  And I don't know how to read manuals.

After downloading Oracle 10g for Mac OS X, I spent some time getting it installed.  After a false start (where I created the dba group with GUID 201 - the same as the Guest account on Mac OS X), I managed to get it up and running.  There's an excellent guide here, which walks you through just what you need to do and little more:

Once I could SQL*Plus into the database, I downloaded the Companion CD, and started to install that, thinking that the Oracle HTTP Server would be a part of it.  Well, much to my disappointment, it was nowhere to be found.  After some digging on the OTN Apple Forum, I came across this post:

The important line in that post points here:

And if you look at Section 2 - Unsupported Products, you'll notice that Oracle APEX & Oracle HTTP Server are definitely not alone.  In fact, here's the complete list:
  • Oracle Real Application Clusters (Oracle RAC)
  • Oracle Clusterware
  • Automatic Storage Management (ASM)
  • Network File System (NFS)
  • Network-attached Storage (NAS)
  • Raw devices
  • Oracle Application Express (formerly known as Oracle HTML DB)
  • Oracle HTTP Server
  • Oracle Workflow
  • Oracle Enterprise Manager Database Control
  • Oracle Management Agent
  • Pro*Fortran
  • Pro*COBOL
  • iSQL*Plus
  • Oracle Ultra Search
Thus, all was for almost nothing, as a database is just not a database, unless it has APEX in it.  I suppose I'll just wait it out, hoping that at least APEX & the HTTP Server make their way into the next release, which doesn't take as long as the first!

Friday, April 10, 2009

Oracle on Mac OS X Intel!

After many false starts, it looks like Oracle has finally released the Oracle Database 10g & the Companion CD for Mac OS X Intel!  Sure, it's not Oracle 11g, but I'll take what I can get...

Of course, I am going to get APEX up and running on it as soon as I can, and will report my findings. 

You can download it from OTN here:

Friday, April 03, 2009

Want $200?

No, I'm not writing stimulus checks, nor did I win the lottery. However, if you're going to ODTUG Kaleidoscope this year, you can save a quick $200 by registering before April 7th!

There's going to be two separate APEX tracks this year, in addition to the Sunday Symposium. There's just no other place that you can go to get this much APEX information for even close to the same price!

Have a look at the agenda and hope to see you in Monterey!

Friday, February 27, 2009

Oracle APEX 3.2 Released

Oracle has announced the general availability of Oracle APEX 3.2.  In addition, they have re-vamped the APEX home page ( with a cleaner look than the previous version.

There seems to be a number of security features in addition to the Forms Conversion features that have been discussed for some time.