From b2174d47bf84d062cfd14f6b348959c9ee23c977 Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Fri, 6 Sep 2019 19:15:06 +0100 Subject: - Added solutions by Kevin Colyer. --- challenge-024/kevin-colyer/perl6/ch-1.p6 | 4 + challenge-024/kevin-colyer/perl6/ch-2.p6 | 107 ++++ stats/pwc-current.json | 135 +++-- stats/pwc-language-breakdown-summary.json | 64 +-- stats/pwc-language-breakdown.json | 416 +++++++------- stats/pwc-leaders.json | 908 +++++++++++++++--------------- stats/pwc-summary-1-30.json | 100 ++-- stats/pwc-summary-31-60.json | 36 +- stats/pwc-summary-61-90.json | 46 +- stats/pwc-summary-91-120.json | 58 +- stats/pwc-summary.json | 40 +- 11 files changed, 1020 insertions(+), 894 deletions(-) create mode 100644 challenge-024/kevin-colyer/perl6/ch-1.p6 create mode 100644 challenge-024/kevin-colyer/perl6/ch-2.p6 diff --git a/challenge-024/kevin-colyer/perl6/ch-1.p6 b/challenge-024/kevin-colyer/perl6/ch-1.p6 new file mode 100644 index 0000000000..168741af0c --- /dev/null +++ b/challenge-024/kevin-colyer/perl6/ch-1.p6 @@ -0,0 +1,4 @@ +# PWC 24.1 : Create a smallest script in terms of size that on execution doesn’t throw any error. The script doesn’t have to do anything special. You could even come up with smallest one-liner. +# +# A simple tac command accepting multiple text files: 35 chars. +@*ARGS.map: *.IO.lines.reverse».say diff --git a/challenge-024/kevin-colyer/perl6/ch-2.p6 b/challenge-024/kevin-colyer/perl6/ch-2.p6 new file mode 100644 index 0000000000..78c32b0d0e --- /dev/null +++ b/challenge-024/kevin-colyer/perl6/ch-2.p6 @@ -0,0 +1,107 @@ +#!/usr/bin/perl6 +use v6; + +use Test; + +# 24.2 Create a script to implement full text search functionality using Inverted Index. According to wikipedia: + +# In computer science, an inverted index (also referred to as a postings file or inverted file) is a database index storing a mapping from content, such as words or numbers, to its locations in a table, or in a document or a set of documents (named in contrast to a forward index, which maps from documents to content). The purpose of an inverted index is to allow fast full-text searches, at a cost of increased processing when a document is added to the database. + +class DocumentStore { + + enum DocStoreStat ; + + has @!documents; + has %!documentNames; + has %!index; + + method addDocument ($name,$document) returns DocStoreStat { + return EAlreadyInDatabase if %!documentNames{$name}:exists; + return ENoColonsInDocumentName if $name ~~ / \: /; + @!documents.push: $document; + %!documentNames{$name}=@!documents.elems-1; + self!indexDocument($name); + return AddOK; + }; + + method removeDocument ($name) returns DocStoreStat { + return ENotInDatabase if %!documentNames{$name}:!exists; + + for %!index.keys -> $k { + %!index{$k} = %!index{$k}.grep({ if !/ ^ $name ":" / { $_ } }); + %!index{$k}:delete unless %!index{$k}.elems; + } + + @!documents[%!documentNames{$name}]=Nil; # remove by zeroing - don't splice or indexes will change! + %!documentNames{$name}:delete; + return RemoveOK; + }; + + method getDocument($name) { + return ENotInDatabase if %!documentNames{$name}:!exists; + return @!documents[%!documentNames{$name}]; + }; + + method search($needle){ + return Nothing if %!index{$needle}:!exists; + return %!index{$needle}; + }; + + method indexElems() returns Int { + %!index.elems; + } + + method elems() returns Int { + @!documents.elems; + } + + # private method + method !indexDocument($name){ + my Str $doc=@!documents[%!documentNames{$name}]; + my Int $i=0; + my Str $word; + while $i < $doc.chars { + #say "$i: "~$doc.substr($i); + $doc.substr($i) ~~ m/ (\W*) (\w+) /; + #say $/; + $i+=$/[0].chars if $/[0] ; + last unless $/[1]; + $word=$/[1].lc; + %!index{$word}.push: "$name:$i"; + $i+=$word.chars; + } + return; + }; +} + + +multi MAIN("test") { + my $doc1="This is a TEST!"; + my $doc1Name="test1"; + my $doc2="this: is also is a test"; + my $doc2Name="test2"; + my $ds = DocumentStore.new(); + is $ds.search("test"),DocumentStore::Nothing,"Not in database, returns "; + is $ds.removeDocument($doc1Name),DocumentStore::ENotInDatabase,"Can't remove a document that is not in store"; + is $ds.addDocument($doc1Name,$doc1),DocumentStore::AddOK,"Document added"; + is $ds.addDocument("bad:name",$doc1),DocumentStore::ENoColonsInDocumentName,"Bad file name - no colons allowed (for now!)"; + is $ds.indexElems,4,"4 words indexed"; + is $ds.elems,1,"1 document indexed"; + is $ds.addDocument($doc1Name,$doc1),DocumentStore::EAlreadyInDatabase,"Document previously added"; + is $ds.addDocument($doc2Name,$doc2),DocumentStore::AddOK,"Document added"; + is $ds.indexElems,5,"5 words indexed - checks normalisation too"; + is $ds.elems,2,"2 documents indexed"; + is $ds.getDocument("foo"),DocumentStore::ENotInDatabase,"getDocument not in index"; + is $ds.getDocument($doc2Name),$doc2,"getDocument return document stored"; + is $ds.removeDocument("test"),DocumentStore::ENotInDatabase,"Can't remove a document that is not in database"; + is $ds.search("test"),["$doc1Name:10","$doc2Name:19"],"Two items found"; + is $ds.search("is"),["$doc1Name:5","$doc2Name:6","$doc2Name:14"],"Three items found"; + is $ds.removeDocument($doc1Name),DocumentStore::RemoveOK,"Remove OK"; + is $ds.search("is"),["$doc2Name:6","$doc2Name:14"],"Two items found - index pruned after document removal"; + my @result=|$ds.search("is"); + for @result -> $item { + my ($n,$i)=|$item.split(":"); + is $ds.getDocument($n).substr($i,2),"is","[$n,$i] Correctly found search item at character pos"; + } + done-testing; +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 8b13704526..68d9031df3 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,40 +1,47 @@ { "series" : [ { + "name" : "Perl Weekly Challenge - 024", + "colorByPoint" : 1, "data" : [ { - "name" : "Andrezgz", + "y" : 2, "drilldown" : "Andrezgz", - "y" : 2 + "name" : "Andrezgz" }, { + "drilldown" : "Dave Cross", "y" : 1, - "name" : "Dave Cross", - "drilldown" : "Dave Cross" + "name" : "Dave Cross" }, { - "name" : "Duane Powell", "drilldown" : "Duane Powell", - "y" : 2 + "y" : 2, + "name" : "Duane Powell" }, { - "name" : "Joelle Maslak", "drilldown" : "Joelle Maslak", - "y" : 4 + "y" : 4, + "name" : "Joelle Maslak" }, { + "y" : 2, + "drilldown" : "Kevin Colyer", + "name" : "Kevin Colyer" + }, + { + "drilldown" : "Laurent Rosenfeld", "y" : 5, - "name" : "Laurent Rosenfeld", - "drilldown" : "Laurent Rosenfeld" + "name" : "Laurent Rosenfeld" }, { - "y" : 4, "drilldown" : "Roger Bell West", - "name" : "Roger Bell West" + "name" : "Roger Bell West", + "y" : 4 }, { - "drilldown" : "Ruben Westerberg", "name" : "Ruben Westerberg", + "drilldown" : "Ruben Westerberg", "y" : 4 }, { @@ -43,81 +50,62 @@ "name" : "Simon Proctor" }, { - "name" : "Steven Wilson", "drilldown" : "Steven Wilson", - "y" : 1 + "y" : 1, + "name" : "Steven Wilson" }, { - "y" : 5, "drilldown" : "Yet Ebreo", + "y" : 5, "name" : "Yet Ebreo" } - ], - "colorByPoint" : 1, - "name" : "Perl Weekly Challenge - 024" + ] } ], + "subtitle" : { + "text" : "[Champions: 11] Last updated at 2019-09-06 18:14:51 GMT" + }, "chart" : { "type" : "column" }, - "legend" : { - "enabled" : 0 - }, - "xAxis" : { - "type" : "category" - }, - "plotOptions" : { - "series" : { - "borderWidth" : 0, - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - } + "yAxis" : { + "title" : { + "text" : "Total Solutions" } }, - "subtitle" : { - "text" : "[Champions: 10] Last updated at 2019-09-06 14:34:16 GMT" - }, - "tooltip" : { - "headerFormat" : "{series.name}
", - "pointFormat" : "{point.name}: {point.y:f}
", - "followPointer" : 1 - }, "drilldown" : { "series" : [ { + "name" : "Andrezgz", + "id" : "Andrezgz", "data" : [ [ "Perl 5", 2 ] - ], - "id" : "Andrezgz", - "name" : "Andrezgz" + ] }, { + "id" : "Dave Cross", "data" : [ [ "Perl 5", 1 ] ], - "id" : "Dave Cross", "name" : "Dave Cross" }, { + "name" : "Duane Powell", "data" : [ [ "Perl 5", 2 ] ], - "name" : "Duane Powell", "id" : "Duane Powell" }, { - "id" : "Joelle Maslak", - "name" : "Joelle Maslak", "data" : [ [ "Perl 5", @@ -127,10 +115,21 @@ "Perl 6", 2 ] + ], + "id" : "Joelle Maslak", + "name" : "Joelle Maslak" + }, + { + "name" : "Kevin Colyer", + "id" : "Kevin Colyer", + "data" : [ + [ + "Perl 6", + 2 + ] ] }, { - "name" : "Laurent Rosenfeld", "id" : "Laurent Rosenfeld", "data" : [ [ @@ -145,9 +144,11 @@ "Blog", 1 ] - ] + ], + "name" : "Laurent Rosenfeld" }, { + "name" : "Roger Bell West", "data" : [ [ "Perl 5", @@ -162,12 +163,10 @@ 1 ] ], - "name" : "Roger Bell West", "id" : "Roger Bell West" }, { "name" : "Ruben Westerberg", - "id" : "Ruben Westerberg", "data" : [ [ "Perl 5", @@ -177,7 +176,8 @@ "Perl 6", 2 ] - ] + ], + "id" : "Ruben Westerberg" }, { "name" : "Simon Proctor", @@ -194,18 +194,16 @@ ] }, { - "name" : "Steven Wilson", "id" : "Steven Wilson", "data" : [ [ "Perl 5", 1 ] - ] + ], + "name" : "Steven Wilson" }, { - "id" : "Yet Ebreo", - "name" : "Yet Ebreo", "data" : [ [ "Perl 5", @@ -219,16 +217,33 @@ "Blog", 1 ] - ] + ], + "id" : "Yet Ebreo", + "name" : "Yet Ebreo" } ] }, "title" : { "text" : "Perl Weekly Challenge - 024" }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" + "xAxis" : { + "type" : "category" + }, + "tooltip" : { + "followPointer" : 1, + "headerFormat" : "{series.name}
", + "pointFormat" : "{point.name}: {point.y:f}
" + }, + "legend" : { + "enabled" : 0 + }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + } } } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 27c5ee2581..b45395b20e 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,39 +1,23 @@ { - "chart" : { - "type" : "column" - }, - "subtitle" : { - "text" : "Last updated at 2019-09-06 14:34:32 GMT" - }, - "xAxis" : { - "type" : "category", - "labels" : { - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - } - } - }, - "title" : { - "text" : "Perl Weekly Challenge Contributions - 2019" - }, - "legend" : { - "enabled" : "false" + "yAxis" : { + "title" : { + "text" : null + }, + "min" : 0 }, "series" : [ { - "name" : "Contributions", "dataLabels" : { - "enabled" : "true", "rotation" : -90, - "align" : "right", + "format" : "{point.y:.0f}", + "color" : "#FFFFFF", "style" : { "fontFamily" : "Verdana, sans-serif", "fontSize" : "13px" }, - "color" : "#FFFFFF", - "y" : 10, - "format" : "{point.y:.0f}" + "enabled" : "true", + "align" : "right", + "y" : 10 }, "data" : [ [ @@ -46,18 +30,34 @@ ], [ "Perl 6", - 593 + 595 ] - ] + ], + "name" : "Contributions" } ], - "yAxis" : { - "title" : { - "text" : null + "xAxis" : { + "labels" : { + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + } }, - "min" : 0 + "type" : "category" + }, + "legend" : { + "enabled" : "false" + }, + "title" : { + "text" : "Perl Weekly Challenge Contributions - 2019" + }, + "chart" : { + "type" : "column" }, "tooltip" : { "pointFormat" : "{point.y:.0f}" + }, + "subtitle" : { + "text" : "Last updated at 2019-09-06 18:15:01 GMT" } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index f486f1e270..65648dd4cb 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -2,10 +2,168 @@ "xAxis" : { "type" : "category" }, + "series" : [ + { + "colorByPoint" : "true", + "data" : [ + { + "name" : "#001", + "y" : 132, + "drilldown" : "001" + }, + { + "y" : 104, + "name" : "#002", + "drilldown" : "002" + }, + { + "drilldown" : "003", + "y" : 66, + "name" : "#003" + }, + { + "drilldown" : "004", + "y" : 86, + "name" : "#004" + }, + { + "y" : 66, + "name" : "#005", + "drilldown" : "005" + }, + { + "y" : 47, + "name" : "#006", + "drilldown" : "006" + }, + { + "name" : "#007", + "y" : 55, + "drilldown" : "007" + }, + { + "y" : 68, + "name" : "#008", + "drilldown" : "008" + }, + { + "drilldown" : "009", + "y" : 66, + "name" : "#009" + }, + { + "drilldown" : "010", + "y" : 59, + "name" : "#010" + }, + { + "name" : "#011", + "y" : 78, + "drilldown" : "011" + }, + { + "y" : 82, + "name" : "#012", + "drilldown" : "012" + }, + { + "name" : "#013", + "y" : 75, + "drilldown" : "013" + }, + { + "drilldown" : "014", + "y" : 95, + "name" : "#014" + }, + { + "name" : "#015", + "y" : 93, + "drilldown" : "015" + }, + { + "y" : 66, + "name" : "#016", + "drilldown" : "016" + }, + { + "drilldown" : "017", + "y" : 79, + "name" : "#017" + }, + { + "drilldown" : "018", + "y" : 76, + "name" : "#018" + }, + { + "drilldown" : "019", + "y" : 95, + "name" : "#019" + }, + { + "drilldown" : "020", + "name" : "#020", + "y" : 95 + }, + { + "name" : "#021", + "y" : 66, + "drilldown" : "021" + }, + { + "drilldown" : "022", + "y" : 62, + "name" : "#022" + }, + { + "name" : "#023", + "y" : 88, + "drilldown" : "023" + }, + { + "name" : "#024", + "y" : 33, + "drilldown" : "024" + } + ], + "name" : "Perl Weekly Challenge Languages" + } + ], + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + } + } + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "tooltip" : { + "pointFormat" : "Challenge {point.name}: {point.y:f}
", + "headerFormat" : "", + "followPointer" : "true" + }, + "subtitle" : { + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2019-09-06 18:15:01 GMT" + }, + "chart" : { + "type" : "column" + }, + "title" : { + "text" : "Perl Weekly Challenge Language" + }, + "legend" : { + "enabled" : "false" + }, "drilldown" : { "series" : [ { - "id" : "001", "data" : [ [ "Perl 5", @@ -20,10 +178,11 @@ 11 ] ], - "name" : "001" + "name" : "001", + "id" : "001" }, { - "id" : "002", + "name" : "002", "data" : [ [ "Perl 5", @@ -38,10 +197,9 @@ 9 ] ], - "name" : "002" + "id" : "002" }, { - "name" : "003", "id" : "003", "data" : [ [ @@ -56,11 +214,10 @@ "Blog", 8 ] - ] + ], + "name" : "003" }, { - "name" : "004", - "id" : "004", "data" : [ [ "Perl 5", @@ -74,11 +231,13 @@ "Blog", 9 ] - ] + ], + "name" : "004", + "id" : "004" }, { - "name" : "005", "id" : "005", + "name" : "005", "data" : [ [ "Perl 5", @@ -95,7 +254,6 @@ ] }, { - "id" : "006", "data" : [ [ "Perl 5", @@ -110,11 +268,10 @@ 6 ] ], - "name" : "006" + "name" : "006", + "id" : "006" }, { - "name" : "007", - "id" : "007", "data" : [ [ "Perl 5", @@ -128,9 +285,13 @@ "Blog", 9 ] - ] + ], + "name" : "007", + "id" : "007" }, { + "id" : "008", + "name" : "008", "data" : [ [ "Perl 5", @@ -144,11 +305,10 @@ "Blog", 10 ] - ], - "id" : "008", - "name" : "008" + ] }, { + "id" : "009", "data" : [ [ "Perl 5", @@ -163,11 +323,11 @@ 12 ] ], - "id" : "009", "name" : "009" }, { "id" : "010", + "name" : "010", "data" : [ [ "Perl 5", @@ -181,12 +341,9 @@ "Blog", 10 ] - ], - "name" : "010" + ] }, { - "name" : "011", - "id" : "011", "data" : [ [ "Perl 5", @@ -200,10 +357,12 @@ "Blog", 9 ] - ] + ], + "name" : "011", + "id" : "011" }, { - "name" : "012", + "id" : "012", "data" : [ [ "Perl 5", @@ -218,10 +377,9 @@ 10 ] ], - "id" : "012" + "name" : "012" }, { - "id" : "013", "data" : [ [ "Perl 5", @@ -236,9 +394,11 @@ 12 ] ], - "name" : "013" + "name" : "013", + "id" : "013" }, { + "id" : "014", "data" : [ [ "Perl 5", @@ -253,7 +413,6 @@ 14 ] ], - "id" : "014", "name" : "014" }, { @@ -275,6 +434,7 @@ "name" : "015" }, { + "id" : "016", "name" : "016", "data" : [ [ @@ -289,12 +449,10 @@ "Blog", 12 ] - ], - "id" : "016" + ] }, { "name" : "017", - "id" : "017", "data" : [ [ "Perl 5", @@ -308,7 +466,8 @@ "Blog", 12 ] - ] + ], + "id" : "017" }, { "data" : [ @@ -325,10 +484,11 @@ 14 ] ], - "id" : "018", - "name" : "018" + "name" : "018", + "id" : "018" }, { + "name" : "019", "data" : [ [ "Perl 5", @@ -343,8 +503,7 @@ 13 ] ], - "id" : "019", - "name" : "019" + "id" : "019" }, { "data" : [ @@ -361,12 +520,10 @@ 13 ] ], - "id" : "020", - "name" : "020" + "name" : "020", + "id" : "020" }, { - "name" : "021", - "id" : "021", "data" : [ [ "Perl 5", @@ -380,11 +537,13 @@ "Blog", 9 ] - ] + ], + "name" : "021", + "id" : "021" }, { - "name" : "022", "id" : "022", + "name" : "022", "data" : [ [ "Perl 5", @@ -402,6 +561,7 @@ }, { "id" : "023", + "name" : "023", "data" : [ [ "Perl 5", @@ -415,11 +575,9 @@ "Blog", 9 ] - ], - "name" : "023" + ] }, { - "name" : "024", "id" : "024", "data" : [ [ @@ -428,173 +586,15 @@ ], [ "Perl 6", - 11 + 13 ], [ "Blog", 3 ] - ] + ], + "name" : "024" } ] - }, - "legend" : { - "enabled" : "false" - }, - "title" : { - "text" : "Perl Weekly Challenge Language" - }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - }, - "borderWidth" : 0 - } - }, - "chart" : { - "type" : "column" - }, - "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2019-09-06 14:34:32 GMT" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "tooltip" : { - "followPointer" : "true", - "pointFormat" : "Challenge {point.name}: {point.y:f}
", - "headerFormat" : "" - }, - "series" : [ - { - "data" : [ - { - "drilldown" : "001", - "y" : 132, - "name" : "#001" - }, - { - "name" : "#002", - "y" : 104, - "drilldown" : "002" - }, - { - "name" : "#003", - "y" : 66, - "drilldown" : "003" - }, - { - "drilldown" : "004", - "y" : 86, - "name" : "#004" - }, - { - "drilldown" : "005", - "y" : 66, - "name" : "#005" - }, - { - "drilldown" : "006", - "name" : "#006", - "y" : 47 - }, - { - "name" : "#007", - "y" : 55, - "drilldown" : "007" - }, - { - "name" : "#008", - "y" : 68, - "drilldown" : "008" - }, - { - "drilldown" : "009", - "y" : 66, - "name" : "#009" - }, - { - "drilldown" : "010", - "y" : 59, - "name" : "#010" - }, - { - "drilldown" : "011", - "y" : 78, - "name" : "#011" - }, - { - "drilldown" : "012", - "y" : 82, - "name" : "#012" - }, - { - "drilldown" : "013", - "y" : 75, - "name" : "#013" - }, - { - "name" : "#014", - "y" : 95, - "drilldown" : "014" - }, - { - "y" : 93, - "name" : "#015", - "drilldown" : "015" - }, - { - "y" : 66, - "name" : "#016", - "drilldown" : "016" - }, - { - "y" : 79, - "name" : "#017", - "drilldown" : "017" - }, - { - "name" : "#018", - "y" : 76, - "drilldown" : "018" - }, - { - "name" : "#019", - "y" : 95, - "drilldown" : "019" - }, - { - "name" : "#020", - "y" : 95, - "drilldown" : "020" - }, - { - "drilldown" : "021", - "name" : "#021", - "y" : 66 - }, - { - "drilldown" : "022", - "name" : "#022", - "y" : 62 - }, - { - "name" : "#023", - "y" : 88, - "drilldown" : "023" - }, - { - "drilldown" : "024", - "y" : 31, - "name" : "#024" - } - ], - "colorByPoint" : "true", - "name" : "Perl Weekly Challenge Languages" - } - ] + } } diff --git a/stats/pwc-leaders.json b/stats/pwc-leaders.json index 70082b71eb..9265b05e18 100644 --- a/stats/pwc-leaders.json +++ b/stats/pwc-leaders.json @@ -1,40 +1,283 @@ { - "xAxis" : { - "type" : "category" - }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - }, - "borderWidth" : 0 - } - }, - "chart" : { - "type" : "column" - }, "legend" : { "enabled" : "false" }, - "tooltip" : { - "followPointer" : "true", - "pointFormat" : "{point.name}: {point.y:f}
", - "headerFormat" : "" + "title" : { + "text" : "Perl Weekly Challenge Leaders (TOP 50)" }, + "xAxis" : { + "type" : "category" + }, + "series" : [ + { + "data" : [ + { + "drilldown" : "Laurent Rosenfeld", + "name" : "#1: Laurent Rosenfeld", + "y" : 276 + }, + { + "name" : "#2: Joelle Maslak", + "drilldown" : "Joelle Maslak", + "y" : 256 + }, + { + "name" : "#3: Jaldhar H. Vyas", + "drilldown" : "Jaldhar H. Vyas", + "y" : 202 + }, + { + "drilldown" : "Ruben Westerberg", + "name" : "#4: Ruben Westerberg", + "y" : 180 + }, + { + "name" : "#5: Athanasius", + "drilldown" : "Athanasius", + "y" : 152 + }, + { + "drilldown" : "Adam Russell", + "name" : "#6: Adam Russell", + "y" : 148 + }, + { + "name" : "#7: Arne Sommer", + "drilldown" : "Arne Sommer", + "y" : 144 + }, + { + "drilldown" : "Kian-Meng Ang", + "name" : "#8: Kian-Meng Ang", + "y" : 124 + }, + { + "drilldown" : "E. Choroba", + "name" : "#9: E. Choroba", + "y" : 112 + }, + { + "drilldown" : "Simon Proctor", + "name" : "#10: Simon Proctor", + "y" : 104 + }, + { + "y" : 92, + "drilldown" : "Andrezgz", + "name" : "#11: Andrezgz" + }, + { + "drilldown" : "Francis Whittle", + "name" : "#12: Francis Whittle", + "y" : 92 + }, + { + "drilldown" : "Dave Jacoby", + "name" : "#13: Dave Jacoby", + "y" : 90 + }, + { + "drilldown" : "Duncan C. White", + "name" : "#14: Duncan C. White", + "y" : 82 + }, + { + "y" : 80, + "drilldown" : "Feng Chang", + "name" : "#15: Feng Chang" + }, + { + "name" : "#16: Daniel Mantovani", + "drilldown" : "Daniel Mantovani", + "y" : 78 + }, + { + "drilldown" : "Roger Bell West", + "name" : "#17: Roger Bell West", + "y" : 78 + }, + { + "drilldown" : "Steven Wilson", + "name" : "#18: Steven Wilson", + "y" : 74 + }, + { + "drilldown" : "Gustavo Chaves", + "name" : "#19: Gustavo Chaves", + "y" : 72 + }, + { + "drilldown" : "Yozen Hernandez", + "name" : "#20: Yozen Hernandez", + "y" : 70 + }, + { + "name" : "#21: Mark Senn", + "drilldown" : "Mark Senn", + "y" : 58 + }, + { + "drilldown" : "Guillermo Ramos", + "name" : "#22: Guillermo Ramos", + "y" : 56 + }, + { + "name" : "#23: Jo Christian Oterhals", + "drilldown" : "Jo Christian Oterhals", + "y" : 56 + }, + { + "name" : "#24: Kevin Colyer", + "drilldown" : "Kevin Colyer", + "y" : 50 + }, + { + "y" : 46, + "name" : "#25: Ozzy", + "drilldown" : "Ozzy" + }, + { + "name" : "#26: Yet Ebreo", + "drilldown" : "Yet Ebreo", + "y" : 46 + }, + { + "y" : 44, + "name" : "#27: Dr James A. Smith", + "drilldown" : "Dr James A. Smith" + }, + { + "drilldown" : "Randy Lauen", + "name" : "#28: Randy Lauen", + "y" : 44 + }, + { + "y" : 42, + "name" : "#29: Duane Powell", + "drilldown" : "Duane Powell" + }, + { + "name" : "#30: Veesh Goldman", + "drilldown" : "Veesh Goldman", + "y" : 42 + }, + { + "y" : 38, + "name" : "#31: Lubos Kolouch", + "drilldown" : "Lubos Kolouch" + }, + { + "drilldown" : "Noud", + "name" : "#32: Noud", + "y" : 36 + }, + { + "y" : 32, + "name" : "#33: Nick Logan", + "drilldown" : "Nick Logan" + }, + { + "drilldown" : "Lars Balker", + "name" : "#34: Lars Balker", + "y" : 28 + }, + { + "drilldown" : "Jaime Corchado", + "name" : "#35: Jaime Corchado", + "y" : 24 + }, + { + "drilldown" : "Maxim Nechaev", + "name" : "#36: Maxim Nechaev", + "y" : 24 + }, + { + "y" : 22, + "name" : "#37: Alicia Bielsa", + "drilldown" : "Alicia Bielsa" + }, + { + "y" : 20, + "name" : "#38: Doug Schrag", + "drilldown" : "Doug Schrag" + }, + { + "y" : 18, + "drilldown" : "Dave Cross", + "name" : "#39: Dave Cross" + }, + { + "name" : "#40: Neil Bowers", + "drilldown" : "Neil Bowers", + "y" : 18 + }, + { + "drilldown" : "Walt Mankowski", + "name" : "#41: Walt Mankowski", + "y" : 18 + }, + { + "drilldown" : "Mark Anderson", + "name" : "#42: Mark Anderson", + "y" : 16 + }, + { + "drilldown" : "Pete Houston", + "name" : "#43: Pete Houston", + "y" : 16 + }, + { + "y" : 16, + "name" : "#44: Robert Gratza", + "drilldown" : "Robert Gratza" + }, + { + "y" : 14, + "name" : "#45: John Barrett", + "drilldown" : "John Barrett" + }, + { + "y" : 14, + "name" : "#46: Khalid", + "drilldown" : "Khalid" + }, + { + "y" : 12, + "name" : "#47: Aaron Sherman", + "drilldown" : "Aaron Sherman" + }, + { + "name" : "#48: Donald Hunter", + "drilldown" : "Donald Hunter", + "y" : 12 + }, + { + "y" : 12, + "name" : "#49: Kivanc Yazan", + "drilldown" : "Kivanc Yazan" + }, + { + "y" : 12, + "name" : "#50: Maxim Kolodyazhny", + "drilldown" : "Maxim Kolodyazhny" + } + ], + "colorByPoint" : "true", + "name" : "Perl Weekly Challenge Leaders" + } + ], "yAxis" : { "title" : { "text" : "Total Score" } }, - "title" : { - "text" : "Perl Weekly Challenge Leaders (TOP 50)" + "chart" : { + "type" : "column" }, "drilldown" : { "series" : [ { "name" : "Laurent Rosenfeld", - "id" : "Laurent Rosenfeld", "data" : [ [ "Perl 5", @@ -48,28 +291,33 @@ "Perl 6", 47 ] - ] + ], + "id" : "Laurent Rosenfeld" }, { + "id" : "Joelle Maslak", "name" : "Joelle Maslak", "data" : [ [ "Perl 5", 62 ], - [ - "Perl 6", - 62 - ], [ "Blog", 4 + ], + [ + "Perl 6", + 62 ] - ], - "id" : "Joelle Maslak" + ] }, { "data" : [ + [ + "Perl 5", + 46 + ], [ "Blog", 10 @@ -77,17 +325,12 @@ [ "Perl 6", 45 - ], - [ - "Perl 5", - 46 ] ], - "id" : "Jaldhar H. Vyas", - "name" : "Jaldhar H. Vyas" + "name" : "Jaldhar H. Vyas", + "id" : "Jaldhar H. Vyas" }, { - "name" : "Ruben Westerberg", "data" : [ [ "Perl 6", @@ -98,19 +341,20 @@ 45 ] ], + "name" : "Ruben Westerberg", "id" : "Ruben Westerberg" }, { "id" : "Athanasius", "data" : [ - [ - "Perl 5", - 49 - ], [ "Perl 6", 24 ], + [ + "Perl 5", + 49 + ], [ "Blog", 3 @@ -119,57 +363,57 @@ "name" : "Athanasius" }, { + "name" : "Adam Russell", "data" : [ [ "Perl 6", 3 ], - [ - "Blog", - 24 - ], [ "Perl 5", 47 + ], + [ + "Blog", + 24 ] ], - "id" : "Adam Russell", - "name" : "Adam Russell" + "id" : "Adam Russell" }, { - "name" : "Arne Sommer", - "id" : "Arne Sommer", "data" : [ - [ - "Perl 5", - 3 - ], [ "Perl 6", 46 ], + [ + "Perl 5", + 3 + ], [ "Blog", 23 ] - ] + ], + "name" : "Arne Sommer", + "id" : "Arne Sommer" }, { - "id" : "Kian-Meng Ang", "data" : [ - [ - "Perl 5", - 37 - ], [ "Blog", 25 + ], + [ + "Perl 5", + 37 ] ], - "name" : "Kian-Meng Ang" + "name" : "Kian-Meng Ang", + "id" : "Kian-Meng Ang" }, { - "id" : "E. Choroba", + "name" : "E. Choroba", "data" : [ [ "Blog", @@ -180,16 +424,11 @@ 38 ] ], - "name" : "E. Choroba" + "id" : "E. Choroba" }, { "name" : "Simon Proctor", - "id" : "Simon Proctor", "data" : [ - [ - "Perl 6", - 40 - ], [ "Blog", 7 @@ -197,63 +436,67 @@ [ "Perl 5", 5 + ], + [ + "Perl 6", + 40 ] - ] + ], + "id" : "Simon Proctor" }, { + "id" : "Andrezgz", "data" : [ [ "Perl 5", 46 ] ], - "id" : "Andrezgz", "name" : "Andrezgz" }, { - "name" : "Francis Whittle", - "id" : "Francis Whittle", "data" : [ - [ - "Perl 6", - 37 - ], [ "Blog", 9 + ], + [ + "Perl 6", + 37 ] - ] + ], + "name" : "Francis Whittle", + "id" : "Francis Whittle" }, { - "name" : "Dave Jacoby", + "id" : "Dave Jacoby", "data" : [ [ - "Perl 5", - 26 + "Perl 6", + 1 ], [ "Blog", 18 ], [ - "Perl 6", - 1 + "Perl 5", + 26 ] ], - "id" : "Dave Jacoby" + "name" : "Dave Jacoby" }, { + "name" : "Duncan C. White", "data" : [ [ "Perl 5", 41 ] ], - "id" : "Duncan C. White", - "name" : "Duncan C. White" + "id" : "Duncan C. White" }, { - "name" : "Feng Chang", "data" : [ [ "Perl 6", @@ -264,38 +507,38 @@ 19 ] ], + "name" : "Feng Chang", "id" : "Feng Chang" }, { + "id" : "Daniel Mantovani", "data" : [ [ "Perl 5", 39 ] ], - "id" : "Daniel Mantovani", "name" : "Daniel Mantovani" }, { + "id" : "Roger Bell West", + "name" : "Roger Bell West", "data" : [ [ "Blog", 8 ], - [ - "Perl 6", - 9 - ], [ "Perl 5", 22 + ], + [ + "Perl 6", + 9 ] - ], - "id" : "Roger Bell West", - "name" : "Roger Bell West" + ] }, { - "id" : "Steven Wilson", "data" : [ [ "Blog", @@ -306,63 +549,68 @@ 34 ] ], - "name" : "Steven Wilson" + "name" : "Steven Wilson", + "id" : "Steven Wilson" }, { - "name" : "Gustavo Chaves", - "id" : "Gustavo Chaves", "data" : [ - [ - "Perl 5", - 32 - ], [ "Blog", 4 + ], + [ + "Perl 5", + 32 ] - ] + ], + "name" : "Gustavo Chaves", + "id" : "Gustavo Chaves" }, { "id" : "Yozen Hernandez", "data" : [ - [ - "Perl 5", - 21 - ], [ "Blog", 14 + ], + [ + "Perl 5", + 21 ] ], "name" : "Yozen Hernandez" }, { "id" : "Mark Senn", + "name" : "Mark Senn", "data" : [ - [ - "Blog", - 10 - ], [ "Perl 6", 19 + ], + [ + "Blog", + 10 ] - ], - "name" : "Mark Senn" + ] }, { - "name" : "Guillermo Ramos", + "id" : "Guillermo Ramos", "data" : [ [ "Perl 5", 28 ] ], - "id" : "Guillermo Ramos" + "name" : "Guillermo Ramos" }, { "id" : "Jo Christian Oterhals", "data" : [ + [ + "Blog", + 7 + ], [ "Perl 5", 6 @@ -370,26 +618,22 @@ [ "Perl 6", 15 - ], - [ - "Blog", - 7 ] ], "name" : "Jo Christian Oterhals" }, { + "id" : "Kevin Colyer", "data" : [ - [ - "Perl 6", - 21 - ], [ "Perl 5", 2 + ], + [ + "Perl 6", + 23 ] ], - "id" : "Kevin Colyer", "name" : "Kevin Colyer" }, { @@ -399,8 +643,8 @@ 23 ] ], - "id" : "Ozzy", - "name" : "Ozzy" + "name" : "Ozzy", + "id" : "Ozzy" }, { "id" : "Yet Ebreo", @@ -409,33 +653,34 @@ "Blog", 3 ], - [ - "Perl 6", - 9 - ], [ "Perl 5", 11 + ], + [ + "Perl 6", + 9 ] ], "name" : "Yet Ebreo" }, { - "name" : "Dr James A. Smith", + "id" : "Dr James A. Smith", "data" : [ - [ - "Perl 6", - 10 - ], [ "Perl 5", 12 + ], + [ + "Perl 6", + 10 ] ], - "id" : "Dr James A. Smith" + "name" : "Dr James A. Smith" }, { "id" : "Randy Lauen", + "name" : "Randy Lauen", "data" : [ [ "Perl 5", @@ -445,21 +690,19 @@ "Perl 6", 15 ] - ], - "name" : "Randy Lauen" + ] }, { - "id" : "Duane Powell", "data" : [ [ "Perl 5", 21 ] ], - "name" : "Duane Powell" + "name" : "Duane Powell", + "id" : "Duane Powell" }, { - "id" : "Veesh Goldman", "data" : [ [ "Perl 5", @@ -474,7 +717,8 @@ 2 ] ], - "name" : "Veesh Goldman" + "name" : "Veesh Goldman", + "id" : "Veesh Goldman" }, { "name" : "Lubos Kolouch", @@ -487,72 +731,72 @@ "id" : "Lubos Kolouch" }, { - "name" : "Noud", "data" : [ [ "Perl 6", 18 ] ], + "name" : "Noud", "id" : "Noud" }, { + "id" : "Nick Logan", + "name" : "Nick Logan", "data" : [ [ - "Perl 5", + "Perl 6", 8 ], [ - "Perl 6", + "Perl 5", 8 ] - ], - "id" : "Nick Logan", - "name" : "Nick Logan" + ] }, { - "name" : "Lars Balker", + "id" : "Lars Balker", "data" : [ - [ - "Perl 5", - 10 - ], [ "Perl 6", 4 + ], + [ + "Perl 5", + 10 ] ], - "id" : "Lars Balker" + "name" : "Lars Balker" }, { - "name" : "Jaime Corchado", - "id" : "Jaime Corchado", "data" : [ [ "Perl 5", 12 ] - ] + ], + "name" : "Jaime Corchado", + "id" : "Jaime Corchado" }, { - "name" : "Maxim Nechaev", "id" : "Maxim Nechaev", "data" : [ [ "Perl 5", 12 ] - ] + ], + "name" : "Maxim Nechaev" }, { - "id" : "Alicia Bielsa", "data" : [ [ "Perl 5", 11 ] ], - "name" : "Alicia Bielsa" + "name" : "Alicia Bielsa", + "id" : "Alicia Bielsa" }, { "data" : [ @@ -561,24 +805,25 @@ 10 ] ], - "id" : "Doug Schrag", - "name" : "Doug Schrag" + "name" : "Doug Schrag", + "id" : "Doug Schrag" }, { - "id" : "Dave Cross", "data" : [ - [ - "Perl 5", - 7 - ], [ "Blog", 2 + ], + [ + "Perl 5", + 7 ] ], - "name" : "Dave Cross" + "name" : "Dave Cross", + "id" : "Dave Cross" }, { + "id" : "Neil Bowers", "name" : "Neil Bowers", "data" : [ [ @@ -589,66 +834,68 @@ "Blog", 3 ] - ], - "id" : "Neil Bowers" + ] }, { + "id" : "Walt Mankowski", + "name" : "Walt Mankowski", "data" : [ [ "Perl 5", 9 ] - ], - "id" : "Walt Mankowski", - "name" : "Walt Mankowski" + ] }, { "name" : "Mark Anderson", - "id" : "Mark Anderson", "data" : [ [ "Perl 5", 8 ] - ] + ], + "id" : "Mark Anderson" }, { + "id" : "Pete Houston", + "name" : "Pete Houston", "data" : [ [ "Perl 5", 8 ] - ], - "id" : "Pete Houston", - "name" : "Pete Houston" + ] }, { - "id" : "Robert Gratza", "data" : [ - [ - "Perl 6", - 6 - ], [ "Perl 5", 2 + ], + [ + "Perl 6", + 6 ] ], - "name" : "Robert Gratza" + "name" : "Robert Gratza", + "id" : "Robert Gratza" }, { - "name" : "John Barrett", "data" : [ [ "Perl 5", 7 ] ], + "name" : "John Barrett", "id" : "John Barrett" }, { - "name" : "Khalid", "data" : [ + [ + "Perl 5", + 4 + ], [ "Blog", 1 @@ -656,17 +903,14 @@ [ "Perl 6", 2 - ], - [ - "Perl 5", - 4 ] ], + "name" : "Khalid", "id" : "Khalid" }, { - "name" : "Aaron Sherman", "id" : "Aaron Sherman", + "name" : "Aaron Sherman", "data" : [ [ "Perl 6", @@ -675,6 +919,7 @@ ] }, { + "id" : "Donald Hunter", "name" : "Donald Hunter", "data" : [ [ @@ -685,290 +930,45 @@ "Blog", 3 ] - ], - "id" : "Donald Hunter" + ] }, { - "name" : "Kivanc Yazan", "id" : "Kivanc Yazan", "data" : [ [ "Perl 5", 6 ] - ] + ], + "name" : "Kivanc Yazan" }, { - "id" : "Maxim Kolodyazhny", "data" : [ [ "Perl 5", 6 ] ], - "name" : "Maxim Kolodyazhny" + "name" : "Maxim Kolodyazhny", + "id" : "Maxim Kolodyazhny" } ] }, "subtitle" : { - "text" : "Click the columns to drilldown the score breakdown. Last updated at 2019-09-06 14:34:26 GMT" + "text" : "Click the columns to drilldown the score breakdown. Last updated at 2019-09-06 18:14:59 GMT" }, - "series" : [ - { - "data" : [ - { - "y" : 276, - "drilldown" : "Laurent Rosenfeld", - "name" : "#1: Laurent Rosenfeld" - }, - { - "name" : "#2: Joelle Maslak", - "drilldown" : "Joelle Maslak", - "y" : 256 - }, - { - "name" : "#3: Jaldhar H. Vyas", - "drilldown" : "Jaldhar H. Vyas", - "y" : 202 - }, - { - "name" : "#4: Ruben Westerberg", - "drilldown" : "Ruben Westerberg", - "y" : 180 - }, - { - "y" : 152, - "drilldown" : "Athanasius", - "name" : "#5: Athanasius" - }, - { - "drilldown" : "Adam Russell", - "name" : "#6: Adam Russell", - "y" : 148 - }, - { - "drilldown" : "Arne Sommer", - "name" : "#7: Arne Sommer", - "y" : 144 - }, - { - "y" : 124, - "name" : "#8: Kian-Meng Ang", - "drilldown" : "Kian-Meng Ang" - }, - { - "drilldown" : "E. Choroba", - "name" : "#9: E. Choroba", - "y" : 112 - }, - { - "y" : 104, - "name" : "#10: Simon Proctor", - "drilldown" : "Simon Proctor" - }, - { - "y" : 92, - "drilldown" : "Andrezgz", - "name" : "#11: Andrezgz" - }, - { - "y" : 92, - "drilldown" : "Francis Whittle", - "name" : "#12: Francis Whittle" - }, - { - "y" : 90, - "name" : "#13: Dave Jacoby", - "drilldown" : "Dave Jacoby" - }, - { - "y" : 82, - "name" : "#14: Duncan C. White", - "drilldown" : "Duncan C. White" - }, - { - "name" : "#15: Feng Chang", - "drilldown" : "Feng Chang", - "y" : 80 - }, - { - "y" : 78, - "name" : "#16: Daniel Mantovani", - "drilldown" : "Daniel Mantovani" - }, - { - "drilldown" : "Roger Bell West", - "name" : "#17: Roger Bell West", - "y" : 78 - }, - { - "drilldown" : "Steven Wilson", - "name" : "#18: Steven Wilson", - "y" : 74 - }, - { - "y" : 72, - "name" : "#19: Gustavo Chaves", - "drilldown" : "Gustavo Chaves" - }, - { - "drilldown" : "Yozen Hernandez", - "name" : "#20: Yozen Hernandez", - "y" : 70 - }, - { - "drilldown" : "Mark Senn", - "name" : "#21: Mark Senn", - "y" : 58 - }, - { - "drilldown" : "Guillermo Ramos", - "name" : "#22: Guillermo Ramos", - "y" : 56 - }, - { - "y" : 56, - "drilldown" : "Jo Christian Oterhals", - "name" : "#23: Jo Christian Oterhals" - }, - { - "y" : 46, - "drilldown" : "Kevin Colyer", - "name" : "#24: Kevin Colyer" - }, - { - "y" : 46, - "name" : "#25: Ozzy", - "drilldown" : "Ozzy" - }, - { - "drilldown" : "Yet Ebreo", - "name" : "#26: Yet Ebreo", - "y" : 46 - }, - { - "y" : 44, - "name" : "#27: Dr James A. Smith", - "drilldown" : "Dr James A. Smith" - }, - { - "drilldown" : "Randy Lauen", - "name" : "#28: Randy Lauen", - "y" : 44 - }, - { - "y" : 42, - "drilldown" : "Duane Powell", - "name" : "#29: Duane Powell" - }, - { - "name" : "#30: Veesh Goldman", - "drilldown" : "Veesh Goldman", - "y" : 42 - }, - { - "drilldown" : "Lubos Kolouch", - "name" : "#31: Lubos Kolouch", - "y" : 38 - }, - { - "name" : "#32: Noud", - "drilldown" : "Noud", - "y" : 36 - }, - { - "name" : "#33: Nick Logan", - "drilldown" : "Nick Logan", - "y" : 32 - }, - { - "y" : 28, - "drilldown" : "Lars Balker", - "name" : "#34: Lars Balker" - }, - { - "drilldown" : "Jaime Corchado", - "name" : "#35: Jaime Corchado", - "y" : 24 - }, - { - "drilldown" : "Maxim Nechaev", - "name" : "#36: Maxim Nechaev", - "y" : 24 - }, - { - "y" : 22, - "name" : "#37: Alicia Bielsa", - "drilldown" : "Alicia Bielsa" - }, - { - "y" : 20, - "drilldown" : "Doug Schrag", - "name" : "#38: Doug Schrag" - }, - { - "drilldown" : "Dave Cross", - "name" : "#39: Dave Cross", - "y" : 18 - }, - { - "drilldown" : "Neil Bowers", - "name" : "#40: Neil Bowers", - "y" : 18 - }, - { - "y" : 18, - "name" : "#41: Walt Mankowski", - "drilldown" : "Walt Mankowski" - }, - { - "drilldown" : "Mark Anderson", - "name" : "#42: Mark Anderson", - "y" : 16 - }, - { - "y" : 16, - "name" : "#43: Pete Houston", - "drilldown" : "Pete Houston" - }, - { - "y" : 16, - "name" : "#44: Robert Gratza", - "drilldown" : "Robert Gratza" -