20 January 2015

Participants and Dates set for (four!) 2014 Annual Championships

2014 is a thing of the past, but there are at least four more 2014-related activities to do: the annual championships.

With the expanding selection of weekly quizzes come an expanded set of annual championships.

This year we have four, and here are the dates and times:
  • SQL Championship - Tuesday, February 17, 14:00 UTC
  • Database Design Championship - Thursday, February 19, 14:00 UTC
  • Logic Championship - Tuesday, February 24, 14:00 UTC
  • PL/SQL Championship - Thursday, February 26, 14:00 UTC
Once again, my apologies to those of you who must participate at an awkward and dark hour.

And now for the lists of participants....

SQL Championship - Tuesday, February 17, 10:00 UTC

The following players will be invited to participate in the 2014 championship. The number in parentheses after their names are the number of championships in which they have already participated. See the FAQ for an explanation of the three ways a player can qualify for the championship. And congratulations to all listed below on their accomplishment and best of luck in the upcoming competition!

Name Rank Qualification Country
Stelios Vlasopoulos (1)1Top 50Belgium
Rakesh Dadhich (1)2Top 50India
mentzel.iudith (1)3Top 50Israel
swart260 (1)4Top 50Netherlands
Naresh Kumar (1)5Top 50India
james su (1)6Top 50Canada
Rytis Budreika (1)7Top 50Lithuania
_tiki_4_ (1)8Top 50Germany
Ivan Blanarik (1)9Top 50Slovakia
Niels Hecker (1)10Top 50Germany
Oleksiy Varchyn (0)11Top 50Norway
Justin Cave (1)12Top 50United States
Milibor Jovanovic (1)13Top 50Serbia
Chase Mei (1)14Top 50Canada
Viacheslav Stepanov (1)15Top 50Russia
Henry Abeska (0)16Top 50Czech Republic
Scott Wesley (1)17Top 50Australia
Sean Molloy (1)18Top 50United States
Andrey Zaytsev (0)19Top 50Russia
Krzysztof Helbin (1)20Top 50Poland
Hertha Rettinger (1)21Top 50Germany
Maxim Borunov (0)22Top 50Russia
Sachi (1)23Top 50United States
dmitrysk (1)24Top 50Russia
yonderboi (0)25Top 50Russia
Leszek Grudzień (1)26Top 50Poland
Dipendra Thapa (0)27Top 50India
Arūnas Antanaitis (0)28Top 50Lithuania
Ravshan Abbasov (0)29Top 50Uzbekistan
Sameer Chaudhari (0)30Top 50India
Pavel Zeman (0)31Top 50Czech Republic
Pavel Vorontsov (1)32Top 50Russia
Pavel Noga (0)33Top 50Czech Republic
tonyC (0)34Top 50United Kingdom
Anna Onishchuk (1)35Top 50Ireland
Jerry Bull (1)36Top 50United States
fsqatech (0)37Top 50United Kingdom
Sandra99 (0)38Top 50Italy
Kuvardin Evgeniy (1)39Top 50Russia
gaurav kowale (0)40Top 50India
Jason H (1)41Top 50United States
Christoph Hillinger (1)42Top 50Austria
gobruins (0)43Top 50United States
Livio Curzola (0)44Top 50Luxembourg
Chad Lee (1)45Top 50United States
Eric Levin (1)46Top 50United States
Michal Cvan (1)47Top 50Slovakia
NarendraReddy (0)48Top 50India
Tobias Stark (1)49Top 50Germany
VictorD (0)50Top 50Russia
Yuan Tschang (1)69CorrectnessUnited States
Mehrab (0)77CorrectnessUnited Kingdom
AndreyBerliner (0)89CorrectnessUkraine

Database Design Championship - Thursday, February 19, 10:00 UTC

The following players will be invited to participate in the 2014 championship.The number in parentheses after their names are the number of championships in which they have already participated - they are all zero because this is the very first championship for this quiz!

See the FAQ for an explanation of the three ways a player can qualify for the championship. And congratulations to all listed below on their accomplishment and best of luck in the upcoming competition!

Name Rank Qualification Country
mentzel.iudith (0)1Top 50Israel
Siim Kask (0)2Top 50Estonia
Justin Cave (0)3Top 50United States
Elic (0)4Top 50Belarus
Stelios Vlasopoulos (0)5Top 50Belgium
Niels Hecker (0)6Top 50Germany
Joaquin Gonzalez (0)7Top 50Spain
Milibor Jovanovic (0)8Top 50Serbia
Krzysztof Helbin (0)9Top 50Poland
yonderboi (0)10Top 50Russia
Chad Lee (0)11Top 50United States
Sean Molloy (0)12Top 50United States
Sandra99 (0)13Top 50Italy
Sherry (0)14Top 50Czech Republic
Pavel Noga (0)15Top 50Czech Republic
Ivan Blanarik (0)16Top 50Slovakia
Manfred Kleander (0)17Top 50Austria
Rytis Budreika (0)18Top 50Lithuania
Jan van Overveld (0)19Top 50Netherlands
Maxim Borunov (0)20Top 50Russia
Leszek Grudzień (0)21Top 50Poland
Tobias Stark (0)22Top 50Germany
Scott Wesley (0)23Top 50Australia
Pavel Zeman (0)24Top 50Czech Republic
Viacheslav Stepanov (0)25Top 50Russia
Christoph Hillinger (0)26Top 50Austria
Marcus Matzberger (0)27Top 50Germany
Jerry Bull (0)28Top 50United States
VictorD (0)29Top 50Russia
MarkM. (0)30Top 50Germany
Pavel Vorontsov (0)31Top 50Russia
João Barreto (0)32Top 50Portugal
_tiki_4_ (0)33Top 50Germany
Anna Onishchuk (0)34Top 50Ireland
dannyg64 (0)35Top 50United States
Andrey Zaytsev (0)36Top 50Russia
danad (0)37Top 50Czech Republic
EdgarsP (0)38Top 50Latvia
Ravshan Abbasov (0)39Top 50Uzbekistan
Sachi (0)40Top 50United States
Eric Levin (0)41Top 50United States
Oleksiy Varchyn (0)42Top 50Norway
JasonC (0)43Top 50United Kingdom
Chase Mei (0)44Top 50Canada
Henry Abeska (0)45Top 50Czech Republic
Naresh Kumar (0)46Top 50India
Kuvardin Evgeniy (0)47Top 50Russia
PZOL (0)48Top 50Hungary
Michal P. (0)49Top 50Poland
Michal Cvan (0)50Top 50Slovakia
Mehrab (0)51CorrectnessUnited Kingdom
Dan Kiser (0)106CorrectnessUnited States

Logic Championship - Tuesday, February 24, 10:00 UTC

The following players will be invited to participate in the 2014 championship. The number in parentheses after their names are the number of championships in which they have already participated. See the FAQ for an explanation of the three ways a player can qualify for the championship. And congratulations to all listed below on their accomplishment and best of luck in the upcoming competition!

Name Rank Qualification Country
Jerry Bull (1)1Top 50United States
mentzel.iudith (1)2Top 50Israel
Köteles Zsolt (0)3Top 50Hungary
Stelios Vlasopoulos (1)4Top 50Belgium
Chad Lee (1)5Top 50United States
Viacheslav Stepanov (1)6Top 50Russia
AndreyBerliner (0)7Top 50Ukraine
Milibor Jovanovic (1)8Top 50Serbia
Niels Hecker (1)9Top 50Germany
Elic (1)10Top 50Belarus
Kanellos (1)11Top 50Greece
Naresh Kumar (1)12Top 50India
Peter Chenery (1)13Top 50United Kingdom
Rich Dellheim (1)14Top 50United States
Sandra99 (1)15Top 50Italy
Mehrab (1)16Top 50United Kingdom
james su (1)17Top 50Canada
gobruins (1)18Top 50United States
katuinbouter (1)19Top 50Netherlands
Kuvardin Evgeniy (0)20Top 50Russia
Christoph Hillinger (1)21Top 50Austria
mark kavalaris (0)22Top 50United States
Alex Stirbu (0)23Top 50Romania
Pavel Zeman (0)24Top 50Czech Republic
Rytis Budreika (1)25Top 50Lithuania
umir (1)26Top 50Italy
Margit Biróné Sonkoly (0)27Top 50Hungary
Sean Molloy (1)28Top 50United States
craig.mcfarlane (0)29Top 50Norway
Pavel Vorontsov (1)30Top 50Russia
MarkM. (1)31Top 50Germany
NickL (0)32Top 50United Kingdom
Eric Levin (0)33Top 50United States
Yuan Tschang (1)34Top 50United States
Zoran Krekic (0)35Top 50Croatia
Dipendra Thapa (0)36Top 50India
JasonC (1)37Top 50United Kingdom
danad (1)38Top 50Czech Republic
tommyTT (0)39Top 50Poland
Jason H (1)40Top 50United States
Henry Abeska (0)41Top 50Czech Republic
Vijay Mahawar (1)42Top 50India
Cristinel Boboc (1)43Top 50Romania
kias (0)44Top 50Czech Republic
Telmoc (0)45Top 50Portugal
Krzysztof Helbin (0)46Top 50Poland
Justin Cave (1)47Top 50United States
Oleksiy Varchyn (0)48Top 50Norway
Cor van Berkel (0)49Top 50Netherlands
Hamid Talebian (0)50Top 50Netherlands
Jennifer Schiltz (0)51CorrectnessUnited States
Dan Voiculet (0)63CorrectnessRomania

PL/SQL Championship - Thursday, February 26, 10:00 UTC

The following players will be invited to participate in the 2014 championship for the PL/SQL Challenge.

The number in parentheses after their names are the number of championships in which they have already participated. Wait a minute, they are all 0s. Well, we've done plenty of championships for PL/SQL, but they were for the daily quiz. So this is the first for the weekly quizzes.

See the FAQ for an explanation of the three ways a player can qualify for the championship. And congratulations to all listed below on their accomplishment and best of luck in the upcoming competition!

Name Rank Qualification Country
swart260 (0)1Top 50Netherlands
Rakesh Dadhich (0)2Top 50India
Stelios Vlasopoulos (0)3Top 50Belgium
Viacheslav Stepanov (0)4Top 50Russia
mentzel.iudith (0)5Top 50Israel
Rytis Budreika (0)6Top 50Lithuania
Niels Hecker (0)7Top 50Germany
Siim Kask (0)8Top 50Estonia
Milibor Jovanovic (0)9Top 50Serbia
Ivan Blanarik (0)10Top 50Slovakia
Jerry Bull (0)11Top 50United States
Krzysztof Helbin (0)12Top 50Poland
Maxim Borunov (0)13Top 50Russia
Kuvardin Evgeniy (0)14Top 50Russia
james su (0)15Top 50Canada
Chad Lee (0)16Top 50United States
Sherry (0)17Top 50Czech Republic
Pavel Noga (0)18Top 50Czech Republic
Leszek Grudzień (0)19Top 50Poland
Yuan Tschang (0)20Top 50United States
gobruins (0)21Top 50United States
Ravshan Abbasov (0)22Top 50Uzbekistan
VictorD (0)23Top 50Russia
Oleksiy Varchyn (0)24Top 50Norway
Chase Mei (0)25Top 50Canada
Justin Cave (0)26Top 50United States
Marcus Matzberger (0)27Top 50Germany
Karel Prech (0)28Top 50Czech Republic
João Barreto (0)29Top 50Portugal
Jason H (0)30Top 50United States
Andrey Zaytsev (0)31Top 50Russia
Joaquin Gonzalez (0)32Top 50Spain
Michal Cvan (0)33Top 50Slovakia
Jeroen Rutte (0)34Top 50Netherlands
dmitrysk (0)35Top 50Russia
Manfred Kleander (0)36Top 50Austria
Patrick Barel (0)37Top 50Netherlands
Christoph Hillinger (0)38Top 50Austria
Sean Molloy (0)39Top 50United States
Alex Stirbu (0)40Top 50Romania
_tiki_4_ (0)41Top 50Germany
Pavel Vorontsov (0)42Top 50Russia
Anna Onishchuk (0)43Top 50Ireland
Margit Biróné Sonkoly (0)44Top 50Hungary
Livio Curzola (0)45Top 50Luxembourg
Henry Abeska (0)46Top 50Czech Republic
Ingimundur Gudmundsson (0)47Top 50Norway
Martin_Scholz_Berlin_Berlin (0)48Top 50Germany
tonyC (0)49Top 50United Kingdom
Paolo Zaffaroni (0)50Top 50Italy

05 January 2015

Happy New Year, and....New and Revamped Quizzes for the New Year

Happy new year to the thousands of Oracle technologists who played a quiz or otherwise visited and benefited from the PL/SQL Challenge in 2014.

The Challenge continues into the very frosty New Year (as I write, it is 0 degrees Fahrenheit here in Chicago), but first, let's do (some of) the numbers from 2014.

Over 4000 Oracle technologist took at least one quiz in 2014. 

Altogether players at the PL/SQL Challenge submitted over 114,000 answers to quizzes (including practice quizzes and tests).

Along the way, we had lots of help from several reviewers. Elic was our superstar, the main reviewer on PL/SQL and SQL quizzes. Livio Curzola helped Eli make sure that the Logic quizzes were top-notch. Many thanks to both of you, as well as players like Iudith Mentzel, who wrote several quizzes for PL/SQL Explore. 

Thanks also to Kim Berg Hansen, our SQL Quizmaster, and Chris Saxon, Mr. Database Design (and, as of 1 January our newest Oracle Database Evangelist!), for providing interesting and challenging quizzes all year.

Wow. That's a lot of devotion (writing quizzes, reviewing quizzes, playing quizzes) to improving one's skill set in SQL,  PL/SQL, Database Design and Logic.

Now let's take a look at 2015.

As you may recall, back in March, I rejoined Oracle after a 22 year absence. Not too surprisingly, I got really busy. One "victim" of my busy-ness was a decision to end the daily quiz after four years (whew). I really hated to do it, and consider that quiz one of my finest accomplishments.

So we shifted to three weekly quizzes and life went on. But since I was spending less time in every way on the PL/SQL Challenge and since it turned out that many players really thrived on the discipline of playing a quiz every day of the week (crazy people!), our numbers have dwindled a bit through 2014.

OK, fine, but what about 2015? The new year provides us with an opportunity to expand and reorganize our quizzes.

Why, you might ask, would we consider doing this? Let me count the ways.

1. We replaced the daily PL/SQL quiz with two competitive quizzes, PL/SQL Challenge and PL/SQL Explore. The former is written solely by me (Steven Feuerstein); the latter was intended to feature lots of quizzes by players, exploring "nooks and crannies" of PL/SQL. I have, however, written most of these quizzes, and there is no clear distinction in the content of the two.

2. The Oracle Database Evangelist team I have been tasked to build is now taking shape. This means that, among other things, Natalka Roshak is now a full-time SQL Evangelist, and part of that job (I have decided) is to write a weekly SQL quiz. That means that we will now have two SQL quizzes - so what will be the difference between these two?

3. We added a PL/SQL Deja Vu quiz, featuring a previously-played quiz. Now that the SQL quiz has been going on so long, perhaps we should add a SQL Deja Vu quiz as well.

We (myself, Kim Berg Hansen, Natalka Roshak, Chris Saxon and Dan McGhan) have been discussing these ideas and decided we'd generated enough interesting thoughts to share them with you for feedback.

I expect that we will start this new configuration on 1 April 2015, the start of Q2 and the fifth anniversary of the PL/SQL Challenge (!).

Here's what we are currently thinking about for....

PL/SQL Quizzes

1. PL/SQL Language quiz: covers the features of the PL/SQL language, including best practice, performance, etc. Pretty much what the PL/SQL Challenge has been. Primary author: Steven Feuerstein, others welcome! Rankings qualify for annual championship.

2. PL/SQL Built-ins quiz: focuses exclusively on the built-in or supplied packages. This would replace, in essence, PL/SQL Explore. Primary author: Steven Feuerstein, others welcome - especially with more specialized packages with which I have minimal experience. Rankings qualify for annual championship.

3. PL/SQL Deja Vu: as before, features a quiz from the past. Non-competitive.

SQL Quizzes

1. SQL Features quiz: covers the features of the SQL language, from DDL to DML. Primary authors: Kim Berg Hansen and Natalka Roshak others welcome! Rankings qualify for annual championship.This quiz would generally avoid performance-related features, because the second SQL quiz would focus on:

2. SQL Performance quiz: while I don't feel there is enough on PL/SQL performance to have a separate quiz just one that, it does seem more than possible to do this with SQL. And it certainly is a topic of endless interest and discussion. Rankings qualify for annual championship. Primary authors: Kim Berg Hansen, Natalka Roshak and Chris Saxon; others welcome!

3. SQL Deja Vu: features a quiz from the past. Non-competitive.
Database Design Quizzes

Stick with the current weekly quiz, but probably steer away from quizzes that focus primarily on performance, since the SQL Performance quiz will cover that. Rankings qualify for annual championship. Primary author: Chris Saxon, others welcome!

But we can also add a DB Design Deja Vu quiz.

Logic Quizzes

We are exploring replacing the competitive Mastermind-based quiz with a new logic quiz that uses different formats. Part of the problem with continuing with Mastermind, is that we have published (and others have no doubt built) automatic solvers.

And we can also add a Logic Deja Vu quiz.

Database Administration Quiz (?)

I have had several requests to start up a DB admin quiz, and am happy to do so, but we need someone to step forward and take overall responsibility for managing the quiz.

Any takers?

Names for Quizzes

As our quizzes grow in number, I'd also like to come up with less generic and more interesting names for our quizzes. Kim Berg Hansen offers a bunch of ideas below, to get the creative juices flowing. We'd love to hear your ideas!

1a: PL/SQL Language
1b: PL/SQL - Language par Excellence
1c: PL/SQL - Code of Choice
1d: PL/SQL Challenge
1e: PL/SQL - Code Genie

2a: PL/SQL Supplied Code
2b: PL/SQL - Don't Reinvent the Wheel
2c: PL/SQL - Already Invented
2d: PL/SQL - Modules Supplied
2e: PL/SQL Built-ins

3a: SQL Language
3b: SQL - The Way of the Set
3c: SQL - Set to Win
3d: SQL Magic
3e: SQL - Game, Set and Match
3f: SQL - When It's About Data
3g: SQL - Dancing with Data
3h: SQL - Mind Over Data

4a: SQL Performance
4b: SQL - Go to Warp 10
4c: SQL - Go to Warp 8
4d: SQL - High Speed Pursuit
4e: SQL - Data Formula One

5a: DB Design
5b: Database - Craft Your World
5c: Build a Better Database
5d: Database - Building Blocks
5e: Database - Data Builder

6a: DB Admin
6b: Database - Operational Administry
6c: Database - Operating Theater
6d: Database - Smooth Operator
6e: Database - Data Shaman

08 December 2014

Ideas for PL/SQL Championship(s) next year

For most of this year, we have offered two weekly, competitive quizzes on PL/SQL:

PL/SQL Challenge & PL/SQL Explore

But it doesn't really make sense to offer two different championships. At least, that's how I, the fellow who would write all those quizzes, feels about it.

There is, as one might expect, lots of overlap between the top 50 ranked players in the two quizzes: only 14 in PL/SQL Explore are not in PL/SQL Challenge's top 50.

It seems to me that it makes much more sense to have a single championship for PL/SQL, overall.

But our database design doesn't easily allow us to make that change (that is, one championship per domain with merged rankings).

So here is what I would like to do instead:

For the 2014 PL/SQL Championship, participants will be as follows:

1. The top 50 ranked players in the PL/SQL Challenge
2. The additional 14 in the top 50 of PL/SQL Explore
3. Up to 20 other wildcard and correctness players, all drawn from the PL/SQL Challenge

Then going forward, even though PL/SQL Explore will remain competitive, the PL/SQL Championship will be based only on your performance in the PL/SQL Challenge quiz.

What are your thoughts on this?

Thanks, Steven Feuerstein

01 May 2014

New Roundtable discussion: What's missing from PL/SQL?

PL/SQL has been around for over twenty years. It has been enhanced steadily and strongly throughout all that time, adding bulk processing, object types, automatic optimization, PL/Scope and so much more. So the question is: is PL/SQL fully baked? What is it missing that you need in order to write better code faster?

Give us your thoughts on the PL/SQL Challenge Roundtable.

PL/SQL is a critical enabling technology for hundreds of thousands of mission-critical applications around the world. Any improvement in the language can have a widespread impact. The PL/SQL development team must have a list of enhancement requests 10 miles long (no, I haven't seen it) and it is likely that anything we come up with here will already be on their list. But that's not the point. The point is to find out what active PL/SQL developers think is key for the language.

Some of you may be aware that I published the iloveplsqland.net website years ago to allow developers to sort-of-vote on enhancements to the PL/SQL language. It never generated a whole lot of traffic, but I encourage you to check it out for ideas. And if you posted an idea there, and still feel strongly about it, then post the info here as well!

I can think of several categories of enhancements to PL/SQL and I encourage you to let us know into which category your idea would fall.
  • Performance: improve the runtime performance of PL/SQL code.
  • Usability: make it easier or more productive to write your program units.
  • Multimedia/Internet: improve the way PL/SQL "plays" in the modern world of mobile and Internet applications.
  • Critical bug fixes: sure, it's not an enhancement, but if there's something that's been bugging you for years and still isn't fixed, go ahead and gripe about it here!
  • Object orientation: object types have come a long way....but assuming you are trying to use them to build production apps, what's missing?

Oh, and I need to be really clear about this: Just because I work for Oracle Corporation now, that doesn't mean that I can guarantee any of your ideas will be implemented. Heck. I don't even work in the PL/SQL development team (and I sure don't belong there!).

This is a discussion which will benefit enormously from every player using the Like feature to indicate which idea they, ahem, like. Please take advantage of it!

Finally, I point out to you that it would be best if you did not reply here with your ideas. Go to the PL/SQL Challenge Roundtable and do it. But I will be happy to read your thoughts here as well.

Cheers, Steven Feuerstein

18 April 2014

Another quiz idea for your consideration: Code Pong

Thanks for all your feedback on the PL/SQL Countdown quiz. I am certain we will add that to the mix soon.

And since I have decided to no longer keep all my best ideas to myself ( :-) ), I offer another idea for a "quiz", though it is not really a quiz, I suppose. More of a "game"?

I call it Code Pong (some of you may know of the classic Pong game). Here's how it would work:

It starts with a piece of rather awful code (likely a function or procedure that is supposed to do X or display certain output). It has all sorts of issues: outright bugs, typos, logic flaws, etc.

Two people sign up to play. And they each take turns applying changes to the code to improve it. The rules for making a change are:

1. You can change 1 line.
2. You can insert up to 3 lines.
3. You can delete up to 3 lines.
4. You can reject the other player's last move.
5. Assert that the game is done.
6. Accept or reject other player's assertion that game is done.

Player must include a description of the change: how does it help get closer to a solution?

What this means is that you can't make one big wholesale change to the code to fix it. Instead, you must work with the other player, sometimes following their lead, sometimes leading the way, to make changes until you believe the code works and all the problems are removed (that is, it not only works, but also is now a program that is easy to understand and maintain.

Here's a simple example: Change the code so that "9" is displayed.
   l_index NUMBER;
   FOR rec IN (SELECT * FROM all_source WHERE rownum < 10)
      l_index := l_index + 1;

Move 1 (player 1):

Change line 2 to:

l_index PLS_INTEGER;

Explanation: PLS_INTEGER is faster than NUMBER and you do not need NUMBER.

Move 2 (player 2):

Change line 2 to:

l_index PLS_INTEGER := 1;

Explanation: the default initial value is NULL and adding 1 to NULL returns 1. So l_index stays NULL throughout.

Move 3 (player 1):

Assert that game is done.

Move 4 (player2):

Accept; game is done!

What do you think? Too complicated? Too strange?

13 April 2014

Take a Survey on Database Design Quizzes

Chris Saxon, who is the "domain admin" for the Database Design and author of many of the weekly quizzes, would love to get feedback from our players on these quizzes. He's been doing them now for six months and figures it's time to check in with all of you.

So he's used Google Forms to set up a quick, anonymous survey:


We hope you can take a few moments to fill it out.

21 March 2014

Idea for a new type of quiz: Countdown PL/SQL

Always looking for ways to increase the entertainment value of the site, I came up with this idea last night.

Countdown PL/SQL

You have thirty seconds to answer ten true-false questions. 

With the clock on the page counting down, you are shown a statement about PL/SQL and you must quickly decide: true or false.

Of course, the same could be done with SQL, APEX, etc.

One concern I could see with this quiz is that comfort with the English language could have a big impact on how quickly you can get through the questions. It is also possible that we could offer versions that contained code, not (mostly) words.

Perhaps it is time to look at localization of content: offer it in different languages!

So what do you think? Sound interesting? Sound like something you'd bother playing?