16 May 2012

Ideas for PL/SQL Challenge 2.3

We are now planning new features and enhancements to the PL/SQL Challenge website (version 2.3).  I'd love to hear what you think - both about these ideas and your own. Now, you might be thinking that I already asked for such feedback on the blog and that's true - sort of. In my 9 March post, we discussed some possible changes in the way the daily quiz is played. I am still sorting through those ideas. But for our next release, we will be making smaller-scale changes to the site, keeping the basic quiz structures in place, but improving overall usability and access.

So first:

What's Missing from the PL/SQL Challenge?

What features and content would you like to see on the PL/SQL Challenge? What would bring you back to the site more often? What would help you get your jobs done faster and with higher quality? And now our ideas for 2.3:

"Rank Me" for Competitions

Today at the PL/SQL Challenge, you can either play competitively or for educational purposes only. If the latter, then your performance is not ranked. This setting applies to all the quizzes and also affects all results since you started taking quizzes. It's an inflexible model that is showing its age in many ways. We plan to enhance the PL/SQL Challenge so that you can indicate for a specific competition (such as the daily PL/SQL quiz or the weekly SQL quiz) that you want to be ranked or not. We will keep track of when you start and stop competitive play for each quizzes. So, for example, if you have a vacation coming up, you can ask us to not rank you while you are away, and you will no longer see all your previous rankings disappear.

As you can probably tell from the way I wrote the above paragraph, we are definitely going to do this, but we are still happy to hear any comments on it, of course!


Several players have asked for the ability to mark a quiz or feature or author as a "favorite", so that they can easily find and reference that information. Would you use this feature? What sort of information would you want to be able to keep track of as a "favorite"?

Recent Activity

There's a lot more going on, on the PL/SQL Challenge website, now that we have discussions on quizzes directly on the site, Quizbooks that can be shared, and so on. It's hard at the moment for a player to know about the new happenings on the site, so we'd like to show a list of recent activity on the home page.

Featured Discussion

As of 2.2, you can now ask questions and have a discussion about specific quizzes. We are thinking that it might also be interesting to post a topic each month and invite discussion on it, independent of any particular quiz. Examples of topics we might explore: "Should exceptions be trapped in the block in which they are raised or simply handled at the top-level block?" or "Should all (or most, anyway) SQL statements be encapsulated by procedures and functions?" or "What are your favorite techniques for debugging problems in your code as quickly as possible?"

The discussion topic would be shown on the home page, with links to the full discussion thread and past discussions.

Better Library Search

Today, the Library lists quizzes by the order in which they were taken. You can perform searches against the text displayed in the table, and that's about it. The Practice and Quizbook features now let you find quizzes by a feature (handy when you want to check out all the quizzes and related information for dynamic SQL, for example). We'd like to offer the same kind of searching to the Library.

Changes to Home Page

I feel that it is time for the home page to "catch up" with changes in the PL/SQL Challenge, both based on new features in 2.2 and the new ideas listed above. Here are my ideas regarding the home page:
  • First, whatever changes we make, you will be able to choose the "classic" home page that is currently offered. People generally don't like change and I expect that whatever we do, we will hear complaints that the "old way" was better or, at least, preferred.
  • Move Top Ranked Players to a pop up. Rather than use valuable real estate on the page, give you access to this information with a click of a button. Perhaps also show this information on our Rankings page.
  • Remove myLibrary: this will be effectively replaced by Recent Activity (see above).
  • Remove myAccount: this information can be made available without taking up so much space.
  • Shrink the Play a Quiz table. It contains information that I expect very few players even see, much less care about (number of quizzes in the competition, for example, which is almost always just 1).
  • Add a Search field to the home page to provide a "short cut" into the Library.
  • Add the Recent Activity, Features and Featured Discussion sections.


  1. What I would like to see is a change in the quiz library. That the two columns "Objection?" and "Last Comment" are merged into one column and make it visible what kind of commentary exists on the quiz (by an icon?), the date and time of the last entry and if it was submitted or rejected (for objections). If there are an "Ask For Help", "Raise Objection" and "Start Discussion" there should also be three entries.
    Niels Hecker

  2. Do you have any further info on the "Rank Me" item, as it is not clear to me how being on vacation is any different from simply not taking the quiz? If an individual is on vacation and selects to not be ranked, comes back from vacation and changes back to being ranked, does that start again with the next quarter, or would they disappear from the rankings when leaving for vacation and then automagically reappear in the current quarter's ranking upon returning from vacation?

    Perhaps this could/should lead to an individual potentially having a breakdown of their scores, at least on their personal page. You could have your stats for all of the ranked quizzes (visible in rankings), along with your stats for the unranked quizzes (not visible in rankings).

  3. I will look into adding that information to the Library page.

    Regarding "Rank Me" - yes, good point in that in terms of ranking there will really not be any difference between not playing and going "unranked" for a period of time. But all the restrictions about only being able to switch back to competitive from non-competitive disappear with Rank Me. You can change your status for a given competition at any time. Rankings will only be calculated from quizzes you took while you were being ranked.

    I haven't yet thought about showing stats for ranked and unranked quizzes. I will look into that. Thanks!

  4. I like the idea of featured discussions - it could be a good way to bounce ideas off other players.

    I think it would be interesting if this could be used to help promote, discuss and/or develop standard utility libraries (e.g. logging, error management, etc.) which could be useful for the wider community.

  5. That's a fascinating idea, Chris.

    I have long planed to add a Code section to the PL/SQL Challenge, so that players can upload their library of useful scripts and code, either to simply have a repository in which they can search through their own scripts or to share them with others.

    The featured discussion could easily lead to some nice contributions in this area.

  6. Over the past decade PL/SQL has grown from domain specific language to almost full fledged language. And it's not simple to keep up with ALL aspects of language and new features (at least for me). So what I would like to see is the "category of question".
    And while taxonomy (categorization) is subjective, nonetheless that feature would pinpoint to the area(s) that need improvements.
    Obviously, that would have to be enabled on the personal page to allow sorting and analyzing.

  7. Could you give some examples of the categorization you have in mind? And what would you enable on the personal page (profile?) in this regard?

    Thanks! SF

    1. it hard to dissect the language, especially that "dissection" would be very subjective.Few to name:
      Built-in packages, stand-alone functions, analytically functions, exception handling, program flow, arrays, data types (sql, pl/sql , sql VS. pl/sql) , OOP features of the language, dynamic SQL.
      Under "enabling this feature" i meant to have a report that breaks all answered questions by the categories ,allows to sort.
      Another approach that targets similar objective is to have custom tags that would allow one custom categorization. Then "personal dashboard" becomes indicator of weak areas.

      It easy to compete against someone, it hard to compete against yourself. ;-)

    2. I was about to suggest something potentially similar - to allow the user to filter their rankings by features that they actually use on a regular basis.
      Maybe, on the question itself or its feedback, there could be checkboxes for, eg:
      - A question I should be familiar with
      - A question whose theme I'm keen to improve in
      By all means keep the overall rankings for global comparison - but this will enable people to not stress over a failure on a particular question because it's not a feature they need to/should use for the application(s) on which they work.

  8. The "backbone" of the PL/SQL Challenge is a tree of language features (separate trees for SQL, APEX, PL/SQL, etc.). You can see this tree when you set up a practice or quizbook by features.

    Virtually all the "categories" you list above are "parent" features in the tree.

    So I think that the Favorites enhancement would handle your needs pretty well. You identify favorite features from the tree, and then ask to filter quizzes to your favorites.

  9. Hello All,

    I try to understand the proposal of the previous posters.

    As far as I understand, each quiz has a well-defined topic
    from its very creation by the author, and eventually amended
    by Steven or by the reviewers, let's call this the "main" topic
    of the quiz.

    As the language becomes more and more complex, and the PL/SQL Challenge also ( kudos to our entire community :) ),
    it is very probable that many quizzes, perhaps with the exception of some "very beginner" quizzes, do touch besides
    their main topic, one or more additional topics, related more
    or related less to the main topic.
    As the previous posters already underlined, this categorization
    can become very subjective.

    So, something really ideal if it could be implemented would
    be to allow each player "to attach" to each quiz his own
    additional "list of topic keywords", chosen from a wide list of (secondary) topics which the player considers relevant to that quiz, maybe from his own very specific point of view.

    The list of possible keywords could be left to be as wide as
    the entire PL/SQL Language, that is, without predefining
    a limited list of topics for each quiz, which would create
    additional work and challenge to the authors and reviewers.

    Then, on the Library page, to allow a player to search the
    quizzes database by such specific "topic keywords" attached by himself to each quiz.

    Searching by the "main" quiz topic is already available
    for the Library page, as well as in the framework of new "Practices" feature.

    The above addition could add the possibility of a
    "custom categorization" by the player's own definition,
    probably the maximum flexibility that one might ask for.

    As you can see, the appetite comes with the food :) :)

    I agree with Chris regarding the utility of the featured discussions, including here the SQL quizzes also.
    Along this line, I also was thinking of what could be done
    to popularize other solutions that players might have found
    for some tricky quizzes.
    A good example ? The SQL quiz of of Lucas Jellema
    from AMIS played on Apr 7 2012.

    Just some ideas, as "last thoughts before the Playoff day" :)

    Thanks a lot & Best Regards,
    Iudith Mentzel