What is a good score in a game of Scrabble? Nigel Richards averages 462.54 in international tournaments. He has gone past 400 points 84.41% of the time. Craig Beavers averages 438.59 and has gone past 400 points 73.34% of the time. Mind you these are international tournaments where they would be coming up against strong opponents most of the time. Their averages would go up considerably if national level and state level tournaments were also taken into consideration. Anyway, this is not an exhaustive study on average game score, it's merely a study on the use of average game scores to evaluate the fairness of the draw.
At the Age Group Scrabble Championship 2016, weaker players struggled to pass 300, the top rated players notched up 500+ and even 600+ scores with ease. Thatwas due to a huge disparity between the top players who are some of the best young Scrabblers in the world and others who compete only at the domestic level. This disparity makes it possible to use the average number of points scored by each player as an indicator for the challenges faced by that player.
|37||Thirandi De Silva||3||660||461|
|14||Shakeel Ahamed Ajim||4||754||459|
|20||Janul De Silva||4||404||429|
Table 1 Average (mean) points per game and marging sorted by average points
Janul won the prize for highest game score by racking up 646 in the first round. Despite two losses defending champion Hasindu averaged 506 per game, 31 points higher than the new champion's average. Hasindu had three scores between 500 - 600 and once scored 625. Hasindu’s lowest score was 367. That means Hasindu’s lowest score is higher that 91% of scores in the entire tournament.
As with many other comparisons Aabid is right up there with the best. It shows that despite it’s faults King Of The Hill (KOTH) is capable of selecting a champion. However only three other prize winners make it to this list.
37th placed Thirandi averaged 461 per game which is the third highest despite losing three games and she has a healthy margin of 660 points too (sixth highest among all players). Janidu with 443 was 38th. Compare this with an average of 259 for 36th placed Jithmi Linara.
Table 2 Average scores for the prize winners
The first 7 prize winners have very respectable average number of points scored but for the last three places the spread and the average per game is much below par.
|20||Janul De Silva||4||404||429|
|37||Thirandi De Silva||3||660||461|
Table 3 Average scores for the rated players.
Though six of the rated players have not managed to get on the prize list, they have done very well in terms of average points score. The lowest amongst them is 381 by Thavalakshman. He would be disapointed with that. But it is still a respectable score.
So in conclusion it can be seen that King Of The Hill is grossly unfair if you use Average Points Score as a measure of performance. Earlier we looked at Buchholz score and Average Opponent Rank to find that KOTH has been grossly unfair.
Do I rest my case? Not yet. We will next look at Aristomancy to judge the effectiveness of the pairing system
Average Ratings of Opponents, the Buchholz and Sonneborn-Berger System are some of the methods recommended by FIDE for breaking ties in Chess tournaments. While ties are the order of the day in chess tournaments, in the Scrabble world it is virtually unheard of. But what works for tie breaking in chess works well for evaluating Scrabble pairings. We will take a closer look at Buchholz in this post particularly since it's one recommended by John Chew, the creator of Tournament Shell for exactly this purpose.
The sum of opponent scores or Buchholz is “..the idea is that the same score is more valuable if achieved against players with better performances in a given tournament. Looks like an ideal tie-breaking method and has been used since the Swiss system was invented.” (Swissperfect, 2008)
In this context the score means the number of games won by each player. To avoid confusion with the number of points scored on the board, the term Bucholz score will be used when the discussion is about the total number of games won by a player's’ opponents. And this discussion is about evaluating the fairness of King Of The Hill pairings in Scrabble. This is fourth part in a series.
For example Hayati played against Erandi (3 wins), Thirandi ( 3 wins), Danusha ( 5 wins), Janidu (3 wins), Lalinka ( 3 wins), Navodya (5 wins) so her Buchholz score is 22. This is what is looks like for all the prize winners.
Table 2.4 Sum of opponents scores for each of the prize winners
Most of the prize winners have a Buchholz score greater than 20. For Akshai, it's only 17 but that's reasonably since he is placed only tenth overall isn't it? Let's see what the next table, it lists the players with the best Buchholz scores
|41||Lalinka De Silva||24|
|20||Janul De Silva||23|
Table 2.5 Players with the highest Buchholz scores.
There are 12 players with a Buchholz score of at least 23 and one of them Therunee ended up in 75th place. For comparison purposes the player at the 76th position had a score of 14. Among the prize winners only four players had a score of 24 or more. Let's also take a look at the table for top rated players.
|3||Janul De Silva||23|
|9||Thirandi De Silva||22|
Migara and Rehan suffered losses in the third and fourth rounds so their Buchholz scores are only 19 but Hasindu who suffered a loss in the second round and another loss in the third round still has a Buchholz score of 20 as shown in the table above.
Except for Vignesh most of the other rated players have Buchholz scores that compare favourably with the prize winners. Except that many of these players didn't actually win any prizes!
Though Janul lost the second game he obviously didn’t have an easy time of it from that point onwards, as can be seen by the fact that his opponents racked up 23 wins among themselves. In other words, Janul kept running into tough opponents who were all lurking in the second half of the field! Janul's Buchholz score is higher than that of five of the prize winners.
Thus in conclusion, the pairing system (King Of The Hill) has not treated all players equally as shown by the huge disparity in Buchholz scores. But I am not going to rest my case! There is a lot more evidence coming up!
This is part three, in a series of posts on King Of The Hill pairings. The analysis is carried out using the results of the Age Group Scrabble Championship 2015.. The tables on this post can be recreated by web scraping the contents of the above link.
The fairness of the draw can be calculated based on three different criteria as described on the official website of tsh, the most widely used pairing software in Scrabble and the one used for this tournament
Average Opponent Rank
The rank of a player is the position he occupied at the end of the tournament. Therefore Average Opponent Rank is the sum of the rank of each opponent faced by a given player divided by the number of rounds.
As an example Qays played against Lochana, Zahra, Rizvi, Ashvin, Duilini and Radinka their ranks were 34, 42, 11, 58, 24 and 5 which add to 174 and averages to 29. Players with lower Average Opponent Rank (AOR) have faced stiffer competition.
The table below outlines the average opponent rank sorted by AOR in ascending order. Lower AOR means the player's opponents secured better placings.
|Position||Name||Average Opponent Rank||Number of prize winning opponents|
|41||Lalinka De Silva||24.50||3|
|20||Janul De Silva||28.00||2|
|37||Thirandi De Silva||32.17||1|
Table 1: Best Average Opponent Ranks
Only four of the prize winners figure in this list but the champion has the best AOR of all players. 75th placed Therunee and 41st placed Lalinka have better AORs than eight of the prize winners. Lalinka and Hansi were the only players to meet three prize winners. Lalinka managed to win two of those games (vs Migara and Yenuli) yet her own position is 41st.
Compare the above with the next table which examines the AOR figures for top rated players.
|Position||Rating||Name||AOR||Prize Winning opponents|
|20||1054||Janul De Silva||28.00||2|
|37||847||Thirandi De Silva||32.17||1|
Though top rated players are the most likely contenders for the title as well as the remaining nine prizes, and the stated objective of KOTH is to pair contenders, three of the top rated players haven’t been paired against prize winners at all. These three happen to be two former under 18 champions and a two time under 13 champion!!
Thus the Average Opponent Rank shows that there is considerable disparity in the manner in which rated players were paired and KOTH has failed to fulfil its objectives. Based on Average Opponent Rank, King of the Hill has been anything but fair
(Note: Average opponent rank table for Prize winners is presented in section 2.3)
This the continuation of a series of articles that analyses the King of The Hill pairing system. Before we get to the analysis proper, we need to get some definitions out of the way.
The King Of The Hill Pairing system, which is a strict 1 plays 2, 3 plays 4 .. (2n-1) plays 2n pairing system.
A reference to the Swiss Pairing system which is almost always the format that is used for tournaments where the number of players exceeds the number of rounds. It finds widespread usage in scrabble and some other sports too
It is customary in Scrabble tournaments to award prizes and/or certificates to players who finish with in the top 10 at the end of the tournament. These persons will be called prize winners
Age Group Scrabble Championship is the only tournament conducted by the SLSL that specifically targets beginners. As a result it attracts a disproportionate number of novices. There is a huge gap between these players and rated players. For the purpose of this discussion a rated player is a person whose name appears on the SLSL ratings list. Further the players with the 10 highest ratings will be called the top rated players.
A person who is either a prize winner or a top rated player
Players who have scored an average of 365 points per game will be defined as a strong player. Only the top quartile had an average greater than 365 .
The King Of The Hill pairing system is one where the “Top ranked plays second, third plays fourth, etc. Usually used for the last round(s) of the tournament” (NSA 2008, p53) “KOTH pairings are often used in the final round(s) of a tournament to ensure that contenders face each other” (Chew, John 2015)
This is the start of a series of posts on the King Of The Hill Pairing system based on the results of the results of the Sri Lanka Age Group Scrabble Championship 2015. Before you run of thinking Sri Lanka, Bah! Consider that this was a tournament in which three of the top 10 finishers at the World Youth Scrabble Championship took part. In fact Sri Lanka is a country that has produced many a strong performer at international level
KOTH was used for pairing 5 out of 6 rounds at the All Island Age Group Scrabble Championships in 2015 and 2014. In previous years when KOTH was only used it was only in the last round of the tournament. The format is also used in 6 out of 18 rounds at the Scrabbler of the Year tournaments held four times a year.
“It is estimated that as many as 75-80% of all tournaments use the KOTH for the last one or two rounds, including many R-R events. But, almost none use KOTH in the early rounds.” (NSA 2008, p53)
Chew, John. 2015. 'Tsh: Commands'. Poslarchive.Com. http://www.poslarchive.com/tsh/doc/commands.html#pairing.
>2008. New York: National Scrabble Association.
What does the 2003 UK Scrabble Champion and the 2005 Australian Scrabble Champion have in common? They are both of Sri Lankan origin (Harshan and Naveen). For good measure Naveen Fernando won the Australian title again in 2010. Before that he had won the Gulf Championship. Ancient history you say? Then consider that Sri Lanka was the only country to have three players in the top 10 at the 2015 World Youth Scrabble Championship. One of them won the Under 13 title and Sri Lanka also won the team title.
When the incomparable Bobby Fischer emerged as the World Chess Champion, it was likened to grass growing through the cracks on a busy sidewalk. Then Sri Lankan Scrabblers shining on the world stage is the equivalent of a tree sprouting on the middle or a busy elevated highway. Missaka Warusawithana played at the World Championship as a 15 year old. Mind you this is the senior event, not World Youth Championship. Missaka was 15th that year. A few years later Naveen bettered it moved it from 15 to 13, 11, 8 and 3 (though he wasn't representing Sri Lanka at the time). There it has languished for a long time.
You would think that a tiny Indian ocean country where English is spoken as the first language by less than 50,000 persons might not be able to achieve these sort of performances but they have. Sri Lankans have done even better at WYSC consistently having one or two players in the top 10 and having three in 2015. So why hasn't Sri Lanka had a top 10 finisher in the WSC since 2005? When you read the next few posts you will find out!
If Sri Lankan eventually wins the World Scrabble Championship, it would be inspite of the Sri Lanka Scrabble League rather than because of it
foot note: This article isn't exactly tech geek but it's a prelude to a series of posts that will be geek (even though not exactly tech geek)
Have you seen the sample code in Android Docs? for sending GCMs with python an XMPP? Sure you have. You probably know that
import xmpp here refers to the xmpppy library.
xmpppy hasn't been updated for at least a decade. Heck there's even an ICQ number for the author on the project home page. And yes, the project is hosted on Source Forge!! Never mind all that. the real problem is that xmpppy doesn't play very well with modern versions of openssl and god knows what other incompatibilities there are.
File "push/ccs.py", line 319, in
ts.setup_xmpp() File "/..../push/base.py", line 140, in setup_xmpp self.xmpp_client.connect(server=(settings.CLOUD_MESSENGER['SERVER'],self.params['PORT']), secure=1, use_srv=False) File "/usr/local/virtualenv-django18/lib/python2.7/site-packages/xmpp/client.py", line 200, in connect if not CommonClient.connect(self,server,proxy,secure,use_srv) or secure<>None and not secure: return self.connected File "/usr/local/virtualenv-django18/lib/python2.7/site-packages/xmpp/client.py", line 178, in connect transports.TLS().PlugIn(self,now=1) File "/usr/local/virtualenv-django18/lib/python2.7/site-packages/xmpp/transports.py", line 281, in PlugIn if now: return self._startSSL() File "/usr/local/virtualenv-django18/lib/python2.7/site-packages/xmpp/transports.py", line 316, in _startSSL tcpsock._sslIssuer = tcpsock._sslObj.issuer() AttributeError: '_ssl._SSLSocket' object has no attribute 'issuer
So you might shop around for another python xmpp library, there are quite a few. But the majority of these libraries seem to be forks of xmppy itself but these forks have merely copied the files and just left them there. Twisted and SleekXMPP seem to be the only libraries and are being maintained. So let's see if we can modify google's sample to work with either of these two and in the long run that really is what you should do. But for now there is one, just one fork (https://github.com/ArchipelProject/xmpppy/) that's only two years behind. You will have to install it manually though.
source /usr/local/myvirtualenv/bin/activate pip uninstall xmpppy wget https://github.com/ArchipelProject/xmpppy/archive/master.zip unzip master.zip cd xmpppy-master python setup.py build python setup.py install
Hopefully the next breaking change to openssl is a long way away.
Upgrading Postgresql minor versions is quite straght forward. You can do so with the pg_upgrade tool that's part of the binaries. But there is always a but, this is true only when Postgis extensions are not being used.
The first error in the upgrade process had nothing to do with postgis though. It was due to the wrong encoding.
encodings for database "postgres" do not match: old "UTF8", new "SQL_ASCII"
This was a problem that could be easily overcome by dropping the database and recreating it with the proper encoding.
/usr/pgsql-9.5/bin/initdb -E 'UTF-8' 9.5
But you will run into trouble once again with libraries
Checking for presence of required libraries fatal
Your installation references loadable libraries that are missing from the new installation. You can add these libraries to the new installation, or remove the functions using them from the old installation. A list of problem libraries is in the file:
The contents of the loadable_libraries.txt file is as follows:
ERROR: could not access file "$libdir/rtpostgis-2.1": No such file or directory
Could not load library "$libdir/repmgr_funcs"
ERROR: could not access file "$libdir/repmgr_funcs": No such file or directory
Could not load library "$libdir/tablefunc"
ERROR: could not access file "$libdir/tablefunc": No such file or directory
The requirement of
tablefunc.so can be fullfilled by installing
repmgr_funcs.so is obviously from repmgr95.x86_64
The postgis requirement isn't so easy. What comes with postgresl-9.5 on centos is postgis-2.2 whereas 9.3 had 2.1. You have two choices; You can manually install 2.1 on the new server or you can do a hard upgrade. The first option is a little bit more work (you will invariably have to install the -devel versions of various libraries in order to be able to compile postgis from source) but it will minimize downtime. Hard upgrade involves dumping the entire database manually and importing it back.
So I decided to take the manual compile path only to find that it cannot be crossed. When tying out the compile Postgis option it was discovered that the --prefix parameter to configure was broken. So the only choice for me is to do a hard upgrade. So it's a hard upgrade, and the hard upgrade is very hard because there are all kinds of inexplicable errors showing up. Here are a few examples:
ERROR: invalid byte sequence for encoding "UTF8": 0xe0 0xaf 0x2e ERROR: value too long for type character varying(128) ERROR: insert or update on table "announcements_announcement" violates foreign key constraint "announcements_announcement_creator_id_fkey" DETAIL: Key (creator_id)=(1) is not present in table "auth_user".
The data that doesn't fit into 128 chars now obviously fitted in the old version, this and the encoding errors indicate that some form of charset conversion is happening. More pressing is the foreign key errors. These users definitely exist on the roadlk database.
Update May 01: Finally solved this by not using postgis_restore and importing the database direct with pg_restore!