71D - the digits and letter have a beautiful ring to them - because I just [well, over a week now - I just remembered I had not posted this entry!] flew back from Sydney on a massive A380 passenger jet, and I was not able to upgrade to business class.
I just finished the adjustments for "very fast answers" for the period 15 August to 31 August. You will see some changes in the rankings soon. This is my least favorite part of the PL/SQL Challenge: to have to even imply that maybe some players are violating rules. I hate it, but what else can I do? If your pattern of play is indistinguishable from someone who cheats, I must taken action to protect the credibility of the daily quiz.
So please: take your time, read the questions and choices thoroughly and carefully. Enjoy and learn!
Seeing as I am in Puerto Rico right now, I will blame my lack of clear thought (and the resulting impulsive actions) to Hurricane Earl.. :-)
Sigh. Yesterday, I received a report of a mistake in the 30 August quiz and rather than think it through carefully, I too quickly accepted that I had made a mistake (which says something about my personality), went through my re-scoring process, had some problems with that (which several of you have reported), wrote a blog posting on the mistake, rewrote a blog posting and finally went to bed.
The 30 August quiz asked you to choose options that would stop a program unit from being usable if the optimization level for that unit was < 2 (the current default level of "aggressive" optimization).
One choice, scored as correct, was:
A player sent this note to me today:
A player asked this question today:
"Am I supposed to be able to answer these questions without actually running the code and testing it? :)"
Excellent question! When I take my own quizzes to establish "minimum reasonable time to answer" (which I then use to make adjustments for very fast answers), I rarely actually write code to verify the choices I make.
But I cannot imagine how, for many of these quizzes, you could not take the time to do this, if you wanted to really be certain that your choices were correct.
After the end of the month, I will be running my "very fast answers" algorithm and adjustment for the period 15 August through 31 August.
To recap: for each I record the amount of time it takes me (author of the quiz and PL/SQL expert) to answer the quiz.
This then becomes the baseline for analyzing the time taken by players.
If your total time is below mine (with a grace period thrown in), I increase your "time to answer". I then re-score and re-rank. And then I pick the winner for "Most Correct of the Month."
The 27 August quiz tested your knowledge of the ALL_PROCEDURES data dictionary view, which gives you information about stored program units on which you have EXECUTE authority.
There were a few problems with this quiz:
Three players wrote with a concern: the code in the 25 August quiz question inserts three rows into a table, does not commit and then asks:
"Which of the following blocks display "1" (without the double quotes) after execution?"
Here is the most thorough comment submitted on this:
"Today's quiz is somewhat questionable as its 'create/populate' section does not contain COMMIT after inserts and it is not specified explicitly that PL/SQL blocks in question are executed in the same session."
Summer’s almost over and it time to start blogging again. It’s strange to think that Oracle OpenWorld is only a month away, and MySQL and JavaOne are all in the same event. I’m looking forward to it! As I did two years ago on my MacBook Pro, I’ll blog during the event on my iPad. [...]
In my latest PL/SQL newsletter (if you don't yet receive it, visit www.stevenfeuerstein.com and enter your email in the yellow box on the left side of the home page), I passed on a tip I got during a training, namely:
I just gave a two-day, "Best of Oracle PL/SQL" training to a team of developers in Winona, MN, home of the Sugar Loaf Bluff, which I climbed after the first day of training.
The PL/SQL Challenge recently (6 August) offered a quiz on the INSTR function. I showed everyone the header of this function from the STANDARD package in which it is defined:
-- Find nth occurrence of str1 in str2 starting at pos
function INSTR(STR1 VARCHAR2 CHARACTER SET ANY_CS,
STR2 VARCHAR2 CHARACTER SET STR1%CHARSET,
POS PLS_INTEGER := 1,
NTH POSITIVE := 1) return PLS_INTEGER;
Quest Software and AUSOUG sponsored a PL/SQL Challenge Live quiz at the Insync 2010 conference on 16 August (which took place just 3 hours after I arrived from a very long odyssey from Chicago). This is the second live quiz I have done (the first was at ODTUG's Kaleidoscope conference in June), and it went much smoother than the first, since I built a PL/SQL procedure to automatically compute winners (manual processes really are things to avoid whenever possible!).
I received this email last week:
Steven, would you mind giving me a explanation about how TRANSLATE works. The two blocks do not seem to work in a consistent way:
DECLARE my_formatted_number VARCHAR2 (100) := '00001233.056'; BEGIN DBMS_OUTPUT.put_line (TRANSLATE (my_formatted_number, 'A0', 'A')); END; Output: 1233.56 DECLARE my_formatted_number VARCHAR2 (100) := 'Example'; BEGIN DBMS_OUTPUT.put_line (TRANSLATE (my_formatted_number, 'Ee', '98')); END; Output: 9xampl8.
I just received this note from a player:
Hardware problems at the datacentre hosting the PL/SQL Challenge site led to three hours of downtime, from approximately 6 PM Perth, Australia time to 9 PM. Well, that's where I (Steven Feuerstein) am right now, so that is my point of reference....
We apologize for any inconvenience. Our policy is to void the quiz if it is unavailable for four or more hours, so the quiz is still on for today.
I will be implementing this policy in the coming weeks, but I wanted to inform you now, because as of today, I will no longer make any manual adjustments to scores due to mistakes or errors. It is simply not possible for me to spend the time to do this. You will see this same text on the Rules page very soon. So here goes....
Forgiveness and Corrections Policy
It is sometimes difficult for developers to play the quiz every day, especially when they go on holiday. Players worry about a significant setback in their rankings.
Quest Software and AUSOUG sponsored a PL/SQL Challenge Live quiz at the Insync 2010 conference on 16 August (which took place just 3 hours after I arrived from a very long odyssey from Chicago). This is the second live quiz I have done (the first was at ODTUG's Kaleidoscope conference in June), and it went much smoother than the first, since I built a PL/SQL procedure to automatically compute winners (manual processes really are things to avoid whenever possible!).
Quest Software and AUSOUG sponsored a PL/SQL Challenge Live quiz at the Insync 2010 conference on 16 August (which took place just 3 hours after I arrived from a very long odyssey from Chicago).
Forty-two developers played the quiz and I am pleased to announce that Jeff Kemp, currently ranked #5 in this quarter on the daily quiz, took first place with a score of 37 points out of a possible maximum score of 43. He wins a $100 giftcard from Westfield Mall. Here is list of the top 20 scorers in the competition:
01 Player JEFF KEMP = 37
For the past several weeks, I have posted entries on this blog regarding plans to make adjustments to scores and rankings for players who answer in an amount of time that is far faster than even I can answer my own questions.
Today, I applied my "very fast answer" algorithm, and as a consequence you will see changes in the rankings of players.
Some players moved up, some moved down.
The 13 August quiz asked you to answer this question:
"Which of the following statements regarding the BETWEEN clause of the INDICES OF feature are true?"
We scored the following choice as correct:
"The values in the BETWEEN clause can be any valid PLS_INTEGER value."
Several players, led by Sergey P., objected, pointing out that you could use, for example, 1.5 (which is clearly not a PLS_INTEGER value) for either of the expressions in the BETWEEN clause.
I will be conducting a third series of webcasts for Quest Software that will put you on the fast track to maximizing your understanding and use of Oracle PL/SQL. Here are lots of details and links for registration. I hope to "see" you there!
A few players wrote with concerns about the INSTR quiz, which tested your knowledge of the impact of using a negative value for the POS argument to the function. Here we go:
We have received occasional but persistent reports of players not able to see all the text for a quiz. Here are some typical descriptions:
"Hi Steven Yesterday (9th) was a very easy quiz but for answer 2 and 5, I just saw the boxes, but there was absolutely nothing in the corresponding Choice/Explanation field, so I haven't any reason to check the box (with nothing you can't do nothing. Unfortunately, now with the answer, I see what it should have been and that I have 2 mistakes because of that."
The quiz on 9 August asked the following question:
"Which of the following functions can you use to change the case of a string?"
We then listed UPPER, LOWER, INITCAP, NLS_INITCAP and REVERSE_CASE. We scored the first four as correct, the last as incorrect.
We received emails raising the following concerns:
Several players have requested a way to avoid being penalized heavily for missing quizzes or for making a silly mistake or for Internet failures that result in long delays is submitting responses. This issue has come up quite a bit lately, given the summer months and the tendency of normal human beings in the northern hemisphere to take holidays during this time.
In addition, I now manually make adjustments to scores when players report a problem. This is very time consuming and simply not sustainable or scalable (as we add more players).
We've upgraded the PL/SQL Challenge to 1.5, with the following new features and changes:
* New sponsors framework: we have upgraded support for sponsors so that we can have different kinds of sponsors. A part of this upgrade also implements a much more flexible foundation for defining competitions and awards for those competitions. This will mostly be transparent to players, but we thought you'd like to know.
This week I attended the first ACM conference on Bioinformatics and Computational Biology in Niagara Falls, NY. It was interesting to note who’s using what technology in their research. Here’s a breakdown: Databases: MySQL is the de facto winner for research. Oracle for clinical systems, mostly Oracle 10g implementations. That means moving data between the [...]
I received this email today from a player: