From 4a0e7a230f9da4ca47237cf6323ff3fb07757889 Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Fri, 28 Feb 2020 11:30:27 +0000 Subject: - Added solutions by Javier Luque. --- challenge-049/javier-luque/blog.txt | 1 + challenge-049/javier-luque/perl/ch-1.pl | 20 ++ challenge-049/javier-luque/perl/ch-2.pl | 197 ++++++++++++++++ challenge-049/javier-luque/raku/ch-1.p6 | 13 + challenge-049/javier-luque/raku/ch-2.p6 | 116 +++++++++ stats/pwc-current.json | 163 +++++++------ stats/pwc-language-breakdown-summary.json | 74 +++--- stats/pwc-language-breakdown.json | 364 ++++++++++++++-------------- stats/pwc-leaders.json | 378 +++++++++++++++--------------- stats/pwc-summary-1-30.json | 110 ++++----- stats/pwc-summary-121-150.json | 50 ++-- stats/pwc-summary-151-180.json | 52 ++-- stats/pwc-summary-31-60.json | 118 +++++----- stats/pwc-summary-61-90.json | 50 ++-- stats/pwc-summary-91-120.json | 98 ++++---- stats/pwc-summary.json | 356 ++++++++++++++-------------- 16 files changed, 1265 insertions(+), 895 deletions(-) create mode 100644 challenge-049/javier-luque/blog.txt create mode 100644 challenge-049/javier-luque/perl/ch-1.pl create mode 100644 challenge-049/javier-luque/perl/ch-2.pl create mode 100644 challenge-049/javier-luque/raku/ch-1.p6 create mode 100644 challenge-049/javier-luque/raku/ch-2.p6 diff --git a/challenge-049/javier-luque/blog.txt b/challenge-049/javier-luque/blog.txt new file mode 100644 index 0000000000..5715fb6b7b --- /dev/null +++ b/challenge-049/javier-luque/blog.txt @@ -0,0 +1 @@ +https://perlchallenges.wordpress.com/2020/02/28/perl-weekly-challenge-049/ diff --git a/challenge-049/javier-luque/perl/ch-1.pl b/challenge-049/javier-luque/perl/ch-1.pl new file mode 100644 index 0000000000..4f98ad3ec4 --- /dev/null +++ b/challenge-049/javier-luque/perl/ch-1.pl @@ -0,0 +1,20 @@ +#!/usr/bin/perl +# Test: ./ch-1.pl 55 +use strict; +use warnings; +use feature qw /say/; + +my $number = join '', @ARGV; + +unless ($number =~ /^\d*$/) { + say "Argument: $number needs to be a number"; + exit; +} + +my $i = 1; +my $new_number = $number; +while (!($new_number =~ /^[01]+$/)) { + $new_number = $number * $i++; +} + +say "Smallest multiple of $number is $new_number"; diff --git a/challenge-049/javier-luque/perl/ch-2.pl b/challenge-049/javier-luque/perl/ch-2.pl new file mode 100644 index 0000000000..ffb1c7ede1 --- /dev/null +++ b/challenge-049/javier-luque/perl/ch-2.pl @@ -0,0 +1,197 @@ +#!/usr/bin/perl +# Test: ./ch-2.pl 3 +package LL::Node; # Linked list + +use Mouse; + +has 'key' => ( + is => 'rw', + isa => 'Int', + default => sub { + return undef; + } +); + +has 'value' => ( + is => 'rw', + isa => 'Str', + default => sub { + return undef; + } +); + +has 'next' => ( + is => 'rw', + isa => 'Maybe[LL::Node]', + default => sub { + return undef + } +); + +has 'prev' => ( + is => 'rw', + isa => 'Maybe[LL::Node]', + default => sub { + return undef + } +); + + +__PACKAGE__->meta->make_immutable(); + +package Cache::LRU; # LRU Cache + +use Mouse; +use feature qw /say/; +use LL::Node; + +has 'max_capacity' => ( + is => 'rw', + isa => 'Int', + default => sub { + return 3; + } +); + +has 'capacity' => ( + is => 'rw', + isa => 'Int', + default => sub { + return 0; + } +); + +has 'positions' => ( + is => 'rw', + isa => 'HashRef', + default => sub { + return {} + } +); + +has 'last' => ( + is => 'rw', + isa => 'Ref', +); + + +has 'first' => ( + is => 'rw', + isa => 'Ref', +); + + + +sub set { + my ($self, $key, $value) = @_; + + # New node + my $new_node = LL::Node->new( + key => $key, value => $value + ); + + # Push out 1 if at capacity + if ($self->capacity >= $self->max_capacity) { + my $node_to_kill = $self->first; + $self->first($self->first->next); + delete $self->positions->{$node_to_kill->key}; + $self->capacity($self->capacity - 1); + } + + # Set the first and last reference to the new node + if ( $self->first ) { + $self->last->next($new_node); + $new_node->prev($self->last); + } else { + $self->first($new_node); + } + + # Last node + $self->last($new_node); + + # Store the position + $self->positions->{$key} = $new_node; + + # Increment capacity + $self->capacity($self->capacity + 1); + + say "Setting: ($key, $value)" . $self->show_nodes; +} + + +sub get { + my ($self, $key) = @_; + + my $node = $self->positions->{$key}; + + # Cache miss + unless ($node) { + say "Getting: ($key) - cache miss" . + $self->show_nodes; + + # Return the cache miss -1 + return -1; + } + + # This might be the first node + if ($node->prev) { + $node->prev->next($node->next) + } else { + $self->first($node->next); + } + + # Change this node previous to last + $node->prev($self->last); + + # Set the last's next to this node + $self->last->next($node); + + # clear the node's next as it will be last + $node->next(undef); + + # Set to LRU last pointer to this + $self->last($node); + + # Get the value + my $value = $node->value; + + say "Getting: ($key) Value: $value)" . $self->show_nodes; + return $node->value; +} + + + +sub show_nodes { + my $self = shift; + my @keys; + + my $node = $self->first; + + while ($node) { + push @keys, $node->key; + $node = $node->next; + } + + return " [LRU] - " . (join ',', @keys) . " - [MRU]"; +} + + +__PACKAGE__->meta->make_immutable(); + +package main; + +use strict; +use warnings; +use Cache::LRU; + +my $max_capacity = my $number = join '', @ARGV; +my $cache = Cache::LRU->new(max_capacity => $max_capacity || 3); + +$cache->set(1, 3); +$cache->set(2, 5); +$cache->set(3, 7); +$cache->get(2); # returns 5 +$cache->get(1); # returns 3 +$cache->get(4); # returns -1 +$cache->set(4, 9); +$cache->get(3); # returns -1 diff --git a/challenge-049/javier-luque/raku/ch-1.p6 b/challenge-049/javier-luque/raku/ch-1.p6 new file mode 100644 index 0000000000..8c16f51e26 --- /dev/null +++ b/challenge-049/javier-luque/raku/ch-1.p6 @@ -0,0 +1,13 @@ +# Test: perl6 ch-1.p6 55 + +sub MAIN(Int $number) { + my $i = 1; + + my $new_number = $number; + while (!($new_number ~~ /^^<[01]>+$$/)) { + $new_number = $number * $i++; + } + + say "Smallest multiple of $number is $new_number"; + +} diff --git a/challenge-049/javier-luque/raku/ch-2.p6 b/challenge-049/javier-luque/raku/ch-2.p6 new file mode 100644 index 0000000000..55ebdc183f --- /dev/null +++ b/challenge-049/javier-luque/raku/ch-2.p6 @@ -0,0 +1,116 @@ +# Test: perl6 ch-2.p6 3 +use v6.d; + +class Node { + has Int $.key is rw; + has Int $.value is rw; + has Node $.next is rw; + has Node $.prev is rw; +} + +class LRU { + has Node $.first is rw; + has Node $.last is rw; + has %.positions is rw; + has Int $.max_capacity is rw; + has Int $.capacity is rw = 0; + + method set(Int $key, Int $value) { + my $new_node = Node.new( + key => $key, + value => $value, + next => Nil, + prev => Nil + ); + + # Push out 1 if at capacity + if (self.capacity >= self.max_capacity) { + my $node-to-kill = self.first; + self.first = self.first.next; + self.positions.{$node-to-kill.key}:delete; + self.capacity = self.capacity - 1; + } + + # Set the first and last reference to the new node + if ( self.first ) { + self.last.next = $new_node; + $new_node.prev = self.last; + } else { + self.first = $new_node; + } + + # Last node + self.last = $new_node; + + # Store the position + self.positions.{$key} = $new_node; + + # Increment capacity + self.capacity = self.capacity + 1; + + say "Setting: ($key, $value)" ~ self.show_nodes; + } + + method get(Int $key) { + my $node = self.positions.{$key}; + + # Cache miss + unless ($node) { + say "Getting: ($key) - cache miss" ~ + self.show_nodes; + + # Return the cache miss -1 + return -1; + } + + # This might be the first node + if ($node.prev) { + $node.prev.next = $node.next; + } else { + self.first = $node.next; + } + + # Change this node previous to last + $node.prev = self.last; + + # Set the last's next to this node + self.last.next = $node; + + # clear the node's next as it will be last + $node.next = Nil; + + # Set to LRU last pointer to this + self.last = $node; + + # Get the value + my $value = $node.value; + + say "Getting: ($key) Value: $value)" ~ + self.show_nodes; + return $node.value; + } + + method show_nodes() { + my @keys; + my $node = self.first; + + while ($node) { + push @keys, $node.key; + $node = $node.next; + } + + return " [LRU] - " ~ @keys.join(',') ~ " - [MRU]"; + } +} + +sub MAIN (Int $max_capacity) { + my $cache = LRU.new( max_capacity => $max_capacity ); + $cache.set(1, 3); + $cache.set(2, 5); + $cache.set(3, 7); + $cache.get(2); # returns 5 + $cache.get(1); # returns 3 + $cache.get(4); # returns -1 + $cache.set(4, 9); + $cache.get(3); # returns -1 +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 05e5d15d9c..89c87fcbde 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,11 +1,33 @@ { - "subtitle" : { - "text" : "[Champions: 14] Last updated at 2020-02-28 10:59:35 GMT" + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "chart" : { + "type" : "column" + }, + "tooltip" : { + "followPointer" : 1, + "headerFormat" : "{series.name}
", + "pointFormat" : "{point.name}: {point.y:f}
" + }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + } + } + }, + "legend" : { + "enabled" : 0 }, "series" : [ { - "name" : "Perl Weekly Challenge - 049", "colorByPoint" : 1, + "name" : "Perl Weekly Challenge - 049", "data" : [ { "drilldown" : "Dave Jacoby", @@ -13,39 +35,44 @@ "y" : 1 }, { - "name" : "Duane Powell", "y" : 2, + "name" : "Duane Powell", "drilldown" : "Duane Powell" }, { - "drilldown" : "E. Choroba", "y" : 2, - "name" : "E. Choroba" + "name" : "E. Choroba", + "drilldown" : "E. Choroba" + }, + { + "name" : "Javier Luque", + "drilldown" : "Javier Luque", + "y" : 5 }, { + "y" : 1, "drilldown" : "Jonas Berlin", - "name" : "Jonas Berlin", - "y" : 1 + "name" : "Jonas Berlin" }, { - "drilldown" : "Luca Ferrari", "name" : "Luca Ferrari", + "drilldown" : "Luca Ferrari", "y" : 4 }, { "drilldown" : "Mark Anderson", - "y" : 2, - "name" : "Mark Anderson" + "name" : "Mark Anderson", + "y" : 2 }, { + "name" : "Markus Holzer", "drilldown" : "Markus Holzer", - "y" : 1, - "name" : "Markus Holzer" + "y" : 1 }, { - "name" : "Mohammad S Anwar", "y" : 4, - "drilldown" : "Mohammad S Anwar" + "drilldown" : "Mohammad S Anwar", + "name" : "Mohammad S Anwar" }, { "y" : 1, @@ -54,18 +81,18 @@ }, { "drilldown" : "Roger Bell West", - "y" : 4, - "name" : "Roger Bell West" + "name" : "Roger Bell West", + "y" : 4 }, { - "drilldown" : "Saif Ahmed", + "y" : 2, "name" : "Saif Ahmed", - "y" : 2 + "drilldown" : "Saif Ahmed" }, { + "y" : 3, "drilldown" : "Simon Proctor", - "name" : "Simon Proctor", - "y" : 3 + "name" : "Simon Proctor" }, { "y" : 2, @@ -73,67 +100,75 @@ "drilldown" : "Wanderdoc" }, { - "name" : "Yet Ebreo", "y" : 2, - "drilldown" : "Yet Ebreo" + "drilldown" : "Yet Ebreo", + "name" : "Yet Ebreo" } ] } ], - "chart" : { - "type" : "column" - }, - "tooltip" : { - "pointFormat" : "{point.name}: {point.y:f}
", - "headerFormat" : "{series.name}
", - "followPointer" : 1 - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } + "title" : { + "text" : "Perl Weekly Challenge - 049" }, "drilldown" : { "series" : [ { - "name" : "Dave Jacoby", - "id" : "Dave Jacoby", "data" : [ [ "Perl", 1 ] - ] + ], + "id" : "Dave Jacoby", + "name" : "Dave Jacoby" }, { - "name" : "Duane Powell", - "id" : "Duane Powell", "data" : [ [ "Perl", 2 ] - ] + ], + "id" : "Duane Powell", + "name" : "Duane Powell" }, { - "name" : "E. Choroba", "data" : [ [ "Perl", 2 ] ], - "id" : "E. Choroba" + "id" : "E. Choroba", + "name" : "E. Choroba" }, { "data" : [ + [ + "Perl", + 2 + ], [ "Raku", + 2 + ], + [ + "Blog", 1 ] ], + "id" : "Javier Luque", + "name" : "Javier Luque" + }, + { + "name" : "Jonas Berlin", "id" : "Jonas Berlin", - "name" : "Jonas Berlin" + "data" : [ + [ + "Raku", + 1 + ] + ] }, { "name" : "Luca Ferrari", @@ -151,23 +186,23 @@ }, { "name" : "Mark Anderson", - "id" : "Mark Anderson", "data" : [ [ "Raku", 2 ] - ] + ], + "id" : "Mark Anderson" }, { - "name" : "Markus Holzer", "id" : "Markus Holzer", "data" : [ [ "Raku", 1 ] - ] + ], + "name" : "Markus Holzer" }, { "data" : [ @@ -188,14 +223,14 @@ "name" : "Mohammad S Anwar" }, { - "id" : "Peter Scott", + "name" : "Peter Scott", "data" : [ [ "Perl", 1 ] ], - "name" : "Peter Scott" + "id" : "Peter Scott" }, { "id" : "Roger Bell West", @@ -212,13 +247,13 @@ "name" : "Roger Bell West" }, { + "id" : "Saif Ahmed", "data" : [ [ "Perl", 2 ] ], - "id" : "Saif Ahmed", "name" : "Saif Ahmed" }, { @@ -236,43 +271,31 @@ ] }, { - "name" : "Wanderdoc", - "id" : "Wanderdoc", "data" : [ [ "Perl", 2 ] - ] + ], + "id" : "Wanderdoc", + "name" : "Wanderdoc" }, { - "name" : "Yet Ebreo", "data" : [ [ "Perl", 2 ] ], - "id" : "Yet Ebreo" + "id" : "Yet Ebreo", + "name" : "Yet Ebreo" } ] }, - "legend" : { - "enabled" : 0 - }, - "title" : { - "text" : "Perl Weekly Challenge - 049" - }, "xAxis" : { "type" : "category" }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - }, - "borderWidth" : 0 - } + "subtitle" : { + "text" : "[Champions: 15] Last updated at 2020-02-28 11:30:03 GMT" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 0030e9958a..e2ed72106a 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,63 +1,63 @@ { + "legend" : { + "enabled" : "false" + }, + "tooltip" : { + "pointFormat" : "{point.y:.0f}" + }, "chart" : { "type" : "column" }, + "yAxis" : { + "min" : 0, + "title" : { + "text" : null + } + }, + "xAxis" : { + "type" : "category", + "labels" : { + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + } + } + }, + "subtitle" : { + "text" : "Last updated at 2020-02-28 11:30:03 GMT" + }, + "title" : { + "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" + }, "series" : [ { "data" : [ [ "Blog", - 522 + 523 ], [ "Perl", - 2025 + 2027 ], [ "Raku", - 1236 + 1238 ] ], + "name" : "Contributions", "dataLabels" : { - "rotation" : -90, - "enabled" : "true", + "y" : 10, "align" : "right", + "format" : "{point.y:.0f}", + "color" : "#FFFFFF", "style" : { "fontSize" : "13px", "fontFamily" : "Verdana, sans-serif" }, - "format" : "{point.y:.0f}", - "color" : "#FFFFFF", - "y" : 10 - }, - "name" : "Contributions" - } - ], - "subtitle" : { - "text" : "Last updated at 2020-02-28 10:59:35 GMT" - }, - "tooltip" : { - "pointFormat" : "{point.y:.0f}" - }, - "yAxis" : { - "title" : { - "text" : null - }, - "min" : 0 - }, - "title" : { - "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" - }, - "xAxis" : { - "type" : "category", - "labels" : { - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" + "rotation" : -90, + "enabled" : "true" } } - }, - "legend" : { - "enabled" : "false" - } + ] } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 933925c3d2..f68764c727 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,6 +1,8 @@ { "series" : [ { + "name" : "Perl Weekly Challenge Languages", + "colorByPoint" : "true", "data" : [ { "y" : 140, @@ -8,49 +10,49 @@ "drilldown" : "001" }, { - "y" : 109, "name" : "#002", - "drilldown" : "002" + "drilldown" : "002", + "y" : 109 }, { - "drilldown" : "003", "y" : 71, - "name" : "#003" + "name" : "#003", + "drilldown" : "003" }, { "drilldown" : "004", - "y" : 91, - "name" : "#004" + "name" : "#004", + "y" : 91 }, { + "name" : "#005", "drilldown" : "005", - "y" : 71, - "name" : "#005" + "y" : 71 }, { - "y" : 48, "name" : "#006", - "drilldown" : "006" + "drilldown" : "006", + "y" : 48 }, { + "name" : "#007", "drilldown" : "007", - "y" : 56, - "name" : "#007" + "y" : 56 }, { - "name" : "#008", "y" : 70, - "drilldown" : "008" + "drilldown" : "008", + "name" : "#008" }, { "drilldown" : "009", - "y" : 68, - "name" : "#009" + "name" : "#009", + "y" : 68 }, { - "drilldown" : "010", "y" : 60, - "name" : "#010" + "name" : "#010", + "drilldown" : "010" }, { "y" : 79, @@ -58,44 +60,44 @@ "drilldown" : "011" }, { - "y" : 83, + "drilldown" : "012", "name" : "#012", - "drilldown" : "012" + "y" : 83 }, { "y" : 76, - "name" : "#013", - "drilldown" : "013" + "drilldown" : "013", + "name" : "#013" }, { + "drilldown" : "014", "name" : "#014", - "y" : 96, - "drilldown" : "014" + "y" : 96 }, { - "drilldown" : "015", + "y" : 93, "name" : "#015", - "y" : 93 + "drilldown" : "015" }, { - "drilldown" : "016", "y" : 66, + "drilldown" : "016", "name" : "#016" }, { "y" : 79, - "name" : "#017", - "drilldown" : "017" + "drilldown" : "017", + "name" : "#017" }, { + "drilldown" : "018", "name" : "#018", - "y" : 76, - "drilldown" : "018" + "y" : 76 }, { + "drilldown" : "019", "name" : "#019", - "y" : 95, - "drilldown" : "019" + "y" : 95 }, { "y" : 95, @@ -104,13 +106,13 @@ }, { "drilldown" : "021", - "y" : 67, - "name" : "#021" + "name" : "#021", + "y" : 67 }, { "name" : "#022", - "y" : 63, - "drilldown" : "022" + "drilldown" : "022", + "y" : 63 }, { "drilldown" : "023", @@ -119,83 +121,83 @@ }, { "name" : "#024", - "y" : 70, - "drilldown" : "024" + "drilldown" : "024", + "y" : 70 }, { - "y" : 55, + "drilldown" : "025", "name" : "#025", - "drilldown" : "025" + "y" : 55 }, { "drilldown" : "026", - "y" : 70, - "name" : "#026" + "name" : "#026", + "y" : 70 }, { - "y" : 58, + "drilldown" : "027", "name" : "#027", - "drilldown" : "027" + "y" : 58 }, { - "y" : 78, + "drilldown" : "028", "name" : "#028", - "drilldown" : "028" + "y" : 78 }, { + "name" : "#029", "drilldown" : "029", - "y" : 77, - "name" : "#029" + "y" : 77 }, { - "drilldown" : "030", "name" : "#030", + "drilldown" : "030", "y" : 115 }, { - "drilldown" : "031", + "y" : 87, "name" : "#031", - "y" : 87 + "drilldown" : "031" }, { - "drilldown" : "032", "y" : 92, + "drilldown" : "032", "name" : "#032" }, { + "drilldown" : "033", "name" : "#033", - "y" : 108, - "drilldown" : "033" + "y" : 108 }, { "y" : 62, - "name" : "#034", - "drilldown" : "034" + "drilldown" : "034", + "name" : "#034" }, { "name" : "#035", - "y" : 62, - "drilldown" : "035" + "drilldown" : "035", + "y" : 62 }, { - "drilldown" : "036", "y" : 63, - "name" : "#036" + "name" : "#036", + "drilldown" : "036" }, { "drilldown" : "037", - "y" : 63, - "name" : "#037" + "name" : "#037", + "y" : 63 }, { + "y" : 60, "drilldown" : "038", - "name" : "#038", - "y" : 60 + "name" : "#038" }, { + "drilldown" : "039", "name" : "#039", - "y" : 60, - "drilldown" : "039" + "y" : 60 }, { "drilldown" : "040", @@ -203,70 +205,66 @@ "y" : 66 }, { - "name" : "#041", "y" : 69, + "name" : "#041", "drilldown" : "041" }, { - "y" : 88, + "drilldown" : "042", "name" : "#042", - "drilldown" : "042" + "y" : 88 }, { - "name" : "#043", "y" : 65, + "name" : "#043", "drilldown" : "043" }, { - "y" : 81, + "drilldown" : "044", "name" : "#044", - "drilldown" : "044" + "y" : 81 }, { + "drilldown" : "045", "name" : "#045", - "y" : 94, - "drilldown" : "045" + "y" : 94 }, { "y" : 83, - "name" : "#046", - "drilldown" : "046" + "drilldown" : "046", + "name" : "#046" }, { - "drilldown" : "047", "y" : 80, + "drilldown" : "047", "name" : "#047" }, { + "name" : "#048", "drilldown" : "048", - "y" : 103, - "name" : "#048" + "y" : 103 }, { + "name" : "#049", "drilldown" : "049", - "y" : 31, - "name" : "#049" + "y" : 36 } - ], - "colorByPoint" : "true", - "name" : "Perl Weekly Challenge Languages" + ] } ], - "chart" : { - "type" : "column" - }, "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-02-28 10:59:35 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-02-28 11:30:03 GMT" }, - "tooltip" : { - "followPointer" : "true", - "headerFormat" : "", - "pointFormat" : "Challenge {point.name}: {point.y:f}
" + "xAxis" : { + "type" : "category" + }, + "title" : { + "text" : "Perl Weekly Challenge Language" }, "drilldown" : { "series" : [ { - "id" : "001", + "name" : "001", "data" : [ [ "Perl", @@ -281,9 +279,10 @@ 11 ] ], - "name" : "001" + "id" : "001" }, { + "id" : "002", "data" : [ [ "Perl", @@ -298,7 +297,6 @@ 10 ] ], - "id" : "002", "name" : "002" }, { @@ -320,6 +318,7 @@ "name" : "003" }, { + "name" : "004", "id" : "004", "data" : [ [ @@ -334,10 +333,10 @@ "Blog", 10 ] - ], - "name" : "004" + ] }, { + "name" : "005", "data" : [ [ "Perl", @@ -352,12 +351,10 @@ 12 ] ], - "id" : "005", - "name" : "005" + "id" : "005" }, { "name" : "006", - "id" : "006", "data" : [ [ "Perl", @@ -371,10 +368,12 @@ "Blog", 7 ] - ] + ], + "id" : "006" }, { "name" : "007", + "id" : "007", "data" : [ [ "Perl", @@ -388,11 +387,9 @@ "Blog", 10 ] - ], - "id" : "007" + ] }, { - "name" : "008", "data" : [ [ "Perl", @@ -407,10 +404,10 @@ 12 ] ], - "id" : "008" + "id" : "008", + "name" : "008" }, { - "name" : "009", "id" : "009", "data" : [ [ @@ -425,7 +422,8 @@ "Blog", 13 ] - ] + ], + "name" : "009" }, { "name" : "010", @@ -464,7 +462,6 @@ "name" : "011" }, { - "name" : "012", "id" : "012", "data" : [ [ @@ -479,7 +476,8 @@ "Blog", 11 ] - ] + ], + "name" : "012" }, { "name" : "013", @@ -519,7 +517,6 @@ }, { "name" : "015", - "id" : "015", "data" : [ [ "Perl", @@ -533,10 +530,11 @@ "Blog", 15 ] - ] + ], + "id" : "015" }, { - "id" : "016", + "name" : "016", "data" : [ [ "Perl", @@ -551,10 +549,11 @@ 12 ] ], - "name" : "016" + "id" : "016" }, { "name" : "017", + "id" : "017", "data" : [ [ "Perl", @@ -568,11 +567,10 @@ "Blog", 12 ] - ], - "id" : "017" + ] }, { - "id" : "018", + "name" : "018", "data" : [ [ "Perl", @@ -587,9 +585,11 @@ 14 ] ], - "name" : "018" + "id" : "018" }, { + "name" : "019", + "id" : "019", "data" : [ [ "Perl", @@ -603,9 +603,7 @@ "Blog", 13 ] - ], - "id" : "019", - "name" : "019" + ] }, { "id" : "020", @@ -626,7 +624,7 @@ "name" : "020" }, { - "name" : "021", + "id" : "021", "data" : [ [ "Perl", @@ -641,9 +639,10 @@ 10 ] ], - "id" : "021" + "name" : "021" }, { + "name" : "022", "data" : [ [ "Perl", @@ -658,11 +657,10 @@ 10 ] ], - "id" : "022", - "name" : "022" + "id" : "022" }, { - "name" : "023", + "id" : "023", "data" : [ [ "Perl", @@ -677,11 +675,9 @@ 12 ] ], - "id" : "023" + "name" : "023" }, { - "name" : "024", - "id" : "024", "data" : [ [ "Perl", @@ -695,10 +691,13 @@ "Blog", 11 ] - ] + ], + "id" : "024", + "name" : "024" }, { "name" : "025", + "id" : "025", "data" : [ [ "Perl", @@ -712,8 +711,7 @@ "Blog", 12 ] - ], - "id" : "025" + ] }, { "name" : "026", @@ -735,7 +733,6 @@ }, { "name" : "027", - "id" : "027", "data" : [ [ "Perl", @@ -749,10 +746,10 @@ "Blog", 9 ] - ] + ], + "id" : "027" }, { - "name" : "028", "data" : [ [ "Perl", @@ -767,10 +764,10 @@ 9 ] ], - "id" : "028" + "id" : "028", + "name" : "028" }, { - "name" : "029", "data" : [ [ "Perl", @@ -785,10 +782,10 @@ 12 ] ], - "id" : "029" + "id" : "029", + "name" : "029" }, { - "id" : "030", "data" : [ [ "Perl", @@ -803,10 +800,10 @@ 10 ] ], + "id" : "030", "name" : "030" }, { - "name" : "031", "id" : "031", "data" : [ [ @@ -821,10 +818,11 @@ "Blog", 9 ] - ] + ], + "name" : "031" }, { - "id" : "032", + "name" : "032", "data" : [ [ "Perl", @@ -839,10 +837,10 @@ 10 ] ], - "name" : "032" + "id" : "032" }, { - "id" : "033", + "name" : "033", "data" : [ [ "Perl", @@ -857,11 +855,10 @@ 10 ] ], - "name" : "033" + "id" : "033" }, { "name" : "034", - "id" : "034", "data" : [ [ "Perl", @@ -875,10 +872,10 @@ "Blog", 11 ] - ] + ], + "id" : "034" }, { - "id" : "035", "data" : [ [ "Perl", @@ -893,10 +890,11 @@ 9 ] ], + "id" : "035", "name" : "035" }, { - "name" : "036", + "id" : "036", "data" : [ [ "Perl", @@ -911,7 +909,7 @@ 10 ] ], - "id" : "036" + "name" : "036" }, { "id" : "037", @@ -933,7 +931,6 @@ }, { "name" : "038", - "id" : "038", "data" : [ [ "Perl", @@ -947,10 +944,12 @@ "Blog", 11 ] - ] + ], + "id" : "038" }, { "name" : "039", + "id" : "039", "data" : [ [ "Perl", @@ -964,11 +963,10 @@ "Blog", 12 ] - ], - "id" : "039" + ] }, { - "name" : "040", + "id" : "040", "data" : [ [ "Perl", @@ -983,7 +981,7 @@ 9 ] ], - "id" : "040" + "name" : "040" }, { "id" : "041", @@ -1004,6 +1002,7 @@ "name" : "041" }, { + "name" : "042", "data" : [ [ "Perl", @@ -1018,12 +1017,9 @@ 11 ] ], - "id" : "042", - "name" : "042" + "id" : "042" }, { - "name" : "043", - "id" : "043", "data" : [ [ "Perl", @@ -1037,10 +1033,12 @@ "Blog", 10 ] - ] + ], + "id" : "043", + "name" : "043" }, { - "name" : "044", + "id" : "044", "data" : [ [ "Perl", @@ -1055,11 +1053,10 @@ 10 ] ], - "id" : "044" + "name" : "044" }, { "name" : "045", - "id" : "045", "data" : [ [ "Perl", @@ -1073,11 +1070,11 @@ "Blog", 11 ] - ] + ], + "id" : "045" }, { "name" : "046", - "id" : "046", "data" : [ [ "Perl", @@ -1091,7 +1088,8 @@ "Blog", 10 ] - ] + ], + "id" : "046" }, { "name" : "047", @@ -1112,7 +1110,7 @@ "id" : "047" }, { - "name" : "048", + "id" : "048", "data" : [ [ "Perl", @@ -1127,28 +1125,36 @@ 11 ] ], - "id" : "048" + "name" : "048" }, { - "name" : "049", "id" : "049", "data" : [ [ "Perl", - 16 + 18 ], [ "Raku", - 11 + 13 ], [ "Blog", - 4 + 5 ] - ] + ], + "name" : "049" } ] }, + "tooltip" : { + "followPointer" : "true", + "headerFormat" : "", + "pointFormat" : "Challenge {point.name}: {point.y:f}
" + }, + "chart" : { + "type" : "column" + }, "yAxis" : { "title" : { "text" : "Total Solutions" @@ -1158,18 +1164,12 @@ "series" : { "borderWidth" : 0, "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 + "enabled" : 1, + "format" : "{point.y}" } } }, "legend" : { "enabled" : "false" - }, - "title" : { - "text" : "Perl Weekly Challenge Language" - }, - "xAxis" : { - "type" : "category" } } diff --git a/stats/pwc-leaders.json b/stats/pwc-leaders.json index 9bf4f32f71..15b518bc13 100644 --- a/stats/pwc-leaders.json +++ b/stats/pwc-leaders.json @@ -1,26 +1,39 @@ { "plotOptions" : { "series" : { - "borderWidth" : 0, "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - } + "enabled" : 1, + "format" : "{point.y}" + }, + "borderWidth" : 0 } }, - "title" : { - "text" : "Perl Weekly Challenge Leaders (TOP 50)" + "legend" : { + "enabled" : "false" + }, + "tooltip" : { + "pointFormat" : "{point.name}: {point.y:f}
", + "followPointer" : "true", + "headerFormat" : "" + }, + "chart" : { + "type" : "column" + }, + "yAxis" : { + "title" : { + "text" : "Total Score" + } }, "xAxis" : { "type" : "category" }, - "legend" : { - "enabled" : "false" + "subtitle" : { + "text" : "Click the columns to drilldown the score breakdown. Last updated at 2020-02-28 11:30:03 GMT" }, "drilldown" : { "series" : [ { - "id" : "Laurent Rosenfeld", + "name" : "Laurent Rosenfeld", "data" : [ [ "Blog", @@ -35,9 +48,10 @@ 95 ] ], - "name" : "Laurent Rosenfeld" + "id" : "Laurent Rosenfeld" }, { + "id" : "Jaldhar H. Vyas", "data" : [ [ "Blog", @@ -52,11 +66,9 @@ 84 ] ], - "id" : "Jaldhar H. Vyas", "name" : "Jaldhar H. Vyas" }, { - "id" : "Ruben Westerberg", "data" : [ [ "Perl", @@ -67,10 +79,10 @@ 95 ] ], + "id" : "Ruben Westerberg", "name" : "Ruben Westerberg" }, { - "id" : "Joelle Maslak", "data" : [ [ "Blog", @@ -85,11 +97,11 @@ 81 ] ], + "id" : "Joelle Maslak", "name" : "Joelle Maslak" }, { "name" : "Adam Russell", - "id" : "Adam Russell", "data" : [ [ "Blog", @@ -103,10 +115,11 @@ "Raku", 9 ] - ] + ], + "id" : "Adam Russell" }, { - "id" : "Arne Sommer", + "name" : "Arne Sommer", "data" : [ [ "Blog", @@ -121,7 +134,7 @@ 96 ] ], - "name" : "Arne Sommer" + "id" : "Arne Sommer" }, { "name" : "Roger Bell West", @@ -143,7 +156,6 @@ }, { "name" : "E. Choroba", - "id" : "E. Choroba", "data" : [ [ "Blog", @@ -153,11 +165,11 @@ "Perl", 91 ] - ] + ], + "id" : "E. Choroba" }, { "name" : "Athanasius", - "id" : "Athanasius", "data" : [ [ "Blog", @@ -171,21 +183,20 @@ "Raku", 39 ] - ] + ], + "id" : "Athanasius" }, { + "name" : "Andrezgz", "data" : [ [ "Perl", 97 ] ], - "id" : "Andrezgz", - "name" : "Andrezgz" + "id" : "Andrezgz" }, { - "name" : "Simon Proctor", - "id" : "Simon Proctor", "data" : [ [ "Blog", @@ -199,28 +210,31 @@ "Raku", 83 ] - ] + ], + "id" : "Simon Proctor", + "name" : "Simon Proctor" }, { "data" : [ [ "Blog", - 18 + 19 ], [ "Perl", - 40 + 38 ], [ "Raku", - 34 + 38 ] ], - "id" : "Ryan Thompson", - "name" : "Ryan Thompson" + "id" : "Javier Luque", + "name" : "Javier Luque" }, { - "id" : "Javier Luque", + "name" : "Ryan Thompson", + "id" : "Ryan Thompson", "data" : [ [ "Blog", @@ -228,16 +242,16 @@ ], [ "Perl", - 36 + 40 ], [ "Raku", - 36 + 34 ] - ], - "name" : "Javier Luque" + ] }, { + "name" : "Dave Jacoby", "id" : "Dave Jacoby", "data" : [ [ @@ -252,8 +266,7 @@ "Raku", 1 ] - ], - "name" : "Dave Jacoby" + ] }, { "name" : "Duncan C. White", @@ -270,7 +283,6 @@ ] }, { - "name" : "Kian-Meng Ang", "data" : [ [ "Blog", @@ -281,20 +293,21 @@ 38 ] ], - "id" : "Kian-Meng Ang" + "id" : "Kian-Meng Ang", + "name" : "Kian-Meng Ang" }, { - "id" : "Duane Powell", "data" : [ [ "Perl", 68 ] ], + "id" : "Duane Powell", "name" : "Duane Powell" }, { - "name" : "Kevin Colyer", + "id" : "Kevin Colyer", "data" : [ [ "Blog", @@ -309,11 +322,10 @@ 65 ] ], - "id" : "Kevin Colyer" + "name" : "Kevin Colyer" }, { "name" : "Steven Wilson", - "id" : "Steven Wilson", "data" : [ [ "Blog", @@ -327,7 +339,8 @@ "Raku", 1 ] - ] + ], + "id" : "Steven Wilson" }, { "name" : "Yet Ebreo", @@ -362,7 +375,6 @@ "id" : "Colin Crain" }, { - "name" : "Noud Aldenhoven", "data" : [ [ "Blog", @@ -373,10 +385,10 @@ 57 ] ], - "id" : "Noud Aldenhoven" + "id" : "Noud Aldenhoven", + "name" : "Noud Aldenhoven" }, { - "id" : "Burkhard Nickels", "data" : [ [ "Blog", @@ -391,10 +403,11 @@ 8 ] ], + "id" : "Burkhard Nickels", "name" : "Burkhard Nickels" }, { - "id" : "Francis Whittle", + "name" : "Francis Whittle", "data" : [ [ "Blog", @@ -405,10 +418,9 @@ 39 ] ], - "name" : "Francis Whittle" + "id" : "Francis Whittle" }, { - "name" : "Ulrich Rieke", "id" : "Ulrich Rieke", "data" : [ [ @@ -419,19 +431,22 @@ "Raku", 29 ] - ] + ], + "name" : "Ulrich Rieke" }, { - "id" : "Lubos Kolouch", + "name" : "Lubos Kolouch", "data" : [ [ "Perl", 46 ] ], - "name" : "Lubos Kolouch" + "id" : "Lubos Kolouch" }, { + "name" : "Feng Chang", + "id" : "Feng Chang", "data" : [ [ "Perl", @@ -441,21 +456,20 @@ "Raku", 23 ] - ], - "id" : "Feng Chang", - "name" : "Feng Chang" + ] }, { - "name" : "Daniel Mantovani", - "id" : "Daniel Mantovani", "data" : [ [ "Perl", 43 ] - ] + ], + "id" : "Daniel Mantovani", + "name" : "Daniel Mantovani" }, { + "name" : "Mark Senn", "id" : "Mark Senn", "data" : [ [ @@ -466,8 +480,7 @@ "Raku", 30 ] - ], - "name" : "Mark Senn" + ] }, { "id" : "Gustavo Chaves", @@ -484,6 +497,7 @@ "name" : "Gustavo Chaves" }, { + "name" : "Markus Holzer", "data" : [ [ "Perl", @@ -494,12 +508,10 @@ 33 ] ], - "id" : "Markus Holzer", - "name" : "Markus Holzer" + "id" : "Markus Holzer" }, { "name" : "Yozen Hernandez", - "id" : "Yozen Hernandez", "data" : [ [ "Blog", @@ -509,7 +521,8 @@ "Perl", 21 ] - ] + ], + "id" : "Yozen Hernandez" }, { "name" : "Guillermo Ramos", @@ -540,7 +553,6 @@ ] }, { - "id" : "Dave Cross", "data" : [ [ "Blog", @@ -551,10 +563,10 @@ 27 ] ], + "id" : "Dave Cross", "name" : "Dave Cross" }, { - "name" : "Saif Ahmed", "id" : "Saif Ahmed", "data" : [ [ @@ -565,7 +577,8 @@ "Perl", 28 ] - ] + ], + "name" : "Saif Ahmed" }, { "name" : "Ozzy", @@ -592,7 +605,6 @@ "name" : "Alicia Bielsa" }, { - "name" : "Dr James A. Smith", "data" : [ [ "Perl", @@ -603,10 +615,10 @@ 10 ] ], - "id" : "Dr James A. Smith" + "id" : "Dr James A. Smith", + "name" : "Dr James A. Smith" }, { - "name" : "Randy Lauen", "id" : "Randy Lauen", "data" : [ [ @@ -617,7 +629,8 @@ "Raku", 17 ] - ] + ], + "name" : "Randy Lauen" }, { "name" : "Mark Anderson", @@ -635,7 +648,6 @@ }, { "name" : "Daniel Mita", - "id" : "Daniel Mita", "data" : [ [ "Perl", @@ -645,10 +657,10 @@ "Raku", 21 ] - ] + ], + "id" : "Daniel Mita" }, { - "id" : "Luca Ferrari", "data" : [ [ "Blog", @@ -659,10 +671,12 @@ 14 ] ], + "id" : "Luca Ferrari", "name" : "Luca Ferrari" }, { "name" : "Veesh Goldman", + "id" : "Veesh Goldman", "data" : [ [ "Blog", @@ -676,8 +690,7 @@ "Raku", 2 ] - ], - "id" : "Veesh Goldman" + ] }, { "name" : "Wanderdoc", @@ -690,8 +703,6 @@ ] }, { - "name" : "Lars Balker", - "id" : "Lars Balker", "data" : [ [ "Perl", @@ -701,7 +712,9 @@ "Raku", 4 ] - ] + ], + "id" : "Lars Balker", + "name" : "Lars Balker" }, { "name" : "Kivanc Yazan", @@ -714,6 +727,8 @@ "id" : "Kivanc Yazan" }, { + "name" : "Nick Logan", + "id" : "Nick Logan", "data" : [ [ "Perl", @@ -723,163 +738,149 @@ "Raku", 8 ] - ], - "id" : "Nick Logan", - "name" : "Nick Logan" + ] }, { "name" : "Walt Mankowski", + "id" : "Walt Mankowski", "data" : [ [ "Perl", 15 ] - ], - "id" : "Walt Mankowski" + ] }, { - "name" : "Nazareno Delucca", + "id" : "Nazareno Delucca", "data" : [ [ "Perl", 14 ] ], - "id" : "Nazareno Delucca" + "name" : "Nazareno Delucca" } ] }, - "yAxis" : { - "title" : { - "text" : "Total Score" - } - }, - "tooltip" : { - "pointFormat" : "{point.name}: {point.y:f}
", - "headerFormat" : "", - "followPointer" : "true" - }, - "chart" : { - "type" : "column" + "title" : { + "text" : "Perl Weekly Challenge Leaders (TOP 50)" }, "series" : [ { - "name" : "Perl Weekly Challenge Leaders", - "colorByPoint" : "true", "data" : [ { - "drilldown" : "Laurent Rosenfeld", "name" : "#1: Laurent Rosenfeld", + "drilldown" : "Laurent Rosenfeld", "y" : 586 }, { + "name" : "#2: Jaldhar H. Vyas", "drilldown" : "Jaldhar H. Vyas", - "y" : 396, - "name" : "#2: Jaldhar H. Vyas" + "y" : 396 }, { "y" : 380, - "name" : "#3: Ruben Westerberg", - "drilldown" : "Ruben Westerberg" + "drilldown" : "Ruben Westerberg", + "name" : "#3: Ruben Westerberg" }, { "y" : 334, - "name" : "#4: Joelle Maslak", - "drilldown" : "Joelle Maslak" + "drilldown" : "Joelle Maslak", + "name" : "#4: Joelle Maslak" }, { - "drilldown" : "Adam Russell", "y" : 300, + "drilldown" : "Adam Russell", "name" : "#5: Adam Russell" }, { + "drilldown" : "Arne Sommer", "name" : "#6: Arne Sommer", - "y" : 298, - "drilldown" : "Arne Sommer" + "y" : 298 }, { - "y" : 288, "name" : "#7: Roger Bell West", - "drilldown" : "Roger Bell West" + "drilldown" : "Roger Bell West", + "y" : 288 }, { - "name" : "#8: E. Choroba", "y" : 262, + "name" : "#8: E. Choroba", "drilldown" : "E. Choroba" }, { - "y" : 220, "name" : "#9: Athanasius", - "drilldown" : "Athanasius" + "drilldown" : "Athanasius", + "y" : 220 }, { - "drilldown" : "Andrezgz", "name" : "#10: Andrezgz", + "drilldown" : "Andrezgz", "y" : 194 }, { + "name" : "#11: Simon Proctor", "drilldown" : "Simon Proctor", - "y" : 194, - "name" : "#11: Simon Proctor" + "y" : 194 }, { - "name" : "#12: Ryan Thompson", - "y" : 184, - "drilldown" : "Ryan Thompson" + "y" : 190, + "name" : "#12: Javier Luque", + "drilldown" : "Javier Luque" }, { - "name" : "#13: Javier Luque", - "y" : 180, - "drilldown" : "Javier Luque" + "y" : 184, + "name" : "#13: Ryan Thompson", + "drilldown" : "Ryan Thompson" }, { - "drilldown" : "Dave Jacoby", "y" : 168, + "drilldown" : "Dave Jacoby", "name" : "#14: Dave Jacoby" }, { "y" : 168, - "name" : "#15: Duncan C. White", - "drilldown" : "Duncan C. White" + "drilldown" : "Duncan C. White", + "name" : "#15: Duncan C. White" }, { + "drilldown" : "Kian-Meng Ang", "name" : "#16: Kian-Meng Ang", - "y" : 162, - "drilldown" : "Kian-Meng Ang" + "y" : 162 }, { - "drilldown" : "Duane Powell", "name" : "#17: Duane Powell", + "drilldown" : "Duane Powell", "y" : 136 }, { + "y" : 136, "drilldown" : "Kevin Colyer", - "name" : "#18: Kevin Colyer", - "y" : 136 + "name" : "#18: Kevin Colyer" }, { "y" : 134, - "name" : "#19: Steven Wilson", - "drilldown" : "Steven Wilson" + "drilldown" : "Steven Wilson", + "name" : "#19: Steven Wilson" }, { - "drilldown" : "Yet Ebreo", + "y" : 130, "name" : "#20: Yet Ebreo", - "y" : 130 + "drilldown" : "Yet Ebreo" }, { + "name" : "#21: Colin Crain", "drilldown" : "Colin Crain", - "y" : 128, - "name" : "#21: Colin Crain" + "y" : 128 }, { + "drilldown" : "Noud Aldenhoven", "name" : "#22: Noud Aldenhoven", - "y" : 116, - "drilldown" : "Noud Aldenhoven" + "y" : 116 }, { - "name" : "#23: Burkhard Nickels", "y" : 108, + "name" : "#23: Burkhard Nickels", "drilldown" : "Burkhard Nickels" }, { @@ -889,13 +890,13 @@ }, { "y" : 94, - "name" : "#25: Ulrich Rieke", - "drilldown" : "Ulrich Rieke" + "drilldown" : "Ulrich Rieke", + "name" : "#25: Ulrich Rieke" }, { "drilldown" : "Lubos Kolouch", - "y" : 92, - "name" : "#26: Lubos Kolouch" + "name" : "#26: Lubos Kolouch", + "y" : 92 }, { "y" : 88, @@ -903,89 +904,89 @@ "drilldown" : "Feng Chang" }, { - "name" : "#28: Daniel Mantovani", "y" : 86, + "name" : "#28: Daniel Mantovani", "drilldown" : "Daniel Mantovani" }, { - "drilldown" : "Mark Senn", + "y" : 80, "name" : "#29: Mark Senn", - "y" : 80 + "drilldown" : "Mark Senn" }, { - "y" : 72, + "drilldown" : "Gustavo Chaves", "name" : "#30: Gustavo Chaves", - "drilldown" : "Gustavo Chaves" + "y" : 72 }, { - "name" : "#31: Markus Holzer", "y" : 72, - "drilldown" : "Markus Holzer" + "drilldown" : "Markus Holzer", + "name" : "#31: Markus Holzer" }, { + "drilldown" : "Yozen Hernandez", "name" : "#32: Yozen Hernandez", - "y" : 70, - "