14 September 2011

New Poll on Changing Question Type

The type of question for the 13 September quiz was changed from "only one choice correct" to a normal multiple choice question after the quiz was closed. This was done because a player noted the following:

"This is a prime example of a quiz that should not be "at most one" correct choice. More than one concept is being tested; however, if a player is weak in any part then the player receives no credit. The results of the quiz would have been more indicative of players' relative knowledge had each exception scenario been presented as an independent selection."

And we agreed.

But another player then objected to this change, saying: "This is unfair towards the players who consumed extra time to try to answer correctly, for avoiding scoring zero points." 

Our feeling is that you should be making your best effort to answer the question correctly, regardless of the type of question, and so if we make a mistake in how we set up the question, we should fix it. But we are not competing in the daily quiz, so we may not understand well how all of our players see this issue.

We have set up a poll on the PL/SQL Challenge website to find out how you feel about it. Please take the poll and/or add your thoughts to this posting.

Cheers,
Steven Feuerstein

12 September 2011

New Play a Quiz Features

As explained in a previous blog posting, the Play a Quiz table on the home page has gotten very full and busy. Players have been complaining about not being able to find the quizzes they need to take, or recently took.

So over the weekend we put in place a number of changes that should help you:

1. Moved Play a Quiz to the top of the page
2. Save filter setting as default
3. Quick access to My Technologies
4. Separate tab for Taken/Closed quizzes

Taken altogether, the home page now looks like this:


The Not Taken tab will show you all quizzesthat are open (can be played). Note that you might not be eligible to play all of them (such as the quarterly playoff), but for the most part they will be precisely those quizzes you can play. Quizzes are ordered by those that will be over soonest.

The Taken/Closed tab shows you only those quizzes that you have taken or are closed (you missed the chance to take them). Those quizzes you answered most recently appear at the top of the list.

If you only want to see quizzes for technologies in which you are interested, change the filter to My Technologies:

And if you don't want to have to change this filter setting each time you visit the home page, click on "Save Filter as Default".

Finally, if you want to change any of the settings for the technologies in which you are interested, click on "Edit My Technologies" to take you directly to the Technologies to Play page of your account.

We hope these changes make it easier to play your quizzes and review the results after you've played.

IE8 and Compatibility View: TURN IT OFF!

While we continue to have problems displaying the plsqlchallenge.com site on IE7, I was particularly dismayed to receive a bug report regarding IE8. A player reported that when he visited the home page, it looked like this:

Not good.

And what bothered me most of all is that on my laptop, PLSQLChallenge.com works just fine on IE8.

Well, it took a little bit of investigation, but we finally discovered that if you have Compatibility View turned on in IE8 (and, likely, in IE9 as well), you end up with a home page like that shown to the left.

If, on the other hand, I turn off Compatibility View, the home page displays without any problem. So if your home page looks weird, check this setting before you submit a bug report:

PL/SQL Challenge Activity Summary for 5 September 2011 - 9 September 2011

Oracle PL/SQL Quizzes

In the past week (5 September - 9 September), 822 Oracle technologists were busy submitting 2,465 answers to quizzes and exploring the library of past quizzes. Here are the PL/SQL quizzes played in that period:

5 September 2011: PLS_INTEGER and its subtypes will raise an overflow error if the value assigned to it is greater than 2147483647; SIMPLE_INTEGER will "wrap around" to -2147483648 and "count up" from there.
                550 Players ** Avg. Correct: 72% ** Avg. Time: 219 seconds ** Rating: 4 stars

6 September 2011: PL/SQL offers a number of ways to retrieve multiple rows from a dynamic SQL query; OPEN-FOR is especially helpful when you plan to use the BULK COLLECT clause as you fetch, but also want to use the LIMIT clause to manage memory consumption.
                658 Players ** Avg. Correct: 78% ** Avg. Time: 321 seconds ** Rating: 4 stars

7 September 2011: It is often necessary to continue executing your application code, even after an error is raised. Both SAVE EXCEPTIONS and LOG ERRORS allow you to do this when errors occur in DML statements. It is important, however, to be aware of the differences between the two, and choose the feature that best matches your requirements.
                642 Players ** Avg. Correct: 63% ** Avg. Time: 282 seconds ** Rating: 4 stars

8 September 2011: Oracle will perform implicit conversions under many circumstances. Often, such conversions will have no or minimal impact on performance or correctness. Generally, however, it is best to perform explicit conversions to ensure correct behavior of your programs.
                632 Players ** Avg. Correct: 6% ** Avg. Time: 567 seconds ** Rating: 4 stars

9 September 2011: When you need to check for and match on a NULL value in your CASE statement or expression, you need to use a searched, not simple, CASE format.
                560 Players ** Avg. Correct: 81% ** Avg. Time: 191 seconds ** Rating: 4 stars

SQL Quizzes

Between 13 August - 9 September, Oracle technologists played these SQL quizzes:

13 August 2011: Whenever your column values may contain NULLs, you should be very careful in how you construct your SQL statement to take this into account.
              494 Players ** Avg. Correct: 89% ** Avg. Time: 894 seconds ** Rating: 4 stars

20 August 2011: If a condition refers to an aggregate function, put that condition in the HAVING clause. Otherwise, use the WHERE clause. It is always recommended to include ORDER BY Clause in order to sort records. Don't rely on possible implicit sorting of GROUP BY Clause.
              517 Players ** Avg. Correct: 70% ** Avg. Time: 627 seconds ** Rating: 4 stars

27 August 2011: The NULL value is not a value like "abc" or 123. It actually means "there is no value" and is handled very differently by Oracle from any non-NULL values.
              526 Players ** Avg. Correct: 79% ** Avg. Time: 301 seconds ** Rating: 4 stars

3 September 2011: Use of analytic function COUNT with the RANGE clause to count records with values within defined ranges.
             523 Players ** Avg. Correct: 82% ** Avg. Time: 2070 seconds ** Rating: 4 stars

Oracle Application Express Quizzes

Between 13 August - 9 September, Oracle technologists played these APEXquizzes:

13 August 2011: Use validation functions for plug-in items so that you can build validations into the plug-in, and avoid writing validations on each page where a relevant item appears. Use built-in APEX procedures to communicate errors to the user.
              237 Players ** Avg. Correct: 62% ** Avg. Time: 755 seconds ** Rating: 4 stars

20 August 2011: Dynamic actions are one of most exciting features of APEX 4.  They allow actions to be performed that previously would have been done with jQuery. As well as the built-in dynamic actions you also have the option of entering your own Javascript. Some issues that may arise when incorrectly coding dynamic actions are outlined below as well as the best pratices.
              232 Players ** Avg. Correct: 56% ** Avg. Time: 983 seconds ** Rating: 4 stars

27 August 2011: By using a combination of application processes, page groups and conditions you can
conditionally hide or show items in the application. Page groups allow the applications pages to be easily grouped and subsequently identified as to which pages they are related too and what part of the application they are used in. It helps to understand the different syntax that can be used within a condition.  It highlights two different methods of setting a condition with a "PL/SQL Expression" and the "Value of Item in Expression 1 = Expression 2".

              241 Players ** Avg. Correct: 62% ** Avg. Time: 1939 seconds ** Rating: 4 stars

3 September 2011: This question will teach users how the APEX data dictionary views can be used to find out information about the applications in the workspace.
                226 Players ** Avg. Correct: 59% ** Avg. Time: 913 seconds ** Rating: 4 stars