From 2925ccf7a400079d257e6ee2f171a86446404eea Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Sun, 24 Jan 2021 00:19:18 +0000 Subject: - Added solutions by Laurent Rosenfeld. --- challenge-096/laurent-rosenfeld/blog.txt | 1 + challenge-096/laurent-rosenfeld/perl/ch-1.pl | 6 + challenge-096/laurent-rosenfeld/perl/ch-2.pl | 66 +++ challenge-096/laurent-rosenfeld/python/ch-1.py | 7 + challenge-096/laurent-rosenfeld/python/ch-2.py | 31 + challenge-096/laurent-rosenfeld/raku/ch-1.raku | 4 + challenge-096/laurent-rosenfeld/raku/ch-2.raku | 38 ++ challenge-096/laurent-rosenfeld/scala/ch-1.scala | 4 + stats/pwc-current.json | 271 +++++---- stats/pwc-language-breakdown-summary.json | 72 +-- stats/pwc-language-breakdown.json | 700 +++++++++++------------ stats/pwc-leaders.json | 434 +++++++------- stats/pwc-summary-1-30.json | 114 ++-- stats/pwc-summary-121-150.json | 102 ++-- stats/pwc-summary-151-180.json | 42 +- stats/pwc-summary-181-210.json | 54 +- stats/pwc-summary-211-240.json | 44 +- stats/pwc-summary-31-60.json | 52 +- stats/pwc-summary-61-90.json | 114 ++-- stats/pwc-summary-91-120.json | 106 ++-- stats/pwc-summary.json | 48 +- 21 files changed, 1245 insertions(+), 1065 deletions(-) create mode 100644 challenge-096/laurent-rosenfeld/blog.txt create mode 100644 challenge-096/laurent-rosenfeld/perl/ch-1.pl create mode 100644 challenge-096/laurent-rosenfeld/perl/ch-2.pl create mode 100644 challenge-096/laurent-rosenfeld/python/ch-1.py create mode 100644 challenge-096/laurent-rosenfeld/python/ch-2.py create mode 100644 challenge-096/laurent-rosenfeld/raku/ch-1.raku create mode 100644 challenge-096/laurent-rosenfeld/raku/ch-2.raku create mode 100644 challenge-096/laurent-rosenfeld/scala/ch-1.scala diff --git a/challenge-096/laurent-rosenfeld/blog.txt b/challenge-096/laurent-rosenfeld/blog.txt new file mode 100644 index 0000000000..8a78b5ca0c --- /dev/null +++ b/challenge-096/laurent-rosenfeld/blog.txt @@ -0,0 +1 @@ +http://blogs.perl.org/users/laurent_r/2021/01/perl-weekly-challenge-96-reverse-words-and-edit-distance-and-decorators-in-perl.html diff --git a/challenge-096/laurent-rosenfeld/perl/ch-1.pl b/challenge-096/laurent-rosenfeld/perl/ch-1.pl new file mode 100644 index 0000000000..8370c20083 --- /dev/null +++ b/challenge-096/laurent-rosenfeld/perl/ch-1.pl @@ -0,0 +1,6 @@ +use strict; +use warnings; +use feature "say"; + +my $input = shift // " Perl and Raku are part of the same family "; +say join " ", reverse split /\s+/, $input; diff --git a/challenge-096/laurent-rosenfeld/perl/ch-2.pl b/challenge-096/laurent-rosenfeld/perl/ch-2.pl new file mode 100644 index 0000000000..afa8cf9ab3 --- /dev/null +++ b/challenge-096/laurent-rosenfeld/perl/ch-2.pl @@ -0,0 +1,66 @@ +use strict; +use warnings; +use feature qw/say/; + +sub min { + my $rv = shift; + for my $tmp (@_) { + $rv = $tmp if $tmp < $rv; + } + return $rv; +} + +sub edit_distance { + my ($left, $right) = @_; + + # If one of the substrings is empty, return the length of the other + return length $right unless $left; + return length $left unless $right; + + my $shortened_left = substr $left, 0, -1; + my $shortened_right = substr $right, 0, -1; + # In the last chars are the same, we ignore them + # and call edit_distance on shortened strings + return edit_distance ($shortened_left, $shortened_right) if substr($left, -1) eq substr($right, -1); + + # Else find the minimum between the three operations + return 1 + min( + edit_distance($left, $shortened_right), #insert + edit_distance($shortened_left, $right), #remove + edit_distance($shortened_left, $shortened_right) #replace + ); +} + +# The decorator returns the edit_distance subroutine wrapped in +# code lines performing the caching of values +sub decorate { + my $coderef = shift; + my %cache; + return sub { + my ($l, $r) = @_; + $cache{"$l;$r"} = $coderef->(@_) unless exists $cache{"$l;$r"}; + return $cache{"$l;$r"}; + } +} + +{ + # local scope for the deactivation of the redefine warning + no warnings 'redefine'; + # we replace the edit-distance subrouytine by its + # decorated version in the main symbol table + *main::edit_distance = decorate(\&edit_distance); +} + +my @test_pairs = ( + [ qw ], + [ qw ], + [ qw ], + [ qw ], + [ qw ], + [ qw ], + [ qw], +); +for my $ar (@test_pairs) { + my ($str1, $str2) = @$ar; + say edit_distance($str1,$str2), " $str1 - $str2 "; +} diff --git a/challenge-096/laurent-rosenfeld/python/ch-1.py b/challenge-096/laurent-rosenfeld/python/ch-1.py new file mode 100644 index 0000000000..317f557175 --- /dev/null +++ b/challenge-096/laurent-rosenfeld/python/ch-1.py @@ -0,0 +1,7 @@ +def reverse_words(in_str): + words = in_str.split() + words.reverse() + return " ".join(words) + +input = " Perl and Raku are part of the same family " +print(reverse_words(input)) diff --git a/challenge-096/laurent-rosenfeld/python/ch-2.py b/challenge-096/laurent-rosenfeld/python/ch-2.py new file mode 100644 index 0000000000..363251c03f --- /dev/null +++ b/challenge-096/laurent-rosenfeld/python/ch-2.py @@ -0,0 +1,31 @@ +cache = dict() + +def cached_distance(left, right): + key = left + ';' + right + if key not in cache: + cache[key] = edit_distance(left, right) + return cache[key] + +def edit_distance(left, right): + lr = len(right) + ll = len(left) + if not left: return lr + if not right: return ll + shortened_l = left[0:ll-1] + shortened_r = right[0:lr-1] + if left[ll-1] == right[lr-1]: + return cached_distance(shortened_l, shortened_r) + + return 1 + min( cached_distance(left, shortened_r), # Insert + cached_distance(shortened_l, right), # Remove + cached_distance(shortened_l, shortened_r) # Replace + ) + +tests = ( [ "kitten", "sitting" ], [ "Monday", "Friday" ], + [ "Sunday", "Saturday" ], [ "January", "February" ], + [ "November", "December" ], + [ "constitutionally", "anticonstitutional" ], + ) + +for test in tests: + print (test[0], test[1], edit_distance(test[0], test[1] )) diff --git a/challenge-096/laurent-rosenfeld/raku/ch-1.raku b/challenge-096/laurent-rosenfeld/raku/ch-1.raku new file mode 100644 index 0000000000..0c10b69dec --- /dev/null +++ b/challenge-096/laurent-rosenfeld/raku/ch-1.raku @@ -0,0 +1,4 @@ +use v6; + +my $input = @*ARGS[0] // " Perl and Raku are part of the same family "; +say $input.words.reverse.join(" "); diff --git a/challenge-096/laurent-rosenfeld/raku/ch-2.raku b/challenge-096/laurent-rosenfeld/raku/ch-2.raku new file mode 100644 index 0000000000..b30d8ae8c5 --- /dev/null +++ b/challenge-096/laurent-rosenfeld/raku/ch-2.raku @@ -0,0 +1,38 @@ +use v6; +use Memoize; + +sub edit-distance (Str $left, Str $right) { + # If one of the substrings is empty, return the length of the other + return $right.chars unless $left; + return $left.chars unless $right; + my $shortened-left = substr $left, 0, *-1; + my $shortened-right = substr $right, 0, *-1; + + # If the last chars are the same, we ignore them + # and call edit-distance on shortened strings + return edit-distance $shortened-left, $shortened-right + if substr($left, *-1) eq substr($right, *-1); + + # Else find the minimum between the three operations + return 1 + min( + edit-distance($left, $shortened-right), #insert + edit-distance($shortened-left, $right), #remove + edit-distance($shortened-left, $shortened-right) #replace + ); +} + +memoize("edit-distance"); + +my @test-pairs = ( + [ < kitten sitting >], + [ < Monday Friday > ], + [ < Sunday Saturday > ], + [ < January February > ], + [ < November December > ], + [ < constitutionally anticonstitutional > ], + [ < LMIjkHFSAE dmqkdjfERZG >], +); +for @test-pairs -> @test { + my ($str1, $str2) = @test; + print edit-distance($str1, $str2), " $str1 - $str2\n"; +} diff --git a/challenge-096/laurent-rosenfeld/scala/ch-1.scala b/challenge-096/laurent-rosenfeld/scala/ch-1.scala new file mode 100644 index 0000000000..6df5d74c3f --- /dev/null +++ b/challenge-096/laurent-rosenfeld/scala/ch-1.scala @@ -0,0 +1,4 @@ +object reverseWords extends App { + val in = " Perl and Raku are part of the same family " + println(in.split("\\s+").reverse.mkString(" ")) +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 7201810974..f5ea2ca7c2 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,51 +1,38 @@ { - "chart" : { - "type" : "column" - }, - "subtitle" : { - "text" : "[Champions: 26] Last updated at 2021-01-23 23:50:12 GMT" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "legend" : { - "enabled" : 0 - }, "series" : [ { "colorByPoint" : 1, + "name" : "Perl Weekly Challenge - 096", "data" : [ { - "name" : "Aaron Smith", "y" : 3, - "drilldown" : "Aaron Smith" + "drilldown" : "Aaron Smith", + "name" : "Aaron Smith" }, { - "drilldown" : "Abigail", "y" : 4, + "drilldown" : "Abigail", "name" : "Abigail" }, { - "name" : "Andrew Shitov", "drilldown" : "Andrew Shitov", + "name" : "Andrew Shitov", "y" : 1 }, { - "name" : "Arne Sommer", + "y" : 5, "drilldown" : "Arne Sommer", - "y" : 5 + "name" : "Arne Sommer" }, { - "y" : 2, "drilldown" : "Ben Davies", - "name" : "Ben Davies" + "name" : "Ben Davies", + "y" : 2 }, { - "name" : "Cheok-Yin Fung", + "y" : 2, "drilldown" : "Cheok-Yin Fung", - "y" : 2 + "name" : "Cheok-Yin Fung" }, { "name" : "Dave Jacoby", @@ -53,40 +40,45 @@ "y" : 3 }, { - "name" : "E. Choroba", "y" : 2, + "name" : "E. Choroba", "drilldown" : "E. Choroba" }, { - "drilldown" : "Flavio Poletti", "y" : 4, + "drilldown" : "Flavio Poletti", "name" : "Flavio Poletti" }, { - "y" : 2, + "name" : "Gustavo Chaves", "drilldown" : "Gustavo Chaves", - "name" : "Gustavo Chaves" + "y" : 2 }, { - "drilldown" : "James Smith", "y" : 2, + "drilldown" : "James Smith", "name" : "James Smith" }, { + "drilldown" : "Joan Mimosinnet", "name" : "Joan Mimosinnet", - "y" : 3, - "drilldown" : "Joan Mimosinnet" + "y" : 3 }, { - "y" : 2, + "name" : "Jorg Sommrey", "drilldown" : "Jorg Sommrey", - "name" : "Jorg Sommrey" + "y" : 2 }, { "name" : "Kang-min Liu", "drilldown" : "Kang-min Liu", "y" : 5 }, + { + "drilldown" : "Laurent Rosenfeld", + "name" : "Laurent Rosenfeld", + "y" : 5 + }, { "name" : "Lubos Kolouch", "drilldown" : "Lubos Kolouch", @@ -94,74 +86,75 @@ }, { "y" : 4, - "drilldown" : "Luca Ferrari", - "name" : "Luca Ferrari" + "name" : "Luca Ferrari", + "drilldown" : "Luca Ferrari" }, { - "name" : "Mark Anderson", "y" : 2, + "name" : "Mark Anderson", "drilldown" : "Mark Anderson" }, { - "name" : "Nuno Vieira", "y" : 2, - "drilldown" : "Nuno Vieira" + "drilldown" : "Nuno Vieira", + "name" : "Nuno Vieira" }, { - "name" : "Paulo Custodio", "drilldown" : "Paulo Custodio", + "name" : "Paulo Custodio", "y" : 2 }, { - "y" : 2, "drilldown" : "Pete Houston", - "name" : "Pete Houston" + "name" : "Pete Houston", + "y" : 2 }, { - "y" : 2, "drilldown" : "Philip Hood", - "name" : "Philip Hood" + "name" : "Philip Hood", + "y" : 2 }, { - "y" : 5, "drilldown" : "Roger Bell_West", - "name" : "Roger Bell_West" + "name" : "Roger Bell_West", + "y" : 5 }, { - "name" : "Simon Proctor", "y" : 2, + "name" : "Simon Proctor", "drilldown" : "Simon Proctor" }, { + "name" : "Stuart Little", "drilldown" : "Stuart Little", - "y" : 4, - "name" : "Stuart Little" + "y" : 4 }, { - "y" : 4, "drilldown" : "Ulrich Rieke", - "name" : "Ulrich Rieke" + "name" : "Ulrich Rieke", + "y" : 4 }, { "y" : 3, - "drilldown" : "W. Luis Mochan", - "name" : "W. Luis Mochan" + "name" : "W. Luis Mochan", + "drilldown" : "W. Luis Mochan" } - ], - "name" : "Perl Weekly Challenge - 096" + ] } ], - "title" : { - "text" : "Perl Weekly Challenge - 096" - }, - "xAxis" : { - "type" : "category" + "plotOptions" : { + "series" : { + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + }, + "borderWidth" : 0 + } }, "drilldown" : { "series" : [ { "id" : "Aaron Smith", - "name" : "Aaron Smith", "data" : [ [ "Raku", @@ -171,7 +164,8 @@ "Blog", 1 ] - ] + ], + "name" : "Aaron Smith" }, { "data" : [ @@ -194,10 +188,12 @@ 1 ] ], - "id" : "Andrew Shitov", - "name" : "Andrew Shitov" + "name" : "Andrew Shitov", + "id" : "Andrew Shitov" }, { + "id" : "Arne Sommer", + "name" : "Arne Sommer", "data" : [ [ "Perl", @@ -211,31 +207,31 @@ "Blog", 1 ] - ], - "id" : "Arne Sommer", - "name" : "Arne Sommer" + ] }, { - "name" : "Ben Davies", - "id" : "Ben Davies", "data" : [ [ "Raku", 2 ] - ] + ], + "name" : "Ben Davies", + "id" : "Ben Davies" }, { - "id" : "Cheok-Yin Fung", - "name" : "Cheok-Yin Fung", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Cheok-Yin Fung", + "id" : "Cheok-Yin Fung" }, { + "id" : "Dave Jacoby", + "name" : "Dave Jacoby", "data" : [ [ "Perl", @@ -245,21 +241,21 @@ "Blog", 1 ] - ], - "name" : "Dave Jacoby", - "id" : "Dave Jacoby" + ] }, { - "id" : "E. Choroba", - "name" : "E. Choroba", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "E. Choroba", + "id" : "E. Choroba" }, { + "id" : "Flavio Poletti", + "name" : "Flavio Poletti", "data" : [ [ "Perl", @@ -269,29 +265,27 @@ "Blog", 2 ] - ], - "name" : "Flavio Poletti", - "id" : "Flavio Poletti" + ] }, { - "name" : "Gustavo Chaves", "id" : "Gustavo Chaves", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Gustavo Chaves" }, { "id" : "James Smith", - "name" : "James Smith", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "James Smith" }, { "data" : [ @@ -304,22 +298,40 @@ 1 ] ], - "id" : "Joan Mimosinnet", - "name" : "Joan Mimosinnet" + "name" : "Joan Mimosinnet", + "id" : "Joan Mimosinnet" }, { + "id" : "Jorg Sommrey", + "name" : "Jorg Sommrey", "data" : [ [ "Perl", 2 ] - ], - "name" : "Jorg Sommrey", - "id" : "Jorg Sommrey" + ] }, { - "id" : "Kang-min Liu", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ], "name" : "Kang-min Liu", + "id" : "Kang-min Liu" + }, + { + "id" : "Laurent Rosenfeld", + "name" : "Laurent Rosenfeld", "data" : [ [ "Perl", @@ -336,16 +348,17 @@ ] }, { - "id" : "Lubos Kolouch", - "name" : "Lubos Kolouch", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Lubos Kolouch", + "id" : "Lubos Kolouch" }, { + "name" : "Luca Ferrari", "data" : [ [ "Raku", @@ -356,42 +369,41 @@ 2 ] ], - "name" : "Luca Ferrari", "id" : "Luca Ferrari" }, { - "name" : "Mark Anderson", "id" : "Mark Anderson", "data" : [ [ "Raku", 2 ] - ] + ], + "name" : "Mark Anderson" }, { + "name" : "Nuno Vieira", "data" : [ [ "Perl", 2 ] ], - "id" : "Nuno Vieira", - "name" : "Nuno Vieira" + "id" : "Nuno Vieira" }, { "name" : "Paulo Custodio", - "id" : "Paulo Custodio", "data" : [ [ "Perl", 2 ] - ] + ], + "id" : "Paulo Custodio" }, { - "name" : "Pete Houston", "id" : "Pete Houston", + "name" : "Pete Houston", "data" : [ [ "Perl", @@ -400,16 +412,17 @@ ] }, { - "id" : "Philip Hood", - "name" : "Philip Hood", "data" : [ [ "Raku", 2 ] - ] + ], + "name" : "Philip Hood", + "id" : "Philip Hood" }, { + "name" : "Roger Bell_West", "data" : [ [ "Perl", @@ -424,21 +437,19 @@ 1 ] ], - "name" : "Roger Bell_West", "id" : "Roger Bell_West" }, { + "id" : "Simon Proctor", + "name" : "Simon Proctor", "data" : [ [ "Raku", 2 ] - ], - "id" : "Simon Proctor", - "name" : "Simon Proctor" + ] }, { - "id" : "Stuart Little", "name" : "Stuart Little", "data" : [ [ @@ -449,7 +460,8 @@ "Raku", 2 ] - ] + ], + "id" : "Stuart Little" }, { "id" : "Ulrich Rieke", @@ -467,7 +479,6 @@ }, { "name" : "W. Luis Mochan", - "id" : "W. Luis Mochan", "data" : [ [ "Perl", @@ -477,22 +488,34 @@ "Blog", 1 ] - ] + ], + "id" : "W. Luis Mochan" } ] }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - }, - "borderWidth" : 0 - } - }, "tooltip" : { "pointFormat" : "{point.name}: {point.y:f}
", - "followPointer" : 1, - "headerFormat" : "{series.name}
" + "headerFormat" : "{series.name}
", + "followPointer" : 1 + }, + "subtitle" : { + "text" : "[Champions: 27] Last updated at 2021-01-24 00:19:00 GMT" + }, + "legend" : { + "enabled" : 0 + }, + "xAxis" : { + "type" : "category" + }, + "chart" : { + "type" : "column" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "title" : { + "text" : "Perl Weekly Challenge - 096" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 6cd2f710cd..0431f1c19a 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,63 +1,63 @@ { - "title" : { - "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" - }, "series" : [ { - "name" : "Contributions", + "dataLabels" : { + "rotation" : -90, + "align" : "right", + "y" : 10, + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + }, + "format" : "{point.y:.0f}", + "enabled" : "true", + "color" : "#FFFFFF" + }, "data" : [ [ "Blog", - 1276 + 1277 ], [ "Perl", - 4450 + 4452 ], [ "Raku", - 2901 + 2903 ] ], - "dataLabels" : { - "rotation" : -90, - "color" : "#FFFFFF", - "y" : 10, - "format" : "{point.y:.0f}", - "align" : "right", - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - }, - "enabled" : "true" - } + "name" : "Contributions" } ], - "legend" : { - "enabled" : "false" - }, - "yAxis" : { - "title" : { - "text" : null - }, - "min" : 0 - }, - "subtitle" : { - "text" : "Last updated at 2021-01-23 23:50:11 GMT" - }, - "chart" : { - "type" : "column" - }, "tooltip" : { "pointFormat" : "{point.y:.0f}" }, "xAxis" : { - "type" : "category", "labels" : { "style" : { "fontFamily" : "Verdana, sans-serif", "fontSize" : "13px" } - } + }, + "type" : "category" + }, + "chart" : { + "type" : "column" + }, + "subtitle" : { + "text" : "Last updated at 2021-01-24 00:19:00 GMT" + }, + "legend" : { + "enabled" : "false" + }, + "title" : { + "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" + }, + "yAxis" : { + "title" : { + "text" : null + }, + "min" : 0 } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index c42596d223..2294f6af89 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,75 +1,81 @@ { - "title" : { - "text" : "Perl Weekly Challenge Language" + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + } + } }, "series" : [ { - "colorByPoint" : "true", + "name" : "Perl Weekly Challenge Languages", "data" : [ { + "drilldown" : "001", "name" : "#001", - "y" : 153, - "drilldown" : "001" + "y" : 153 }, { + "y" : 118, "name" : "#002", - "drilldown" : "002", - "y" : 118 + "drilldown" : "002" }, { - "drilldown" : "003", "y" : 75, + "drilldown" : "003", "name" : "#003" }, { - "drilldown" : "004", "y" : 95, + "drilldown" : "004", "name" : "#004" }, { + "drilldown" : "005", "name" : "#005", - "y" : 76, - "drilldown" : "005" + "y" : 76 }, { - "name" : "#006", + "y" : 56, "drilldown" : "006", - "y" : 56 + "name" : "#006" }, { "name" : "#007", - "y" : 63, - "drilldown" : "007" + "drilldown" : "007", + "y" : 63 }, { - "name" : "#008", "y" : 76, + "name" : "#008", "drilldown" : "008" }, { "y" : 74, - "drilldown" : "009", - "name" : "#009" + "name" : "#009", + "drilldown" : "009" }, { "drilldown" : "010", - "y" : 64, - "name" : "#010" + "name" : "#010", + "y" : 64 }, { - "name" : "#011", "y" : 83, + "name" : "#011", "drilldown" : "011" }, { - "name" : "#012", + "y" : 87, "drilldown" : "012", - "y" : 87 + "name" : "#012" }, { + "name" : "#013", "drilldown" : "013", - "y" : 82, - "name" : "#013" + "y" : 82 }, { "y" : 100, @@ -77,38 +83,38 @@ "name" : "#014" }, { - "name" : "#015", "drilldown" : "015", + "name" : "#015", "y" : 97 }, { + "y" : 70, "name" : "#016", - "drilldown" : "016", - "y" : 70 + "drilldown" : "016" }, { "y" : 83, - "drilldown" : "017", - "name" : "#017" + "name" : "#017", + "drilldown" : "017" }, { + "name" : "#018", "drilldown" : "018", - "y" : 80, - "name" : "#018" + "y" : 80 }, { + "y" : 101, "name" : "#019", - "drilldown" : "019", - "y" : 101 + "drilldown" : "019" }, { - "name" : "#020", "y" : 99, + "name" : "#020", "drilldown" : "020" }, { - "name" : "#021", "y" : 71, + "name" : "#021", "drilldown" : "021" }, { @@ -117,28 +123,28 @@ "name" : "#022" }, { - "y" : 95, "drilldown" : "023", - "name" : "#023" + "name" : "#023", + "y" : 95 }, { + "drilldown" : "024", "name" : "#024", - "y" : 74, - "drilldown" : "024" + "y" : 74 }, { + "y" : 59, "name" : "#025", - "drilldown" : "025", - "y" : 59 + "drilldown" : "025" }, { - "y" : 74, + "name" : "#026", "drilldown" : "026", - "name" : "#026" + "y" : 74 }, { - "name" : "#027", "y" : 60, + "name" : "#027", "drilldown" : "027" }, { @@ -147,39 +153,39 @@ "y" : 80 }, { - "drilldown" : "029", "y" : 79, + "drilldown" : "029", "name" : "#029" }, { - "y" : 117, + "name" : "#030", "drilldown" : "030", - "name" : "#030" + "y" : 117 }, { - "name" : "#031", "drilldown" : "031", + "name" : "#031", "y" : 89 }, { - "drilldown" : "032", "y" : 94, - "name" : "#032" + "name" : "#032", + "drilldown" : "032" }, { - "name" : "#033", "drilldown" : "033", + "name" : "#033", "y" : 110 }, { - "name" : "#034", + "y" : 64, "drilldown" : "034", - "y" : 64 + "name" : "#034" }, { - "drilldown" : "035", "y" : 64, - "name" : "#035" + "name" : "#035", + "drilldown" : "035" }, { "y" : 68, @@ -187,8 +193,8 @@ "name" : "#036" }, { - "name" : "#037", "drilldown" : "037", + "name" : "#037", "y" : 67 }, { @@ -198,48 +204,48 @@ }, { "y" : 62, - "drilldown" : "039", - "name" : "#039" + "name" : "#039", + "drilldown" : "039" }, { - "name" : "#040", + "y" : 73, "drilldown" : "040", - "y" : 73 + "name" : "#040" }, { + "y" : 76, "name" : "#041", - "drilldown" : "041", - "y" : 76 + "drilldown" : "041" }, { - "name" : "#042", "y" : 90, + "name" : "#042", "drilldown" : "042" }, { - "drilldown" : "043", "y" : 68, + "drilldown" : "043", "name" : "#043" }, { - "name" : "#044", + "y" : 84, "drilldown" : "044", - "y" : 84 + "name" : "#044" }, { - "y" : 96, "drilldown" : "045", - "name" : "#045" + "name" : "#045", + "y" : 96 }, { + "drilldown" : "046", "name" : "#046", - "y" : 87, - "drilldown" : "046" + "y" : 87 }, { - "y" : 84, + "name" : "#047", "drilldown" : "047", - "name" : "#047" + "y" : 84 }, { "name" : "#048", @@ -247,39 +253,39 @@ "y" : 108 }, { - "y" : 89, + "name" : "#049", "drilldown" : "049", - "name" : "#049" + "y" : 89 }, { + "name" : "#050", "drilldown" : "050", - "y" : 98, - "name" : "#050" + "y" : 98 }, { - "name" : "#051", "y" : 89, + "name" : "#051", "drilldown" : "051" }, { "drilldown" : "052", - "y" : 91, - "name" : "#052" + "name" : "#052", + "y" : 91 }, { "name" : "#053", - "y" : 101, - "drilldown" : "053" + "drilldown" : "053", + "y" : 101 }, { + "name" : "#054", "drilldown" : "054", - "y" : 103, - "name" : "#054" + "y" : 103 }, { "name" : "#055", - "y" : 88, - "drilldown" : "055" + "drilldown" : "055", + "y" : 88 }, { "y" : 95, @@ -287,8 +293,8 @@ "name" : "#056" }, { - "name" : "#057", "y" : 80, + "name" : "#057", "drilldown" : "057" }, { @@ -302,44 +308,44 @@ "y" : 89 }, { - "y" : 85, "drilldown" : "060", - "name" : "#060" + "name" : "#060", + "y" : 85 }, { + "drilldown" : "061", "name" : "#061", - "y" : 81, - "drilldown" : "061" + "y" : 81 }, { - "name" : "#062", "y" : 56, + "name" : "#062", "drilldown" : "062" }, { + "name" : "#063", "drilldown" : "063", - "y" : 89, - "name" : "#063" + "y" : 89 }, { - "drilldown" : "064", "y" : 80, - "name" : "#064" + "name" : "#064", + "drilldown" : "064" }, { "drilldown" : "065", - "y" : 73, - "name" : "#065" + "name" : "#065", + "y" : 73 }, { - "y" : 84, "drilldown" : "066", - "name" : "#066" + "name" : "#066", + "y" : 84 }, { + "drilldown" : "067", "name" : "#067", - "y" : 90, - "drilldown" : "067" + "y" : 90 }, { "name" : "#068", @@ -347,24 +353,24 @@ "y" : 75 }, { - "name" : "#069", "y" : 83, - "drilldown" : "069" + "drilldown" : "069", + "name" : "#069" }, { "name" : "#070", - "y" : 93, - "drilldown" : "070" + "drilldown" : "070", + "y" : 93 }, { - "name" : "#071", "y" : 78, - "drilldown" : "071" + "drilldown" : "071", + "name" : "#071" }, { - "name" : "#072", + "y" : 112, "drilldown" : "072", - "y" : 112 + "name" : "#072" }, { "y" : 110, @@ -372,24 +378,24 @@ "name" : "#073" }, { - "drilldown" : "074", "y" : 115, - "name" : "#074" + "name" : "#074", + "drilldown" : "074" }, { - "y" : 113, "drilldown" : "075", - "name" : "#075" + "name" : "#075", + "y" : 113 }, { - "drilldown" : "076", "y" : 99, - "name" : "#076" + "name" : "#076", + "drilldown" : "076" }, { + "drilldown" : "077", "name" : "#077", - "y" : 98, - "drilldown" : "077" + "y" : 98 }, { "name" : "#078", @@ -397,29 +403,29 @@ "y" : 127 }, { + "y" : 122, "name" : "#079", - "drilldown" : "079", - "y" : 122 + "drilldown" : "079" }, { - "name" : "#080", "y" : 127, + "name" : "#080", "drilldown" : "080" }, { + "y" : 114, "name" : "#081", - "drilldown" : "081", - "y" : 114 + "drilldown" : "081" }, { "y" : 114, - "drilldown" : "082", - "name" : "#082" + "name" : "#082", + "drilldown" : "082" }, { "name" : "#083", - "y" : 127, - "drilldown" : "083" + "drilldown" : "083", + "y" : 127 }, { "y" : 119, @@ -427,97 +433,78 @@ "name" : "#084" }, { - "drilldown" : "085", "y" : 114, - "name" : "#085" + "name" : "#085", + "drilldown" : "085" }, { - "y" : 104, "drilldown" : "086", - "name" : "#086" + "name" : "#086", + "y" : 104 }, { "drilldown" : "087", - "y" : 101, - "name" : "#087" + "name" : "#087", + "y" : 101 }, { - "name" : "#088", "y" : 121, - "drilldown" : "088" + "drilldown" : "088", + "name" : "#088" }, { + "drilldown" : "089", "name" : "#089", - "y" : 113, - "drilldown" : "089" + "y" : 113 }, { + "y" : 113, "name" : "#090", - "drilldown" : "090", - "y" : 113 + "drilldown" : "090" }, { "y" : 106, - "drilldown" : "091", - "name" : "#091" + "name" : "#091", + "drilldown" : "091" }, { + "name" : "#092", "drilldown" : "092", - "y" : 93, - "name" : "#092" + "y" : 93 }, { - "name" : "#093", + "y" : 85, "drilldown" : "093", - "y" : 85 + "name" : "#093" }, { "name" : "#094", - "y" : 85, - "drilldown" : "094" + "drilldown" : "094", + "y" : 85 }, { - "name" : "#095", "y" : 103, + "name" : "#095", "drilldown" : "095" }, { + "name" : "#096", "drilldown" : "096", - "y" : 74, - "name" : "#096" + "y" : 79 } ], - "name" : "Perl Weekly Challenge Languages" + "colorByPoint" : "true" } ], - "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2021-01-23 23:50:12 GMT" - }, - "chart" : { - "type" : "column" - }, - "legend" : { - "enabled" : "false" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "plotOptions" : { - "series" : { - "borderWidth" : 0, - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - } - } + "tooltip" : { + "pointFormat" : "Challenge {point.name}: {point.y:f}
", + "headerFormat" : "", + "followPointer" : "true" }, "drilldown" : { "series" : [ { "name" : "001", - "id" : "001", "data" : [ [ "Perl", @@ -531,9 +518,11 @@ "Blog", 11 ] - ] + ], + "id" : "001" }, { + "id" : "002", "data" : [ [ "Perl", @@ -548,12 +537,9 @@ 10 ] ], - "id" : "002", "name" : "002" }, { - "name" : "003", - "id" : "003", "data" : [ [ "Perl", @@ -567,7 +553,9 @@ "Blog", 9 ] - ] + ], + "name" : "003", + "id" : "003" }, { "id" : "004", @@ -606,6 +594,8 @@ ] }, { + "id" : "006", + "name" : "006", "data" : [ [ "Perl", @@ -619,9 +609,7 @@ "Blog", 7 ] - ], - "id" : "006", - "name" : "006" + ] }, { "data" : [ @@ -642,6 +630,8 @@ "id" : "007" }, { + "id" : "008", + "name" : "008", "data" : [ [ "Perl", @@ -655,13 +645,9 @@ "Blog", 12 ] - ], - "id" : "008", - "name" : "008" + ] }, { - "id" : "009", - "name" : "009", "data" : [ [ "Perl", @@ -675,7 +661,9 @@ "Blog", 13 ] - ] + ], + "name" : "009", + "id" : "009" }, { "data" : [ @@ -696,6 +684,7 @@ "id" : "010" }, { + "id" : "011", "data" : [ [ "Perl", @@ -710,7 +699,6 @@ 10 ] ], - "id" : "011", "name" : "011" }, { @@ -733,7 +721,6 @@ }, { "name" : "013", - "id" : "013", "data" : [ [ "Perl", @@ -747,9 +734,12 @@ "Blog", 13 ] - ] + ], + "id" : "013" }, { + "id" : "014", + "name" : "014", "data" : [ [ "Perl", @@ -763,9 +753,7 @@ "Blog", 15 ] - ], - "id" : "014", - "name" : "014" + ] }, { "data" : [ @@ -800,10 +788,11 @@ 12 ] ], - "id" : "016", - "name" : "016" + "name" : "016", + "id" : "016" }, { + "id" : "017", "data" : [ [ "Perl", @@ -818,10 +807,10 @@ 12 ] ], - "name" : "017", - "id" : "017" + "name" : "017" }, { + "id" : "018", "data" : [ [ "Perl", @@ -836,12 +825,10 @@ 14 ] ], - "name" : "018", - "id" : "018" + "name" : "018" }, { "id" : "019", - "name" : "019", "data" : [ [ "Perl", @@ -855,9 +842,11 @@ "Blog", 13 ] - ] + ], + "name" : "019" }, { + "id" : "020", "data" : [ [ "Perl", @@ -872,10 +861,10 @@ 13 ] ], - "id" : "020", "name" : "020" }, { + "name" : "021", "data" : [ [ "Perl", @@ -890,12 +879,10 @@ 10 ] ], - "name" : "021", "id" : "021" }, { "name" : "022", - "id" : "022", "data" : [ [ "Perl", @@ -909,7 +896,8 @@ "Blog", 10 ] - ] + ], + "id" : "022" }, { "data" : [ @@ -926,10 +914,12 @@ 12 ] ], - "id" : "023", - "name" : "023" + "name" : "023", + "id" : "023" }, { + "id" : "024", + "name" : "024", "data" : [ [ "Perl", @@ -943,9 +933,7 @@ "Blog", 11 ] - ], - "name" : "024", - "id" : "024" + ] }, { "data" : [ @@ -966,8 +954,6 @@ "id" : "025" }, { - "id" : "026", - "name" : "026", "data" : [ [ "Perl", @@ -981,7 +967,9 @@ "Blog", 10 ] - ] + ], + "name" : "026", + "id" : "026" }, { "id" : "027", @@ -1002,8 +990,8 @@ ] }, { - "name" : "028", "id" : "028", + "name" : "028", "data" : [ [ "Perl", @@ -1020,8 +1008,6 @@ ] }, { - "id" : "029", - "name" : "029", "data" : [ [ "Perl", @@ -1035,11 +1021,11 @@ "Blog", 12 ] - ] + ], + "name" : "029", + "id" : "029" }, { - "name" : "030", - "id" : "030", "data" : [ [ "Perl", @@ -1053,9 +1039,12 @@ "Blog", 10 ] - ] + ], + "name" : "030", + "id" : "030" }, { + "name" : "031", "data" : [ [ "Perl", @@ -1070,10 +1059,10 @@ 9 ] ], - "name" : "031", "id" : "031" }, { + "name" : "032", "data" : [ [ "Perl", @@ -1088,10 +1077,11 @@ 10 ] ], - "id" : "032", - "name" : "032" + "id" : "032" }, { + "id" : "033", + "name" : "033", "data" : [ [ "Perl", @@ -1105,9 +1095,7 @@ "Blog", 10 ] - ], - "name" : "033", - "id" : "033" + ] }, { "data" : [ @@ -1146,6 +1134,7 @@ ] }, { + "id" : "036", "data" : [ [ "Perl", @@ -1160,7 +1149,6 @@ 11 ] ], - "id" : "036", "name" : "036" }, { @@ -1196,10 +1184,12 @@ 12 ] ], - "id" : "038", - "name" : "038" + "name" : "038", + "id" : "038" }, { + "id" : "039", + "name" : "039", "data" : [ [ "Perl", @@ -1213,13 +1203,10 @@ "Blog", 12 ] - ], - "id" : "039", - "name" : "039" + ] }, { "id" : "040", - "name" : "040", "data" : [ [ "Perl", @@ -1233,7 +1220,8 @@ "Blog", 10 ] - ] + ], + "name" : "040" }, { "id" : "041", @@ -1254,7 +1242,6 @@ ] }, { - "id" : "042", "name" : "042", "data" : [ [ @@ -1269,9 +1256,11 @@ "Blog", 11 ] - ] + ], + "id" : "042" }, { + "name" : "043", "data" : [ [ "Perl", @@ -1286,10 +1275,11 @@ 11 ] ], - "id" : "043", - "name" : "043" + "id" : "043" }, { + "id" : "044", + "name" : "044", "data" : [ [ "Perl", @@ -1303,13 +1293,11 @@ "Blog", 11 ] - ], - "name" : "044", - "id" : "044" + ] }, { - "name" : "045", "id" : "045", + "name" : "045", "data" : [ [ "Perl", @@ -1344,7 +1332,6 @@ ] }, { - "id" : "047", "name" : "047", "data" : [ [ @@ -1359,9 +1346,12 @@ "Blog", 10 ] - ] + ], + "id" : "047" }, { + "id" : "048", + "name" : "048", "data" : [ [ "Perl", @@ -1375,11 +1365,11 @@ "Blog", 12 ] - ], - "name" : "048", - "id" : "048" + ] }, { + "id" : "049", + "name" : "049", "data" : [ [ "Perl", @@ -1393,13 +1383,10 @@ "Blog", 12 ] - ], - "id" : "049", - "name" : "049" + ] }, { "name" : "050", - "id" : "050", "data" : [ [ "Perl", @@ -1413,9 +1400,11 @@ "Blog", 12 ] - ] + ], + "id" : "050" }, { + "id" : "051", "data" : [ [ "Perl", @@ -1430,10 +1419,10 @@ 11 ] ], - "name" : "051", - "id" : "051" + "name" : "051" }, { + "name" : "052", "data" : [ [ "Perl", @@ -1448,10 +1437,10 @@ 14 ] ], - "id" : "052", - "name" : "052" + "id" : "052" }, { + "name" : "053", "data" : [ [ "Perl", @@ -1466,10 +1455,10 @@ 15 ] ], - "id" : "053", - "name" : "053" + "id" : "053" }, { + "name" : "054", "data" : [ [ "Perl", @@ -1484,12 +1473,9 @@ 18 ] ], - "name" : "054", "id" : "054" }, { - "name" : "055", - "id" : "055", "data" : [ [ "Perl", @@ -1503,9 +1489,13 @@ "Blog", 14 ] - ] + ], + "name" : "055", + "id" : "055" }, { + "id" : "056", + "name" : "056", "data" : [ [ "Perl", @@ -1519,13 +1509,11 @@ "Blog", 16 ] - ], - "name" : "056", - "id" : "056" + ] }, { - "name" : "057", "id" : "057", + "name" : "057", "data" : [ [ "Perl", @@ -1543,7 +1531,6 @@ }, { "id" : "058", - "name" : "058", "data" : [ [ "Perl", @@ -1557,9 +1544,11 @@ "Blog", 13 ] - ] + ], + "name" : "058" }, { + "id" : "059", "data" : [ [ "Perl", @@ -1574,12 +1563,9 @@ 16 ] ], - "name" : "059", - "id" : "059" + "name" : "059" }, { - "name" : "060", - "id" : "060", "data" : [ [ "Perl", @@ -1593,7 +1579,9 @@ "Blog", 16 ] - ] + ], + "name" : "060", + "id" : "060" }, { "data" : [ @@ -1610,10 +1598,11 @@ 14 ] ], - "id" : "061", - "name" : "061" + "name" : "061", + "id" : "061" }, { + "name" : "062", "data" : [ [ "Perl", @@ -1628,10 +1617,11 @@ 11 ] ], - "id" : "062", - "name" : "062" + "id" : "062" }, { + "id" : "063", + "name" : "063", "data" : [ [ "Perl", @@ -1645,13 +1635,10 @@ "Blog", 13 ] - ], - "name" : "063", - "id" : "063" + ] }, { "name" : "064", - "id" : "064", "data" : [ [ "Perl", @@ -1665,9 +1652,11 @@ "Blog", 16 ] - ] + ], + "id" : "064" }, { + "name" : "065", "data" : [ [ "Perl", @@ -1682,10 +1671,10 @@ 15 ] ], - "name" : "065", "id" : "065" }, { + "id" : "066", "data" : [ [ "Perl", @@ -1700,12 +1689,10 @@ 14 ] ], - "name" : "066", - "id" : "066" + "name" : "066" }, { "id" : "067", - "name" : "067", "data" : [ [ "Perl", @@ -1719,9 +1706,11 @@ "Blog", 18 ] - ] + ], + "name" : "067" }, { + "name" : "068", "data" : [ [ "Perl", @@ -1736,10 +1725,10 @@ 13 ] ], - "name" : "068", "id" : "068" }, { + "name" : "069", "data" : [ [ "Perl", @@ -1754,10 +1743,10 @@ 16 ] ], - "name" : "069", "id" : "069" }, { + "name" : "070", "data" : [ [ "Perl", @@ -1772,12 +1761,9 @@ 17 ] ], - "id" : "070", - "name" : "070" + "id" : "070" }, { - "id" : "071", - "name" : "071", "data" : [ [ "Perl", @@ -1791,11 +1777,13 @@ "Blog", 15 ] - ] + ], + "name" : "071", + "id" : "071" }, { - "name" : "072", "id" : "072", + "name" : "072", "data" : [ [ "Perl", @@ -1826,10 +1814,11 @@ 17 ] ], - "id" : "073", - "name" : "073" + "name" : "073", + "id" : "073" }, { + "id" : "074", "data" : [ [ "Perl", @@ -1844,8 +1833,7 @@ 20 ] ], - "name" : "074", - "id" : "074" + "name" : "074" }, { "data" : [ @@ -1862,12 +1850,12 @@ 20 ] ], - "id" : "075", - "name" : "075" + "name" : "075", + "id" : "075" }, { - "name" : "076", "id" : "076", + "name" : "076", "data" : [ [ "Perl", @@ -1884,6 +1872,8 @@ ] }, { + "id" : "077", + "name" : "077", "data" : [ [ "Perl", @@ -1897,13 +1887,10 @@ "Blog", 14 ] - ], - "id" : "077", - "name" : "077" + ] }, { "name" : "078", - "id" : "078", "data" : [ [ "Perl", @@ -1917,7 +1904,8 @@ "Blog", 18 ] - ] + ], + "id" : "078" }, { "data" : [ @@ -1934,12 +1922,10 @@ 17 ] ], - "id" : "079", - "name" : "079" + "name" : "079", + "id" : "079" }, { - "id" : "080", - "name" : "080", "data" : [ [ "Perl", @@ -1953,11 +1939,12 @@ "Blog", 16 ] - ] + ], + "name" : "080", + "id" : "080" }, { "id" : "081", - "name" : "081", "data" : [ [ "Perl", @@ -1971,11 +1958,10 @@ "Blog", 15 ] - ] + ], + "name" : "081" }, { - "id" : "082", - "name" : "082", "data" : [ [ "Perl", @@ -1989,7 +1975,9 @@ "Blog", 17 ] - ] + ], + "name" : "082", + "id" : "082" }, { "data" : [ @@ -2011,7 +1999,6 @@ }, { "id" : "084", - "name" : "084", "data" : [ [ "Perl", @@ -2025,10 +2012,10 @@ "Blog", 12 ] - ] + ], + "name" : "084" }, { - "id" : "085", "name" : "085", "data" : [ [ @@ -2043,7 +2030,8 @@ "Blog", 18 ] - ] + ], + "id" : "085" }, { "id" : "086", @@ -2064,6 +2052,7 @@ ] }, { + "id" : "087", "data" : [ [