05 October 2013

Sad Day for the PL/SQL Challenge: Cheaters Removed

Since the early days of the PL/SQL Challenge, we have been aware of the possibility of cheating by players. In response, we developed a set of tools to analyze player data to identify patterns of answer submissions that could reflect one or another form of cheating (such as a single person having multiple accounts, or multiple people colluding to achieve high scores).

We have in the past applied these tools to identify players who answer too quickly, and made adjustments to their scores accordingly. When we apply the adjustment, we notify the players that:

It is certainly quite possible that a person answering so quickly (and correctly) is cheating by taking the quiz under a different account, figuring out the correct answers, and then submitting the answer under their "real" account. It is also possible that they knew that subject very well or simply guessed. Rather than automatically reject such answers, we analyze player patterns over a longer period of time, usually no less than two weeks. We then make adjustments to the timings and ranks of those players who answer, cumulatively, in so short an amount of time that there is no way to distinguish their pattern of play from someone who would be cheating. 

Today, it is my distinct non-privilege to announce that I have removed from the website three players who I believe have colluded over many quarters to take a whole bunch of the top prizes in the quarterly PL/SQL Championships. The players are (with their championship history under their names):

Frank Schrader

Q3 2010:12th, Q4 2010:30th, Q1 2011:1st, Q2 2011:5th, Q3 2011:1st, Q4 2011:1st, Q1 2012:13th, Q2 2012:3rd, Q3 2012:2nd, Q4 2012:4th, Q1 2013:2nd, Q2 2013:22nd

Dieter Kowalski

Q1 2012:21st, Q2 2012:8th, Q4 2012:16th, Q1 2013:24th, Q2 2013:16th

Konrad Schmidt (kowido)

Q1 2011:26th, Q2 2011:9th, Q3 2011:17th, Q4 2011:21st, Q1 2012:4th, Q2 2012:1st, Q3 2012:9th, Q4 2012:2nd, Q1 2013:1st, Q2 2013:15th

As you can see, two of our consistent champions dropped dramatically in ranking when in the Q2 2013 championship everyone played at the same time.

After I notified all three players of my determination and asked for a response, all three "people" immediately stopped playing. Only Frank even replied to my request and he protested his innocence. Unfortunately, it was not a convincing protest. The bottom line is that there is no way to distinguish their pattern of play from someone who would be cheating. 

Frank and Konrad cumulatively won $2800 in prizes on the PL/SQL Challenge site. This is, of course, a source of extreme frustration for me....but what can you do?

Well, here's what we can do: all rankings have been recalculated after these players' removal. We therefore have in many cases new winners for the championships. I am sorry that we will not be able to issue prizes to these new winners, but at least you will be able to print off and display your certificate of achievement - and these new achievements become a part of your profile and history on the PL/SQL Challenge website.

And - do I really need to say this? - let this be a warning to other players who are cheating or contemplating such: we will continue to enhance and apply our tools to root our cheaters, remove them from the site, and announce their crimes to the world.

We may also make our tools available on the website itself, so that any players can run the analysis and see if they can uncover cases of potential cheating to report to us.

New Weekly Quiz on Database Design

Since April 2010, the PL/SQL Challenge has offered daily, weekly and monthly quizzes on Oracle PL/SQL, SQL, deductive logic and Oracle Application Express. Oracle technologists have submitted over 740,000 answers to these quizzes. Hundreds have raved about how much they have learned, how much fun it is to compete (or not, as you choose!)....

This website is one of my proudest achievements, but I sure would love to have more of my developer and DBA friends around the world using the site.

So I am excited to announce a new weekly quiz on Database Design, which will start on 5 October.

Relational databases form the backbone of thousands, if not millions, of applications around the globe. A key part of building these applications is designing and implementing the data structures they use. Proper table design can mean the difference between a scalable, high performing database that is a joy to query and an unscalable mess that makes your brain melt.

Given the importance of databases, understanding good data modelling techniques and physical implementation methods are essential skills for architects, database administrators and developers creating database applications.

Building on the SQL and PL/SQL quizzes already available at the PL/SQL Challenge, the weekly Database Design Quiz kicks off on 5 October to help you build these skills. The quiz will cover many areas of database design, from logical design all the way to physical database design, including topics such as:
  • Normalization - ensuring you have high quality data
  • Referential integrity - saving you the time and effort of writing your own constraints
  • Indexing - enabling you to write fast and efficient queries
Whether you're an experienced data modeller or completely new to relational databases, the weekly Database Design Quiz offers you the opportunity to both learn new approaches and show off your expertise. It will teach techniques that you can use to improve the quality for your work and impress future employers with your achievements.

The person who has made this quiz possible is Chris Saxon, a long-time player on the PL/SQL Challenge. Chris is a database technologist with 10 years experience designing and building Oracle database applications. He currently works as the Data Architect for the airline Flybe, a role which sees him creating the data structures for the flybe.com database and the company's enterprise data warehouse. He also runs the blog www.sqlfail.com, a project to explain database concepts and other topics of interest using just SQL and PL/SQL. While not thinking about data, his spare time is filled chasing after his daughter Isabelle, born in January this year.

I have, by the way, seen pictures of Isabelle. She is beautiful!

But Chris is so devoted to his craft and so interested in helping others that he is going to give up precious time with his daughter to create and manage the quizzes.

So play the quiz! Every week! Starting 5 October (this Saturday).

If you have not yet visited the PL/SQL Challenge, it's easy to register and entirely free. Check it out!