tag:blogger.com,1999:blog-86776490495880075852024-03-13T10:14:01.917+00:00PL/SQL ChallengeThe PL/SQL Challenge (www.plsqlchallenge.com) offers a daily quiz on the PL/SQL language, through which thousands of Oracle technologists demonstrate and deepen their knowledge of PL/SQL. This blog contains posts by the PL/SQL Challenge founder, Steven Feuerstein, as well as comments from players.Steven Feuersteinhttp://www.blogger.com/profile/16619706770920320550noreply@blogger.comBlogger404125tag:blogger.com,1999:blog-8677649049588007585.post-80658943901213782632015-06-19T01:34:00.003+01:002015-06-19T01:34:30.455+01:00The Last Post on This Blog (for all the right reasons)Friends,<br />
<br />
I have used this blog to make announcements regarding the PL/SQL Challenge since April 2010.<br />
<br />
We had a great run, and now we can look forward to a greater future, as the PL/SQL Challenge is now an Oracle website:<br />
<br />
<a href="http://plsqlchallenge.oracle.com/">plsqlchallenge.oracle.com</a><br />
<br />
And that's not all: we now have an official blog at the official Oracle blogsphere:<br />
<br />
<a href="http://blogs.oracle.com/plsqlchallenge">blogs.oracle.com/plsqlchallenge</a><br />
<br />
So all future announcements will happen there.<br />
<br />
Thanks for all your support and dedication over the years!<br />
<br />
Warm regards,<br />
Steven FeuersteinSteven Feuersteinhttp://www.blogger.com/profile/16619706770920320550noreply@blogger.com0tag:blogger.com,1999:blog-8677649049588007585.post-36153434124068388972015-06-10T15:16:00.001+01:002015-06-10T15:16:53.326+01:00PL/SQL Challenge Website Joining Oracle!<div class="p1">
<span class="s1">When I (re)joined Oracle in March 2014, the <a href="http://plsqlchallenge.com/"><span class="s2">PL/SQL Challenge</span></a> website was also acquired by Oracle. I'd been thinking that in a few months or so, we'd have it up and running on an Oracle server, re-branded with lots of red.</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1">But then, well, I got kind of busy with all sorts of other stuff. My bad.</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1">But I am very happy to announce that over the coming weekend (13-14 June), <a href="http://plsqlchallenge.com/"><span class="s2">PL/SQL Challenge</span></a> will go offline for hopefully no more than a few days and then resurface as an Oracle website.</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1">And that's why <i>for the first time in five years</i>, we will not offer new, competitive quizzes on SQL or PL/SQL or anything else this coming week (we will still put up some of our "deja vu" quizzes). I don't want to set up quizzes and then not give you sufficient time to take them (and you never quite know what's going to happen so....).</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1">Now, those of you who've been to the website know that we use lots of orange (why? Because it's a pleasant color and also is the thematic color of my <a href="http://www.oreilly.com/pub/au/344"><span class="s2">Oracle PL/SQL books</span></a> published by O'Reilly Media):</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-nP7ex5QcBi8/VXhCPZ8cfJI/AAAAAAAAAV4/iHs8FHxuXhU/s1600/plchlogo.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="92" src="http://1.bp.blogspot.com/-nP7ex5QcBi8/VXhCPZ8cfJI/AAAAAAAAAV4/iHs8FHxuXhU/s400/plchlogo.jpg" width="400" /></a></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p3">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1">You are probably also very familiar with Oracle's use of red:</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-YhAN7gLpmSQ/VXhCV_7rpNI/AAAAAAAAAWA/poSr_Yk7Cgw/s1600/oraclecloud.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-YhAN7gLpmSQ/VXhCV_7rpNI/AAAAAAAAAWA/poSr_Yk7Cgw/s1600/oraclecloud.jpg" /></a></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1">Well, do not worry - we are not going to replace all that orange with red. That would make the website unreadable, an assault on the eyes. But come 15 June, our banner will be transformed as follows:</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-ECUjS2Nws44/VXhCeaXSY2I/AAAAAAAAAWI/woVaOlZVBzg/s1600/plchmenuo.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="82" src="http://2.bp.blogspot.com/-ECUjS2Nws44/VXhCeaXSY2I/AAAAAAAAAWI/woVaOlZVBzg/s400/plchmenuo.jpg" width="400" /></a></div>
<div class="p2">
<br /><span class="s1"></span></div>
<div class="p1">
<span class="s1">Chills running down my spine....so exciting!</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1">The site will be largely unchanged from current functioning. You will, however, need to accept the Oracle Terms of Use. In addition, since some players may have been using an email address on the PL/SQL Challenge different from their Oracle Single Sign-on email, we will give you an opportunity to synchronize the two accounts:</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-h6X2rwkYVNo/VXhCiJykmnI/AAAAAAAAAWQ/aXlQzRC1iPU/s1600/synch.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="177" src="http://1.bp.blogspot.com/-h6X2rwkYVNo/VXhCiJykmnI/AAAAAAAAAWQ/aXlQzRC1iPU/s400/synch.jpg" width="400" /></a></div>
<div class="p2">
<br /><span class="s1"></span></div>
<div class="p1">
<span class="s1">The "fine print" asks you to authorize us to transfer profile information from the PL/SQL Challenge to your <a href="http://profile.oracle.com/"><span class="s2">Oracle Profile</span></a>. We are asking for this, because the PL/SQL Challenge collected all sorts of profile information, some of which is already in your Oracle Profile, which is the "source of truth" at Oracle. So you will no longer be able to provide your name, country or company in the PL/SQL Challenge. Instead this information is stored in your Oracle Profile.</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<br />
<div class="p1">
<span class="s1">We plan over time to integrate points on the PL/SQL Challenge with OTN community rankings, but that may take a little while to complete. Do not worry, though! All your hard work and dedication on this site <i>will</i> be recognized.</span></div>
<div class="p1">
<br /><span class="s1"></span></div>
<div class="p2">
<span class="s1">I look forward to a greatly increased level of quiz-taking activity, as well as a broader array of quizzes offered, and I hope you do, too!</span></div>
Steven Feuersteinhttp://www.blogger.com/profile/16619706770920320550noreply@blogger.com3tag:blogger.com,1999:blog-8677649049588007585.post-9933207321520476822015-05-11T15:31:00.001+01:002015-05-11T15:31:21.276+01:00Obfuscated SQL Contest Winners!Chris Saxon and Kim Berg Hansen collaborated to offer an Obfuscated SQL Contest:<br />
<br />
<div class="p1">
<span style="color: blue;"><span class="s1">Daylight savings changes are coming in across the world! </span>Scheduling meetings with colleagues across the globe is always a challenge. With different countries switching on different dates (and some not switching at all!) through March this is even harder. To help us navigate this, we'd like a SQL query that returns the current date and time for different timezones. There is, however, a twist. We don't want plain or boring or readable SQL.</span></div>
<div class="p1">
<span style="color: blue;"><br /></span></div>
<div class="p1">
<span class="s1"><b><span style="color: blue;">We want the most ingenious, creative, quirky and downright weird SQL you can muster to perform this task.</span></b></span></div>
<div class="p2">
<span class="s2"><span style="color: blue;"><br /></span></span></div>
<div class="p2">
<span style="color: blue;"><span class="s2">And thus begins the </span><span class="s1">Obfuscated SQL Contest</span><span class="s2">.</span></span></div>
<div class="p1">
<span class="s1"><b><span style="color: blue;"><br /></span></b></span></div>
<div class="p1">
<span class="s1"><b><span style="color: blue;">The challenge: </span></b></span></div>
<div class="p1">
<span class="s1"><span style="color: blue;"><br /></span></span></div>
<div class="p1">
<span class="s1"><span style="color: blue;">Write a single SQL statement that returns the current date and time for all the following locations:</span></span></div>
<div class="p1">
<span class="s1"><span style="color: blue;">Bangalore, London, New York, Chicago and Denver.</span></span></div>
<div class="p1">
<span class="s1"><b><span style="color: blue;"><br /></span></b></span></div>
<div class="p1">
<span class="s1"><b><span style="color: blue;">The rules:</span></b></span></div>
<ul class="ul1">
<li class="li1"><span class="s1"><span style="color: blue;">The output must match this format (all on one line):</span></span></li>
</ul>
<div class="p3">
<span class="s1"><span style="color: blue;">BAN - DD-MON-YYYY HH24:MI:SS; LON - DD-MON-YYYY HH24:MI:SS; NEW - DD-MON-YYYY HH24:MI:SS; CHI - DD-MON-YYYY HH24:MI:SS; DEN - DD-MON-YYYY HH24:MI:SS</span></span></div>
<ul class="ul1">
<li class="li1"><span class="s1"><span style="color: blue;">Maximum length the SQL statement can be is 4,000 characters (after removing unnecessary whitespace)</span></span></li>
<li class="li1"><span class="s1"><span style="color: blue;">Supply the minimum version of Oracle required to execute the query and (if relevant) the maximum</span></span></li>
<li class="li1"><span class="s1"><span style="color: blue;">You cannot create any additional objects yourself. However you can use any objects supplied with the default installation of Oracle Enterprise Edition</span></span></li>
</ul>
<div class="p1">
<span class="s1"><span style="color: blue;">The judging panel will pick a winner or winners based on the following criteria:</span></span></div>
<br />
<ul class="ul1">
<li class="li1"><span class="s1"><span style="color: blue;">Using little-known or rarely-used features of Oracle</span></span></li>
<li class="li1"><span class="s1"><span style="color: blue;">Exploiting features for something other than their intended purpose</span></span></li>
<li class="li1"><span class="s1"><span style="color: blue;">Making use of multiple features within a single query</span></span></li>
<li class="li1"><span class="s1"><span style="color: blue;">Quirky, funny or otherwise ingenious SQL code</span></span></li>
</ul>
<div>
53 players submitted some crazy SQL, and Chris and Kim have selected the winner and runners-up:</div>
<div>
<br /></div>
<div>
<div class="p1">
<span class="s1"><b>Overall winner</b>: Stelios Vlasopoulos</span></div>
<div class="p1">
<span class="s1"><b>Runner up</b>: Sean Stuber</span></div>
<div class="p1">
<span class="s1"><b>Runner up</b>: James Su</span></div>
<div class="p1">
<span class="s1"><br /></span></div>
<div class="p1">
<span class="s1">Thanks to everyone for participating in this contest. We hope to do more in the future.</span></div>
<div class="p1">
<span class="s1"><br /></span></div>
<div class="p1">
<span class="s1">Check out all the details <a href="https://blogs.oracle.com/sql/entry/obfuscated_sql_contest_winners" target="_blank">here</a>. </span></div>
</div>
Steven Feuersteinhttp://www.blogger.com/profile/16619706770920320550noreply@blogger.com0tag:blogger.com,1999:blog-8677649049588007585.post-23938696049521877402015-03-26T21:38:00.001+00:002015-03-26T21:39:09.977+00:00Tweaking the Weekly Quizzes at the PL/SQL ChallengeWe've decided a couple of things:<br />
<div>
<ol>
<li>Enough with the really dull names as in "Weekly SQL Quiz".</li>
<li>It's time to start up Deja Vu quizzes for SQL, Database Design, and Logic.</li>
</ol>
</div>
<div>
So starting on 4 April 2015 (just shy of the fifth anniversary of the PL/SQL Challenge)....</div>
<div>
<br /></div>
<div>
<span style="font-size: large;">SQL Quizzes</span></div>
<div>
<br /></div>
<div>
We will rename and continue the weekly SQL quiz as <b>Select from SQL.</b></div>
<div>
<br /></div>
And we will add a <b>Deja Vu SQL</b> quiz.<br />
<div>
<br /></div>
<div>
<span style="font-size: large;">Database Design Quizzes</span></div>
<div>
<br /></div>
<div>
The weekly Database Design quiz will be renamed to <b>Dynamite DB Design</b>, but otherwise continue unchanged.</div>
<div>
<br /></div>
<div>
And we will add a <b>Deja Vu</b> <b>DB Design </b>quiz.</div>
<div>
<br /></div>
<div>
<span style="font-size: large;">Logic Quizzes</span></div>
<div>
<br /></div>
<div>
The weekly Logic quiz will be renamed to <b>I Love Logic</b>, and will free itself from the constraints of our Mastermind-style quiz and offer various formats of logic puzzlers.</div>
<div>
<br /></div>
<div>
And we will add a <b>Deja Vu Logic</b> quiz.</div>
<div>
<br /></div>
<div>
<span style="font-size: large;">Annual Championships</span></div>
<div>
<br /></div>
<div>
For 2015 and beyond, the rankings of all competitive quizzes (Oracle Magazine and Deja Vu quizzes are, for example, <i>not</i> competitive) in a domain will be combined to determine eligibility in the annual championships.</div>
Steven Feuersteinhttp://www.blogger.com/profile/16619706770920320550noreply@blogger.com2tag:blogger.com,1999:blog-8677649049588007585.post-28897754342772139802015-03-16T15:23:00.000+00:002015-03-16T15:23:00.946+00:00Results of 2014 PL/SQL ChampionshipYou will find below the rankings for the 2014 PL/SQL Championship; the number next to the player's name is the number of times that player has participated in a championship (you will see "1" for all players, since this was the first <i>annual</i> PL/SQL championship).<br />
<br />
Congratulations first and foremost to our top-ranked players:<br />
<br />
<b>1st Place: <a href="http://plsqlchallenge.com/pls/apex/f?p=10000:PROFILE:9267537980522::NO::P1051_USER_ID:4294:">mentzel.iudith</a> of Israel<br /><br />2nd Place: <a href="http://plsqlchallenge.com/pls/apex/f?p=10000:PROFILE:9267537980522::NO::P1051_USER_ID:24095:">Andrey Zaytsev</a> of Russia<br /><br />3rd Place: <a href="http://plsqlchallenge.com/pls/apex/f?p=10000:PROFILE:9267537980522::NO::P1051_USER_ID:7271:">_tiki_4_</a> of Germany</b>
<br />
<br />Next, congratulations to everyone who played in the championship. I hope you found it entertaining, challenging and educational. And for those who were not able to participate in the championship, you can take the quizzes next week through the Practice feature. We will also make the championship as a whole available as a Test, so you can take it just like these players did.<br />
<br />
Finally, a big thanks to our reviewers, especially Elic, who not only reviewed three quizzes but also wrote two - a tremendous help for a busy Oracle Developer Advocate for PL/SQL (that is, me).<br />
<br />
Steven Feuerstein<br />
<br />
<table style="border-collapse: collapse; border: 1px solid blue;">
<tbody>
<tr style="border-bottom: 1px solid blue; text-align: center;">
<th style="width: 10%;">Rank</th>
<th style="width: 30%;">Name</th>
<th style="width: 30%;">Country</th>
<th style="width: 20%;">Total Time</th>
<th style="width: 20%;">% Correct</th>
<th style="width: 10%;">Total Score</th>
</tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>1</td><td>mentzel.iudith (1)</td><td>Israel</td><td>32 mins 37 secs</td><td>88%</td><td>7520</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>2</td><td>Andrey Zaytsev (1)</td><td>Russia</td><td>34 mins 50 secs</td><td>84%</td><td>7211</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>3</td><td>_tiki_4_ (1)</td><td>Germany</td><td>22 mins 00 secs</td><td>83%</td><td>7112</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>4</td><td>Karel Prech (1)</td><td>Czech Republic</td><td>33 mins 25 secs</td><td>83%</td><td>7066</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>5</td><td>Ravshan Abbasov (1)</td><td>Uzbekistan</td><td>29 mins 50 secs</td><td>81%</td><td>6931</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>6</td><td>VictorD (1)</td><td>Russia</td><td>30 mins 20 secs</td><td>81%</td><td>6929</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>7</td><td>Jeroen Rutte (1)</td><td>Netherlands</td><td>34 mins 52 secs</td><td>81%</td><td>6911</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>8</td><td>João Barreto (1)</td><td>Portugal</td><td>24 mins 07 secs</td><td>79%</td><td>6804</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>9</td><td>Pavel Noga (1)</td><td>Czech Republic</td><td>33 mins 56 secs</td><td>78%</td><td>6614</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>10</td><td>Michal Cvan (1)</td><td>Slovakia</td><td>34 mins 23 secs</td><td>78%</td><td>6612</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>11</td><td>dmitrysk (1)</td><td>Russia</td><td>31 mins 41 secs</td><td>76%</td><td>6473</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>12</td><td>Kuvardin Evgeniy (1)</td><td>Russia</td><td>34 mins 22 secs</td><td>76%</td><td>6463</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>13</td><td>Chad Lee (1)</td><td>United States</td><td>25 mins 14 secs</td><td>74%</td><td>6349</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>14</td><td>Viacheslav Stepanov (1)</td><td>Russia</td><td>33 mins 58 secs</td><td>74%</td><td>6314</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>15</td><td>Siim Kask (1)</td><td>Estonia</td><td>33 mins 59 secs</td><td>74%</td><td>6314</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>16</td><td>Ivan Blanarik (1)</td><td>Slovakia</td><td>31 mins 13 secs</td><td>72%</td><td>6175</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>17</td><td>Marcus Matzberger (1)</td><td>Germany</td><td>27 mins 44 secs</td><td>71%</td><td>6039</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>18</td><td>Rytis Budreika (1)</td><td>Lithuania</td><td>16 mins 42 secs</td><td>69%</td><td>5933</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>19</td><td>gobruins (1)</td><td>United States</td><td>23 mins 35 secs</td><td>69%</td><td>5906</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>20</td><td>Christoph Hillinger (1)</td><td>Austria</td><td>28 mins 51 secs</td><td>69%</td><td>5885</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>21</td><td>Niels Hecker (1)</td><td>Germany</td><td>30 mins 28 secs</td><td>69%</td><td>5878</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>22</td><td>Patrick Barel (1)</td><td>Netherlands</td><td>20 mins 23 secs</td><td>67%</td><td>5768</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>23</td><td>swart260 (1)</td><td>Netherlands</td><td>32 mins 36 secs</td><td>67%</td><td>5720</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>24</td><td>Jan Šerák (1)</td><td>Czech Republic</td><td>33 mins 08 secs</td><td>67%</td><td>5717</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>25</td><td>Chase Mei (1)</td><td>Canada</td><td>34 mins 26 secs</td><td>67%</td><td>5712</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>26</td><td>Joaquin Gonzalez (1)</td><td>Spain</td><td>17 mins 40 secs</td><td>66%</td><td>5629</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>27</td><td>Ingimundur Gudmundsson (1)</td><td>Norway</td><td>33 mins 18 secs</td><td>66%</td><td>5567</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>28</td><td>Martin_Scholz_Berlin_München (1)</td><td>Germany</td><td>34 mins 31 secs</td><td>64%</td><td>5412</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>29</td><td>Krzysztof Helbin (1)</td><td>Poland</td><td>14 mins 10 secs</td><td>62%</td><td>5343</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>30</td><td>Rakesh Dadhich (1)</td><td>India</td><td>18 mins 53 secs</td><td>62%</td><td>5324</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>31</td><td>Leszek Grudzień (1)</td><td>Poland</td><td>24 mins 59 secs</td><td>62%</td><td>5300</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>32</td><td>tonyC (1)</td><td>United Kingdom</td><td>32 mins 23 secs</td><td>62%</td><td>5270</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>33</td><td>Henry Abeska (1)</td><td>Czech Republic</td><td>22 mins 26 secs</td><td>55%</td><td>4710</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>34</td><td>Alex Stirbu (1)</td><td>Romania</td><td>23 mins 47 secs</td><td>55%</td><td>4705</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>35</td><td>Sean Molloy (1)</td><td>United States</td><td>31 mins 56 secs</td><td>55%</td><td>4672</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>36</td><td>Manfred Kleander (1)</td><td>Austria</td><td>34 mins 28 secs</td><td>55%</td><td>4662</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>37</td><td>Pavel Vorontsov (1)</td><td>Russia</td><td>11 mins 29 secs</td><td>53%</td><td>4604</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>38</td><td>Stelios Vlasopoulos (1)</td><td>Belgium</td><td>24 mins 22 secs</td><td>50%</td><td>4253</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>39</td><td>Jerry Bull (1)</td><td>United States</td><td>02 mins 45 secs</td><td>10%</td><td>889</td></tr>
</tbody></table>
<h2>
</h2>
Steven Feuersteinhttp://www.blogger.com/profile/16619706770920320550noreply@blogger.com0tag:blogger.com,1999:blog-8677649049588007585.post-7248085376144199162015-03-03T21:47:00.000+00:002015-03-03T21:47:07.110+00:00Results of 2014 Annual Logic Championship<br />
You will find below the rankings for the 2014 Logic Championship; the number next to the player's name is the number of times that player has participated in a championship.<br />
<br />
Congratulations first and foremost to our top-ranked players:<br />
<br />
<b>1st Place: <a href="http://plsqlchallenge.com/pls/apex/f?p=10000:PROFILE:16200888908757::NO::P1051_USER_ID:3250:">Mehrab</a> of United Kingdom - 100% correct!<br /><br />2nd Place: <a href="http://plsqlchallenge.com/pls/apex/f?p=10000:PROFILE:16200888908757::NO::P1051_USER_ID:20276:">Christoph Hillinger</a> of Austria</b><b> - 98% correct!</b><b><br /><br />3rd Place: <a href="http://plsqlchallenge.com/pls/apex/f?p=10000:PROFILE:16200888908757::NO::P1051_USER_ID:14121:">Rytis Budreika</a> of Lithuania</b><b> - 98% correct!</b><b><br /></b>Next, congratulations to everyone who played in the championship. I hope you found it entertaining, challenging and educational. And for those who were not able to participate in the championship, you can take the quizzes next week through the Practice feature. We will also make the championship as a whole available as a Test, so you can take it just like these players did.<br />
<br />
This championship marks a big change for the Logic quizzes. For several years we have used a Mastermind-like format for our quizzes. Yet we also published (and, of course, anyone could also write) automated solvers for Mastermind.<br />
<br />
As a result, we changed our quizzes for the championship and expect to do so for the weekly quizzes as well.<br />
<br />
Steven Feuerstein<br />
<br />
PS - Below the table of results for this championship, you will find another list showing the championship history of each of these players.<br />
<br />
<table style="border-collapse: collapse; border: 1px solid blue;">
<tbody>
<tr style="border-bottom: 1px solid blue; text-align: center;">
<th style="width: 10%;">Rank</th>
<th style="width: 30%;">Name</th>
<th style="width: 30%;">Country</th>
<th style="width: 20%;">Total Time</th>
<th style="width: 20%;">% Correct</th>
<th style="width: 10%;">Total Score</th>
</tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>1</td><td>Mehrab (2)</td><td>United Kingdom</td><td>44 mins 28 secs</td><td>100%</td><td>4159</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>2</td><td>Christoph Hillinger (2)</td><td>Austria</td><td>32 mins 22 secs</td><td>98%</td><td>4086</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>3</td><td>Rytis Budreika (2)</td><td>Lithuania</td><td>38 mins 16 secs</td><td>98%</td><td>4069</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>4</td><td>gobruins (2)</td><td>United States</td><td>26 mins 29 secs</td><td>95%</td><td>3996</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>5</td><td>Viacheslav Stepanov (2)</td><td>Russia</td><td>44 mins 03 secs</td><td>95%</td><td>3946</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>6</td><td>Rich Dellheim (2)</td><td>United States</td><td>39 mins 57 secs</td><td>93%</td><td>3850</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>7</td><td>Pavel Zeman (1)</td><td>Czech Republic</td><td>43 mins 42 secs</td><td>93%</td><td>3839</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>8</td><td>craig.mcfarlane (1)</td><td>Norway</td><td>44 mins 13 secs</td><td>93%</td><td>3838</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>9</td><td>Naresh Kumar (2)</td><td>Malaysia</td><td>44 mins 53 secs</td><td>93%</td><td>3836</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>10</td><td>Hamid Talebian (1)</td><td>Netherlands</td><td>38 mins 58 secs</td><td>90%</td><td>3746</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>11</td><td>Elic (2)</td><td>Belarus</td><td>42 mins 45 secs</td><td>90%</td><td>3735</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>12</td><td>JasonC (2)</td><td>United Kingdom</td><td>35 mins 05 secs</td><td>85%</td><td>3543</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>13</td><td>katuinbouter (2)</td><td>Netherlands</td><td>42 mins 48 secs</td><td>85%</td><td>3521</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>14</td><td>NickL (1)</td><td>United Kingdom</td><td>43 mins 18 secs</td><td>85%</td><td>3519</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>15</td><td>Jerry Bull (2)</td><td>United States</td><td>44 mins 06 secs</td><td>83%</td><td>3410</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>16</td><td>danad (2)</td><td>Czech Republic</td><td>44 mins 46 secs</td><td>83%</td><td>3408</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>17</td><td>Kuvardin Evgeniy (1)</td><td>Russia</td><td>44 mins 07 secs</td><td>80%</td><td>3303</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>18</td><td>mentzel.iudith (2)</td><td>Israel</td><td>43 mins 45 secs</td><td>78%</td><td>3196</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>19</td><td>Sandra99 (2)</td><td>Italy</td><td>44 mins 34 secs</td><td>78%</td><td>3194</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>20</td><td>Telmoc (1)</td><td>Portugal</td><td>40 mins 18 secs</td><td>65%</td><td>2671</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>21</td><td>Niels Hecker (2)</td><td>Germany</td><td>43 mins 35 secs</td><td>65%</td><td>2661</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>22</td><td>Eric Levin (1)</td><td>United States</td><td>44 mins 54 secs</td><td>65%</td><td>2657</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>23</td><td>Krzysztof Helbin (1)</td><td>Poland</td><td>29 mins 45 secs</td><td>63%</td><td>2594</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>24</td><td>Alex Stirbu (1)</td><td>Romania</td><td>44 mins 02 secs</td><td>63%</td><td>2553</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>25</td><td>Köteles Zsolt (1)</td><td>Hungary</td><td>44 mins 07 secs</td><td>63%</td><td>2553</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>26</td><td>Sean Molloy (2)</td><td>United States</td><td>44 mins 32 secs</td><td>63%</td><td>2551</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>27</td><td>Justin Cave (2)</td><td>United States</td><td>40 mins 46 secs</td><td>60%</td><td>2455</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>28</td><td>tommyTT (1)</td><td>Poland</td><td>41 mins 40 secs</td><td>60%</td><td>2452</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>29</td><td>Stelios Vlasopoulos (2)</td><td>Belgium</td><td>43 mins 45 secs</td><td>60%</td><td>2446</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>30</td><td>MarkM. (2)</td><td>Germany</td><td>44 mins 42 secs</td><td>60%</td><td>2444</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>31</td><td>Chad Lee (2)</td><td>United States</td><td>44 mins 13 secs</td><td>58%</td><td>2338</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>32</td><td>Zoran Krekic (1)</td><td>Croatia</td><td>24 mins 52 secs</td><td>55%</td><td>2286</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>33</td><td>Jason H (2)</td><td>United States</td><td>37 mins 07 secs</td><td>50%</td><td>2037</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>34</td><td>Oleksiy Varchyn (1)</td><td>Norway</td><td>17 mins 01 secs</td><td>48%</td><td>1987</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>36</td><td>Henry Abeska (1)</td><td>Czech Republic</td><td>25 mins 19 secs</td><td>38%</td><td>1535</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>37</td><td>Cor van Berkel (1)</td><td>Netherlands</td><td>10 mins 48 secs</td><td>25%</td><td>1041</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>38</td><td>AndreyBerliner (1)</td><td>Ukraine</td><td>19 mins 26 secs</td><td>23%</td><td>909</td></tr>
</tbody></table>
<h2>
Championship Performance History</h2>
After each name, the quarter in which he or she played, and the ranking in that championship. <table style="border-collapse: collapse; border: 1px solid blue;">
<tbody>
<tr style="border-bottom: 1px solid blue; text-align: center;">
<th style="width: 30%;">Name</th>
<th style="width: 70%;">History</th>
</tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Mehrab</td><td>2013:30th, 2014:1st</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Christoph Hillinger</td><td>2013:18th, 2014:2nd</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Rytis Budreika</td><td>2013:12th, 2014:3rd</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>gobruins</td><td>2014:4th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Viacheslav Stepanov</td><td>2013:1st, 2014:5th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Rich Dellheim</td><td>2013:31st, 2014:6th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Pavel Zeman</td><td>2014:7th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>craig.mcfarlane</td><td>2014:8th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Naresh Kumar</td><td>2014:9th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Hamid Talebian</td><td>2014:10th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Elic</td><td>2013:13th, 2014:11th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>JasonC</td><td>2013:35th, 2014:12th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>katuinbouter</td><td>2013:21st, 2014:13th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>NickL</td><td>2014:14th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Jerry Bull</td><td>2013:2nd, 2014:15th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>danad</td><td>2013:23rd, 2014:16th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Kuvardin Evgeniy</td><td>2014:17th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>mentzel.iudith</td><td>2013:4th, 2014:18th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Sandra99</td><td>2013:17th, 2014:19th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Telmoc</td><td>2014:20th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Niels Hecker</td><td>2013:3rd, 2014:21st</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Eric Levin</td><td>2014:22nd</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Krzysztof Helbin</td><td>2014:23rd</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Alex Stirbu</td><td>2014:24th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Köteles Zsolt</td><td>2014:25th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Sean Molloy</td><td>2013:24th, 2014:26th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Justin Cave</td><td>2014:27th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>tommyTT</td><td>2014:28th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Stelios Vlasopoulos</td><td>2013:16th, 2014:29th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>MarkM.</td><td>2013:10th, 2014:30th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Chad Lee</td><td>2013:34th, 2014:31st</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Zoran Krekic</td><td>2014:32nd</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Jason H</td><td>2013:14th, 2014:33rd</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Oleksiy Varchyn</td><td>2014:34th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>PLCHTEST</td><td>2014:35th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Henry Abeska</td><td>2014:36th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Cor van Berkel</td><td>2014:37th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>AndreyBerliner</td><td>2014:38th</td></tr>
</tbody></table>
Steven Feuersteinhttp://www.blogger.com/profile/16619706770920320550noreply@blogger.com1tag:blogger.com,1999:blog-8677649049588007585.post-85769276155689222862015-02-26T12:03:00.000+00:002015-02-26T12:03:05.335+00:00PL/SQL Championship for 26 February PostponedWe will NOT hold the championship today.<br />
<br />
Even if the website becomes available within next two hours, I do not want to take a chance at starting the competition and then having problems before it is done.<br />
<br />
We will reschedule for a day and time in March.<br />
<br />
Participants will receive an email for a new date and time soon.<br />
<br />
But based on requests from the last one, I will put this out idea out now:<br />
<br />
What do you think of holding the championship on Saturday?<br />
<br />
More specifically, please post a comment here if you are participating in the 2014 PL/SQL championship and you <b>cannot</b> or <b>do not want to</b> compete on SaturdaySteven Feuersteinhttp://www.blogger.com/profile/16619706770920320550noreply@blogger.com9tag:blogger.com,1999:blog-8677649049588007585.post-4594708736479605992015-02-26T11:24:00.003+00:002015-02-26T11:24:57.076+00:00Three Out of Four Isn't Too BadWe held two annual championships last week (SQL and Database Design).<br />
<br />
We held a third this week on Logic.<br />
<br />
They all went pretty smoothly.<br />
<br />
In 2.5 hours it is time for the grand finale: the PL/SQL Championship.<br />
<br />
And the PL/SQL Challenge website just went down. Possibly another DDOS attack.<br />
<br />
I suppose I should feel proud that our website is so high profile, so mission critical, that someone thinks it is worth their time to attack it.<br />
<br />
Except I know the site is <i>not</i> all that high profile and is definitely <i>not</i> mission critical.<br />
<br />
So I am just really irritated.<br />
<br />
Well, worst comes to worst, we will just reschedule.<br />
<br />
That's better than having the championship start and <i>then</i> the site goes down.<br />
<br />
Because in that case, I have to produce new quizzes. That would be a <i>serious</i> hassle.Steven Feuersteinhttp://www.blogger.com/profile/16619706770920320550noreply@blogger.com0tag:blogger.com,1999:blog-8677649049588007585.post-49893089142336775262015-02-24T11:49:00.003+00:002015-02-24T11:49:29.277+00:00Results of First-ever Database Design Annual ChampionshipYou will find below the rankings for the 2014 championship; the number next to the player's name is the number of times that player has participated in a championship.<br />
<br />
Congratulations first and foremost to our top-ranked players:<br />
<br />
<b>1st Place: <a href="http://plsqlchallenge.com/pls/apex/f?p=10000:PROFILE:4013252038180::NO::P1051_USER_ID:1444:">Sean Molloy</a> of United States<br /><br />2nd Place: <a href="http://plsqlchallenge.com/pls/apex/f?p=10000:PROFILE:4013252038180::NO::P1051_USER_ID:3390:">Pavel Zeman</a> of Czech Republic<br /><br />3rd Place: <a href="http://plsqlchallenge.com/pls/apex/f?p=10000:PROFILE:4013252038180::NO::P1051_USER_ID:1651:">Justin Cave</a> of United States</b><br />
<br />
As you can see in the table below, the ranking was very tight, with the top two players both getting 91% correct, and the next <i>four</i> all with 87% correct.<br />
<br />
Next, congratulations to everyone who played in the championship. I hope you found it entertaining, challenging and educational. And for those who were not able to participate in the championship, you can take the quizzes next week through the Practice feature. We will also make the championship as a whole available as a Test, so you can take it just like these players did.<br />
<br />
Thanks and congratulations to the Database Design Quizmaster, Chris Saxon, also our brand-new Oracle Developer Advocate for SQL.<br />
<br />
Steven Feuerstein<br />
<br />
<table style="border-collapse: collapse; border: 1px solid blue;">
<tbody>
<tr style="border-bottom: 1px solid blue; text-align: center;">
<th style="width: 10%;">Rank</th>
<th style="width: 30%;">Name</th>
<th style="width: 30%;">Country</th>
<th style="width: 20%;">Total Time</th>
<th style="width: 20%;">% Correct</th>
<th style="width: 10%;">Total Score</th>
</tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>1</td><td>Sean Molloy (1)</td><td>United States</td><td>23 mins 21 secs</td><td>91%</td><td>2657</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>2</td><td>Pavel Zeman (1)</td><td>Czech Republic</td><td>38 mins 25 secs</td><td>91%</td><td>2596</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>3</td><td>Justin Cave (1)</td><td>United States</td><td>23 mins 14 secs</td><td>87%</td><td>2457</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>4</td><td>Elic (1)</td><td>Belarus</td><td>28 mins 30 secs</td><td>87%</td><td>2436</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>5</td><td>mentzel.iudith (1)</td><td>Israel</td><td>28 mins 34 secs</td><td>87%</td><td>2436</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>6</td><td>Sandra99 (1)</td><td>Italy</td><td>34 mins 22 secs</td><td>87%</td><td>2413</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>7</td><td>Stelios Vlasopoulos (1)</td><td>Belgium</td><td>35 mins 22 secs</td><td>83%</td><td>2259</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>8</td><td>Viacheslav Stepanov (1)</td><td>Russia</td><td>20 mins 06 secs</td><td>78%</td><td>2220</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>9</td><td>Andrey Zaytsev (1)</td><td>Russia</td><td>35 mins 43 secs</td><td>78%</td><td>2207</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>10</td><td>Eric Levin (1)</td><td>United States</td><td>38 mins 55 secs</td><td>78%</td><td>2194</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>11</td><td>Christoph Hillinger (1)</td><td>Austria</td><td>15 mins 06 secs</td><td>78%</td><td>2190</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>12</td><td>Michal Cvan (1)</td><td>Slovakia</td><td>36 mins 31 secs</td><td>78%</td><td>2154</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>13</td><td>Siim Kask (1)</td><td>Estonia</td><td>20 mins 26 secs</td><td>74%</td><td>2118</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>14</td><td>Jan van Overveld (1)</td><td>Netherlands</td><td>23 mins 26 secs</td><td>74%</td><td>2106</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>15</td><td>Niels Hecker (1)</td><td>Germany</td><td>36 mins 56 secs</td><td>78%</td><td>2102</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>16</td><td>Ivan Blanarik (1)</td><td>Slovakia</td><td>19 mins 30 secs</td><td>74%</td><td>2072</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>17</td><td>Chad Lee (1)</td><td>United States</td><td>32 mins 45 secs</td><td>74%</td><td>2069</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>18</td><td>_tiki_4_ (1)</td><td>Germany</td><td>08 mins 35 secs</td><td>74%</td><td>2066</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>19</td><td>Kuvardin Evgeniy (1)</td><td>Russia</td><td>28 mins 49 secs</td><td>74%</td><td>1985</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>20</td><td>Chase Mei (1)</td><td>Canada</td><td>07 mins 58 secs</td><td>70%</td><td>1968</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>21</td><td>Joaquin Gonzalez (1)</td><td>Spain</td><td>16 mins 33 secs</td><td>70%</td><td>1934</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>22</td><td>danad (1)</td><td>Czech Republic</td><td>30 mins 46 secs</td><td>70%</td><td>1927</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>23</td><td>Maxim Borunov (1)</td><td>Russia</td><td>35 mins 53 secs</td><td>70%</td><td>1906</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>24</td><td>Pavel Noga (1)</td><td>Czech Republic</td><td>39 mins 31 secs</td><td>70%</td><td>1892</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>25</td><td>Oleksiy Varchyn (1)</td><td>Norway</td><td>12 mins 57 secs</td><td>65%</td><td>1848</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>26</td><td>Jan Šerák (1)</td><td>Czech Republic</td><td>29 mins 45 secs</td><td>65%</td><td>1831</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>27</td><td>Leszek Grudzień (1)</td><td>Poland</td><td>18 mins 23 secs</td><td>65%</td><td>1826</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>28</td><td>Manfred Kleander (1)</td><td>Austria</td><td>36 mins 13 secs</td><td>70%</td><td>1805</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>29</td><td>Rytis Budreika (1)</td><td>Lithuania</td><td>07 mins 16 secs</td><td>65%</td><td>1771</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>30</td><td>Michal P. (1)</td><td>Poland</td><td>22 mins 26 secs</td><td>65%</td><td>1760</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>31</td><td>Anna Onishchuk (1)</td><td>Ireland</td><td>15 mins 50 secs</td><td>65%</td><td>1737</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>32</td><td>Marcus Matzberger (1)</td><td>Germany</td><td>22 mins 19 secs</td><td>61%</td><td>1661</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>33</td><td>Sachi (1)</td><td>India</td><td>11 mins 00 secs</td><td>57%</td><td>1606</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>34</td><td>Henry Abeska (1)</td><td>Czech Republic</td><td>13 mins 08 secs</td><td>61%</td><td>1597</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>35</td><td>Mehrab (1)</td><td>United Kingdom</td><td>39 mins 16 secs</td><td>61%</td><td>1593</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>36</td><td>Naresh Kumar (1)</td><td>Malaysia</td><td>30 mins 22 secs</td><td>61%</td><td>1579</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>37</td><td>Krzysztof Helbin (1)</td><td>Poland</td><td>19 mins 07 secs</td><td>61%</td><td>1574</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>38</td><td>PZOL (1)</td><td>Hungary</td><td>34 mins 30 secs</td><td>61%</td><td>1562</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>39</td><td>Tobias Stark (1)</td><td>Germany</td><td>27 mins 01 secs</td><td>57%</td><td>1542</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>40</td><td>dannyg64 (1)</td><td>United States</td><td>19 mins 14 secs</td><td>57%</td><td>1523</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>41</td><td>João Barreto (1)</td><td>Portugal</td><td>30 mins 57 secs</td><td>57%</td><td>1476</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>42</td><td>MarkM. (1)</td><td>Germany</td><td>28 mins 53 secs</td><td>48%</td><td>1184</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>43</td><td>Ravshan Abbasov (1)</td><td>Uzbekistan</td><td>28 mins 13 secs</td><td>43%</td><td>1087</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>44</td><td>Scott Wesley (1)</td><td>Australia</td><td>00 mins 45 secs</td><td>17%</td><td>397</td></tr>
</tbody></table>
Steven Feuersteinhttp://www.blogger.com/profile/16619706770920320550noreply@blogger.com1tag:blogger.com,1999:blog-8677649049588007585.post-15503387979826198512015-02-21T12:41:00.003+00:002015-02-24T11:45:31.711+00:00Results of Annual SQL Championship for 2014You will find below the rankings for the 2014 SQL Championship; the number next to the player's name is the number of times that player has participated in a championship.<br />
<br />
Congratulations first and foremost to our top-ranked players:<br />
<br />
<b>1st Place: <a href="http://plsqlchallenge.com/pls/apex/f?p=10000:PROFILE:10033471457945::NO::P1051_USER_ID:24095:">Andrey Zaytsev</a> of Russia<br /><br />2nd Place: <a href="http://plsqlchallenge.com/pls/apex/f?p=10000:PROFILE:10033471457945::NO::P1051_USER_ID:3390:">Pavel Zeman</a> of Czech Republic<br /><br />3rd Place: <a href="http://plsqlchallenge.com/pls/apex/f?p=10000:PROFILE:10033471457945::NO::P1051_USER_ID:3765:">Chad Lee</a> of United States</b><br />
<br />
Next, congratulations to everyone who played in the championship. I hope you found it entertaining, challenging and educational. And for those who were not able to participate in the championship, you can take the quizzes next week through the Practice feature. We will also make the championship as a whole available as a Test, so you can take it just like these players did.<br />
<br />
Thanks and congratulations to the SQL Quizmaster, Kim Berg Hansen, and Oracle Developer Advocate for SQL, Natalka Roshak, for creating such excellent quizzes! Finally, no championship of this quality could ever happen without the careful work of our amazing reviewer, Elic (aka, Vitaliy Lyanchevskiy).<br />
<br />
Steven Feuerstein<br />
<br />
Note: Below the table of results for this championship, you will find another list showing the championship history of each of these players. <br />
<br />
<table style="border-collapse: collapse; border: 1px solid blue;">
<tbody>
<tr style="border-bottom: 1px solid blue; text-align: center;">
<th style="width: 10%;">Rank</th>
<th style="width: 30%;">Name</th>
<th style="width: 30%;">Country</th>
<th style="width: 20%;">Total Time</th>
<th style="width: 20%;">% Correct</th>
<th style="width: 10%;">Total Score</th>
</tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>1</td><td>Andrey Zaytsev (1)</td><td>Russia</td><td>44 mins 20 secs</td><td>84%</td><td>5373</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>2</td><td>Pavel Zeman (1)</td><td>Czech Republic</td><td>44 mins 38 secs</td><td>84%</td><td>5371</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>3</td><td>Chad Lee (2)</td><td>United States</td><td>35 mins 15 secs</td><td>82%</td><td>5259</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>4</td><td>Niels Hecker (2)</td><td>Germany</td><td>42 mins 23 secs</td><td>82%</td><td>5230</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>5</td><td>Christoph Hillinger (2)</td><td>Austria</td><td>19 mins 57 secs</td><td>80%</td><td>5170</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>6</td><td>Jerry Bull (2)</td><td>United States</td><td>35 mins 43 secs</td><td>80%</td><td>5107</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>7</td><td>Stelios Vlasopoulos (2)</td><td>Belgium</td><td>43 mins 09 secs</td><td>80%</td><td>5077</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>8</td><td>Rytis Budreika (2)</td><td>Lithuania</td><td>18 mins 56 secs</td><td>77%</td><td>5024</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>9</td><td>Scott Wesley (2)</td><td>Australia</td><td>22 mins 45 secs</td><td>77%</td><td>5009</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>10</td><td>Tobias Stark (2)</td><td>Germany</td><td>43 mins 56 secs</td><td>77%</td><td>4924</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>11</td><td>Ivan Blanarik (2)</td><td>Slovakia</td><td>26 mins 51 secs</td><td>73%</td><td>4693</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>12</td><td>Justin Cave (2)</td><td>United States</td><td>38 mins 34 secs</td><td>73%</td><td>4646</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>13</td><td>Anna Onishchuk (2)</td><td>Ireland</td><td>16 mins 53 secs</td><td>70%</td><td>4582</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>14</td><td>Oleksiy Varchyn (1)</td><td>Norway</td><td>20 mins 38 secs</td><td>70%</td><td>4567</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>15</td><td>Sean Molloy (2)</td><td>United States</td><td>27 mins 45 secs</td><td>70%</td><td>4539</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>16</td><td>gobruins (1)</td><td>United States</td><td>30 mins 11 secs</td><td>70%</td><td>4529</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>17</td><td>Leszek Grudzień (2)</td><td>Poland</td><td>24 mins 31 secs</td><td>68%</td><td>4402</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>18</td><td>Jason H (2)</td><td>United States</td><td>26 mins 00 secs</td><td>68%</td><td>4396</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>19</td><td>Michal Cvan (2)</td><td>Slovakia</td><td>38 mins 35 secs</td><td>68%</td><td>4346</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>20</td><td>mentzel.iudith (2)</td><td>Israel</td><td>41 mins 04 secs</td><td>68%</td><td>4336</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>21</td><td>Eric Levin (2)</td><td>United States</td><td>42 mins 17 secs</td><td>68%</td><td>4331</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>22</td><td>Viacheslav Stepanov (2)</td><td>Russia</td><td>29 mins 24 secs</td><td>66%</td><td>4232</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>23</td><td>AndreyBerliner (1)</td><td>Ukraine</td><td>32 mins 13 secs</td><td>66%</td><td>4221</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>24</td><td>Sandra99 (1)</td><td>Italy</td><td>34 mins 09 secs</td><td>66%</td><td>4213</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>25</td><td>swart260 (2)</td><td>Netherlands</td><td>35 mins 57 secs</td><td>66%</td><td>4206</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>26</td><td>tonyC (1)</td><td>United Kingdom</td><td>39 mins 06 secs</td><td>66%</td><td>4194</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>27</td><td>_tiki_4_ (2)</td><td>Germany</td><td>11 mins 16 secs</td><td>64%</td><td>4155</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>28</td><td>Rakesh Dadhich (2)</td><td>India</td><td>22 mins 09 secs</td><td>64%</td><td>4111</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>29</td><td>Ravshan Abbasov (1)</td><td>Uzbekistan</td><td>33 mins 29 secs</td><td>64%</td><td>4066</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>30</td><td>Pavel Noga (1)</td><td>Czech Republic</td><td>44 mins 53 secs</td><td>64%</td><td>4020</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>31</td><td>Yuan Tschang (2)</td><td>United States</td><td>44 mins 51 secs</td><td>61%</td><td>3871</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>32</td><td>Chase Mei (2)</td><td>Canada</td><td>29 mins 30 secs</td><td>59%</td><td>3782</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>33</td><td>Kuvardin Evgeniy (2)</td><td>Russia</td><td>30 mins 56 secs</td><td>59%</td><td>3776</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>34</td><td>Hertha Rettinger (2)</td><td>Germany</td><td>31 mins 29 secs</td><td>57%</td><td>3624</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>35</td><td>Mehrab (1)</td><td>United Kingdom</td><td>44 mins 48 secs</td><td>57%</td><td>3571</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>36</td><td>Arūnas Antanaitis (1)</td><td>Lithuania</td><td>16 mins 45 secs</td><td>55%</td><td>3533</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>37</td><td>VictorD (1)</td><td>Russia</td><td>24 mins 43 secs</td><td>55%</td><td>3501</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>38</td><td>Krzysztof Helbin (2)</td><td>Poland</td><td>26 mins 24 secs</td><td>55%</td><td>3494</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>39</td><td>NarendraReddy (1)</td><td>India</td><td>21 mins 30 secs</td><td>50%</td><td>3214</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>40</td><td>Sachi (2)</td><td>India</td><td>44 mins 42 secs</td><td>41%</td><td>2521</td></tr>
</tbody></table>
<h2>
Championship Performance History</h2>
After each name, the quarter in which he or she played, and the ranking in that championship.<br />
<br />
<br />
<table style="border-collapse: collapse; border: 1px solid blue;">
<tbody>
<tr style="border-bottom: 1px solid blue; text-align: center;">
<th style="width: 30%;">Name</th>
<th style="width: 70%;">History</th>
</tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Andrey Zaytsev</td><td>2014:1st</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Pavel Zeman</td><td>2014:2nd</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Chad Lee</td><td>2013:31st, 2014:3rd</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Niels Hecker</td><td>2013:7th, 2014:4th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Christoph Hillinger</td><td>2013:2nd, 2014:5th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Jerry Bull</td><td>2014:6th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Stelios Vlasopoulos</td><td>2013:27th, 2014:7th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Rytis Budreika</td><td>2013:22nd, 2014:8th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Scott Wesley</td><td>2013:12th, 2014:9th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Tobias Stark</td><td>2013:39th, 2014:10th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Ivan Blanarik </td><td>2013:15th, 2014:11th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Justin Cave</td><td>2013:17th, 2014:12th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Anna Onishchuk</td><td>2013:28th, 2014:13th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Oleksiy Varchyn</td><td>2014:14th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Sean Molloy</td><td>2013:30th, 2014:15th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>gobruins</td><td>2014:16th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Leszek Grudzień</td><td>2013:8th, 2014:17th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Jason H</td><td>2013:26th, 2014:18th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Michal Cvan</td><td>2013:18th, 2014:19th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>mentzel.iudith</td><td>2013:4th, 2014:20th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Eric Levin</td><td>2013:19th, 2014:21st</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Viacheslav Stepanov</td><td>2013:21st, 2014:22nd</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>AndreyBerliner</td><td>2014:23rd</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Sandra99</td><td>2014:24th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>swart260</td><td>2013:37th, 2014:25th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>tonyC</td><td>2014:26th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>_tiki_4_</td><td>2014:27th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Rakesh Dadhich</td><td>2014:28th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Ravshan Abbasov</td><td>2014:29th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Pavel Noga</td><td>2014:30th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Yuan Tschang</td><td>2013:24th, 2014:31st</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Chase Mei</td><td>2013:11th, 2014:32nd</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Kuvardin Evgeniy</td><td>2014:33rd</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Hertha Rettinger</td><td>2013:36th, 2014:34th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Mehrab</td><td>2014:35th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Arūnas Antanaitis</td><td>2014:36th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>VictorD</td><td>2014:37th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Krzysztof Helbin</td><td>2013:25th, 2014:38th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>NarendraReddy</td><td>2014:39th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Sachi</td><td>2013:9th, 2014:41st</td></tr>
</tbody></table>
Steven Feuersteinhttp://www.blogger.com/profile/16619706770920320550noreply@blogger.com0tag:blogger.com,1999:blog-8677649049588007585.post-50307543570975337322015-01-20T23:07:00.000+00:002015-01-20T23:07:00.883+00:00Participants and Dates set for (four!) 2014 Annual Championships2014 is a thing of the past, but there are at least four more 2014-related activities to do: the annual championships.<br />
<br />
With the expanding selection of weekly quizzes come an expanded set of annual championships.<br />
<br />
This year we have four, and here are the dates and times:<br />
<ul>
<li>SQL Championship - Tuesday, February 17, 14:00 UTC</li>
<li>Database Design Championship - Thursday, February 19, 14:00 UTC</li>
<li>Logic Championship - Tuesday, February 24, 14:00 UTC</li>
<li>PL/SQL Championship - Thursday, February 26, 14:00 UTC</li>
</ul>
Once again, my apologies to those of you who must participate at an awkward and dark hour.<br />
<br />
And now for the lists of participants....<br />
<br />
<b>SQL Championship - Tuesday, February 17, 10:00 UTC</b><br />
<b><br /></b>
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!<br />
<br />
<table style="border-collapse: collapse; border: 1px solid blue;"><tbody>
<tr style="border-bottom: 1px solid blue; text-align: center;">
<th style="width: 30%;">Name</th>
<th style="width: 10%;">Rank</th>
<th style="width: 20%;">Qualification</th>
<th style="width: 30%;">Country</th></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Stelios Vlasopoulos (1)</td><td>1</td><td>Top 50</td><td>Belgium</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Rakesh Dadhich (1)</td><td>2</td><td>Top 50</td><td>India</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>mentzel.iudith (1)</td><td>3</td><td>Top 50</td><td>Israel</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>swart260 (1)</td><td>4</td><td>Top 50</td><td>Netherlands</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Naresh Kumar (1)</td><td>5</td><td>Top 50</td><td>India</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>james su (1)</td><td>6</td><td>Top 50</td><td>Canada</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Rytis Budreika (1)</td><td>7</td><td>Top 50</td><td>Lithuania</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>_tiki_4_ (1)</td><td>8</td><td>Top 50</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Ivan Blanarik (1)</td><td>9</td><td>Top 50</td><td>Slovakia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Niels Hecker (1)</td><td>10</td><td>Top 50</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Oleksiy Varchyn (0)</td><td>11</td><td>Top 50</td><td>Norway</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Justin Cave (1)</td><td>12</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Milibor Jovanovic (1)</td><td>13</td><td>Top 50</td><td>Serbia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Chase Mei (1)</td><td>14</td><td>Top 50</td><td>Canada</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Viacheslav Stepanov (1)</td><td>15</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Henry Abeska (0)</td><td>16</td><td>Top 50</td><td>Czech Republic</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Scott Wesley (1)</td><td>17</td><td>Top 50</td><td>Australia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Sean Molloy (1)</td><td>18</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Andrey Zaytsev (0)</td><td>19</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Krzysztof Helbin (1)</td><td>20</td><td>Top 50</td><td>Poland</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Hertha Rettinger (1)</td><td>21</td><td>Top 50</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Maxim Borunov (0)</td><td>22</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Sachi (1)</td><td>23</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>dmitrysk (1)</td><td>24</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>yonderboi (0)</td><td>25</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Leszek Grudzień (1)</td><td>26</td><td>Top 50</td><td>Poland</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Dipendra Thapa (0)</td><td>27</td><td>Top 50</td><td>India</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Arūnas Antanaitis (0)</td><td>28</td><td>Top 50</td><td>Lithuania</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Ravshan Abbasov (0)</td><td>29</td><td>Top 50</td><td>Uzbekistan</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Sameer Chaudhari (0)</td><td>30</td><td>Top 50</td><td>India</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Pavel Zeman (0)</td><td>31</td><td>Top 50</td><td>Czech Republic</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Pavel Vorontsov (1)</td><td>32</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Pavel Noga (0)</td><td>33</td><td>Top 50</td><td>Czech Republic</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>tonyC (0)</td><td>34</td><td>Top 50</td><td>United Kingdom</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Anna Onishchuk (1)</td><td>35</td><td>Top 50</td><td>Ireland</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Jerry Bull (1)</td><td>36</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>fsqatech (0)</td><td>37</td><td>Top 50</td><td>United Kingdom</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Sandra99 (0)</td><td>38</td><td>Top 50</td><td>Italy</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Kuvardin Evgeniy (1)</td><td>39</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>gaurav kowale (0)</td><td>40</td><td>Top 50</td><td>India</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Jason H (1)</td><td>41</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Christoph Hillinger (1)</td><td>42</td><td>Top 50</td><td>Austria</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>gobruins (0)</td><td>43</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Livio Curzola (0)</td><td>44</td><td>Top 50</td><td>Luxembourg</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Chad Lee (1)</td><td>45</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Eric Levin (1)</td><td>46</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Michal Cvan (1)</td><td>47</td><td>Top 50</td><td>Slovakia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>NarendraReddy (0)</td><td>48</td><td>Top 50</td><td>India</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Tobias Stark (1)</td><td>49</td><td>Top 50</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>VictorD (0)</td><td>50</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Yuan Tschang (1)</td><td>69</td><td>Correctness</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Mehrab (0)</td><td>77</td><td>Correctness</td><td>United Kingdom</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>AndreyBerliner (0)</td><td>89</td><td>Correctness</td><td>Ukraine</td></tr>
</tbody></table>
<br />
<b>Database Design Championship - Thursday, February 19, 10:00 UTC</b><br />
<br />
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!<br />
<br />
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!<br />
<br />
<table style="border-collapse: collapse; border: 1px solid blue;"><tbody>
<tr style="border-bottom: 1px solid blue; text-align: center;">
<th style="width: 30%;">Name</th>
<th style="width: 10%;">Rank</th>
<th style="width: 20%;">Qualification</th>
<th style="width: 30%;">Country</th></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>mentzel.iudith (0)</td><td>1</td><td>Top 50</td><td>Israel</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Siim Kask (0)</td><td>2</td><td>Top 50</td><td>Estonia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Justin Cave (0)</td><td>3</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Elic (0)</td><td>4</td><td>Top 50</td><td>Belarus</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Stelios Vlasopoulos (0)</td><td>5</td><td>Top 50</td><td>Belgium</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Niels Hecker (0)</td><td>6</td><td>Top 50</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Joaquin Gonzalez (0)</td><td>7</td><td>Top 50</td><td>Spain</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Milibor Jovanovic (0)</td><td>8</td><td>Top 50</td><td>Serbia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Krzysztof Helbin (0)</td><td>9</td><td>Top 50</td><td>Poland</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>yonderboi (0)</td><td>10</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Chad Lee (0)</td><td>11</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Sean Molloy (0)</td><td>12</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Sandra99 (0)</td><td>13</td><td>Top 50</td><td>Italy</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Sherry (0)</td><td>14</td><td>Top 50</td><td>Czech Republic</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Pavel Noga (0)</td><td>15</td><td>Top 50</td><td>Czech Republic</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Ivan Blanarik (0)</td><td>16</td><td>Top 50</td><td>Slovakia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Manfred Kleander (0)</td><td>17</td><td>Top 50</td><td>Austria</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Rytis Budreika (0)</td><td>18</td><td>Top 50</td><td>Lithuania</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Jan van Overveld (0)</td><td>19</td><td>Top 50</td><td>Netherlands</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Maxim Borunov (0)</td><td>20</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Leszek Grudzień (0)</td><td>21</td><td>Top 50</td><td>Poland</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Tobias Stark (0)</td><td>22</td><td>Top 50</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Scott Wesley (0)</td><td>23</td><td>Top 50</td><td>Australia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Pavel Zeman (0)</td><td>24</td><td>Top 50</td><td>Czech Republic</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Viacheslav Stepanov (0)</td><td>25</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Christoph Hillinger (0)</td><td>26</td><td>Top 50</td><td>Austria</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Marcus Matzberger (0)</td><td>27</td><td>Top 50</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Jerry Bull (0)</td><td>28</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>VictorD (0)</td><td>29</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>MarkM. (0)</td><td>30</td><td>Top 50</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Pavel Vorontsov (0)</td><td>31</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>João Barreto (0)</td><td>32</td><td>Top 50</td><td>Portugal</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>_tiki_4_ (0)</td><td>33</td><td>Top 50</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Anna Onishchuk (0)</td><td>34</td><td>Top 50</td><td>Ireland</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>dannyg64 (0)</td><td>35</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Andrey Zaytsev (0)</td><td>36</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>danad (0)</td><td>37</td><td>Top 50</td><td>Czech Republic</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>EdgarsP (0)</td><td>38</td><td>Top 50</td><td>Latvia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Ravshan Abbasov (0)</td><td>39</td><td>Top 50</td><td>Uzbekistan</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Sachi (0)</td><td>40</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Eric Levin (0)</td><td>41</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Oleksiy Varchyn (0)</td><td>42</td><td>Top 50</td><td>Norway</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>JasonC (0)</td><td>43</td><td>Top 50</td><td>United Kingdom</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Chase Mei (0)</td><td>44</td><td>Top 50</td><td>Canada</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Henry Abeska (0)</td><td>45</td><td>Top 50</td><td>Czech Republic</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Naresh Kumar (0)</td><td>46</td><td>Top 50</td><td>India</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Kuvardin Evgeniy (0)</td><td>47</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>PZOL (0)</td><td>48</td><td>Top 50</td><td>Hungary</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Michal P. (0)</td><td>49</td><td>Top 50</td><td>Poland</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Michal Cvan (0)</td><td>50</td><td>Top 50</td><td>Slovakia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Mehrab (0)</td><td>51</td><td>Correctness</td><td>United Kingdom</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Dan Kiser (0)</td><td>106</td><td>Correctness</td><td>United States</td></tr>
</tbody></table>
<br />
<div>
<b>Logic Championship - Tuesday, February 24, 10:00 UTC</b><br />
<br />
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!<br />
<br />
<table style="border-collapse: collapse; border: 1px solid blue;"><tbody>
<tr style="border-bottom: 1px solid blue; text-align: center;">
<th style="width: 30%;">Name</th>
<th style="width: 10%;">Rank</th>
<th style="width: 20%;">Qualification</th>
<th style="width: 30%;">Country</th></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Jerry Bull (1)</td><td>1</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>mentzel.iudith (1)</td><td>2</td><td>Top 50</td><td>Israel</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Köteles Zsolt (0)</td><td>3</td><td>Top 50</td><td>Hungary</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Stelios Vlasopoulos (1)</td><td>4</td><td>Top 50</td><td>Belgium</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Chad Lee (1)</td><td>5</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Viacheslav Stepanov (1)</td><td>6</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>AndreyBerliner (0)</td><td>7</td><td>Top 50</td><td>Ukraine</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Milibor Jovanovic (1)</td><td>8</td><td>Top 50</td><td>Serbia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Niels Hecker (1)</td><td>9</td><td>Top 50</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Elic (1)</td><td>10</td><td>Top 50</td><td>Belarus</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Kanellos (1)</td><td>11</td><td>Top 50</td><td>Greece</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Naresh Kumar (1)</td><td>12</td><td>Top 50</td><td>India</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Peter Chenery (1)</td><td>13</td><td>Top 50</td><td>United Kingdom</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Rich Dellheim (1)</td><td>14</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Sandra99 (1)</td><td>15</td><td>Top 50</td><td>Italy</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Mehrab (1)</td><td>16</td><td>Top 50</td><td>United Kingdom</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>james su (1)</td><td>17</td><td>Top 50</td><td>Canada</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>gobruins (1)</td><td>18</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>katuinbouter (1)</td><td>19</td><td>Top 50</td><td>Netherlands</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Kuvardin Evgeniy (0)</td><td>20</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Christoph Hillinger (1)</td><td>21</td><td>Top 50</td><td>Austria</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>mark kavalaris (0)</td><td>22</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Alex Stirbu (0)</td><td>23</td><td>Top 50</td><td>Romania</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Pavel Zeman (0)</td><td>24</td><td>Top 50</td><td>Czech Republic</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Rytis Budreika (1)</td><td>25</td><td>Top 50</td><td>Lithuania</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>umir (1)</td><td>26</td><td>Top 50</td><td>Italy</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Margit Biróné Sonkoly (0)</td><td>27</td><td>Top 50</td><td>Hungary</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Sean Molloy (1)</td><td>28</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>craig.mcfarlane (0)</td><td>29</td><td>Top 50</td><td>Norway</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Pavel Vorontsov (1)</td><td>30</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>MarkM. (1)</td><td>31</td><td>Top 50</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>NickL (0)</td><td>32</td><td>Top 50</td><td>United Kingdom</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Eric Levin (0)</td><td>33</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Yuan Tschang (1)</td><td>34</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Zoran Krekic (0)</td><td>35</td><td>Top 50</td><td>Croatia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Dipendra Thapa (0)</td><td>36</td><td>Top 50</td><td>India</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>JasonC (1)</td><td>37</td><td>Top 50</td><td>United Kingdom</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>danad (1)</td><td>38</td><td>Top 50</td><td>Czech Republic</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>tommyTT (0)</td><td>39</td><td>Top 50</td><td>Poland</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Jason H (1)</td><td>40</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Henry Abeska (0)</td><td>41</td><td>Top 50</td><td>Czech Republic</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Vijay Mahawar (1)</td><td>42</td><td>Top 50</td><td>India</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Cristinel Boboc (1)</td><td>43</td><td>Top 50</td><td>Romania</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>kias (0)</td><td>44</td><td>Top 50</td><td>Czech Republic</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Telmoc (0)</td><td>45</td><td>Top 50</td><td>Portugal</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Krzysztof Helbin (0)</td><td>46</td><td>Top 50</td><td>Poland</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Justin Cave (1)</td><td>47</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Oleksiy Varchyn (0)</td><td>48</td><td>Top 50</td><td>Norway</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Cor van Berkel (0)</td><td>49</td><td>Top 50</td><td>Netherlands</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Hamid Talebian (0)</td><td>50</td><td>Top 50</td><td>Netherlands</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Jennifer Schiltz (0)</td><td>51</td><td>Correctness</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Dan Voiculet (0)</td><td>63</td><td>Correctness</td><td>Romania</td></tr>
</tbody></table>
</div>
<br />
<b>PL/SQL Championship - Thursday, February 26, 10:00 UTC</b><br />
<br />
The following players will be invited to participate in the 2014 championship for the PL/SQL Challenge.<br />
<br />
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.<br />
<br />
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!<br />
<br />
<table style="border-collapse: collapse; border: 1px solid blue;"><tbody>
<tr style="border-bottom: 1px solid blue; text-align: center;">
<th style="width: 30%;">Name</th>
<th style="width: 10%;">Rank</th>
<th style="width: 20%;">Qualification</th>
<th style="width: 30%;">Country</th></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>swart260 (0)</td><td>1</td><td>Top 50</td><td>Netherlands</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Rakesh Dadhich (0)</td><td>2</td><td>Top 50</td><td>India</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Stelios Vlasopoulos (0)</td><td>3</td><td>Top 50</td><td>Belgium</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Viacheslav Stepanov (0)</td><td>4</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>mentzel.iudith (0)</td><td>5</td><td>Top 50</td><td>Israel</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Rytis Budreika (0)</td><td>6</td><td>Top 50</td><td>Lithuania</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Niels Hecker (0)</td><td>7</td><td>Top 50</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Siim Kask (0)</td><td>8</td><td>Top 50</td><td>Estonia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Milibor Jovanovic (0)</td><td>9</td><td>Top 50</td><td>Serbia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Ivan Blanarik (0)</td><td>10</td><td>Top 50</td><td>Slovakia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Jerry Bull (0)</td><td>11</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Krzysztof Helbin (0)</td><td>12</td><td>Top 50</td><td>Poland</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Maxim Borunov (0)</td><td>13</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Kuvardin Evgeniy (0)</td><td>14</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>james su (0)</td><td>15</td><td>Top 50</td><td>Canada</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Chad Lee (0)</td><td>16</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Sherry (0)</td><td>17</td><td>Top 50</td><td>Czech Republic</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Pavel Noga (0)</td><td>18</td><td>Top 50</td><td>Czech Republic</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Leszek Grudzień (0)</td><td>19</td><td>Top 50</td><td>Poland</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Yuan Tschang (0)</td><td>20</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>gobruins (0)</td><td>21</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Ravshan Abbasov (0)</td><td>22</td><td>Top 50</td><td>Uzbekistan</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>VictorD (0)</td><td>23</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Oleksiy Varchyn (0)</td><td>24</td><td>Top 50</td><td>Norway</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Chase Mei (0)</td><td>25</td><td>Top 50</td><td>Canada</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Justin Cave (0)</td><td>26</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Marcus Matzberger (0)</td><td>27</td><td>Top 50</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Karel Prech (0)</td><td>28</td><td>Top 50</td><td>Czech Republic</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>João Barreto (0)</td><td>29</td><td>Top 50</td><td>Portugal</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Jason H (0)</td><td>30</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Andrey Zaytsev (0)</td><td>31</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Joaquin Gonzalez (0)</td><td>32</td><td>Top 50</td><td>Spain</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Michal Cvan (0)</td><td>33</td><td>Top 50</td><td>Slovakia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Jeroen Rutte (0)</td><td>34</td><td>Top 50</td><td>Netherlands</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>dmitrysk (0)</td><td>35</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Manfred Kleander (0)</td><td>36</td><td>Top 50</td><td>Austria</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Patrick Barel (0)</td><td>37</td><td>Top 50</td><td>Netherlands</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Christoph Hillinger (0)</td><td>38</td><td>Top 50</td><td>Austria</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Sean Molloy (0)</td><td>39</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Alex Stirbu (0)</td><td>40</td><td>Top 50</td><td>Romania</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>_tiki_4_ (0)</td><td>41</td><td>Top 50</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Pavel Vorontsov (0)</td><td>42</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Anna Onishchuk (0)</td><td>43</td><td>Top 50</td><td>Ireland</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Margit Biróné Sonkoly (0)</td><td>44</td><td>Top 50</td><td>Hungary</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Livio Curzola (0)</td><td>45</td><td>Top 50</td><td>Luxembourg</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Henry Abeska (0)</td><td>46</td><td>Top 50</td><td>Czech Republic</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Ingimundur Gudmundsson (0)</td><td>47</td><td>Top 50</td><td>Norway</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Martin_Scholz_Berlin_Berlin (0)</td><td>48</td><td>Top 50</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>tonyC (0)</td><td>49</td><td>Top 50</td><td>United Kingdom</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Paolo Zaffaroni (0)</td><td>50</td><td>Top 50</td><td>Italy</td></tr>
</tbody></table>
Steven Feuersteinhttp://www.blogger.com/profile/16619706770920320550noreply@blogger.com0tag:blogger.com,1999:blog-8677649049588007585.post-34320853691207760762015-01-05T12:57:00.000+00:002015-01-05T12:57:02.183+00:00Happy New Year, and....New and Revamped Quizzes for the New YearHappy new year to the thousands of Oracle technologists who played a quiz or otherwise visited and benefited from the PL/SQL Challenge in 2014.<br />
<br />
The Challenge continues into the very frosty New Year (as I write, it is 0 degrees <i>Fahrenheit</i> here in Chicago), but first, let's do (some of) the numbers from 2014.<br />
<br />
<span style="color: blue;">Over 4000 Oracle technologist took at least one quiz in 2014. </span><br />
<span style="color: blue;"><br /></span>
<span style="color: blue;">Altogether players at the PL/SQL Challenge submitted over 114,000 answers to quizzes (including practice quizzes and tests).</span><br />
<span style="color: blue;"><br /></span>
<span style="color: blue;">Along the way, we had lots of help from several reviewers. Elic was our superstar, the main reviewer on PL/SQL <i>and</i> 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. </span><br />
<span style="color: blue;"><br /></span>
<span style="color: blue;">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.</span><br />
<br />
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.<br />
<br />
Now let's take a look at 2015.<br />
<br />
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.<br />
<br />
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.<br />
<br />
OK, fine, but what about 2015? The new year provides us with an opportunity to expand and reorganize our quizzes.<br />
<br />
Why, you might ask, would we consider doing this? Let me count the ways.<br />
<br />
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.<br />
<br />
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?<br />
<br />
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.<br />
<br />
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.<br />
<br />
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 (!).<br />
<br />
Here's what we are currently thinking about for....<br />
<b><br /></b>
<b>PL/SQL Quizzes</b><br />
<br />
1. <span style="color: blue;">PL/SQL Language quiz:</span> 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.<br />
<br />
2. <span style="color: blue;">PL/SQL Built-ins quiz:</span> 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.<br />
<br />
3. <span style="color: blue;">PL/SQL Deja Vu:</span> as before, features a quiz from the past. Non-competitive.<br />
<br />
<b>SQL Quizzes</b><br />
<br />
1. <span style="color: blue;">SQL Features quiz:</span> 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:<br />
<br />
2. <span style="color: blue;">SQL Performance quiz: </span>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!<br />
<br class="Apple-interchange-newline" />
3. <span style="color: blue;">SQL Deja Vu:</span> features a quiz from the past. Non-competitive.<br />
<b>Database Design Quizzes</b><br />
<br />
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!<br />
<br />
But we can also add a DB Design Deja Vu quiz.<br />
<br />
<b>Logic Quizzes</b><br />
<br />
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.<br />
<br />
And we can also add a Logic Deja Vu quiz.<br />
<br />
<b>Database Administration Quiz (?)</b><br />
<br />
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.<br />
<br />
Any takers?<br />
<br />
<b>Names for Quizzes</b><br />
<br />
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!<br />
<br />
<div class="p1">
<b>1a: PL/SQL Language</b></div>
<div class="p1">
1b: PL/SQL - Language par Excellence</div>
<div class="p1">
1c: PL/SQL - Code of Choice</div>
<div class="p1">
1d: PL/SQL Challenge</div>
<div class="p1">
1e: PL/SQL - Code Genie</div>
<div class="p2">
<br /></div>
<div class="p1">
<b>2a: PL/SQL Supplied Code</b></div>
<div class="p1">
2b: PL/SQL - Don't Reinvent the Wheel</div>
<div class="p1">
2c: PL/SQL - Already Invented</div>
<div class="p1">
2d: PL/SQL - Modules Supplied</div>
<div class="p1">
2e: PL/SQL Built-ins</div>
<div class="p2">
<br /></div>
<div class="p1">
<b>3a: SQL Language</b></div>
<div class="p1">
3b: SQL - The Way of the Set</div>
<div class="p1">
3c: SQL - Set to Win</div>
<div class="p1">
3d: SQL Magic</div>
<div class="p1">
3e: SQL - Game, Set and Match</div>
<div class="p1">
3f: SQL - When It's About Data</div>
<div class="p1">
3g: SQL - Dancing with Data</div>
<div class="p1">
3h: SQL - Mind Over Data</div>
<div class="p2">
<br /></div>
<div class="p1">
<b>4a: SQL Performance</b></div>
<div class="p1">
4b: SQL - Go to Warp 10</div>
<div class="p1">
4c: SQL - Go to Warp 8</div>
<div class="p1">
4d: SQL - High Speed Pursuit</div>
<div class="p1">
4e: SQL - Data Formula One</div>
<div class="p2">
<br /></div>
<div class="p1">
<b>5a: DB Design</b></div>
<div class="p1">
5b: Database - Craft Your World</div>
<div class="p1">
5c: Build a Better Database</div>
<div class="p1">
5d: Database - Building Blocks</div>
<div class="p1">
5e: Database - Data Builder</div>
<div class="p2">
<b><br /></b></div>
<div class="p1">
<b>6a: DB Admin</b></div>
<div class="p1">
6b: Database - Operational Administry</div>
<div class="p1">
6c: Database - Operating Theater</div>
<div class="p1">
6d: Database - Smooth Operator</div>
6e: Database - Data ShamanSteven Feuersteinhttp://www.blogger.com/profile/16619706770920320550noreply@blogger.com3tag:blogger.com,1999:blog-8677649049588007585.post-48835385332901359552014-12-08T22:22:00.002+00:002014-12-08T22:22:32.283+00:00Ideas for PL/SQL Championship(s) next year For most of this year, we have offered two weekly, competitive quizzes on PL/SQL:<br />
<br />
PL/SQL Challenge & PL/SQL Explore<br />
<br />
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.<br />
<br />
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.<br />
<br />
It seems to me that it makes much more sense to have a single championship for PL/SQL, overall.<br />
<br />
But our database design doesn't easily allow us to make that change (that is, one championship per <i>domain</i> with merged rankings).<br />
<br />
So here is what I would like to do instead:<br />
<br />
For the 2014 PL/SQL Championship, participants will be as follows:<br />
<br />
1. The top 50 ranked players in the PL/SQL Challenge<br />
2. The additional 14 in the top 50 of PL/SQL Explore<br />
3. Up to 20 other wildcard and correctness players, all drawn from the PL/SQL Challenge<br />
<br />
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.<br />
<br />
What are your thoughts on this?<br />
<br />
Thanks, Steven Feuerstein<br />
<br />
<br />Steven Feuersteinhttp://www.blogger.com/profile/16619706770920320550noreply@blogger.com11tag:blogger.com,1999:blog-8677649049588007585.post-61063309178457071202014-05-01T20:58:00.000+01:002014-05-01T20:58:06.096+01:00New Roundtable discussion: What's missing from PL/SQL?<div class="p1">
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?</div>
<div class="p1">
<br /></div>
<div class="p1">
Give us your thoughts on the <a href="http://www.plsqlchallenge.com/pls/apex/f?p=10000:2700:::::P2700_DISCUSSION_ID:521" target="_blank">PL/SQL Challenge Roundtable</a>.</div>
<div class="p2">
<br /></div>
<div class="p3">
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.</div>
<div class="p3">
<br /></div>
<div class="p1">
Some of you may be aware that I published the <a href="http://iloveplsqland.net/"><span class="s2">iloveplsqland.net</span></a> 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!</div>
<div class="p1">
<br /></div>
<div class="p1">
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.</div>
<ul class="ul1">
<li class="li4">Performance: improve the runtime performance of PL/SQL code.</li>
<li class="li4">Usability: make it easier or more productive to write your program units.</li>
<li class="li4">Multimedia/Internet: improve the way PL/SQL "plays" in the modern world of mobile and Internet applications.</li>
<li class="li4">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!</li>
<li class="li4">Object orientation: object types have come a long way....but assuming you are trying to use them to build production apps, what's missing?</li>
</ul>
<br />
<div class="p5">
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!).</div>
<div class="p5">
<br /></div>
<div class="p5">
<b>This is a discussion which will benefit </b><span class="s1"><b>enormously</b></span><b> from every player using the Like feature to indicate which idea they, ahem, like. Please take advantage of it!</b></div>
<div class="p5">
<b><br /></b></div>
<div class="p5">
Finally, I point out to you that it would be best if you did not reply here with your ideas. Go to the <a href="http://www.plsqlchallenge.com/pls/apex/f?p=10000:2700:::::P2700_DISCUSSION_ID:521" target="_blank">PL/SQL Challenge Roundtable</a> and do it. But I will be happy to read your thoughts here as well.</div>
<div class="p5">
<br /></div>
<div class="p5">
Cheers, Steven Feuerstein</div>
Steven Feuersteinhttp://www.blogger.com/profile/16619706770920320550noreply@blogger.com0tag:blogger.com,1999:blog-8677649049588007585.post-6941318370181559372014-04-18T16:27:00.003+01:002014-04-18T16:27:39.208+01:00Another quiz idea for your consideration: Code PongThanks for all your feedback on the <a href="http://plsql-challenge.blogspot.com/2014/03/idea-for-new-type-of-quiz-countdown.html" target="_blank">PL/SQL Countdown quiz</a>. I am certain we will add that to the mix soon.<br />
<br />
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"?<br />
<br />
I call it Code Pong (some of you may know of the classic <a href="http://en.wikipedia.org/wiki/Pong" target="_blank">Pong </a>game). Here's how it would work:<br />
<br />
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.<br />
<br />
<b>Two </b>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:<br />
<br />
1. You can change 1 line.<br />
2. You can insert up to 3 lines.<br />
3. You can delete up to 3 lines.<br />
4. You can <i>reject</i> the other player's last move. <br />
5. Assert that the game is done.<br />
6. Accept or reject other player's assertion that game is done.<br />
<br />
Player must include a description of the change: how does it help get closer to a solution?<br />
<br />
What this means is that you can't make one big wholesale change to the code to fix it. Instead, you must work <i>with </i>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.<br />
<br />
Here's a simple example: Change the code so that "9" is displayed.<br />
<pre>DECLARE
l_index NUMBER;
BEGIN
FOR rec IN (SELECT * FROM all_source WHERE rownum < 10)
LOOP
l_index := l_index + 1;
END LOOP;
DBMS_OUTPUT.PUT_LINE (l_index)
END;</pre>
<br />
<b>Move 1 (player 1):</b><br />
<br />
Change line 2 to:<br />
<br />
l_index PLS_INTEGER;<br />
<br />
Explanation: PLS_INTEGER is faster than NUMBER and you do not <i>need</i> NUMBER.<br />
<b><br /></b>
<b>Move 2 (player 2):</b><br />
<br />
Change line 2 to:<br />
<br />
l_index PLS_INTEGER := 1;<br />
<br />
Explanation: the default initial value is NULL and adding 1 to NULL returns 1. So l_index stays NULL throughout.<br />
<br />
<b>Move 3 (player 1):</b><br />
<br />
Assert that game is done.<br />
<br />
<b>Move 4 (player2):</b><br />
<br />
Accept; game is done! <br />
<br />
What do you think? Too complicated? Too strange?<br />
<br />
<br />Steven Feuersteinhttp://www.blogger.com/profile/16619706770920320550noreply@blogger.com11tag:blogger.com,1999:blog-8677649049588007585.post-19913569537764086512014-04-13T12:59:00.000+01:002014-04-13T12:59:23.318+01:00Take a Survey on Database Design QuizzesChris 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.<br />
<br />
So he's used Google Forms to set up a quick, anonymous survey:<br />
<br />
<span style="background-color: white; font-family: Tahoma, Arial, Helvetica, Geneva, sans-serif; font-size: 12px;"><a href="https://docs.google.com/forms/d/1mFdjTgX3qS-ze_Unu5UxLGof5yopvdspPqPvuLLqJLg/viewform">https://docs.google.com/forms/d/1mFdjTgX3qS-ze_Unu5UxLGof5yopvdspPqPvuLLqJLg/viewform</a> </span><br />
<span style="background-color: white; font-family: Tahoma, Arial, Helvetica, Geneva, sans-serif; font-size: 12px;"><br /></span>
We hope you can take a few moments to fill it out.Steven Feuersteinhttp://www.blogger.com/profile/16619706770920320550noreply@blogger.com0tag:blogger.com,1999:blog-8677649049588007585.post-66235356114692539732014-03-21T15:05:00.002+00:002014-03-21T15:05:39.169+00:00Idea for a new type of quiz: Countdown PL/SQLAlways looking for ways to increase the entertainment value of the site, I came up with this idea last night.<br />
<br />
<span style="color: blue;"><b>Countdown PL/SQL</b></span><br />
<span style="color: blue;"><br /></span>
<span style="color: blue;">You have thirty seconds to answer ten true-false questions. </span><br />
<br />
<span style="color: blue;">With the clock on the page counting down, you are shown a statement about PL/SQL and you must quickly decide: true or false.</span><br />
<br />
Of course, the same could be done with SQL, APEX, etc.<br />
<br />
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.<br />
<br />
Perhaps it is time to look at localization of content: offer it in different languages!<br />
<br />
So what do you think? Sound interesting? Sound like something you'd bother playing?Steven Feuersteinhttp://www.blogger.com/profile/16619706770920320550noreply@blogger.com21tag:blogger.com,1999:blog-8677649049588007585.post-82826483925863665242014-03-17T14:42:00.002+00:002014-03-17T14:42:26.793+00:00Q2 2014 Brings Big Changes to the PL/SQL ChallengeLast year, I (Steven Feuerstein) floated the idea that I would end the daily PL/SQL quiz. Many players protested, and several agreed to help me with the workload by writing quizzes. So I agreed to keep the daily quiz going into 2014 and we would see how it goes.<br />
<br />
It went pretty well. Some players did write quizzes (a big thank you most especially to Jeroen Rutte, who wrote a total of 7 quizzes, 5 of which were used in Q1). But I still spent and spend lots of time writing quizzes, which I enjoy greatly, but unfortunately is not sustainable.<br />
<br />
So starting in Q2 2014, the daily PL/SQL quiz will end and in its place we will offer three weekly quizzes in its place:<br />
<br />
<b>PL/SQL Challenge </b><br />
<br />
The PL/SQL Challenge replaces the daily PL/SQL quiz that ran from April 2010 through
March 2014. I will write all the quizzes for the PL/SQL Challenge quiz. They will focus on "core" PL/SQL features (including
commonly-used supplied packages like DBMS_OUTPUT and UTL_FILE), up through the
latest production version of the Oracle database. Players who take this quiz
are eligible to qualify for the annual PL/SQL Challenge Championship.[We <i>may </i>decide to increase the frequency of those championships, but for now: annual.]<br />
<br />
<b>PL/SQL Explore </b><br />
<br />
The PL/SQL Explore quiz explores the nooks and crannies
of the PL/SQL language, and the many PL/SQL packages supplied by Oracle
Corporation. Quizzes are provided by both Steven Feuerstein and players, and can
range from "core" PL/SQL functionality to "edgy" elements of the language, like
calling Java from PL/SQ or rarely used supplied packages. like DBMS_XA. <br />
<br />
<b>PL/SQL Deja Vu </b><br />
<br />
PL/SQL Deja Vu offers
quizzes from the past - PL/SQL quizzes previously played on the daily PL/SQL
quiz or one of the other PL/SQL quizzes. Use Deja Vu PL/SQL to reinforce your
PL/SQL knowledge without worrying about competing with others. These quizzes are
not ranked! <br />
<br />
We will also "re-brand" the daily PL/SQL quiz to the "PL/SQL Challenge", so the daily quiz names will be of this form:<br />
<br />
<span style="color: blue;"><b>PL/SQL Challenge #276 D2011-04-12</b></span><br />
<br />
and the weekly PL/SQL Challenge quiz names will look like:<br />
<br />
<span style="color: blue;"><b>PL/SQL Challenge #1240 WS2013-04-12</b></span><br />
<br />
where "WS" is the "Weekly quiz Starting on".<br />
<br />
We will look into ways to offer rankings across the various competitive PL/SQL quizzes, but we will not be able to get to that immediately.<br />
<br />
Of course, the new quarter has not yet started. I am very interested to hear your feedback on these quizzes.<br />
<br />
And, of course, you are welcome to shower me with flattery about how much you love those daily quizzes and want them to continue. Surely, my ego could use the stroking. :-)<br />
<br />
But this time the decision is made: the daily quiz <i>will</i> end, and three new PL/SQL weekly quizzes will take its place.<br />
<br />Steven Feuersteinhttp://www.blogger.com/profile/16619706770920320550noreply@blogger.com17tag:blogger.com,1999:blog-8677649049588007585.post-43732686192921923212014-03-10T12:02:00.001+00:002014-03-10T12:06:24.710+00:00Results of 2013 Q4 PL/SQL ChampionshipYou will find below the rankings for the 2013 Q4 PL/SQL championship; the number next to the player's name is the number of times that player has participated in a championship.<br />
<br />
Congratulations first and foremost to our top-ranked players:<br />
<br />
<b>1st Place: <a href="http://plsqlchallenge.com/pls/apex/f?p=10000:PROFILE:24435152678849::NO::P1051_USER_ID:5291:">Peter Auer</a> of Germany<br /><br />2nd Place: <a href="http://plsqlchallenge.com/pls/apex/f?p=10000:PROFILE:24435152678849::NO::P1051_USER_ID:1401:">Mike Pargeter</a> of United Kingdom<br /><br />3rd Place: <a href="http://plsqlchallenge.com/pls/apex/f?p=10000:PROFILE:24435152678849::NO::P1051_USER_ID:4946:">Frank Schmitt</a> of Germany</b><br />
<br />
This was Peter's first championship. An impressive rookie performance, Peter!<br />
<br />
Next, congratulations to everyone who played in the championship. I hope you found it entertaining, challenging and educational. And for those who were not able to participate in the championship, you can take the quizzes next week through the Practice feature. We will also make the championship as a whole available as a Test, so you can take it just like these players did.<br />
<br />
My thanks to all my fine reviewers, but most particularly Elic, whose impact on the quality of our daily quizzes and championships cannot be overstated. <br />
<br />
Steven Feuerstein<br />
<br />
Note: Below the table of results for this championship, you will find another list showing the championship history of each of these players. <br />
<br />
<table style="border-collapse: collapse; border: 1px solid blue;">
<tbody>
<tr style="border-bottom: 1px solid blue; text-align: center;">
<th style="width: 10%;">Rank</th>
<th style="width: 30%;">Name</th>
<th style="width: 30%;">Country</th>
<th style="width: 20%;">Total Time</th>
<th style="width: 20%;">% Correct</th>
<th style="width: 10%;">Total Score</th>
</tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>1</td><td>Peter Auer (1)</td><td>Germany</td><td>27 mins 25 secs</td><td>92%</td><td>2882</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>2</td><td>Mike Pargeter (12)</td><td>United Kingdom</td><td>22 mins 06 secs</td><td>87%</td><td>2788</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>3</td><td>Frank Schmitt (8)</td><td>Germany</td><td>30 mins 05 secs</td><td>87%</td><td>2723</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>4</td><td>Karel Prech (3)</td><td>Czech Republic</td><td>32 mins 25 secs</td><td>87%</td><td>2652</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>5</td><td>Michal Cvan (11)</td><td>Slovakia</td><td>33 mins 58 secs</td><td>87%</td><td>2551</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>6</td><td>Zoltan Fulop (7)</td><td>Hungary</td><td>29 mins 14 secs</td><td>82%</td><td>2485</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>7</td><td>Janis Baiza (9)</td><td>Latvia</td><td>22 mins 35 secs</td><td>76%</td><td>2443</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>8</td><td>Jerry Bull (11)</td><td>United States</td><td>29 mins 20 secs</td><td>74%</td><td>2443</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>9</td><td>Ravshan Abbasov (1)</td><td>Uzbekistan</td><td>33 mins 11 secs</td><td>79%</td><td>2441</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>10</td><td>Anna Onishchuk (8)</td><td>Ireland</td><td>16 mins 40 secs</td><td>79%</td><td>2432</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>11</td><td>dmitrysk (1)</td><td>Russia</td><td>32 mins 52 secs</td><td>84%</td><td>2398</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>12</td><td>Manfred Kleander (1)</td><td>Austria</td><td>34 mins 52 secs</td><td>84%</td><td>2393</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>13</td><td>Vincent Malgrat (7)</td><td>French Republic</td><td>32 mins 35 secs</td><td>79%</td><td>2388</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>14</td><td>Lukasz Kubicki (1)</td><td>Poland</td><td>22 mins 54 secs</td><td>71%</td><td>2362</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>15</td><td>james su (8)</td><td>Canada</td><td>21 mins 52 secs</td><td>71%</td><td>2348</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>16</td><td>Chad Lee (10)</td><td>United States</td><td>33 mins 00 secs</td><td>84%</td><td>2325</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>17</td><td>Jeroen Rutte (7)</td><td>Netherlands</td><td>34 mins 46 secs</td><td>82%</td><td>2320</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>18</td><td>Frank Puechl (4)</td><td>Germany</td><td>20 mins 50 secs</td><td>74%</td><td>2298</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>19</td><td>Rytis Budreika (1)</td><td>Lithuania</td><td>18 mins 20 secs</td><td>68%</td><td>2253</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>20</td><td>mentzel.iudith (13)</td><td>Israel</td><td>33 mins 13 secs</td><td>84%</td><td>2251</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>21</td><td>João Barreto (4)</td><td>Portugal</td><td>22 mins 17 secs</td><td>74%</td><td>2214</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>22</td><td>Telmoc (2)</td><td>Portugal</td><td>20 mins 30 secs</td><td>66%</td><td>2190</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>23</td><td>Randy Gettman (12)</td><td>United States</td><td>34 mins 52 secs</td><td>71%</td><td>2183</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>24</td><td>Yuri Pedan (4)</td><td>Ukraine</td><td>17 mins 06 secs</td><td>71%</td><td>2163</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>25</td><td>Viacheslav Stepanov (12)</td><td>Russia</td><td>31 mins 00 secs</td><td>76%</td><td>2145</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>26</td><td>Krzysztof Helbin (3)</td><td>Poland</td><td>26 mins 08 secs</td><td>68%</td><td>2112</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>27</td><td>Anil Jha (3)</td><td>United States</td><td>34 mins 56 secs</td><td>76%</td><td>2101</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>28</td><td>Kevan Gelling (9)</td><td>Isle of Man</td><td>30 mins 37 secs</td><td>68%</td><td>2078</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>29</td><td>Siim Kask (13)</td><td>Estonia</td><td>27 mins 48 secs</td><td>63%</td><td>2054</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>30</td><td>Leszek Grudzień (2)</td><td>Poland</td><td>30 mins 20 secs</td><td>66%</td><td>1998</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>31</td><td>Yuan Tschang (8)</td><td>United States</td><td>34 mins 24 secs</td><td>55%</td><td>1972</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>32</td><td>Niels Hecker (14)</td><td>Germany</td><td>35 mins 00 secs</td><td>71%</td><td>1960</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>33</td><td>Oleksiy Varchyn (2)</td><td>Norway</td><td>21 mins 32 secs</td><td>61%</td><td>1919</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>34</td><td>_tiki_4_ (6)</td><td>Germany</td><td>25 mins 06 secs</td><td>58%</td><td>1678</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>35</td><td>Goran Stefanović (5)</td><td>Serbia</td><td>24 mins 33 secs</td><td>61%</td><td>1544</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>36</td><td>Rakesh Dadhich (5)</td><td>India</td><td>26 mins 50 secs</td><td>55%</td><td>1443</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>37</td><td>Stelios Vlasopoulos (10)</td><td>Belgium</td><td>24 mins 13 secs</td><td>50%</td><td>1406</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>38</td><td>Thierry Poels (7)</td><td>Belgium</td><td>28 mins 05 secs</td><td>58%</td><td>1343</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>39</td><td>Milibor Jovanovic (5)</td><td>Serbia</td><td>32 mins 24 secs</td><td>53%</td><td>1272</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>40</td><td>Dan Kiser (6)</td><td>United States</td><td>33 mins 38 secs</td><td>50%</td><td>897</td></tr>
</tbody></table>
<h2>
Championship Performance History</h2>
After each name, the quarter in which he or she played, and the ranking in that championship. <br />
<table style="border-collapse: collapse; border: 1px solid blue;">
<tbody>
<tr style="border-bottom: 1px solid blue; text-align: center;">
<th style="width: 30%;">Name</th>
<th style="width: 70%;">History</th>
</tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Peter Auer</td><td>Q4 2013:1st</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Mike Pargeter</td><td>Q4 2010:22nd, Q1 2011:15th, Q2 2011:8th, Q4 2011:5th, Q1 2012:5th, Q2 2012:17th, Q3 2012:5th, Q4 2012:20th, Q2 2013:12th, Q4 2013:2nd</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Frank Schmitt</td><td>Q4 2011:22nd, Q2 2012:2nd, Q3 2012:21st, Q4 2012:3rd, Q1 2013:13th, Q2 2013:1st, Q3 2013:9th, Q4 2013:3rd</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Karel Prech</td><td>Q3 2012:36th, Q4 2012:23rd, Q4 2013:4th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Michal Cvan</td><td>Q3 2010:22nd, Q4 2010:25th, Q3 2011:21st, Q1 2012:11th, Q3 2012:14th, Q4 2012:14th, Q1 2013:14th, Q2 2013:11th, Q3 2013:1st, Q4 2013:5th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Zoltan Fulop</td><td>Q1 2012:15th, Q2 2012:26th, Q3 2012:22nd, Q4 2012:17th, Q1 2013:22nd, Q3 2013:22nd, Q4 2013:6th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Janis Baiza</td><td>Q2 2010:3rd, Q4 2010:7th, Q3 2011:9th, Q4 2011:1st, Q3 2012:23rd, Q1 2013:4th, Q2 2013:4th, Q3 2013:3rd, Q4 2013:7th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Jerry Bull</td><td>Q2 2011:32nd, Q3 2011:8th, Q1 2012:12th, Q2 2012:11th, Q3 2012:13th, Q4 2012:15th, Q1 2013:9th, Q2 2013:15th, Q4 2013:8th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Ravshan Abbasov</td><td>Q4 2013:9th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Anna Onishchuk</td><td>Q1 2011:5th, Q2 2011:20th, Q3 2011:19th, Q4 2011:17th, Q1 2012:21st, Q2 2012:8th, Q4 2013:10th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>dmitrysk</td><td>Q4 2013:11th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Manfred Kleander</td><td>Q4 2013:12th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Vincent Malgrat</td><td>Q4 2011:9th, Q1 2012:13th, Q2 2012:13th, Q4 2012:6th, Q1 2013:1st, Q2 2013:14th, Q4 2013:13th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Lukasz Kubicki</td><td>Q4 2013:14th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>james su</td><td>Q3 2010:56th, Q2 2011:7th, Q3 2011:11th, Q4 2011:14th, Q2 2012:15th, Q1 2013:7th, Q3 2013:15th, Q4 2013:15th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Chad Lee</td><td>Q2 2011:26th, Q3 2011:17th, Q4 2011:12th, Q1 2012:1st, Q2 2012:23rd, Q3 2012:28th, Q4 2012:22nd, Q1 2013:20th, Q2 2013:8th, Q4 2013:16th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Jeroen Rutte</td><td>Q3 2010:19th, Q3 2012:10th, Q4 2012:11th, Q1 2013:8th, Q2 2013:18th, Q3 2013:4th, Q4 2013:17th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Frank Puechl</td><td>Q3 2012:26th, Q1 2013:15th, Q3 2013:12th, Q4 2013:18th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Rytis Budreika</td><td>Q4 2013:19th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>mentzel.iudith</td><td>Q4 2010:4th, Q1 2011:17th, Q2 2011:23rd, Q3 2011:5th, Q4 2011:4th, Q1 2012:7th, Q2 2012:16th, Q3 2012:33rd, Q4 2012:4th, Q1 2013:2nd, Q2 2013:7th, Q3 2013:2nd, Q4 2013:20th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>João Barreto</td><td>Q3 2010:18th, Q4 2010:21st, Q2 2011:3rd, Q4 2013:21st</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Telmoc</td><td>Q4 2013:22nd</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Randy Gettman</td><td>Q3 2010:8th, Q1 2011:25th, Q2 2011:10th, Q3 2011:3rd, Q4 2011:11th, Q1 2012:18th, Q2 2012:19th, Q3 2012:30th, Q4 2012:12th, Q1 2013:3rd, Q2 2013:13th, Q4 2013:23rd</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Yuri Pedan</td><td>Q3 2010:45th, Q4 2010:9th, Q1 2011:2nd, Q4 2013:24th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Viacheslav Stepanov</td><td>Q1 2011:8th, Q2 2011:4th, Q3 2011:13th, Q4 2011:19th, Q1 2012:17th, Q2 2012:9th, Q3 2012:6th, Q4 2012:21st, Q1 2013:18th, Q2 2013:22nd, Q3 2013:11th, Q4 2013:25th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Krzysztof Helbin</td><td>Q1 2012:10th, Q4 2012:18th, Q4 2013:26th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Anil Jha</td><td>Q2 2012:28th, Q4 2012:19th, Q4 2013:27th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Kevan Gelling</td><td>Q2 2011:19th, Q3 2011:1st, Q4 2011:6th, Q1 2012:6th, Q2 2012:22nd, Q4 2012:16th, Q1 2013:12th, Q4 2013:28th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Siim Kask</td><td>Q1 2011:28th, Q2 2011:6th, Q3 2011:10th, Q4 2011:3rd, Q1 2012:8th, Q2 2012:4th, Q3 2012:31st, Q4 2012:10th, Q1 2013:11th, Q2 2013:16th, Q3 2013:17th, Q4 2013:29th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Leszek Grudzień</td><td>Q2 2013:24th, Q4 2013:30th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Yuan Tschang</td><td>Q2 2012:24th, Q3 2012:24th, Q4 2012:27th, Q2 2013:30th, Q4 2013:31st</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Niels Hecker</td><td>Q2 2010:2nd, Q3 2010:1st, Q4 2010:15th, Q1 2011:6th, Q3 2011:7th, Q4 2011:10th, Q1 2012:2nd, Q2 2012:3rd, Q3 2012:2nd, Q4 2012:7th, Q1 2013:6th, Q2 2013:3rd, Q3 2013:13th, Q4 2013:32nd</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Oleksiy Varchyn</td><td>Q3 2013:28th, Q4 2013:33rd</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>_tiki_4_</td><td>Q4 2011:26th, Q1 2012:16th, Q2 2012:20th, Q4 2012:8th, Q3 2013:8th, Q4 2013:34th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Goran Stefanović</td><td>Q1 2012:31st, Q2 2012:27th, Q3 2012:34th, Q4 2013:35th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Rakesh Dadhich</td><td>Q2 2012:10th, Q1 2013:23rd, Q2 2013:28th, Q3 2013:27th, Q4 2013:36th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Stelios Vlasopoulos</td><td>Q4 2010:37th, Q4 2011:20th, Q1 2012:27th, Q2 2012:30th, Q3 2012:1st, Q4 2012:1st, Q1 2013:27th, Q2 2013:23rd, Q3 2013:19th, Q4 2013:37th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Thierry Poels</td><td>Q3 2011:22nd, Q1 2012:24th, Q1 2013:26th, Q3 2013:25th, Q4 2013:38th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Milibor Jovanovic</td><td>Q4 2012:29th, Q1 2013:30th, Q3 2013:18th, Q4 2013:39th</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Dan Kiser</td><td>Q4 2013:40th</td></tr>
</tbody></table>
Steven Feuersteinhttp://www.blogger.com/profile/16619706770920320550noreply@blogger.com17tag:blogger.com,1999:blog-8677649049588007585.post-77271164865252536822014-02-26T12:15:00.000+00:002014-02-26T12:15:03.795+00:00Results of First Annual Logic Championship (2013)You will find below the rankings for the first ever 2013 Logic championship.<br />
<br />
Congratulations first and foremost to our top-ranked players:<br />
<br />
<b>1st Place: <a href="http://plsqlchallenge.com/pls/apex/f?p=10000:PROFILE:517207049620::NO::P1051_USER_ID:10808:">Viacheslav Stepanov</a> of Russia<br /><br />2nd Place: <a href="http://plsqlchallenge.com/pls/apex/f?p=10000:PROFILE:517207049620::NO::P1051_USER_ID:10042:">Jerry Bull</a> of United States<br /><br />3rd Place: <a href="http://plsqlchallenge.com/pls/apex/f?p=10000:PROFILE:517207049620::NO::P1051_USER_ID:487:">Niels Hecker</a> of Germany</b><br />
<b><br /></b>Next, congratulations to everyone who played in the championship. I hope you found it entertaining, challenging and educational. And for those who were not able to participate in the championship, you can take the quizzes next week through the Practice feature. We will also make the championship as a whole available as a Test, so you can take it just like these players did.<br />
<br />
Steven Feuerstein<br />
<br />
<table style="border-collapse: collapse; border: 1px solid blue;">
<tbody>
<tr style="border-bottom: 1px solid blue; text-align: center;">
<th style="width: 10%;">Rank</th>
<th style="width: 30%;">Name</th>
<th style="width: 30%;">Country</th>
<th style="width: 20%;">Total Time</th>
<th style="width: 20%;">% Correct</th>
<th style="width: 10%;">Total Score</th>
</tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>1</td><td>Viacheslav Stepanov (1)</td><td>Russia</td><td>20 mins 50 secs</td><td>90%</td><td>3033</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>2</td><td>Jerry Bull (1)</td><td>United States</td><td>14 mins 48 secs</td><td>76%</td><td>2634</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>3</td><td>Niels Hecker (1)</td><td>Germany</td><td>37 mins 57 secs</td><td>81%</td><td>2356</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>4</td><td>mentzel.iudith (1)</td><td>Israel</td><td>59 mins 50 secs</td><td>90%</td><td>2253</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>5</td><td>Ingimundur Gudmundsson (1)</td><td>Norway</td><td>34 mins 27 secs</td><td>71%</td><td>2051</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>6</td><td>Zoltan Fulop (1)</td><td>Hungary</td><td>43 mins 38 secs</td><td>76%</td><td>2017</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>7</td><td>Dan Jankowski (1)</td><td>United States</td><td>19 mins 58 secs</td><td>62%</td><td>1966</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>8</td><td>Lieselotje (1)</td><td>Belgium</td><td>47 mins 08 secs</td><td>76%</td><td>1947</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>9</td><td>Hudai Polat (1)</td><td>Turkey</td><td>21 mins 25 secs</td><td>62%</td><td>1902</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>10</td><td>MarkM. (1)</td><td>Germany</td><td>59 mins 40 secs</td><td>81%</td><td>1847</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>11</td><td>Randy Gettman (1)</td><td>United States</td><td>58 mins 17 secs</td><td>81%</td><td>1839</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>12</td><td>Rytis Budreika (1)</td><td>Lithuania</td><td>09 mins 33 secs</td><td>52%</td><td>1804</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>13</td><td>Elic (1)</td><td>Belarus</td><td>56 mins 49 secs</td><td>76%</td><td>1754</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>14</td><td>Jason H (1)</td><td>United States</td><td>22 mins 30 secs</td><td>57%</td><td>1730</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>15</td><td>Andres (1)</td><td>Estonia</td><td>58 mins 51 secs</td><td>76%</td><td>1713</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>16</td><td>Stelios Vlasopoulos (1)</td><td>Belgium</td><td>57 mins 43 secs</td><td>76%</td><td>1701</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>17</td><td>Sandra99 (1)</td><td>Italy</td><td>41 mins 56 secs</td><td>67%</td><td>1681</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>18</td><td>Christoph Hillinger (1)</td><td>Austria</td><td>59 mins 11 secs</td><td>76%</td><td>1636</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>19</td><td>Chris Saxon (1)</td><td>United Kingdom</td><td>34 mins 11 secs</td><td>62%</td><td>1606</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>20</td><td>Cristinel Boboc (1)</td><td>Romania</td><td>47 mins 33 secs</td><td>67%</td><td>1604</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>21</td><td>katuinbouter (1)</td><td>Netherlands</td><td>55 mins 59 secs</td><td>71%</td><td>1585</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>22</td><td>PZOL (1)</td><td>Hungary</td><td>37 mins 58 secs</td><td>62%</td><td>1566</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>23</td><td>Yuan Tschang (1)</td><td>United States</td><td>55 mins 14 secs</td><td>71%</td><td>1560</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>24</td><td>danad (1)</td><td>Czech Republic</td><td>31 mins 09 secs</td><td>57%</td><td>1517</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>25</td><td>Sean Molloy (1)</td><td>United States</td><td>54 mins 40 secs</td><td>67%</td><td>1462</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>26</td><td>Tony Winn (1)</td><td>Australia</td><td>52 mins 56 secs</td><td>67%</td><td>1386</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>27</td><td>Mihail Siscu (1)</td><td>Moldova</td><td>58 mins 35 secs</td><td>67%</td><td>1383</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>28</td><td>Peter Chenery (1)</td><td>United Kingdom</td><td>44 mins 42 secs</td><td>57%</td><td>1361</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>29</td><td>Enrico Rebecchi (1)</td><td>Italy</td><td>59 mins 30 secs</td><td>67%</td><td>1325</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>30</td><td>tonyC (1)</td><td>United Kingdom</td><td>52 mins 29 secs</td><td>57%</td><td>1130</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>31</td><td>Mehrab (1)</td><td>United Kingdom</td><td>56 mins 38 secs</td><td>57%</td><td>1082</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>32</td><td>Rich Dellheim (1)</td><td>United States</td><td>53 mins 53 secs</td><td>52%</td><td>952</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>33</td><td>macabre (1)</td><td>Russia</td><td>41 mins 27 secs</td><td>48%</td><td>936</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>34</td><td>Milibor Jovanovic (1)</td><td>Serbia</td><td>58 mins 13 secs</td><td>52%</td><td>791</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>35</td><td>Chad Lee (1)</td><td>United States</td><td>48 mins 28 secs</td><td>38%</td><td>461</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>36</td><td>JasonC (1)</td><td>United Kingdom</td><td>58 mins 14 secs</td><td>33%</td><td>264</td></tr>
</tbody></table>
Steven Feuersteinhttp://www.blogger.com/profile/16619706770920320550noreply@blogger.com0tag:blogger.com,1999:blog-8677649049588007585.post-86383936058114298222014-02-17T17:33:00.003+00:002014-02-17T17:33:40.150+00:00A Glimpse into Feuerstein Refactoring....End Result Better?As some of you may recall, we held our first <i>non-PLSQL </i>and<i> non-quarterly</i> championship since the PL/SQL Challenge started: the 12 February Annual SQL Championship.<br />
<br />
Now, of course, if I had designed my database without any flaws, fully taking into account all possible directions in which the website could go, anticipating all possible user requests, etc., then we would not have encountered any bugs in the process of applying our code base to this new championship.<br />
<br />
Ha. Ha. Ha.<br />
<br />
We found many, many bugs, ranging from drawbacks in the design (worst, deepest impact, etc.) to ridiculous examples of hard-coding (the PL/SQL Championship competition_id = 2. So, sure, you could find "2"s in my code. What can I say? At least I admit it. Perhaps this is my own personal form of <a href="http://www.quest.com/tv/All-Videos/2198207211001/Steven-Feuersteins-Coding-Therapy----Confessional-Therapy/Video/" target="_blank">confessional therapy</a>: dumping all this on you!).<br />
<br />
So we did lots of work before the championship was held, and our efforts paid off with an error-free competition (well....not quite. With all players starting at the same time, there was a noticeable delay and some timeouts right at the beginning, but then it all settled down).<br />
<br />
But then it was time to report on the results, award prizes, generate certificates, display results on the Quiz Details page....and we found many more bugs!<br />
<br />
One of the steps we'd taken previously was to build in much more flexibility about specifying how and when players can see results. So now each competition event (daily quiz, championship, etc.) has a section that looks like (these are the settings for a championship):<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-emjpCKI6TZQ/UwIz7-JUHtI/AAAAAAAAAUE/FzdsYwpoKPw/s1600/ac.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-emjpCKI6TZQ/UwIz7-JUHtI/AAAAAAAAAUE/FzdsYwpoKPw/s1600/ac.jpg" height="265" width="400" /></a></div>
<br />
<br />
But of course I then needed to write the code that would correctly combine these settings with the "state of play" and do the right thing.<br />
<br />
It was hard for me to sort out all the logic, but I pushed my way through it, did some testing, seemed OK. And then I (deep shame) copy/pasted it for another function that had slightly different settings. I said to myself: "You have <i>got</i> to refactor this." to which I replied, "Yeah, right, will do. Someday."<br />
<br />
You will find the code below. Feel free to read it, of course, but here's my overall take on it: besides the obvious awfulness of the copied code, those complex Boolean expressions are really, really difficult to understand and maintain. In trying to fix a problem right after the playoff, I introduced two <i>more</i> by getting mixed up on AND vs OR and where the parentheses should go.<br />
<br />
Oh and then there are the comments:<br />
<br />
"/* 2.5 I do not see what this will do. */"<br />
<br />
and"<br />
<br />
/* 2.5 I do not see what value this adds.*/".<br />
<br />
Real confidence builders! So like I say, feel free to check out this code, but what I mostly want to do is show you the <i>refactored</i> version and do a little reality check with anyone who wants to take the time: Is it easier to read? Do you think it was worth doing? Do you see a better way to do this?<br />
<br />
And yes, sure, I should provide more of an explanation to what is going on here, but:<br />
<br />
a. I don't have the time, and<br />
b. I "pride" myself on writing self-documenting code. In other words, I am too lazy to write comments.<br />
<br />
Thanks! Steven Feuerstein <br />
<br />
<b>Original UGLY Code</b><br />
<b> </b> <br />
<pre> FUNCTION results_available_for (comp_event_id_in IN INTEGER,
user_id_in IN INTEGER)
RETURN BOOLEAN
IS
c_user_id CONSTANT INTEGER
:= NVL (user_id_in, qdb_user_mgr.guest_user_id) ;
c_can_play CONSTANT BOOLEAN
:= can_play (comp_event_id_in, user_id_in) ;
l_comp_event qdb_comp_events%ROWTYPE;
l_competition qdb_competitions%ROWTYPE;
l_return BOOLEAN := FALSE;
BEGIN
/* Might be null from reviewer */
IF comp_event_id_in IS NOT NULL
THEN
l_comp_event := qdb_comp_event_mgr.one_comp_event (comp_event_id_in);
l_competition :=
qdb_comp_event_mgr.competition_for_comp_event (comp_event_id_in);
IF qdb_utilities.trace_is_on
THEN
qdb_utilities.trace_activity (
'results_available_for sra-pas-sa',
l_comp_event.pl_see_results_after
|| '-'
|| l_competition.players_accept_scores
|| '-'
|| l_comp_event.scores_accepted);
END IF;
/* Precedence to access: ANSWERED CLOSED RANKED */
l_return :=
CASE /* Can always see results of "Solve Problem" quiz */
WHEN qdb_content.free_form_question (
qdb_quiz_mgr.single_question_id_for_compev (
comp_event_id_in))
THEN
TRUE /* If answered, then can view if results are available after
answered or scores have been accepted. */
WHEN ex_u_qdb_compev_answers (comp_event_id_in, c_user_id)
THEN
( (l_comp_event.pl_see_results_after =
qdb_competition_mgr.c_resavail_answered)
OR ( l_comp_event.pl_see_results_after =
qdb_competition_mgr.c_resavail_closed
AND l_comp_event.comp_event_status =
qdb_competition_mgr.c_compev_closed)
OR ( l_comp_event.pl_see_results_after =
qdb_competition_mgr.c_resavail_ranked
AND ( l_comp_event.comp_event_status =
qdb_competition_mgr.c_compev_ranked
OR ( l_comp_event.ignore_results =
qdb_config.c_yes
AND l_comp_event.comp_event_status =
qdb_competition_mgr.c_compev_closed))))
or ( l_comp_event.pl_see_results_after =
qdb_competition_mgr.c_quiz_accepted
AND ( l_competition.players_accept_quizzes =
qdb_config.c_no
OR ( l_competition.players_accept_quizzes =
qdb_config.c_yes
AND l_comp_event.quizzes_accepted =
qdb_config.c_yes)))
/* Not answered but could play...can only see if closed/ranked*/
WHEN c_can_play
THEN
l_comp_event.comp_event_status IN (qdb_competition_mgr.c_compev_ranked,
qdb_competition_mgr.c_compev_closed)
/* Not a player - what can everyone see? */
WHEN comp_event_closed_for_user (comp_event_id_in, c_user_id)
THEN
( l_comp_event.ev_see_results_after =
qdb_competition_mgr.c_resavail_closed
AND l_comp_event.comp_event_status =
qdb_competition_mgr.c_compev_closed)
OR ( l_comp_event.ev_see_results_after =
qdb_competition_mgr.c_resavail_ranked
AND ( l_comp_event.comp_event_status =
qdb_competition_mgr.c_compev_ranked
OR ( l_comp_event.ignore_results =
qdb_config.c_yes
AND l_comp_event.comp_event_status =
qdb_competition_mgr.c_compev_closed)))
/* 2.5 I do not see what value this adds. */
/* Can you see it when it's ranked */
WHEN l_comp_event.pl_see_results_after IN (qdb_competition_mgr.c_resavail_closed,
qdb_competition_mgr.c_resavail_answered,
qdb_competition_mgr.c_resavail_ranked)
AND l_comp_event.comp_event_status =
qdb_competition_mgr.c_compev_ranked
THEN
TRUE
ELSE
FALSE
END;
END IF;
RETURN l_return;
END results_available_for;
FUNCTION results_available_for_sql (comp_event_id_in IN INTEGER,
user_id_in IN INTEGER)
RETURN PLS_INTEGER
IS
BEGIN
RETURN CASE
WHEN results_available_for (comp_event_id_in, user_id_in)
THEN
1
ELSE
0
END;
END;
FUNCTION can_see_quiz (comp_event_id_in IN INTEGER, user_id_in IN INTEGER)
RETURN BOOLEAN
IS
c_user_id CONSTANT INTEGER
:= NVL (user_id_in, qdb_user_mgr.guest_user_id) ;
c_can_play CONSTANT BOOLEAN
:= can_play (comp_event_id_in, user_id_in) ;
l_comp_event qdb_comp_events%ROWTYPE;
l_competition qdb_competitions%ROWTYPE;
l_return BOOLEAN := FALSE;
BEGIN
/* Might be null from reviewer */
IF comp_event_id_in IS NOT NULL
THEN
l_comp_event := qdb_comp_event_mgr.one_comp_event (comp_event_id_in);
l_competition :=
qdb_comp_event_mgr.competition_for_comp_event (comp_event_id_in);
IF qdb_utilities.trace_is_on
THEN
qdb_utilities.trace_activity (
'can_see_quiz sqa-pas-sa',
l_competition.pl_see_quiz_after
|| '-'
|| l_competition.players_accept_quizzes
|| '-'
|| l_comp_event.quizzes_accepted);
END IF;
/* if played, quizzes are accepted and can see after quiz taken. */
/* Precedence to access: ANSWERED CLOSED RANKED */
l_return :=
CASE
WHEN qdb_content.free_form_question (
qdb_quiz_mgr.single_question_id_for_compev (
comp_event_id_in))
THEN
/* Can always see results of "Solve Problem" quiz */
TRUE
WHEN ex_u_qdb_compev_answers (comp_event_id_in, c_user_id)
THEN
/* If answered, then can view if results are available after
answered or quizzes have been accepted. */
( (l_comp_event.pl_see_quiz_after =
qdb_competition_mgr.c_resavail_answered)
OR ( l_comp_event.pl_see_quiz_after =
qdb_competition_mgr.c_resavail_closed
AND l_comp_event.comp_event_status =
qdb_competition_mgr.c_compev_closed)
OR ( l_comp_event.ev_see_results_after =
qdb_competition_mgr.c_resavail_ranked
AND ( l_comp_event.comp_event_status =
qdb_competition_mgr.c_compev_ranked
OR ( l_comp_event.ignore_results =
qdb_config.c_yes
AND l_comp_event.comp_event_status =
qdb_competition_mgr.c_compev_closed))))
WHEN c_can_play
THEN
/* Not answered but could play...can only see if closed/ranked*/
l_comp_event.comp_event_status IN (qdb_competition_mgr.c_compev_ranked,
qdb_competition_mgr.c_compev_closed)
WHEN comp_event_closed_for_user (comp_event_id_in, c_user_id)
THEN
/* Not a player - what can everyone see? */
( l_comp_event.ev_see_quiz_after =
qdb_competition_mgr.c_resavail_closed
AND l_comp_event.comp_event_status =
qdb_competition_mgr.c_compev_closed)
OR ( l_comp_event.ev_see_results_after =
qdb_competition_mgr.c_resavail_ranked
AND ( l_comp_event.comp_event_status =
qdb_competition_mgr.c_compev_ranked
OR ( l_comp_event.ignore_results =
qdb_config.c_yes
AND l_comp_event.comp_event_status =
qdb_competition_mgr.c_compev_closed)))
WHEN l_comp_event.pl_see_quiz_after IN (qdb_competition_mgr.c_resavail_closed,
qdb_competition_mgr.c_resavail_answered,
qdb_competition_mgr.c_resavail_ranked)
AND l_comp_event.comp_event_status =
qdb_competition_mgr.c_compev_ranked
THEN
/* 2.5 I do not see what this will do. */
/* Can you see it when it's ranked */
TRUE
ELSE
FALSE
END;
END IF;
RETURN l_return;
END;
</pre>
<br />
<b>The Refactored Code</b><br />
<br />
<pre> FUNCTION can_show_information (
info_type_in IN VARCHAR2,
comp_event_id_in IN qdb_comp_events.comp_event_id%TYPE,
user_id_in IN INTEGER)
RETURN BOOLEAN
IS
c_user_id CONSTANT INTEGER
:= NVL (user_id_in, qdb_user_mgr.guest_user_id) ;
c_could_have_played CONSTANT BOOLEAN
:= can_play (comp_event_id_in, c_user_id) ;
c_quiz_answered CONSTANT BOOLEAN
:= ex_u_qdb_compev_answers (comp_event_id_in, c_user_id) ;
c_quizzes_accepted BOOLEAN;
c_results_accepted BOOLEAN;
c_closed_or_ranked BOOLEAN;
c_ranked_or_voided BOOLEAN;
c_is_solve_problem BOOLEAN;
c_closed_for_player BOOLEAN;
CURSOR required_info_cur
IS
SELECT c.players_accept_quizzes,
c.players_accept_scores,
ce.comp_event_status,
ce.ignore_results,
ce.quizzes_accepted,
ce.scores_accepted,
ce.pl_see_quiz_after,
ce.pl_see_answer_after,
ce.pl_see_results_after,
ce.ev_see_quiz_after,
ce.ev_see_answer_after,
ce.ev_see_results_after,
ce.tm_member_results_preview,
ce.author_can_play,
ce.hide_quizzes,
ce.is_private,
ct.text comp_type,
ct.comp_type_id
FROM qdb_competitions c, qdb_comp_events ce, qdb_comp_types ct
WHERE c.competition_id = ce.competition_id
AND c.comp_type_id = ct.comp_type_id
AND ce.comp_event_id = comp_event_id_in;
l_required_info required_info_cur%ROWTYPE;
l_return BOOLEAN;
PROCEDURE get_required_info
IS
BEGIN
OPEN required_info_cur;
FETCH required_info_cur INTO l_required_info;
CLOSE required_info_cur;
c_quizzes_accepted :=
l_required_info.players_accept_quizzes = qdb_config.c_no
OR ( l_required_info.players_accept_quizzes = qdb_config.c_yes
AND l_required_info.quizzes_accepted = qdb_config.c_yes);
c_results_accepted :=
l_required_info.players_accept_scores = qdb_config.c_no
OR ( l_required_info.players_accept_scores = qdb_config.c_yes
AND l_required_info.scores_accepted = qdb_config.c_yes);
c_ranked_or_voided :=
l_required_info.comp_event_status =
qdb_competition_mgr.c_compev_ranked
OR ( l_required_info.ignore_results = qdb_config.c_yes
AND l_required_info.comp_event_status =
qdb_competition_mgr.c_compev_closed);
c_closed_or_ranked :=
/* Also returns TRUE if I took it. So just go with status.
comp_event_closed_for_user (comp_event_id_in, c_user_id)*/
l_required_info.comp_event_status IN (qdb_competition_mgr.c_compev_closed,
qdb_competition_mgr.c_compev_ranked);
c_closed_for_player :=
comp_event_closed_for_user (comp_event_id_in, c_user_id);
c_is_solve_problem :=
l_required_info.comp_type_id =
qdb_competition_mgr.c_solve_problem_ct_id;
END;
FUNCTION everyone_can (moment_in IN VARCHAR2)
RETURN BOOLEAN
IS
BEGIN
RETURN CASE moment_in
WHEN qdb_competition_mgr.c_resavail_never
THEN
FALSE
WHEN qdb_competition_mgr.c_quiz_accepted
THEN
c_quizzes_accepted
WHEN qdb_competition_mgr.c_result_accepted
THEN
c_results_accepted
WHEN qdb_competition_mgr.c_resavail_closed
THEN
c_closed_or_ranked
WHEN qdb_competition_mgr.c_resavail_ranked
THEN
c_ranked_or_voided
ELSE
FALSE
END;
IF qdb_utilities.trace_is_on
THEN
qdb_utilities.trace_activity (
'can_show_information for everyone moment ' || moment_in,
l_return);
END IF;
END;
FUNCTION player_can (moment_in IN VARCHAR2)
RETURN BOOLEAN
IS
l_return BOOLEAN;
BEGIN
l_return :=
CASE moment_in
WHEN qdb_competition_mgr.c_resavail_never
THEN
FALSE
WHEN qdb_competition_mgr.c_quiz_accepted
THEN
c_quizzes_accepted
WHEN qdb_competition_mgr.c_result_accepted
THEN
c_results_accepted
WHEN qdb_competition_mgr.c_resavail_answered
THEN
c_quiz_answered
WHEN qdb_competition_mgr.c_resavail_closed
THEN
c_closed_or_ranked
OR ( info_type_in = c_see_correctness
AND l_required_info.players_accept_quizzes =
qdb_config.c_yes)
WHEN qdb_competition_mgr.c_resavail_ranked
THEN
c_ranked_or_voided
ELSE
FALSE
END;
RETURN l_return;
END;
BEGIN
IF comp_event_id_in IS NULL
THEN
/* A reviewer may be reviewing an unscheduled quiz... */
l_return := info_type_in = c_see_answers;
ELSE
get_required_info;
/* Can always see stuff for a "solve problem" quiz. */
l_return := c_is_solve_problem;
IF NOT l_return
THEN
CASE info_type_in
WHEN c_see_my_choices
THEN
/* For this choice ONLY, the acceptance status of quizzes does not apply */
l_return :=
CASE
WHEN c_quiz_answered OR c_could_have_played
THEN
player_can (l_required_info.pl_see_quiz_after)
ELSE
everyone_can (l_required_info.ev_see_quiz_after)
END;
WHEN c_see_correctness
THEN
l_return :=
CASE
WHEN c_quiz_answered OR c_could_have_played
THEN
player_can (l_required_info.pl_see_answer_after)
ELSE
everyone_can (l_required_info.ev_see_answer_after)
END;
WHEN c_see_answers
THEN
/* Control display of overall answer, choice explanations, etc. */
l_return :=
CASE
WHEN NOT c_quizzes_accepted
THEN
FALSE
WHEN c_quiz_answered OR c_could_have_played
THEN
player_can (l_required_info.pl_see_answer_after)
ELSE
everyone_can (l_required_info.ev_see_answer_after)
END;
WHEN c_see_results
THEN
/* Display stats, rankings, % correct, etc. */
l_return :=
CASE
WHEN NOT c_results_accepted
THEN
FALSE
WHEN c_quiz_answered OR c_could_have_played
THEN
player_can (l_required_info.pl_see_results_after)
ELSE
everyone_can (
l_required_info.ev_see_results_after)
END;
END CASE;
END IF;
END IF;
RETURN l_return;
END;</pre>
<pre> </pre>
<pre> /* And now specialized programs for different scenarios. */</pre>
<pre> </pre>
<pre> FUNCTION can_see_my_choices (comp_event_id_in IN INTEGER,
user_id_in IN INTEGER)
RETURN BOOLEAN
IS
BEGIN
RETURN can_show_information (c_see_my_choices,
comp_event_id_in,
user_id_in);
END;
FUNCTION can_see_correctness (comp_event_id_in IN INTEGER,
user_id_in IN INTEGER)
RETURN BOOLEAN
IS
BEGIN
RETURN can_show_information (c_see_correctness,
comp_event_id_in,
user_id_in);
END;
FUNCTION can_see_answers (comp_event_id_in IN INTEGER,
user_id_in IN INTEGER)
RETURN BOOLEAN
IS
BEGIN
RETURN can_show_information (c_see_answers,
comp_event_id_in,
user_id_in);
END;
FUNCTION can_see_results (comp_event_id_in IN INTEGER,
user_id_in IN INTEGER)
RETURN BOOLEAN
IS
BEGIN
RETURN can_show_information (c_see_results,
comp_event_id_in,
user_id_in);
END;
FUNCTION results_available_for (comp_event_id_in IN INTEGER,
user_id_in IN INTEGER)
RETURN BOOLEAN
IS
BEGIN
RETURN can_see_results (comp_event_id_in, user_id_in);
END results_available_for;
</pre>
Steven Feuersteinhttp://www.blogger.com/profile/16619706770920320550noreply@blogger.com4tag:blogger.com,1999:blog-8677649049588007585.post-25694009683087722392014-02-16T17:00:00.001+00:002014-02-16T17:05:08.511+00:00Results of First-ever SQL Championship for 2013You will find below the rankings for the first ever 2013 SQL championship.<br />
<br />
Congratulations first and foremost to our top-ranked players:<br />
<br />
<b>1st Place: <a href="http://plsqlchallenge.com/pls/apex/f?p=10000:PROFILE:13202842160498::NO::P1051_USER_ID:18255:">Vincent Malgrat</a> of French Republic<br /><br />2nd Place: <a href="http://plsqlchallenge.com/pls/apex/f?p=10000:PROFILE:13202842160498::NO::P1051_USER_ID:20276:">Christoph Hillinger</a> of Austria<br /><br />3rd Place: <a href="http://plsqlchallenge.com/pls/apex/f?p=10000:PROFILE:13202842160498::NO::P1051_USER_ID:4555:">Tony Winn</a> of Australia</b><br />
<b><br /></b>Next, congratulations to everyone who played in the championship. I hope you found it entertaining, challenging and educational. And for those who were not able to participate in the championship, you can take the quizzes next week through the Practice feature. We will also make the championship as a whole available as a Test, so you can take it just like these 39 players did.<br />
<br />
And special thanks must go out to Kim Berg Hansen for writing these challenging quizzes and to Vitaliy Lyanchevskiy (a.k.a., Elic) for his thorough reviews. No objections were reported on these quizzes, and that was due entirely to the deep technical skills and attention to detail of both Kim and Vitaliy. <br />
<br />
Warm regards,<br />
Steven Feuerstein<br />
<br />
<br />
<table style="border-collapse: collapse; border: 1px solid blue;">
<tbody>
<tr style="border-bottom: 1px solid blue; text-align: center;">
<th style="width: 10%;">Rank</th>
<th style="width: 30%;">Name</th>
<th style="width: 30%;">Country</th>
<th style="width: 20%;">Total Time</th>
<th style="width: 20%;">% Correct</th>
<th style="width: 10%;">Total Score</th>
</tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>1</td><td>Vincent Malgrat </td><td>French Republic</td><td>34 mins 51 secs</td><td>86%</td><td>2513</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>2</td><td>Christoph Hillinger </td><td>Austria</td><td>43 mins 01 secs</td><td>86%</td><td>2405</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>3</td><td>Tony Winn </td><td>Australia</td><td>35 mins 40 secs</td><td>78%</td><td>2332</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>4</td><td>mentzel.iudith </td><td>Israel</td><td>38 mins 59 secs</td><td>84%</td><td>2285</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>5</td><td>james su </td><td>Canada</td><td>37 mins 29 secs</td><td>78%</td><td>2240</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>6</td><td>Chris Saxon </td><td>United Kingdom</td><td>22 mins 52 secs</td><td>71%</td><td>2168</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>7</td><td>Niels Hecker </td><td>Germany</td><td>41 mins 41 secs</td><td>80%</td><td>2096</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>8</td><td>Leszek Grudzień </td><td>Poland</td><td>35 mins 09 secs</td><td>71%</td><td>1997</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>9</td><td>Sachi </td><td>United States</td><td>31 mins 29 secs</td><td>71%</td><td>1985</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>10</td><td>koko </td><td>Ukraine</td><td>40 mins 19 secs</td><td>78%</td><td>1974</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>11</td><td>Chase Mei </td><td>Canada</td><td>44 mins 11 secs</td><td>76%</td><td>1966</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>12</td><td>Scott Wesley </td><td>Australia</td><td>19 mins 45 secs</td><td>63%</td><td>1960</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>13</td><td>Zoltan Fulop </td><td>Hungary</td><td>35 mins 04 secs</td><td>69%</td><td>1959</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>14</td><td>JohnR </td><td>United States</td><td>40 mins 01 secs</td><td>73%</td><td>1935</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>15</td><td>Ivan Blanarik </td><td>Slovakia</td><td>36 mins 27 secs</td><td>69%</td><td>1856</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>16</td><td>Rimantas Adomauskas </td><td>Lithuania</td><td>42 mins 50 secs</td><td>73%</td><td>1843</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>17</td><td>Justin Cave </td><td>United States</td><td>43 mins 46 secs</td><td>73%</td><td>1810</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>18</td><td>Michal Cvan </td><td>Slovakia</td><td>39 mins 23 secs</td><td>69%</td><td>1797</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>19</td><td>Eric Levin </td><td>United States</td><td>41 mins 58 secs</td><td>69%</td><td>1786</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>20</td><td>Andres </td><td>Estonia</td><td>44 mins 51 secs</td><td>73%</td><td>1748</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>21</td><td>Viacheslav Stepanov </td><td>Russia</td><td>43 mins 12 secs</td><td>71%</td><td>1736</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>22</td><td>Rytis Budreika </td><td>Lithuania</td><td>24 mins 23 secs</td><td>59%</td><td>1722</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>23</td><td>Telmoc </td><td>Portugal</td><td>30 mins 18 secs</td><td>59%</td><td>1714</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>24</td><td>Yuan Tschang </td><td>United States</td><td>44 mins 34 secs</td><td>71%</td><td>1694</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>25</td><td>Krzysztof Helbin </td><td>Poland</td><td>34 mins 15 secs</td><td>65%</td><td>1690</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>26</td><td>Jason H </td><td>United States</td><td>38 mins 09 secs</td><td>65%</td><td>1677</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>27</td><td>Stelios Vlasopoulos </td><td>Belgium</td><td>29 mins 16 secs</td><td>61%</td><td>1665</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>28</td><td>Anna Onishchuk </td><td>Ireland</td><td>20 mins 37 secs</td><td>55%</td><td>1663</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>29</td><td>Matthias Rogel </td><td>Germany</td><td>31 mins 35 secs</td><td>59%</td><td>1653</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>30</td><td>Sean Molloy </td><td>United States</td><td>41 mins 57 secs</td><td>67%</td><td>1651</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>31</td><td>Chad Lee </td><td>United States</td><td>42 mins 36 secs</td><td>67%</td><td>1633</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>32</td><td>Milibor Jovanovic </td><td>Serbia</td><td>42 mins 26 secs</td><td>65%</td><td>1611</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>33</td><td>Marsel Fattakhov </td><td>Russia</td><td>27 mins 26 secs</td><td>59%</td><td>1571</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>34</td><td>Randy Gettman </td><td>United States</td><td>44 mins 50 secs</td><td>65%</td><td>1493</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>35</td><td>Giedrius Deveikis </td><td>Lithuania</td><td>44 mins 52 secs</td><td>57%</td><td>1418</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>36</td><td>Hertha Rettinger </td><td>Germany</td><td>30 mins 17 secs</td><td>55%</td><td>1414</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>37</td><td>swart260 </td><td>Netherlands</td><td>39 mins 38 secs</td><td>55%</td><td>1282</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>38</td><td>Pavel Vorontsov </td><td>Russia</td><td>13 mins 43 secs</td><td>39%</td><td>1181</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>39</td><td>Tobias Stark </td><td>Germany</td><td>44 mins 12 secs</td><td>43%</td><td>741</td></tr>
</tbody></table>
Steven Feuersteinhttp://www.blogger.com/profile/16619706770920320550noreply@blogger.com0tag:blogger.com,1999:blog-8677649049588007585.post-6706584517786576862014-01-20T16:01:00.000+00:002014-01-20T16:01:07.752+00:00Participants in the Q4 2013 PL/SQL ChampionshipThe following players will be invited to participate in the Q4 2013 championship. The number in parentheses after their names are
the number of playoffs in which they have already participated.<br />
<br />
Congratulations to all listed below on their accomplishment and best of luck in the upcoming competition! <br />
<br />
We
currently plan to hold the championship on 27 February (all at the same time world-wide), and are waiting for confirmation from players that this day will work.<br />
<br />
Note: we accepted the top 50 ranked players into the SQL and Logic championships, but still only the top 25 players for PL/SQL. We are going to shift to the top 50 for all championships, starting this quarter, but did not feel it was appropriate to switch the rules for the PL/SQL championship after the fact. <br />
<br />
See the FAQ for an explanation of the three ways a player can qualify for the playoff.<br />
<br />
<table style="border-collapse: collapse; border: 1px solid blue;"><tbody>
<tr style="border-bottom: 1px solid blue; text-align: center;">
<th style="width: 30%;">Name</th>
<th style="width: 10%;">Rank</th>
<th style="width: 20%;">Qualification</th>
<th style="width: 30%;">Country</th></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Stelios Vlasopoulos (9)</td><td>1</td><td>Top 25</td><td>Belgium</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Rakesh Dadhich (4)</td><td>2</td><td>Top 25</td><td>India</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>mentzel.iudith (12)</td><td>3</td><td>Top 25</td><td>Israel</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Siim Kask (12)</td><td>4</td><td>Top 25</td><td>Estonia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Janis Baiza (8)</td><td>5</td><td>Top 25</td><td>Latvia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Niels Hecker (13)</td><td>6</td><td>Top 25</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Viacheslav Stepanov (11)</td><td>7</td><td>Top 25</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Jerry Bull (10)</td><td>8</td><td>Top 25</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Zoltan Fulop (6)</td><td>9</td><td>Top 25</td><td>Hungary</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>swart260 (6)</td><td>10</td><td>Top 25</td><td>Netherlands</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Mike Pargeter (11)</td><td>11</td><td>Top 25</td><td>United Kingdom</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Vincent Malgrat (6)</td><td>12</td><td>Top 25</td><td>French Republic</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Milibor Jovanovic (4)</td><td>13</td><td>Top 25</td><td>Serbia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Yuri Pedan (3)</td><td>14</td><td>Top 25</td><td>Ukraine</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Oleksiy Varchyn (1)</td><td>15</td><td>Top 25</td><td>Norway</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Ajaykumar Gupta (3)</td><td>16</td><td>Top 25</td><td>Singapore</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Andrey Zaytsev (1)</td><td>17</td><td>Top 25</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>james su (7)</td><td>18</td><td>Top 25</td><td>Canada</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Chad Lee (9)</td><td>19</td><td>Top 25</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Rytis Budreika (0)</td><td>20</td><td>Top 25</td><td>Lithuania</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Kevan Gelling (8)</td><td>21</td><td>Top 25</td><td>Isle of Man</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Joaquin Gonzalez (6)</td><td>22</td><td>Top 25</td><td>Spain</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Jeroen Rutte (6)</td><td>23</td><td>Top 25</td><td>Netherlands</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Manfred Kleander (0)</td><td>24</td><td>Top 25</td><td>Austria</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Anna Onishchuk (7)</td><td>25</td><td>Top 25</td><td>Ireland</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>_tiki_4_ (5)</td><td>26</td><td>Wildcard</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Frank Schmitt (7)</td><td>27</td><td>Wildcard</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Krzysztof Helbin (2)</td><td>28</td><td>Wildcard</td><td>Poland</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Leszek Grudzień (1)</td><td>29</td><td>Wildcard</td><td>Poland</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>João Barreto (3)</td><td>30</td><td>Wildcard</td><td>Portugal</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Ravshan Abbasov (0)</td><td>31</td><td>Wildcard</td><td>Uzbekistan</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Peter Auer (0)</td><td>32</td><td>Wildcard</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>dmitrysk (0)</td><td>33</td><td>Wildcard</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Lukasz Kubicki (0)</td><td>34</td><td>Wildcard</td><td>Poland</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Frank Puechl (3)</td><td>35</td><td>Wildcard</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Karel Prech (2)</td><td>40</td><td>Correctness</td><td>Czech Republic</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Thierry Poels (6)</td><td>43</td><td>Correctness</td><td>Belgium</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Michal Cvan (10)</td><td>45</td><td>Correctness</td><td>Slovakia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Telmoc (1)</td><td>46</td><td>Correctness</td><td>Portugal</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Yuan Tschang (7)</td><td>84</td><td>Correctness</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Randy Gettman (11)</td><td>109</td><td>Correctness</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>ChallengeMe (0)</td><td>176</td><td>Correctness</td><td>United Kingdom</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Anil Jha (2)</td><td>182</td><td>Correctness</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Goran Stefanović (4)</td><td>197</td><td>Correctness</td><td>Serbia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Dan Kiser (5)</td><td>213</td><td>Correctness</td><td>United States</td></tr>
</tbody></table>
Steven Feuersteinhttp://www.blogger.com/profile/16619706770920320550noreply@blogger.com2tag:blogger.com,1999:blog-8677649049588007585.post-92035155224531398352014-01-20T15:59:00.002+00:002014-01-20T15:59:59.459+00:00Participants in First-Ever Annual SQL ChampionshipThe following players will be invited to participate in the first-ever SQL 2013 championship.<br />
<br />
As you can see, we have "tweaked" the rules for championships as follows: the top 50 ranked players are now eligible to compete! <br />
<br />
See the FAQ for an explanation of the three ways a player can qualify for the championship.<br />
<br />
We currently plan to hold this championship on 12 February. <br />
<br />
And congratulations to all listed below on their accomplishment and best of luck in the upcoming competition!<br />
<br />
<table style="border-collapse: collapse; border: 1px solid blue;"><tbody>
<tr style="border-bottom: 1px solid blue; text-align: center;">
<th style="width: 30%;">Name</th>
<th style="width: 10%;">Rank</th>
<th style="width: 20%;">Qualification</th>
<th style="width: 30%;">Country</th></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>swart260</td><td>1</td><td>Top 50</td><td>Netherlands</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Rakesh Dadhich</td><td>2</td><td>Top 50</td><td>India</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>mentzel.iudith</td><td>3</td><td>Top 50</td><td>Israel</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Vincent Malgrat</td><td>4</td><td>Top 50</td><td>French Republic</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Chris Saxon</td><td>5</td><td>Top 50</td><td>United Kingdom</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Stelios Vlasopoulos</td><td>6</td><td>Top 50</td><td>Belgium</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Matthias Rogel</td><td>7</td><td>Top 50</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Chad Lee</td><td>8</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Justin Cave</td><td>9</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Niels Hecker</td><td>10</td><td>Top 50</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Milibor Jovanovic</td><td>11</td><td>Top 50</td><td>Serbia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Frank Puechl</td><td>12</td><td>Top 50</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>james su</td><td>13</td><td>Top 50</td><td>Canada</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Chase Mei</td><td>14</td><td>Top 50</td><td>Canada</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Krzysztof Helbin</td><td>15</td><td>Top 50</td><td>Poland</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Zoltan Fulop</td><td>16</td><td>Top 50</td><td>Hungary</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Rytis Budreika</td><td>17</td><td>Top 50</td><td>Lithuania</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Giedrius Deveikis</td><td>19</td><td>Top 50</td><td>Lithuania</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Ivan Blanarik</td><td>20</td><td>Top 50</td><td>Slovakia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Leszek Grudzień</td><td>21</td><td>Top 50</td><td>Poland</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Naresh Kumar</td><td>22</td><td>Top 50</td><td>India</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Randy Gettman</td><td>23</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>_tiki_4_</td><td>24</td><td>Top 50</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Anna Onishchuk</td><td>25</td><td>Top 50</td><td>Ireland</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Sachi</td><td>26</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Viacheslav Stepanov</td><td>27</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Pavel Vorontsov</td><td>28</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Sean Molloy</td><td>29</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Tony Winn</td><td>30</td><td>Top 50</td><td>Australia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Scott Wesley</td><td>32</td><td>Top 50</td><td>Australia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Jens Petersen</td><td>33</td><td>Top 50</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>koko</td><td>34</td><td>Top 50</td><td>Ukraine</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Tobias Stark</td><td>35</td><td>Top 50</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Jerry Bull</td><td>36</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Hertha Rettinger</td><td>37</td><td>Top 50</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Andres</td><td>38</td><td>Top 50</td><td>Estonia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>MikaelZ</td><td>39</td><td>Top 50</td><td>Ukraine</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Pawan Agarwal</td><td>40</td><td>Top 50</td><td>India</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Sebastian Kolski</td><td>41</td><td>Top 50</td><td>Poland</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Kuvardin Evgeniy</td><td>42</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>JohnR</td><td>43</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Marsel Fattakhov</td><td>44</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Eric Levin</td><td>45</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>chill</td><td>46</td><td>Top 50</td><td>Austria</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>dmitrysk</td><td>47</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Rimantas Adomauskas</td><td>48</td><td>Top 50</td><td>Lithuania</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Jason H</td><td>50</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Michal Cvan</td><td>69</td><td>Correctness</td><td>Slovakia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>macabre</td><td>70</td><td>Correctness</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Thierry Poels</td><td>77</td><td>Correctness</td><td>Belgium</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Telmoc</td><td>84</td><td>Correctness</td><td>Portugal</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Yuan Tschang</td><td>88</td><td>Correctness</td><td>United States</td></tr>
</tbody></table>
Steven Feuersteinhttp://www.blogger.com/profile/16619706770920320550noreply@blogger.com0tag:blogger.com,1999:blog-8677649049588007585.post-90342908916078167812014-01-20T15:59:00.001+00:002014-01-20T15:59:55.094+00:00Participants in First-Ever Annual Logic ChampionshipThe following players will be invited to participate in the first-ever PL/SQL Challenge Logic 2013 championship.<br />
<br />
As you can see, we have "tweaked" the rules for championships as follows: the top 50 ranked players are now eligible to compete!<br />
<br />
We currently plan to hold the championship on 19 February. <br />
<br />
See the FAQ for an explanation of the three ways a player can qualify for the championship.<br />
<br />
And congratulations to all listed below on their accomplishment and best of luck in the upcoming competition!<br />
<br />
<table style="border-collapse: collapse; border: 1px solid blue;"><tbody>
<tr style="border-bottom: 1px solid blue; text-align: center;">
<th style="width: 30%;">Name</th>
<th style="width: 10%;">Rank</th>
<th style="width: 20%;">Qualification</th>
<th style="width: 30%;">Country</th></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Naresh Kumar </td><td>1</td><td>Top 50</td><td>India</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>mentzel.iudith </td><td>2</td><td>Top 50</td><td>Israel</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Ingimundur Gudmundsson </td><td>3</td><td>Top 50</td><td>Norway</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Chad Lee </td><td>4</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Milibor Jovanovic </td><td>5</td><td>Top 50</td><td>Serbia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Niels Hecker </td><td>6</td><td>Top 50</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>PZOL </td><td>7</td><td>Top 50</td><td>Hungary</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Jerry Bull </td><td>8</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Dan Jankowski </td><td>9</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Kanellos </td><td>10</td><td>Top 50</td><td>Greece</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>macabre </td><td>11</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Viacheslav Stepanov </td><td>12</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Sebastian Kolski </td><td>15</td><td>Top 50</td><td>Poland</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>chill </td><td>16</td><td>Top 50</td><td>Austria</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>katuinbouter </td><td>17</td><td>Top 50</td><td>Netherlands</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Peter Chenery </td><td>18</td><td>Top 50</td><td>United Kingdom</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Chris Saxon </td><td>19</td><td>Top 50</td><td>United Kingdom</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>james su </td><td>20</td><td>Top 50</td><td>Canada</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Rich Dellheim </td><td>21</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Ralf Koelling </td><td>22</td><td>Top 50</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Zoltan Fulop </td><td>23</td><td>Top 50</td><td>Hungary</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Yuan Tschang </td><td>24</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Elic </td><td>25</td><td>Top 50</td><td>Belarus</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Tom Hussey </td><td>26</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Thierry Poels </td><td>27</td><td>Top 50</td><td>Belgium</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>gobruins </td><td>28</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Pavel Vorontsov </td><td>29</td><td>Top 50</td><td>Russia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Sean Molloy </td><td>30</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Mehrab </td><td>31</td><td>Top 50</td><td>United Kingdom</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>koko </td><td>32</td><td>Top 50</td><td>Ukraine</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>danad </td><td>33</td><td>Top 50</td><td>Czech Republic</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Vijay Mahawar </td><td>34</td><td>Top 50</td><td>India</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>JasonC </td><td>35</td><td>Top 50</td><td>United Kingdom</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>umir </td><td>36</td><td>Top 50</td><td>Italy</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Cristinel Boboc </td><td>37</td><td>Top 50</td><td>Romania</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Rytis Budreika </td><td>38</td><td>Top 50</td><td>Lithuania</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Jason H </td><td>39</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Randy Gettman </td><td>40</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Stelios Vlasopoulos </td><td>41</td><td>Top 50</td><td>Belgium</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Tony Winn </td><td>42</td><td>Top 50</td><td>Australia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Jens Petersen </td><td>43</td><td>Top 50</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Mihail Siscu </td><td>44</td><td>Top 50</td><td>Moldova</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Hudai Polat </td><td>45</td><td>Top 50</td><td>Turkey</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Sandra99 </td><td>46</td><td>Top 50</td><td>Italy</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Andres </td><td>47</td><td>Top 50</td><td>Estonia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Justin Cave </td><td>48</td><td>Top 50</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Bruno Martins </td><td>49</td><td>Top 50</td><td>Portugal</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>JuanFer </td><td>50</td><td>Top 50</td><td>Bolivia</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>MarkM. </td><td>55</td><td>Correctness</td><td>Germany</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>owbeg </td><td>58</td><td>Correctness</td><td>Ukraine</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>tonyC </td><td>61</td><td>Correctness</td><td>United Kingdom</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Dan Kiser </td><td>79</td><td>Correctness</td><td>United States</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Lieselotje </td><td>81</td><td>Correctness</td><td>Belgium</td></tr>
<tr style="border-bottom: 1px solid blue; text-align: center;"><td>Enrico Rebecchi </td><td>126</td><td>Correctness</td><td>Italy</td></tr>
</tbody></table>
Steven Feuersteinhttp://www.blogger.com/profile/16619706770920320550noreply@blogger.com0