From f75b9c1a10d1cbc75c682fd115579fcf41214517 Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Mon, 1 Jun 2020 00:22:09 +0100 Subject: - Added solutions by Arne Sommer. --- challenge-062/arne-sommer/blog.txt | 1 + challenge-062/arne-sommer/raku/ch-1.p6 | 34 + challenge-062/arne-sommer/raku/ch-2.p6 | 125 +++ challenge-062/arne-sommer/raku/input-list.txt | 5 + .../arne-sommer/raku/lib/QueenCube.rakumod | 195 +++++ challenge-062/arne-sommer/raku/queen-cube | 125 +++ challenge-062/arne-sommer/raku/queen-cube-1 | 25 + challenge-062/arne-sommer/raku/queen-cube-2 | 32 + challenge-062/arne-sommer/raku/queen-cube-3 | 35 + challenge-062/arne-sommer/raku/queen-cube-4 | 49 ++ challenge-062/arne-sommer/raku/queen-cube-5 | 75 ++ challenge-062/arne-sommer/raku/sea | 34 + challenge-062/arne-sommer/raku/sea-main | 34 + challenge-062/arne-sommer/raku/sea-simple | 13 + stats/pwc-current.json | 333 ++++---- stats/pwc-language-breakdown-summary.json | 64 +- stats/pwc-language-breakdown.json | 928 ++++++++++----------- stats/pwc-leaders.json | 406 ++++----- stats/pwc-summary-1-30.json | 40 +- stats/pwc-summary-121-150.json | 42 +- stats/pwc-summary-151-180.json | 24 +- stats/pwc-summary-31-60.json | 32 +- stats/pwc-summary-61-90.json | 48 +- stats/pwc-summary-91-120.json | 126 +-- stats/pwc-summary.json | 56 +- 25 files changed, 1841 insertions(+), 1040 deletions(-) create mode 100644 challenge-062/arne-sommer/blog.txt create mode 100755 challenge-062/arne-sommer/raku/ch-1.p6 create mode 100755 challenge-062/arne-sommer/raku/ch-2.p6 create mode 100755 challenge-062/arne-sommer/raku/input-list.txt create mode 100755 challenge-062/arne-sommer/raku/lib/QueenCube.rakumod create mode 100755 challenge-062/arne-sommer/raku/queen-cube create mode 100755 challenge-062/arne-sommer/raku/queen-cube-1 create mode 100755 challenge-062/arne-sommer/raku/queen-cube-2 create mode 100755 challenge-062/arne-sommer/raku/queen-cube-3 create mode 100755 challenge-062/arne-sommer/raku/queen-cube-4 create mode 100755 challenge-062/arne-sommer/raku/queen-cube-5 create mode 100755 challenge-062/arne-sommer/raku/sea create mode 100755 challenge-062/arne-sommer/raku/sea-main create mode 100755 challenge-062/arne-sommer/raku/sea-simple diff --git a/challenge-062/arne-sommer/blog.txt b/challenge-062/arne-sommer/blog.txt new file mode 100644 index 0000000000..d8005d4a41 --- /dev/null +++ b/challenge-062/arne-sommer/blog.txt @@ -0,0 +1 @@ +https://raku-musings.com/email-queen.html diff --git a/challenge-062/arne-sommer/raku/ch-1.p6 b/challenge-062/arne-sommer/raku/ch-1.p6 new file mode 100755 index 0000000000..294e52c2e8 --- /dev/null +++ b/challenge-062/arne-sommer/raku/ch-1.p6 @@ -0,0 +1,34 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@files, :$verbose, :$u); + +say ": Files: @files[]" if $verbose; + +my @input = @files.elems + ?? IO::CatHandle.new(@files).lines + !! lines; + +say ": Content: @input[]" if $verbose; + +my %sort; +my %seen; +my @output; + +for @input -> $current +{ + my ($mailbox, $domain) = $current.split('@'); + + say ": Candidate: $mailbox @ { $domain.lc }" if $verbose; + + if $u + { + my $candidate = $mailbox ~ '@' ~ $domain.lc; + next if %seen{$candidate}; + %seen{$candidate} = True; + } + + %sort{$current} = "{ $domain.lc } $mailbox"; + @output.push: $current; +} + +.say for @output.sort({ %sort{$^a} cmp %sort{$^b} }); diff --git a/challenge-062/arne-sommer/raku/ch-2.p6 b/challenge-062/arne-sommer/raku/ch-2.p6 new file mode 100755 index 0000000000..6b23f03141 --- /dev/null +++ b/challenge-062/arne-sommer/raku/ch-2.p6 @@ -0,0 +1,125 @@ +#! /usr/bin/env raku + +use lib "lib"; +use QueenCube; + +unit sub MAIN +( + $size = 8, + :$id = 'Q', + :$empty =".", + :$queen, + :$colour, + :$newlines, + :$fill, + :$random, + :$silent, + :$get-the-best, + :$verbose +); + +if $get-the-best +{ + get-the-best; +} +elsif $silent ~~ Int +{ + get-many-solutions; +} +else +{ + get-one-solution; +} + +sub get-one-solution +{ + my $c = QueenCube.new(size => $size); + + $c.init($empty); + + if $queen + { + $c.queen($id, $_) for $queen.words; + } + + if $fill || $random + { + loop + { + my $pos = $random ?? $c.get-empty-cell-random !! $c.get-empty-cell; + last unless defined $pos; + say ": Queen at $pos" if $verbose; + my ($x, $y, $z) = $pos.split(";"); + $c.queen($id, $x, $y, $z); + } + } + + unless $silent + { + $newlines + ?? $c.display-with-newlines($colour, $newlines) + !! $c.display($colour); + } + + my $count = $c.number-of-queens; + say "Number of Queens: ", $count if $count > 1; + + return $count; +} + + +sub get-many-solutions +{ + my @result; + + @result.push(get-one-solution) for ^$silent; + + my %result; + + %result{$_}++ for @result; + + say "$_ (%result{$_})" for %result.keys.sort; +} + + +sub get-the-best +{ + my Int $best-count = 0; + my $best-cube; + + my $c = QueenCube.new(size => $size); + $c.init($empty); + + iterate($c); + + sub iterate ($cube) + { + for $cube.get-all-cells -> $cell + { + next unless $c.cell-is-free($cell); + + my $copy = $cube.clone; + $copy.queen($id, $cell); + + iterate($copy); + } + + my $q = $cube.number-of-queens; + if $q > $best-count + { + say ": New best cube with $q Queens (old had $best-count)" if $verbose; + $best-count = $q; + $best-cube = $cube + } + elsif $verbose + { + say ": Considering cube with $q Queens"; + } + } + + $newlines + ?? $c.display-with-newlines($colour, $newlines) + !! $c.display($colour); + + say "Number of Queens: ", $best-count; +} diff --git a/challenge-062/arne-sommer/raku/input-list.txt b/challenge-062/arne-sommer/raku/input-list.txt new file mode 100755 index 0000000000..5dc3f2ceb0 --- /dev/null +++ b/challenge-062/arne-sommer/raku/input-list.txt @@ -0,0 +1,5 @@ +name@example.org +rjt@cpan.org +Name@example.org +rjt@CPAN.org +user@alpha.example.org diff --git a/challenge-062/arne-sommer/raku/lib/QueenCube.rakumod b/challenge-062/arne-sommer/raku/lib/QueenCube.rakumod new file mode 100755 index 0000000000..94a63e5188 --- /dev/null +++ b/challenge-062/arne-sommer/raku/lib/QueenCube.rakumod @@ -0,0 +1,195 @@ +use v6; + +constant ansi-blue = "\e[44m"; +constant ansi-green = "\e[42m"; +constant ansi-red = "\e[101m"; +constant ansi-stop = "\e[0m "; + +constant html-blue = ''; +constant html-green = ''; +constant html-red = ''; +constant html-stop = ' '; + + +unit class QueenCube; + + +has Int $.size; +has @.elems is rw; +has $.blank is rw; + + +method init ($init) +{ + self.blank = $init; + + for 1 .. $!size -> $x + { + for 1 .. $!size -> $y + { + for 1 .. $!size -> $z + { + @.elems[$x; $y; $z] = $init; + } + } + } +} + + +multi method queen ($id, $x, $y, $z) +{ + die "Blacked out position $x, $y, $z " if @.elems[$x; $y; $z] ne self.blank; + + @.elems[$x; $y; $z] = $id; + + my $min = 1; + my $max = self.size; + my $blackout = $id.lc; + + for -1, 0, 1 -> $xx + { + for -1, 0, 1 -> $yy + { + for -1, 0, 1 -> $zz + { + next if $xx == $yy == $zz == 0; # The Queen is here + + for (1 .. $max) -> $h + { + my $xxx = $x + $xx * $h; + my $yyy = $y + $yy * $h; + my $zzz = $z + $zz * $h; + next if any($xxx, $yyy, $zzz) < $min; + next if any($xxx, $yyy, $zzz) > $max; + @.elems[ $xxx; $yyy; $zzz] = $blackout; + } + } + } + } +} + + +multi method queen ($id, $xyz) +{ + my ($x, $y, $z) = $xyz.split(";"); + + die "Queen position out of range (1 .. { self.size })" if any($x, $y, $z) < 1; + die "Queen position out of range (1 .. { self.size })" if any($x, $y, $z) > self.size; + + self.queen($id, $x, $y, $z); +} + + +method display ($colour, $layer-from = 1, $layer-to = self.size) +{ + for 1 .. self.size -> $y + { + for $layer-from .. $layer-to -> $x + { + for 1 .. self.size -> $z + { + if $colour && $colour eq "html" + { + given @.elems[$x; $y; $z] + { + when self.blank { print html-red ~ $_ ~ html-stop; } + when /<[A..Z]>/ { print html-blue ~ $_ ~ html-stop; } + when /<[a..z]>/ { print html-green ~ $_ ~ html-stop; } + } + } + elsif $colour + { + given @.elems[$x; $y; $z] + { + when self.blank { print ansi-red ~ $_ ~ ansi-stop; } + when /<[A..Z]>/ { print ansi-blue ~ $_ ~ ansi-stop; } + when /<[a..z]>/ { print ansi-green ~ $_ ~ ansi-stop; } + } + } + else + { + print @.elems[$x; $y; $z], " "; + } + } + print " "; + } + say "": + } +} + + +method display-with-newlines($colour, $break-after) +{ + my $size = self.size; + my $start = 1; + my $stop = min($size, $break-after); + + loop + { + self.display($colour, $start, $stop); + $start += $break-after; + $stop += $break-after; + + last if $start > $size; + $stop = min($stop, $size); + print "\n\n"; + } +} + + +method number-of-queens +{ + return @!elems[*;*;*].grep({ $_.defined }).grep( * ~~ /<[A..Z]>/ ).elems; +} + + +method get-empty-cell +{ + for 1 .. self.size -> $x + { + for 1 .. self.size -> $y + { + for 1 ..self.size -> $z + { + return "$x;$y;$z" if @.elems[$x;$y;$z] eq self.blank; + } + } + } + return; +} + + +method get-empty-cell-random +{ + for self.get-all-cells.flat.pick(*) -> $elem + { + my ($x, $y, $z) = $elem.split(";"); + return "$x;$y;$z" if @.elems[$x;$y;$z] eq self.blank; + } + return; +} + + +method get-all-cells +{ + my @all; + for 1 .. self.size -> $x + { + for 1 .. self.size -> $y + { + for 1 ..self.size -> $z + { + @all.push("$x;$y;$z"); + } + } + } + return @all; +} + + +method cell-is-free ($cell) +{ + my ($x, $y, $z) = $cell.split(";"); + return self.elems[$x;$y;$z] eq self.blank; +} + diff --git a/challenge-062/arne-sommer/raku/queen-cube b/challenge-062/arne-sommer/raku/queen-cube new file mode 100755 index 0000000000..6b23f03141 --- /dev/null +++ b/challenge-062/arne-sommer/raku/queen-cube @@ -0,0 +1,125 @@ +#! /usr/bin/env raku + +use lib "lib"; +use QueenCube; + +unit sub MAIN +( + $size = 8, + :$id = 'Q', + :$empty =".", + :$queen, + :$colour, + :$newlines, + :$fill, + :$random, + :$silent, + :$get-the-best, + :$verbose +); + +if $get-the-best +{ + get-the-best; +} +elsif $silent ~~ Int +{ + get-many-solutions; +} +else +{ + get-one-solution; +} + +sub get-one-solution +{ + my $c = QueenCube.new(size => $size); + + $c.init($empty); + + if $queen + { + $c.queen($id, $_) for $queen.words; + } + + if $fill || $random + { + loop + { + my $pos = $random ?? $c.get-empty-cell-random !! $c.get-empty-cell; + last unless defined $pos; + say ": Queen at $pos" if $verbose; + my ($x, $y, $z) = $pos.split(";"); + $c.queen($id, $x, $y, $z); + } + } + + unless $silent + { + $newlines + ?? $c.display-with-newlines($colour, $newlines) + !! $c.display($colour); + } + + my $count = $c.number-of-queens; + say "Number of Queens: ", $count if $count > 1; + + return $count; +} + + +sub get-many-solutions +{ + my @result; + + @result.push(get-one-solution) for ^$silent; + + my %result; + + %result{$_}++ for @result; + + say "$_ (%result{$_})" for %result.keys.sort; +} + + +sub get-the-best +{ + my Int $best-count = 0; + my $best-cube; + + my $c = QueenCube.new(size => $size); + $c.init($empty); + + iterate($c); + + sub iterate ($cube) + { + for $cube.get-all-cells -> $cell + { + next unless $c.cell-is-free($cell); + + my $copy = $cube.clone; + $copy.queen($id, $cell); + + iterate($copy); + } + + my $q = $cube.number-of-queens; + if $q > $best-count + { + say ": New best cube with $q Queens (old had $best-count)" if $verbose; + $best-count = $q; + $best-cube = $cube + } + elsif $verbose + { + say ": Considering cube with $q Queens"; + } + } + + $newlines + ?? $c.display-with-newlines($colour, $newlines) + !! $c.display($colour); + + say "Number of Queens: ", $best-count; +} diff --git a/challenge-062/arne-sommer/raku/queen-cube-1 b/challenge-062/arne-sommer/raku/queen-cube-1 new file mode 100755 index 0000000000..ebd530bb35 --- /dev/null +++ b/challenge-062/arne-sommer/raku/queen-cube-1 @@ -0,0 +1,25 @@ +#! /usr/bin/env raku + +use lib "lib"; +use QueenCube; + +unit sub MAIN +( + $size = 8, + :$id = 'Q', + :$empty =".", + :$queen, + :$colour +); + +get-one-solution; + +sub get-one-solution +{ + my $c = QueenCube.new(size => $size); + + $c.init($empty); + $c.queen($id, $queen) if $queen; + + $c.display($colour); +} diff --git a/challenge-062/arne-sommer/raku/queen-cube-2 b/challenge-062/arne-sommer/raku/queen-cube-2 new file mode 100755 index 0000000000..7bc780690a --- /dev/null +++ b/challenge-062/arne-sommer/raku/queen-cube-2 @@ -0,0 +1,32 @@ +#! /usr/bin/env raku + +use lib "lib"; +use QueenCube; + +unit sub MAIN +( + $size = 8, + :$id = 'Q', + :$empty =".", + :$queen, + :$colour +); + +get-one-solution; + +sub get-one-solution +{ + my $c = QueenCube.new(size => $size); + + $c.init($empty); + + if $queen + { + $c.queen($id, $_) for $queen.words; + } + + $c.display($colour); + + my $count = $c.number-of-queens; + say "Number of Queens: ", $count if $count > 1; +} diff --git a/challenge-062/arne-sommer/raku/queen-cube-3 b/challenge-062/arne-sommer/raku/queen-cube-3 new file mode 100755 index 0000000000..7f6d5ea6b1 --- /dev/null +++ b/challenge-062/arne-sommer/raku/queen-cube-3 @@ -0,0 +1,35 @@ +#! /usr/bin/env raku + +use lib "lib"; +use QueenCube; + +unit sub MAIN +( + $size = 8, + :$id = 'Q', + :$empty =".", + :$queen, + :$colour, + :$newlines +); + +get-one-solution; + +sub get-one-solution +{ + my $c = QueenCube.new(size => $size); + + $c.init($empty); + + if $queen + { + $c.queen($id, $_) for $queen.words; + } + + $newlines + ?? $c.display-with-newlines($colour, $newlines) + !! $c.display($colour); + + my $count = $c.number-of-queens; + say "Number of Queens: ", $count if $count > 1; +} diff --git a/challenge-062/arne-sommer/raku/queen-cube-4 b/challenge-062/arne-sommer/raku/queen-cube-4 new file mode 100755 index 0000000000..71705cfe3e --- /dev/null +++ b/challenge-062/arne-sommer/raku/queen-cube-4 @@ -0,0 +1,49 @@ +#! /usr/bin/env raku + +use lib "lib"; +use QueenCube; + +unit sub MAIN +( + $size = 8, + :$id = 'Q', + :$empty =".", + :$queen, + :$colour, + :$newlines, + :$fill, + :$random, +); + +get-one-solution; + +sub get-one-solution +{ + my $c = QueenCube.new(size => $size); + + $c.init($empty); + + if $queen + { + $c.queen($id, $_) for $queen.words; + } + + if $fill || $random + { + loop + { + my ($pos) = $random ?? $c.get-empty-cell-random !! $c.get-empty-cell; + last unless defined $pos; + say ": Queen at $pos" if $verbose; + my ($x, $y, $z) = $pos.split(";"); + $c.queen($id, $x, $y, $z); + } + } + + $newlines + ?? $c.display-with-newlines($colour, $newlines) + !! $c.display($colour); + + my $count = $c.number-of-queens; + say "Number of Queens: ", $count if $count > 1; +} diff --git a/challenge-062/arne-sommer/raku/queen-cube-5 b/challenge-062/arne-sommer/raku/queen-cube-5 new file mode 100755 index 0000000000..2ca0ad01fb --- /dev/null +++ b/challenge-062/arne-sommer/raku/queen-cube-5 @@ -0,0 +1,75 @@ +#! /usr/bin/env raku + +use lib "lib"; +use QueenCube; + +unit sub MAIN +( + $size = 8, + :$id = 'Q', + :$empty =".", + :$queen, + :$colour, + :$newlines, + :$fill, + :$random, + :$silent +); + +if $silent ~~ Int +{ + get-many-solutions; +} +else +{ + get-one-solution; +} + + +sub get-one-solution +{ + my $c = QueenCube.new(size => $size); + + $c.init($empty); + + if $queen + { + $c.queen($id, $_) for $queen.words; + } + + if $fill || $random + { + loop + { + my ($pos) = $random ?? $c.get-empty-cell-random !! $c.get-empty-cell; + last unless defined $pos; + say ": Queen at $pos" if $verbose; + my ($x, $y, $z) = $pos.split(";"); + $c.queen($id, $x, $y, $z); + } + } + + unless $silent + { + $newlines + ?? $c.display-with-newlines($colour, $newlines) + !! $c.display($colour); + } + + my $count = $c.number-of-queens; + say "Number of Queens: ", $count if $count > 1; +} + + +sub get-many-solutions +{ + my @result; + + @result.push(get-one-solution) for ^$silent; + + my %result; + + %result{$_}++ for @result; + + say "$_ (%result{$_})" for %result.keys.sort; +} diff --git a/challenge-062/arne-sommer/raku/sea b/challenge-062/arne-sommer/raku/sea new file mode 100755 index 0000000000..294e52c2e8 --- /dev/null +++ b/challenge-062/arne-sommer/raku/sea @@ -0,0 +1,34 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@files, :$verbose, :$u); + +say ": Files: @files[]" if $verbose; + +my @input = @files.elems + ?? IO::CatHandle.new(@files).lines + !! lines; + +say ": Content: @input[]" if $verbose; + +my %sort; +my %seen; +my @output; + +for @input -> $current +{ + my ($mailbox, $domain) = $current.split('@'); + + say ": Candidate: $mailbox @ { $domain.lc }" if $verbose; + + if $u + { + my $candidate = $mailbox ~ '@' ~ $domain.lc; + next if %seen{$candidate}; + %seen{$candidate} = True; + } + + %sort{$current} = "{ $domain.lc } $mailbox"; + @output.push: $current; +} + +.say for @output.sort({ %sort{$^a} cmp %sort{$^b} }); diff --git a/challenge-062/arne-sommer/raku/sea-main b/challenge-062/arne-sommer/raku/sea-main new file mode 100755 index 0000000000..1644920d60 --- /dev/null +++ b/challenge-062/arne-sommer/raku/sea-main @@ -0,0 +1,34 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@files, :$verbose, :$u); + +say ": Files: @files[]" if $verbose; + +my @input = @files.elems + ?? IO::CatHandle.new(@files).lines + !! $*IN.lines; + +say ": Content: @input[]" if $verbose; + +my %sort; +my %seen; +my @output; + +for @input -> $current +{ + my ($mailbox, $domain) = $current.split('@'); + + say ": Candidate: $mailbox @ { $domain.lc }" if $verbose; + + if $u + { + my $candidate = $mailbox ~ '@' ~ $domain.lc; + next if %seen{$candidate}; + %seen{$candidate} = True; + } + + %sort{$current} = "{ $domain.lc } $mailbox"; + @output.push: $current; +} + +.say for @output.sort({ %sort{$^a} cmp %sort{$^b} }); diff --git a/challenge-062/arne-sommer/raku/sea-simple b/challenge-062/arne-sommer/raku/sea-simple new file mode 100755 index 0000000000..ae23411bfb --- /dev/null +++ b/challenge-062/arne-sommer/raku/sea-simple @@ -0,0 +1,13 @@ +#! /usr/bin/env raku + +my @input = $*ARGFILES.lines; + +my %sort; + +for @input -> $current +{ + my ($mailbox, $domain) = $current.split('@'); + %sort{$current} = "{ $domain.lc } $mailbox"; +} + +.say for @input.sort({ %sort{$^a} cmp %sort{$^b} }); diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 2e34519488..8ce66799df 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,123 +1,23 @@ { - "legend" : { - "enabled" : 0 - }, - "series" : [ - { - "colorByPoint" : 1, - "data" : [ - { - "y" : 2, - "name" : "Athanasius", - "drilldown" : "Athanasius" - }, - { - "drilldown" : "Jared Martin", - "name" : "Jared Martin", - "y" : 1 - }, - { - "drilldown" : "Javier Luque", - "y" : 5, - "name" : "Javier Luque" - }, - { - "drilldown" : "Laurent Rosenfeld", - "y" : 3, - "name" : "Laurent Rosenfeld" - }, - { - "drilldown" : "Leo Manfredi", - "name" : "Leo Manfredi", - "y" : 1 - }, - { - "drilldown" : "Luca Ferrari", - "y" : 2, - "name" : "Luca Ferrari" - }, - { - "y" : 1, - "name" : "Markus Holzer", - "drilldown" : "Markus Holzer" - }, - { - "drilldown" : "Mohammad S Anwar", - "y" : 3, - "name" : "Mohammad S Anwar" - }, - { - "drilldown" : "Niels van Dijke", - "name" : "Niels van Dijke", - "y" : 2 - }, - { - "name" : "Pete Houston", - "y" : 1, - "drilldown" : "Pete Houston" - }, - { - "drilldown" : "Richard Park", - "y" : 1, - "name" : "Richard Park" - }, - { - "drilldown" : "Roger Bell_West", - "y" : 4, - "name" : "Roger Bell_West" - }, - { - "drilldown" : "Saif Ahmed", - "y" : 2, - "name" : "Saif Ahmed" - }, - { - "drilldown" : "Sangeet Kar", - "y" : 4, - "name" : "Sangeet Kar" - }, - { - "y" : 3, - "name" : "Shahed Nooshmand", - "drilldown" : "Shahed Nooshmand" - }, - { - "drilldown" : "Simon Miner", - "name" : "Simon Miner", - "y" : 1 - }, - { - "drilldown" : "Simon Proctor", - "y" : 1, - "name" : "Simon Proctor" - }, - { - "name" : "Wanderdoc", - "y" : 1, - "drilldown" : "Wanderdoc" - }, - { - "name" : "Yet Ebreo", - "y" : 1, - "drilldown" : "Yet Ebreo" - } - ], - "name" : "Perl Weekly Challenge - 062" - } - ], - "subtitle" : { - "text" : "[Champions: 19] Last updated at 2020-05-31 22:28:16 GMT" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, "drilldown" : { "series" : [ { - "id" : "Athanasius", + "data" : [ + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Arne Sommer", + "name" : "Arne Sommer" + }, + { "name" : "Athanasius", + "id" : "Athanasius", "data" : [ [ "Perl", @@ -130,16 +30,17 @@ ] }, { + "name" : "Jared Martin", + "id" : "Jared Martin", "data" : [ [ "Perl", 1 ] - ], - "name" : "Jared Martin", - "id" : "Jared Martin" + ] }, { + "name" : "Javier Luque", "id" : "Javier Luque", "data" : [ [ @@ -154,10 +55,11 @@ "Blog", 1 ] - ], - "name" : "Javier Luque" + ] }, { + "name" : "Laurent Rosenfeld", + "id" : "Laurent Rosenfeld", "data" : [ [ "Perl", @@ -171,19 +73,17 @@ "Blog", 1 ] - ], - "name" : "Laurent Rosenfeld", - "id" : "Laurent Rosenfeld" + ] }, { + "name" : "Leo Manfredi", "id" : "Leo Manfredi", "data" : [ [ "Perl", 1 ] - ], - "name" : "Leo Manfredi" + ] }, { "data" : [ @@ -192,18 +92,18 @@ 2 ] ], - "name" : "Luca Ferrari", - "id" : "Luca Ferrari" + "id" : "Luca Ferrari", + "name" : "Luca Ferrari" }, { + "name" : "Markus Holzer", "id" : "Markus Holzer", "data" : [ [ "Raku", 1 ] - ], - "name" : "Markus Holzer" + ] }, { "data" : [ @@ -224,37 +124,36 @@ "id" : "Mohammad S Anwar" }, { + "name" : "Niels van Dijke", + "id" : "Niels van Dijke", "data" : [ [ "Perl", 2 ] - ], - "name" : "Niels van Dijke", - "id" : "Niels van Dijke" + ] }, { - "name" : "Pete Houston", "data" : [ [ "Perl", 1 ] ], + "name" : "Pete Houston", "id" : "Pete Houston" }, { + "name" : "Richard Park", + "id" : "Richard Park", "data" : [ [ "Blog", 1 ] - ], - "name" : "Richard Park", - "id" : "Richard Park" + ] }, { - "id" : "Roger Bell_West", "data" : [ [ "Perl", @@ -269,6 +168,7 @@ 1 ] ], + "id" : "Roger Bell_West", "name" : "Roger Bell_West" }, { @@ -282,6 +182,7 @@ ] }, { + "name" : "Sangeet Kar", "id" : "Sangeet Kar", "data" : [ [ @@ -292,10 +193,10 @@ "Raku", 2 ] - ], - "name" : "Sangeet Kar" + ] }, { + "name" : "Shahed Nooshmand", "id" : "Shahed Nooshmand", "data" : [ [ @@ -306,71 +207,189 @@ "Blog", 1 ] - ], - "name" : "Shahed Nooshmand" + ] }, { - "id" : "Simon Miner", - "name" : "Simon Miner", "data" : [ [ "Perl", 1 ] - ] + ], + "name" : "Simon Miner", + "id" : "Simon Miner" }, { "name" : "Simon Proctor", + "id" : "Simon Proctor", "data" : [ [ "Raku", 1 ] - ], - "id" : "Simon Proctor" + ] }, { "id" : "Wanderdoc", + "name" : "Wanderdoc", "data" : [ [ "Perl", 1 ] - ], - "name" : "Wanderdoc" + ] }, { - "name" : "Yet Ebreo", "data" : [ [ "Perl", 1 ] ], - "id" : "Yet Ebreo" + "id" : "Yet Ebreo", + "name" : "Yet Ebreo" } ] }, + "subtitle" : { + "text" : "[Champions: 20] Last updated at 2020-05-31 23:21:21 GMT" + }, + "tooltip" : { + "pointFormat" : "{point.name}: {point.y:f}
", + "headerFormat" : "{series.name}
", + "followPointer" : 1 + }, + "series" : [ + { + "data" : [ + { + "name" : "Arne Sommer", + "y" : 3, + "drilldown" : "Arne Sommer" + }, + { + "name" : "Athanasius", + "drilldown" : "Athanasius", + "y" : 2 + }, + { + "drilldown" : "Jared Martin", + "y" : 1, + "name" : "Jared Martin" + }, + { + "name" : "Javier Luque", + "drilldown" : "Javier Luque", + "y" : 5 + }, + { + "name" : "Laurent Rosenfeld", + "drilldown" : "Laurent Rosenfeld", + "y" : 3 + }, + { + "name" : "Leo Manfredi", + "drilldown" : "Leo Manfredi", + "y" : 1 + }, + { + "name" : "Luca Ferrari", + "y" : 2, + "drilldown" : "Luca Ferrari" + }, + { + "drilldown" : "Markus Holzer", + "y" : 1, + "name" : "Markus Holzer" + }, + { + "y" : 3, + "drilldown" : "Mohammad S Anwar", + "name" : "Mohammad S Anwar" + }, + { + "y" : 2, + "drilldown" : "Niels van Dijke", + "name" : "Niels van Dijke" + }, + { + "name" : "Pete Houston", + "y" : 1, + "drilldown" : "Pete Houston" + }, + { + "name" : "Richard Park", + "drilldown" : "Richard Park", + "y" : 1 + }, + { + "drilldown" : "Roger Bell_West", + "y" : 4, + "name" : "Roger Bell_West" + }, + { + "name" : "Saif Ahmed", + "drilldown" : "Saif Ahmed", + "y" : 2 + }, + { + "name" : "Sangeet Kar", + "drilldown" : "Sangeet Kar", + "y" : 4 + }, + { + "name" : "Shahed Nooshmand", + "y" : 3, + "drilldown" : "Shahed Nooshmand" + }, + { + "name" : "Simon Miner", + "y" : 1, + "drilldown" : "Simon Miner" + }, + { + "y" : 1, + "drilldown" : "Simon Proctor", + "name" : "Simon Proctor" + }, + { + "y" : 1, + "drilldown" : "Wanderdoc", + "name" : "Wanderdoc" + }, + { + "drilldown" : "Yet Ebreo", + "y" : 1, + "name" : "Yet Ebreo" + } + ], + "colorByPoint" : 1, + "name" : "Perl Weekly Challenge - 062" + } + ], "chart" : { "type" : "column" }, "plotOptions" : { "series" : { "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 + "enabled" : 1, + "format" : "{point.y}" }, "borderWidth" : 0 } }, - "tooltip" : { - "pointFormat" : "{point.name}: {point.y:f}
", - "headerFormat" : "{series.name}
", - "followPointer" : 1 - }, "title" : { "text" : "Perl Weekly Challenge - 062" }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "legend" : { + "enabled" : 0 + }, "xAxis" : { "type" : "category" } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index a19b9c9062..dce92a8be0 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,16 +1,26 @@ { "subtitle" : { - "text" : "Last updated at 2020-05-31 22:28:16 GMT" - }, - "legend" : { - "enabled" : "false" + "text" : "Last updated at 2020-05-31 23:21:21 GMT" }, "series" : [ { + "dataLabels" : { + "y" : 10, + "format" : "{point.y:.0f}", + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + }, + "color" : "#FFFFFF", + "rotation" : -90, + "align" : "right", + "enabled" : "true" + }, + "name" : "Contributions", "data" : [ [ "Blog", - 711 + 712 ], [ "Perl", @@ -18,39 +28,17 @@ ], [ "Raku", - 1638 + 1640 ] - ], - "dataLabels" : { - "format" : "{point.y:.0f}", - "align" : "right", - "y" : 10, - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - }, - "rotation" : -90, - "color" : "#FFFFFF", - "enabled" : "true" - }, - "name" : "Contributions" + ] } ], - "title" : { - "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" - }, - "xAxis" : { - "type" : "category", - "labels" : { - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - } - } - }, "tooltip" : { "pointFormat" : "{point.y:.0f}" }, + "title" : { + "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" + }, "yAxis" : { "title" : { "text" : null @@ -59,5 +47,17 @@ }, "chart" : { "type" : "column" + }, + "legend" : { + "enabled" : "false" + }, + "xAxis" : { + "labels" : { + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + } + }, + "type" : "category" } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 2455723a17..d35a2ec8b8 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,7 +1,4 @@ { - "title" : { - "text" : "Perl Weekly Challenge Language" - }, "xAxis" : { "type" : "category" }, @@ -10,10 +7,352 @@ "text" : "Total Solutions" } }, + "title" : { + "text" : "Perl Weekly Challenge Language" + }, + "chart" : { + "type" : "column" + }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + } + } + }, + "legend" : { + "enabled" : "false" + }, + "series" : [ + { + "name" : "Perl Weekly Challenge Languages", + "data" : [ + { + "y" : 142, + "drilldown" : "001", + "name" : "#001" + }, + { + "name" : "#002", + "drilldown" : "002", + "y" : 109 + }, + { + "drilldown" : "003", + "y" : 71, + "name" : "#003" + }, + { + "name" : "#004", + "drilldown" : "004", + "y" : 91 + }, + { + "name" : "#005", + "y" : 72, + "drilldown" : "005" + }, + { + "name" : "#006", + "drilldown" : "006", + "y" : 52 + }, + { + "name" : "#007", + "y" : 59, + "drilldown" : "007" + }, + { + "y" : 72, + "drilldown" : "008", + "name" : "#008" + }, + { + "name" : "#009", + "drilldown" : "009", + "y" : 68 + }, + { + "drilldown" : "010", + "y" : 60, + "name" : "#010" + }, + { + "y" : 79, + "drilldown" : "011", + "name" : "#011" + }, + { + "drilldown" : "012", + "y" : 83, + "name" : "#012" + }, + { + "name" : "#013", + "drilldown" : "013", + "y" : 76 + }, + { + "name" : "#014", + "y" : 96, + "drilldown" : "014" + }, + { + "drilldown" : "015", + "y" : 93, + "name" : "#015" + }, + { + "drilldown" : "016", + "y" : 66, + "name" : "#016" + }, + { + "name" : "#017", + "drilldown" : "017", + "y" : 79 + }, + { + "name" : "#018", + "drilldown" : "018", + "y" : 76 + }, + { + "name" : "#019", + "drilldown" : "019", + "y" : 97 + }, + { + "y" : 95, + "drilldown" : "020", + "name" : "#020" + }, + { + "name" : "#021", + "y" : 67, + "drilldown" : "021" + }, + { + "drilldown" : "022", + "y" : 63, + "name" : "#022" + }, + { + "name" : "#023", + "drilldown" : "023", + "y" : 91 + }, + { + "name" : "#024", + "drilldown" : "024", + "y" : 70 + }, + { + "drilldown" : "025", + "y" : 55, + "name" : "#025" + }, + { + "name" : "#026", + "drilldown" : "026", + "y" : 70 + }, + { + "drilldown" : "027", + "y" : 58, + "name" : "#027" + }, + { + "name" : "#028", + "y" : 78, + "drilldown" : "028" + }, + { + "name" : "#029", + "drilldown" : "029", + "y" : 77 + }, + { + "drilldown" : "030", + "y" : 115, + "name" : "#030" + }, + { + "name" : "#031", + "drilldown" : "031", + "y" : 87 + }, + { + "name" : "#032", + "drilldown" : "032", + "y" : 92 + }, + { + "drilldown" : "033", + "y" : 108, + "name" : "#033" + }, + { + "name" : "#034", + "y" : 62, + "drilldown" : "034" + }, + { + "y" : 62, + "drilldown" : "035", + "name" : "#035" + }, + { + "y" : 66, + "drilldown" : "036", + "name" : "#036" + }, + { + "name" : "#037", + "y" : 65, + "drilldown" : "037" + }, + { + "name" : "#038", + "drilldown" : "038", + "y" : 65 + }, + { + "name" : "#039", + "y" : 60, + "drilldown" : "039" + }, + { + "name" : "#040", + "drilldown" : "040", + "y" : 71 + }, + { + "name" : "#041", + "y" : 74, + "drilldown" : "041" + }, + { + "drilldown" : "042", + "y" : 88, + "name" : "#042" + }, + { + "name" : "#043", + "y" : 66, + "drilldown" : "043" + }, + { + "y" : 82, + "drilldown" : "044", + "name" : "#044" + }, + { + "name" : "#045", + "drilldown" : "045", + "y" : 94 + }, + { + "drilldown" : "046", + "y" : 85, + "name" : "#046" + }, + { + "drilldown" : "047", + "y" : 82, + "name" : "#047" + }, + { + "drilldown" : "048", + "y" : 106, + "name" : "#048" + }, + { + "name" : "#049", + "y" : 85, + "drilldown" : "049" + }, + { + "y" : 96, + "drilldown" : "050", + "name" : "#050" + }, + { + "drilldown" : "051", + "y" : 87, + "name" : "#051" + }, + { + "y" : 89, + "drilldown" : "052", + "name" : "#052" + }, + { + "y" : 99, + "drilldown" : "053", + "name" : "#053" + }, + { + "y" : 99, + "drilldown" : "054", + "name" : "#054" + }, + { + "y" : 86, + "drilldown" : "055", + "name" : "#055" + }, + { + "y" : 93, + "drilldown" : "056", + "name" : "#056" + }, + { + "name" : "#057", + "y" : 78, + "drilldown" : "057" + }, + { + "y" : 61, + "drilldown" : "058", + "name" : "#058" + }, + { + "name" : "#059", + "y" : 82, + "drilldown" : "059" + }, + { + "y" : 78, + "drilldown" : "060", + "name" : "#060" + }, + { + "name" : "#061", + "y" : 78, + "drilldown" : "061" + }, + { + "name" : "#062", + "y" : 42, + "drilldown" : "062" + } + ], + "colorByPoint" : "true" + } + ], + "tooltip" : { + "pointFormat" : "Challenge {point.name}: {point.y:f}
", + "followPointer" : "true", + "headerFormat" : "" + }, "drilldown" : { "series" : [ { "id" : "001", + "name" : "001", "data" : [ [ "Perl", @@ -27,12 +366,11 @@ "Blog", 11 ] - ], - "name" : "001" + ] }, { - "id" : "002", "name" : "002", + "id" : "002", "data" : [ [ "Perl", @@ -49,8 +387,6 @@ ] }, { - "id" : "003", - "name" : "003", "data" : [ [ "Perl", @@ -64,7 +400,9 @@ "Blog", 9 ] - ] + ], + "name" : "003", + "id" : "003" }, { "id" : "004", @@ -85,7 +423,6 @@ ] }, { - "id" : "005", "data" : [ [ "Perl", @@ -100,11 +437,10 @@ 12 ] ], - "name" : "005" + "name" : "005", + "id" : "005" }, { - "id" : "006", - "name" : "006", "data" : [ [ "Perl", @@ -118,9 +454,12 @@ "Blog", 7 ] - ] + ], + "id" : "006", + "name" : "006" }, { + "id" : "007", "name" : "007", "data" : [ [ @@ -135,11 +474,11 @@ "Blog", 10 ] - ], - "id" : "007" + ] }, { "name" : "008", + "id" : "008", "data" : [ [ "Perl", @@ -153,12 +492,9 @@ "Blog", 12 ] - ], - "id" : "008" + ] }, { - "id" : "009", - "name" : "009", "data" : [ [ "Perl", @@ -172,10 +508,11 @@ "Blog", 13 ] - ] + ], + "name" : "009", + "id" : "009" }, { - "name" : "010", "data" : [ [ "Perl", @@ -190,11 +527,10 @@ 11 ] ], - "id" : "010" + "id" : "010", + "name" : "010" }, { - "id" : "011", - "name" : "011", "data" : [ [ "Perl", @@ -208,9 +544,13 @@ "Blog", 10 ] - ] + ], + "id" : "011", + "name" : "011" }, { + "name" : "012", + "id" : "012", "data" : [ [ "Perl", @@ -224,11 +564,10 @@ "Blog", 11 ] - ], - "name" : "012", - "id" : "012" + ] }, { + "id" : "013", "name" : "013", "data" : [ [ @@ -243,11 +582,11 @@ "Blog", 13 ] - ], - "id" : "013" + ] }, { "id" : "014", + "name" : "014", "data" : [ [ "Perl", @@ -261,8 +600,7 @@ "Blog", 15 ] - ], - "name" : "014" + ] }, { "data" : [ @@ -283,6 +621,8 @@ "id" : "015" }, { + "id" : "016", + "name" : "016", "data" : [ [ "Perl", @@ -296,12 +636,11 @@ "Blog", 12 ] - ], - "name" : "016", - "id" : "016" + ] }, { "id" : "017", + "name" : "017", "data" : [ [ "Perl", @@ -315,12 +654,11 @@ "Blog", 12 ] - ], - "name" : "017" + ] }, { - "id" : "018", "name" : "018", + "id" : "018", "data" : [ [ "Perl", @@ -337,7 +675,6 @@ ] }, { - "id" : "019", "data" : [ [ "Perl", @@ -352,10 +689,12 @@ 13 ] ], - "name" : "019" + "name" : "019", + "id" : "019" }, { "id" : "020", + "name" : "020", "data" : [ [ "Perl", @@ -369,12 +708,11 @@ "Blog", 13 ] - ], - "name" : "020" + ] }, { - "id" : "021", "name" : "021", + "id" : "021", "data" : [ [ "Perl", @@ -405,8 +743,8 @@ 10 ] ], - "name" : "022", - "id" : "022" + "id" : "022", + "name" : "022" }, { "data" : [ @@ -427,7 +765,6 @@ "id" : "023" }, { - "id" : "024", "data" : [ [ "Perl", @@ -442,11 +779,10 @@ 11 ] ], + "id" : "024", "name" : "024" }, { - "id" : "025", - "name" : "025", "data" : [ [ "Perl", @@ -460,9 +796,13 @@ "Blog", 12 ] - ] + ], + "name" : "025", + "id" : "025" }, { + "name" : "026", + "id" : "026", "data" : [ [ "Perl", @@ -476,12 +816,11 @@ "Blog", 10 ] - ], - "name" : "026", - "id" : "026" + ] }, { "name" : "027", + "id" : "027", "data" : [ [ "Perl", @@ -495,10 +834,11 @@ "Blog", 9 ] - ], - "id" : "027" + ] }, { + "id" : "028", + "name" : "028", "data" : [ [ "Perl", @@ -512,12 +852,9 @@ "Blog", 9 ] - ], - "name" : "028", - "id" : "028" + ] }, { - "name" : "029", "data" : [ [ "Perl", @@ -532,10 +869,10 @@ 12 ] ], - "id" : "029" + "id" : "029", + "name" : "029" }, { - "id" : "030", "data" : [ [ "Perl", @@ -550,10 +887,10 @@ 10 ] ], - "name" : "030" + "name" : "030", + "id" : "030" }, { - "name" : "031", "data" : [ [ "Perl", @@ -568,9 +905,11 @@ 9 ] ], - "id" : "031" + "id" : "031", + "name" : "031" }, { + "id" : "032", "name" : "032", "data" : [ [ @@ -585,11 +924,11 @@ "Blog", 10 ] - ], - "id" : "032" + ] }, { "name" : "033", + "id" : "033", "data" : [ [ "Perl", @@ -603,11 +942,9 @@ "Blog", 10 ] - ], - "id" : "033" + ] }, { - "id" : "034", "data" : [ [ "Perl", @@ -622,7 +959,8 @@ 11 ] ], - "name" : "034" + "name" : "034", + "id" : "034" }, { "data" : [ @@ -643,8 +981,6 @@ "id" : "035" }, { - "id" : "036", - "name" : "036", "data" : [ [ "Perl", @@ -658,10 +994,11 @@ "Blog", 11 ] - ] + ], + "name" : "036", + "id" : "036" }, { - "id" : "037", "data" : [ [ "Perl", @@ -676,10 +1013,12 @@ 9 ] ], - "name" : "037" + "name" : "037", + "id" : "037" }, { "id" : "038", + "name" : "038", "data" : [ [ "Perl", @@ -693,10 +1032,10 @@ "Blog", 12 ] - ], - "name" : "038" + ] }, { + "id" : "039", "name" : "039", "data" : [ [ @@ -711,12 +1050,9 @@ "Blog", 12 ] - ], - "id" : "039" + ] }, { - "id" : "040", - "name" : "040", "data" : [ [ "Perl", @@ -730,7 +1066,9 @@ "Blog", 10 ] - ] + ], + "name" : "040", + "id" : "040" }, { "data" : [ @@ -747,12 +1085,10 @@ 9 ] ], - "name" : "041", - "id" : "041" + "id" : "041", + "name" : "041" }, { - "id" : "042", - "name" : "042", "data" : [ [ "Perl", @@ -766,10 +1102,13 @@ "Blog", 11 ] - ] + ], + "name" : "042", + "id" : "042" }, { "id" : "043", + "name" : "043", "data" : [ [ "Perl", @@ -783,11 +1122,9 @@ "Blog", 11 ] - ], - "name" : "043" + ] }, { - "id" : "044", "data" : [ [ "Perl", @@ -802,10 +1139,12 @@ 11 ] ], + "id" : "044", "name" : "044" }, { "name" : "045", + "id" : "045", "data" : [ [ "Perl", @@ -819,11 +1158,9 @@ "Blog", 11 ] - ], - "id" : "045" + ] }, { - "id" : "046", "data" : [ [ "Perl", @@ -838,10 +1175,10 @@ 10 ] ], + "id" : "046", "name" : "046" }, { - "id" : "047", "data" : [ [ "Perl", @@ -856,11 +1193,10 @@ 10 ] ], + "id" : "047", "name" : "047" }, { - "id" : "048", - "name" : "048", "data" : [ [ "Perl", @@ -874,7 +1210,9 @@ "Blog", 12 ] - ] + ], + "id" : "048", + "name" : "048" }, { "data" : [ @@ -891,10 +1229,12 @@ 12 ] ], - "name" : "049", - "id" : "049" + "id" : "049", + "name" : "049" }, { + "id" : "050", + "name" : "050", "data" : [ [ "Perl", @@ -908,13 +1248,9 @@ "Blog", 12 ] - ], - "name" : "050", - "id" : "050" + ] }, { - "id" : "051", - "name" : "051", "data" : [ [ "Perl", @@ -928,11 +1264,13 @@ "Blog", 11 ] - ] + ], + "name" : "051", + "id" : "051" }, { - "id" : "052", "name" : "052", + "id" : "052", "data" : [ [ "Perl", @@ -963,11 +1301,12 @@ 15 ] ], - "name" : "053", - "id" : "053" + "id" : "053", + "name" : "053" }, { "name" : "054", + "id" : "054", "data" : [ [ "Perl", @@ -981,12 +1320,9 @@ "Blog", 16 ] - ], - "id" : "054" + ] }, { - "id" : "055", - "name" : "055", "data" : [ [ "Perl", @@ -1000,11 +1336,13 @@ "Blog", 14 ] - ] + ], + "name" : "055", + "id" : "055" }, { - "id" : "056", "name" : "056", + "id" : "056", "data" : [ [ "Perl", @@ -1035,11 +1373,10 @@ 15 ] ], - "name" : "057", - "id" : "057" + "id" : "057", + "name" : "057" }, { - "name" : "058", "data" : [ [ "Perl", @@ -1054,11 +1391,12 @@ 11 ] ], + "name" : "058", "id" : "058" }, { - "id" : "059", "name" : "059", + "id" : "059", "data" : [ [ "Perl", @@ -1075,6 +1413,7 @@ ] }, { + "name" : "060", "id" : "060", "data" : [ [ @@ -1089,10 +1428,11 @@ "Blog", 15 ] - ], - "name" : "060" + ] }, { + "id" : "061", + "name" : "061", "data" : [ [ "Perl", @@ -1106,9 +1446,7 @@ "Blog", 13 ] - ], - "name" : "061", - "id" : "061" + ] }, { "id" : "062", @@ -1120,355 +1458,17 @@ ], [ "Raku", - 14 + 16 ], [ "Blog", - 6 + 7 ] ] } ] }, - "chart" : { - "type" : "column" - }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - }, - "borderWidth" : 0 - } - }, - "tooltip" : { - "followPointer" : "true", - "pointFormat" : "Challenge {point.name}: {point.y:f}
", - "headerFormat" : "" - }, - "legend" : { - "enabled" : "false" - }, - "series" : [ - { - "name" : "Perl Weekly Challenge Languages", - "colorByPoint" : "true", - "data" : [ - { - "drilldown" : "001", - "name" : "#001", - "y" : 142 - }, - { - "drilldown" : "002", - "y" : 109, - "name" : "#002" - }, - { - "name" : "#003", - "y" : 71, - "drilldown" : "003" - }, - { - "drilldown" : "004", - "y" : 91, - "name" : "#004" - }, - { - "name" : "#005", - "y" : 72, - "drilldown" : "005" - }, - { - "drilldown" : "006", - "y" : 52, - "name" : "#006" - }, - { - "name" : "#007", - "y" : 59, - "drilldown" : "007" - }, - { - "drilldown" : "008", - "y" : 72, - "name" : "#008" - }, - { - "y" : 68, - "name" : "#009", - "drilldown" : "009" - }, - { - "drilldown" : "010", - "y" : 60, - "name" : "#010" - }, - { - "drilldown" : "011", - "y" : 79, - "name" : "#011" - }, - { - "y" : 83, - "name" : "#012", - "drilldown" : "012" - }, - { - "drilldown" : "013", - "name" : "#013", - "y" : 76 - }, - { - "y" : 96, - "name" : "#014", - "drilldown" : "014" - }, - { - "y" : 93, - "name" : "#015", - "drilldown" : "015" - }, - { - "name" : "#016", - "y" : 66, - "drilldown" : "016" - }, - { - "y" : 79, - "name" : "#017", - "drilldown" : "017" - }, - { - "drilldown" : "018", - "y" : 76, - "name" : "#018" - }, - { - "y" : 97, - "name" : "#019", - "drilldown" : "019" - }, - { - "drilldown" : "020", - "y" : 95, - "name" : "#020" - }, - { - "y" : 67, - "name" : "#021", - "drilldown" : "021" - }, - { - "drilldown" : "022", - "y" : 63, - "name" : "#022" - }, - { - "name" : "#023", - "y" : 91, - "drilldown" : "023" - }, - { - "drilldown" : "024", - "name" : "#024", - "y" : 70 - }, - { - "name" : "#025", - "y" : 55, - "drilldown" : "025" - }, - { - "y" : 70, - "name" : "#026", - "drilldown" : "026" - }, - { - "drilldown" : "027", - "y" : 58, - "name" : "#027" - }, - { - "drilldown" : "028", - "y" : 78, - "name" : "#028" - }, - { - "name" : "#029", - "y" : 77, - "drilldown" : "029" - }, - { - "drilldown" : "030", - "name" : "#030", - "y" : 115 - }, - { - "name" : "#031", - "y" : 87, -