Skip to main content

Appreciation for Those Who Give of Themselves (#ThanksOGB)


My #ThanksOGB post:

I've been working - and personally benefiting from - Oracle Database technology since 1987. I joined Oracle as a pre-sales consultant, which meant back then I was a techie sidekick for one or more Oracle salespeople. I moved on to various other roles and in 1992 left to become a consultant. Two years later, wrote a book on PL/SQL and have been obsessed with that language ever since. In 1999, I released the first version of utPLSQL - unit test for PLSQL, my version of JUnit. Worked for Quest for many years (bringing Quest Code Tester for Oracle to the market, among other things), and in 2014 rejoined Oracle, where I now lead a team of developer advocates (Blaine Carter, Chris Saxon, Connor McDonald, Dan McGhan).

It's been a great life - and I expect it to keep on being such for a while to come. Part of the point of my little historical review, though, is that I was always paid to provide resources to the community (some of them free, like utPLSQL and my many PL/SQL Scripts, some of them requiring a credit card, like my books and trainings).

But there are many people in our community who give of themselves, freely, who commit a remarkable amount of their "free time" to help others in the community. This help can take many forms: answering questions (with respect and politeness) on forums, offering outstanding technical resources on their websites, creating free plug-ins for tools like SQL Developer and Oracle Application Express.

So I thought I'd use Oracle Groundbreaker Appreciation Day to give a shout-out to some of these generous contributors. There are, of course, many more than you will read about in this post. Please do not take offense if you are not here. Please honor others you know about in the comments on this post. Please feel free to contact me directly (steven.feuerstein@oracle.com or via Twitter) to tell me about your projects. I'd love to keep adding to this blog post over time.

Tim Hall and ORACLE-BASE


ORACLE-BASE and Tim Hall likely need no introduction to anyone reading my blog. Tim's website is the de facto go-to resource on most things Oracle Database. He provides easy-to-consume articles on hundreds of topics, which not only explain things in a clear manner, but include scripts designed with the working professional in mind - easy to copy-paste, easy to run, easy to learn from.

Beyond Oracle Base, Tim has been a voice for the community to Oracle for years, and has maintained a level of clarity and integrity on a variety of challenging scenarios that have made us all better.

Thanks, Tim!

Philipp Salvisberg and His Many SQL Developer Plug-Ins

Philipp is a remarkably prolific contributor to the community. With his development and promotion of PinkDB (a pragmatic approach to secure, efficient leveraging of databases in application development), a blog that never ceases to educate deeply, and his long list of plug-ins for SQL Developer (see below), I wonder if his family even remembers what he looks like. :-)

Thanks, Philipp, for all you do!


The utPLSQL v3 Team


As I noted above, I released the first version of utPLSQL in 1999. I believe it was the first (semi)automated testing framework for PL/SQL, but many others have been added over the years. A few years ago, a group of "next generation" developers (younger than me, wiser than me, adept at more than PL/SQL) decided it was time to freshen up that aging framework.

The result if utPLSQL v3, a complete rewrite of the previous two versions, built around an object-oriented approach that is more consistent with other *Unit frameworks for other languages (such as JUnit for Java). They've been rapidly adding all sorts of powerful features, even came up with a logo, t-shirts and an absolutely irresistible enthusiasm for all things testing when it comes to PL/SQL and Oracle Database.

Many developers contribute to utPLSQL, but I would like to give a shout out and thanks to key players, including Jacek Gebal, Pavel Kaplya and Samuel Nitsche, aka, Sith Lord Tester Magnifique.

Juergen Schuster and apex.world

Juergen is a legend in the world of Oracle Application Express, not just because of his outsized personality and viewpoints. :-) Juergen is deeply committed to helping APEX developers and is the main brain behind apex.world, the #1 community resource for APEX developers (though Juergen will be the first to point out that many others contribute to building and maintaining the site itself). This site offers an active Slack channel, the best site on the planet to find APEX plug-ins, access to other community resources and more.

Thanks, Juergen, for your devotion to fellow-APEX users!


Daniel Hochleitner and APEX Plug-ins

If you are an active user of APEX and looking for ways to enhance your application with some really spiffy functionality, then you might go to apex.world and click on the Plug-ins tab. There you will find over 200 plug-ins, a fact that all by itself says a lot about the amazing user community that's grown up around Application Express.

Look closer and you will find that the #1 most exuberant and busy contributor of such plug-ins is a fellow named Daniel Hochleitner. Daniel's plug-ins, support in enhancing apex.world, and also his work on APEX Theme Styles make him a standout contributor in the APEX community (though I must confess, there are so many others!).

Many thanks, Daniel!

BluShadow on the SQL-PL/SQL Forum

Long before there was StackOverflow, there was the SQL-PLSQL Forum at the Oracle Technology Network (which has since gone through several re-brandings). In addition to AskTOM, this forum was one of the top places to go to get help from Oracle Database experts. It is still fulfilling that function today.

There are literally dozens of expert users (not Oracle employees) who devote an enormous amount of their time on this forum, and I salute them all!

I give a specific shout-out to BluShadow (who has "only" the 5th highest number of points on this forum!), because I have been so impressed not only by the endless patience and helpfulness of his responses to questions, but also by the documents he contributes to the forum's library, covering a wide variety of topics of interest to many database developers.

Thanks, BluShadow, for sticking by our users for so many years!

Morten Braten and the Alexandria Library

Morten has been around a while, and boy has he kept busy. He is perhaps best known for the Alexandria PL/SQL Utility Library, now on Github, which offers a wide variety of utilities such as integrating PL/SQL with Amazon, PayPal, Google, Twitter and other external services.

He also has built plug-ins for APEX, offers the Thoth Gateway, and perhaps nearest and dearest to my heart, published an excellent PL/SQL resource: PL/SQL, the Good Parts.

A big thanks to Morten, for all you've done to make PL/SQL a successful part of modern application development!

The StackOverflow Crew

mathguy was kind enough to point out that I'd left out an important part of our community who give back every day:
Think what you wish about StackOverflow, but there are a surprisingly large number of top expert Oracle contributors (not Oracle employees) who volunteer their time there. Some participate both there and on OTN (the SQL and PL/SQL community you mentioned), but many don't. My personal shout-out there would be for a user named Alex Poole; those who visit SO (the Oracle area) will easily recognize the name. But there are many more, and they deserve the same gratitude as the folks you mentioned. 
First of all, I think many fine thoughts about StackOverflow! It's clearly been a key resources for millions of developers around the world.

And I think even finer thoughts about the many excellent Oracle technologists who spend lots of time on SO providing top-notch answers to the many SQL, PL/SQL and Oracle Database questions posted there. Here are the 16 top all-time contributors for questions tagged "plsql".

OK But Now I Feel Bad

By highlighting the above over-the-top contributors, I am immediately reminded of all the people I am not recognizing for all their amazing work with the community. My apologies in advance! But please don't feel offended. You are all appreciated and recognized and thanked on a regular basis (at least I think you are).

Plus, I will be happy to add to this post over the coming months and years, so don't hesitate to contact me with a name, a site, a write-up of what makes that person so special to you, and they will be added to this list.

Clearly, Oracle Database wouldn't be the product it is today, the software that has helped billions of people live better lives, without the amazing team led by Andy Mendelsohn at Oracle HQ. 

But hey that's their (our) job. Even more amazing, more wonderful, more critical, more inspiring are the thousands of people around the world who give of themselves - their time, their hard-won expertise, their code - to help others be more successful.

So let it be known far and wide:

Comments

  1. Hi Steven,

    Thank you for your nice post. I was happy to see Tim Hall at the top of your list; you made my day.

    I felt, though, that your enumeration has one glaring hole in it. Think what you wish about StackOverflow, but there are a surprisingly large number of top expert Oracle contributors (not Oracle employees) who volunteer their time there. Some participate both there and on OTN (the SQL and PL/SQL community you mentioned), but many don't. My personal shout-out there would be for a user named Alex Poole; those who visit SO (the Oracle area) will easily recognize the name. But there are many more, and they deserve the same gratitude as the folks you mentioned.

    ReplyDelete

Post a Comment

Popular posts from this blog

Running out of PGA memory with MULTISET ops? Watch out for DISTINCT!

A PL/SQL team inside Oracle made excellent use of nested tables and MULTISET operators in SQL, blending data in tables with procedurally-generated datasets (nested tables).  All was going well when they hit the dreaded: ORA-04030: out of process memory when trying to allocate 2032 bytes  They asked for my help.  The error occurred on this SELECT: SELECT  *    FROM header_tab trx    WHERE (generated_ntab1 SUBMULTISET OF trx.column_ntab)       AND ((trx.column_ntab MULTISET             EXCEPT DISTINCT generated_ntab2) IS EMPTY) The problem is clearly related to the use of those nested tables. Now, there was clearly sufficient PGA for the nested tables themselves. So the problem was in executing the MULTISET-related functionality. We talked for a bit about dropping the use of nested tables and instead doing everything in SQL, to avoid the PGA error. That would, however require lots of wo...

How to Pick the Limit for BULK COLLECT

This question rolled into my In Box today: In the case of using the LIMIT clause of BULK COLLECT, how do we decide what value to use for the limit? First I give the quick answer, then I provide support for that answer Quick Answer Start with 100. That's the default (and only) setting for cursor FOR loop optimizations. It offers a sweet spot of improved performance over row-by-row and not-too-much PGA memory consumption. Test to see if that's fast enough (likely will be for many cases). If not, try higher values until you reach the performance level you need - and you are not consuming too much PGA memory.  Don't hard-code the limit value: make it a parameter to your subprogram or a constant in a package specification. Don't put anything in the collection you don't need. [from Giulio Dottorini] Remember: each session that runs this code will use that amount of memory. Background When you use BULK COLLECT, you retrieve more than row with each fetch, ...

PL/SQL 101: Three ways to get error message/stack in PL/SQL

The PL/SQL Challenge quiz for 10 September - 16 September 2016 explored the different ways you can obtain the error message / stack in PL/SQL. Note: an error stack is a sequence of multiple error messages that can occur when an exception is propagated and re-raised through several layers of nested blocks. The three ways are: SQLERRM - The original, traditional and (oddly enough) not currently recommended function to get the current error message. Not recommended because the next two options avoid a problem which you are unlikely  to run into: the error stack will be truncated at 512 bytes, and you might lose some error information. DBMS_UTILITY.FORMAT_ERROR_STACK - Returns the error message / stack, and will not truncate your string like SQLERRM will. UTL_CALL_STACK API - Added in Oracle Database 12c, the UTL_CALL_STACK package offers a comprehensive API into the execution call stack, the error stack and the error backtrace.  Note: check out this LiveSQL script if...