Wednesday, May 23, 2012

Join me at ODTUG's Kscope12 in June

From June 24 through the 28th, hundreds of Oracle technologists will gather in San Antonio, Texas, for the ODTUG Kscope12 conference. As ODTUG says and I agree completely, "ODTUG Kscope12 is the place to be for the Oracle technical community in 2012. If you are a developer, architect, technical lead, or database administrator who works with Application Express, Business Intelligence, Oracle EPM; including Hyperion products, Essbase, Planning; Database Development or Fusion Middleware, Kscope12 is where you should be. It’s hard to find a conference that’s big enough to attract world renowned speakers and small enough to get the chance to share knowledge. Kscope12 is that conference."

Oracle Open World is an amazing experience, but it is also very, very large and, of course, an official Oracle event. ODTUG offers a refreshing alternative: about 1/40th the number of people, and just about all of them technologists. A strong mix of work and play and good deeds, ranging from the community service day on Saturday 23 June (sprucing up the Boys and Girls Club of San Antonio) to Sunday symposiums, the Wednesday party blast, countless presentations from many of the best DBAs, PL/SQL coders and APEX developers, and so much more.

I'll be presenting four times this year:

Clean Up Your APEX PL/SQL Code
Writing Maintainable PL/SQL Code
Error Management Features of Oracle PL/SQL
High Performance PL/SQL
Hope to see you there!

High Performance PL/SQL + 11g New Features Training in Colorado

11-12 June  2012 will find me in Broomfield, Colorado, training PL/SQL developers and Oracle DBAs.

This two-day training, sponsored by RMOUG, covers the most critical features you need to know about if you are going to write PL/SQL programs that fully utilize the capabilities of PL/SQL, including the most important enhancements of Oracle Database 11g for PL/SQL developers.

Detailed Description of Topics to be Covered
  1. Bulk Processing with BULK COLLECT and FORALL: the most important performance optimization feature of PL/SQL, bulk processing turbo-charges the speed of repeated execution of the same SQL statement (think: DML inside a loop) by reducing the number of context switches. We'll explore every nook and cranny of BULK COLLECT and FORALL.
  2. The Function Result Cache (11g): a fantastically elegant and high-impact feature, the function result cache provides an SGA-based cache that helps you optimize the performance of queries
    across an entire instance that repeatedly retrieve the same rows of data.
  3. Row-Level Error Suppression in DML: added in Oracle Database 10g Release 2, the LOG ERRORS clause (along with the built-in package, DBMS_ERRLOG) offers row-level suppression of errors in DML statements, especially helpful when modifying large numbers of rows.
  4. PL/Scope (11g): new to Oracle Database 11g, PL/Scope analyzes the way that all identifiers (variables, constants, subprograms, exceptions, types, etc.) are used in your code. It allows us to perform analysis on our code in a way never before possible. For example, you can implement your own scripts to check code for compliance with naming conventions - no parser required!
  5. The NOCOPY Hint: so simple, and yet so impactful. Add one keyword to your IN OUT parameter definition and get a significant boost in performance. Along the way, learn about the
    difference between formal parameters and actual argument values, passing by reference vs. value.
  6. Dynamic SQL Advanced Features: Oracle Database 11g includes many enhancements for dynamic SQL, especially for Method 4 dynamic SQL.
  7. Advanced Collection Features: the year is 2012 and all PL/SQL developers should be aware of and use collections (PL/SQL's version of arrays). So we'll skip the basics and concentrate on advanced features like use of the TABLE operator, string-indexed associative arrays, and nested collections.
For more information and to register, click here.

Thursday, May 17, 2012

Schema-level Procedure or Package with one Procedure?

I received this question from a PL/SQL developer:

Dear Steven,
I'm an Italian Pl/Sql developer who often follows your precious advices.As you always say, it's useful to modularize your business logic through procedures and functions inside a package, and I always do that way.
My question is this. If I have to write a main module X (procedure or function) which calls further N modules (procedures or functions), how do I have to choose between to develop it by a package or by a procedure? I mean, is it better to write a package with the only X procedure in the specification and the other N modules inside the body or to write directly a procedure X with a main code and the other N modules defined inside it? I've thought that I should ask to myself whether I want to hide the N modules (package) or not, but I'd like to get your opinion.
Thanks in advance!
And my reply:
I suggest you never define a schema-level procedure or function (outside a package). Instead, always start with a package for a very simple reason: everything gets more complicated over time. Users request new features or changes to existing features, developers realize that they need to do more or do it differently, etc.
So there is a very great likelihood that in time you will find that you need to build another procedure or function that is related to the first. Even if they don't share code, they share the same "domain" within your application. And that is one of the best reasons for creating packages: to group together related functionality.

If you don't use a function, you may find yourself defining prefixes for those related schema-level program units, so that you can see by name that they are related.

Bad idea. Better to put those schema-level procedures and functions in a package - but now you have to go back to all the places they are called and add the "package dot" to each invocation (or create a synonym to "redirect" into the package). 

Bad use of time.

Instead, therefore, I suggest that you start with a package, even if the specification contains just a single subprogram.

Monday, May 14, 2012

If I Were Governor of California (or Illinois or....)

Governor Brown today announced the need for an additional $8B in cuts to state spending, on top of some $15B of cuts over the last three years. These cuts will slash funding for education, health care for children, welfare programs, etc.

And California is not alone. Many states face drastic shortfalls in their budgets, massive underfunding of pensions, and so on.

And it's just going to keep on getting worse.

So what's a governor to do? It seems to me that in a sane, rational, compassionate society, one in which we recognize the importance - above everything else - of ensuring all our children are healthy, are fed, are educated, are thriving, the first thing we do is identify those who have extracted millions, probably billions of tax dollars, and siphoned them off to their pockets.

If I were governor....I would have my staff analyze who in my state has been getting rich off of the state budget. Sure, lots of the money, maybe most of it, goes to directly paying for services to the poor. But I am beyond certain that there is a cadre of well connected businesspeople who have bribed and cajoled and "contributed" their way to legislators' hearts and pocketbooks over the years. 

I would identify these people and with maximum transparency possible publish the flow of state funds to their commercial enterprises, and sum up the total amount that these very wealthy people have taken out of the system - in effect, taken from the mouths, stomachs, bodies and minds of our most vulnerable.

I would then call on all of these people and their companies to renegotiate any contracts with the state to cut profits to a bare minimum - not lose money, but not make tons of money off of the public either. If they don't like the terms, I am sure we could find others who will do it.

And I would encourage citizens of my state to bring pressure to bear. In effect, these people need to be shamed (they should feel ashamed, but I doubt they do) into doing the right thing.

The money reclaimed from this effort would almost certainly not take care of the deficits. Women, children, the working poor, many of those in the middle class right on the edge, will still pay with their very health and quality of life. But at least they wouldn't be doing that while the fat cats continued to meet in their country clubs, whine about "welfare queens" and then use their illicit gains from public works contracts to fund their own extravagant life styles.

Friday, May 11, 2012

It's Yes Time!

Finally after many years of being complicit in the poisoning of our own bodies, many people are coming to realize that lots of the food products (as opposed to food) that we buy in supermarkets are bad for us, make us sick. Thanks, Michael Pollan and others for your impact!

This shift in public opinion is revealed in changes in advertising by the companies who sell industrialized, factory-produced edibles. 

I was watching the Daily Show last night and was greatly amused by Kraft Food's "It's Yes Time!" campaign.

The ad was all about how a Mom keeps saying No, No, No to all the idiotic things her husband tries to do. But then she is fixing a dinner of hot dogs and this is a Yes! meal because the hot dogs are "Oscar Mayer Selects" that feature "specially selected cuts of meat that have no artificial preservatives. Better yet, Selects has no artificial flavors or colors—even more reason to say yes."

This is good news, no doubt about it. Almost as good as not selling that crap "meat" anymore at all.

But what I find hilarious about these ads, along with a new series of ads from the American Beverage Association ("America's beverage companies are making it easier to choose the beverage that's right for you - with more choices, smaller portions, fewer calories and clear calorie labels."), is that these companies are all implicitly dumping on the rest of their products, and admitting that they are not good for you.

And in the case of Kraft, the almost explicit message is "Don't buy our regular hotdogs. They are a no-no and bad for you."

Ah, the joys and absurdities of marketing!

Saturday, May 05, 2012


My older son, Chris Silva, is an artist in many media: mural, painting, mosaic, music, video.

He is included in a massive and quite beautiful book titled "Raw+Material=Art".

If you're looking for a relatively inexpensive, high production value "coffee table book" that will delight your visitors and yourself, or if you are Chris Silva fan and must acquire everything that has anything of his in it, check it out!

Here are some links to information about the book:

And of course you can order it on Amazon.

Chris also recently put together a mixed-media exhibition that is amazing. You can watch a video of it here (the MORE OR LESS - FULL entry on the blog) It's not the greatest resolution; hopefully there will be something better soon.

Thursday, May 03, 2012

Loey and her Dad: Stars at 1871 Grand Opening

Chris won a commission to create a mural, in collaboration with his friend Dan Ezra Lang, at 1871, a new "incubator" for startups here in Chicago ( Very high profile initiative and big feather in Chris's cap to have gotten the commission.


1871 threw a big grand opening celebration last night and Chris put us on the guest list to attend.

Loey was easily the most beautiful and amazing baby at the party. Also, so far we could tell, the only baby or child there altogether. Mostly it was crammed full of a bunch of potential investors in suits and software coders in t-shirts with the names of their websites prominently displayed.

You can see both Chris's mural and many pictures of lovely Loey here. But here are some highlights:

Lovely Pink Loey

The mural (or most of it)

A close up:

Loey sitting on couch excited about the thing-in-her-hands-she-can-chew-on:

And then she realizes her mom is not within two feet of her: