From 6076f2ea2366c92cf87dc2b540d8bb2358c38ec1 Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Mon, 3 Jan 2022 02:23:05 +0000 Subject: - Added solutions by E. Choroba. --- challenge-145/e-choroba/perl/ch-1.pl | 19 + challenge-145/e-choroba/perl/ch-2.pl | 205 +++++++ challenge-145/e-choroba/perl5/ch-1.pl | 19 - challenge-145/e-choroba/perl5/ch-2.pl | 205 ------- stats/pwc-current.json | 465 +++++++-------- stats/pwc-language-breakdown-summary.json | 62 +- stats/pwc-language-breakdown.json | 930 +++++++++++++++--------------- stats/pwc-leaders.json | 364 ++++++------ stats/pwc-summary-1-30.json | 126 ++-- stats/pwc-summary-121-150.json | 102 ++-- stats/pwc-summary-151-180.json | 108 ++-- stats/pwc-summary-181-210.json | 38 +- stats/pwc-summary-211-240.json | 110 ++-- stats/pwc-summary-241-270.json | 76 +-- stats/pwc-summary-31-60.json | 108 ++-- stats/pwc-summary-61-90.json | 30 +- stats/pwc-summary-91-120.json | 46 +- stats/pwc-summary.json | 538 ++++++++--------- 18 files changed, 1783 insertions(+), 1768 deletions(-) create mode 100755 challenge-145/e-choroba/perl/ch-1.pl create mode 100755 challenge-145/e-choroba/perl/ch-2.pl delete mode 100755 challenge-145/e-choroba/perl5/ch-1.pl delete mode 100755 challenge-145/e-choroba/perl5/ch-2.pl diff --git a/challenge-145/e-choroba/perl/ch-1.pl b/challenge-145/e-choroba/perl/ch-1.pl new file mode 100755 index 0000000000..539d15e75f --- /dev/null +++ b/challenge-145/e-choroba/perl/ch-1.pl @@ -0,0 +1,19 @@ +#!/usr/bin/perl +use warnings; +use strict; + +sub dot_product { + my ($A, $B) = @_; + my $sum = 0; + for my $i (0 .. $#$A) { + $sum += $A->[$i] * $B->[$i]; + } + return $sum +} + +use Test2::V0; +plan 1; + +my @a = (1, 2, 3); +my @b = (4, 5, 6); +is dot_product(\@a, \@b), 32, 'Example 1'; diff --git a/challenge-145/e-choroba/perl/ch-2.pl b/challenge-145/e-choroba/perl/ch-2.pl new file mode 100755 index 0000000000..2ee4b431d3 --- /dev/null +++ b/challenge-145/e-choroba/perl/ch-2.pl @@ -0,0 +1,205 @@ +#!/usr/bin/perl +use warnings; +use strict; +use feature qw{ say }; + +{ package Eertree::Node; + use Moo; + + has length => (is => 'ro', required => 1); + has pos => (is => 'rwp', required => 1); + has link => (is => 'rw'); + has edge => (is => 'lazy', builder => sub { {} }, predicate => 1); + + sub string { + my ($self, $eertree) = @_; + return substr $eertree->string, $self->pos, $self->length + } +} + +{ package Eertree; + use Moo; + + has nodes => (is => 'ro', default => sub { [ + 'Eertree::Node'->new(link => 0, length => -1, pos => -1), + 'Eertree::Node'->new(link => 0, length => 0, pos => 0) + ]}); + has string => (is => 'ro'); + has max => (is => 'rw', default => 0); + + sub node { + my ($self, $index) = @_; + return $self->nodes->[$index] + } + + sub at { + my ($self, $pos) = @_; + return substr $self->string, $pos, 1 + } + + sub build { + my ($self) = @_; + my $i = 0; + $self->add($i++, $_) for split //, $self->string; + } + + sub Push { + my ($self, $node) = @_; + push @{ $self->nodes }, $node; + } + + sub Last { $#{ $_[0]->nodes } } + + sub add { + my ($self, $index, $char) = @_; + + my $new_node; + my $p = $self->max; + while ($self->node($p)) { + my $node = $self->node($p); + my $pos = $node->length == -1 + ? $index + : $index - $node->length - 1; + if ($pos >= 0 && $self->at($pos) eq $char) { + if (exists $node->edge->{$char}) { + $new_node = $self->node($node->edge->{$char}); + $self->max($node->edge->{$char}); + return + } + $new_node = 'Eertree::Node'->new(pos => $pos, + length => $index - $pos + 1); + $node->edge->{$char} = $self->Last + 1; + last + } + $p = $node->link; + } + + $self->Push($new_node); + $self->max($self->Last); + + if ($new_node->length == 1) { + $new_node->link(1); + return + } + + my $q = $self->node($p)->link; + while ($self->node($p)) { + my $pos = $self->node($q)->length == -1 + ? $index + : $index - $self->node($q)->length - 1; + if ($pos >= 0 && $self->at($pos) eq $char) { + $new_node->link($self->node($q)->edge->{$char}); + last + } + $q = $self->node($q)->link; + } + } + + sub to_dot { + my ($self) = @_; + say 'digraph { rankdir = BT;'; + for my $i (0 .. $self->Last) { + my $node = $self->node($i); + say $i, qq([shape=record, label="$i|), + $node->string($self) || $i - 1, '"]'; + say $i, '->', $node->link, '[color=blue]'; + } + for my $i (0 .. $self->Last) { + my $node = $self->node($i); + for my $ch (keys %{ $node->edge }) { + say $i, '->', $node->edge->{$ch}, + "[label=$ch, constraint=false]"; + } + } + say '}'; + } +} + + +use Test2::V0; + +{ my $e = 'Eertree'->new(string => 'a'); + $e->build; + is $e->Last, 2, 'size'; + is $e->nodes->[0]->edge, {a => 2}, 'edge -1->a'; + is $e->nodes->[2]->link, 1, 'link a->1'; + is $e->nodes->[2]->string($e), 'a', 'string a'; +} +{ my $e = 'Eertree'->new(string => 'aa'); + $e->build; + is $e->Last, 3, 'size'; + is $e->nodes->[0]->edge, {a => 2}, 'edge -1->a'; + is $e->nodes->[1]->edge, {a => 3}, 'edge 0->aa'; + is $e->nodes->[2]->string($e), 'a', 'string a'; + is $e->nodes->[2]->link, 1, 'link'; + is $e->nodes->[3]->string($e), 'aa', 'string aa'; + is $e->nodes->[3]->link, 2, 'link aa->a'; +} + + +{ my $e = 'Eertree'->new(string => 'eertree'); + $e->build; + + is scalar @{ $e->nodes }, 9, 'size'; + + is $e->nodes->[0]->edge, {e => 2, r => 4, t => 5}, 'edges from -1'; + + is $e->nodes->[1]->edge, {e => 3}, 'edge from 0'; + + is $e->nodes->[2]->edge, {}, 'no edges from e'; + is $e->nodes->[2]->link, 1, 'link e->0'; + is $e->nodes->[2]->pos, 0, 'pos e'; + is $e->nodes->[2]->string($e), 'e', 'string e'; + + is $e->nodes->[3]->edge, {}, 'no edges from "ee"'; + is $e->nodes->[3]->link, 2, 'link ee->e'; + is $e->nodes->[3]->pos, 0, 'pos ee'; + is $e->nodes->[3]->string($e), 'ee', 'string ee'; + + is $e->nodes->[4]->edge, {}, 'no edges from r'; + is $e->nodes->[4]->link, 1, 'link r->0'; + is $e->nodes->[4]->pos, 2, 'pos r'; + is $e->nodes->[4]->string($e), 'r', 'string r'; + + is $e->nodes->[5]->edge, {r => 6}, 'edge t->rtr'; + is $e->nodes->[5]->link, 1, 'link t->0'; + is $e->nodes->[5]->pos, 3, 'pos t'; + is $e->nodes->[5]->string($e), 't', 'string t'; + + is $e->nodes->[6]->edge, {e => 7}, 'edge rtr->ertre'; + is $e->nodes->[6]->link, 4, 'link rtr->r'; + is $e->nodes->[6]->pos, 2, 'pos rtr'; + is $e->nodes->[6]->string($e), 'rtr', 'string rtr'; + + is $e->nodes->[7]->edge, {e => 8}, 'edge ertre->eertree'; + is $e->nodes->[7]->link, 2, 'link ertre->e'; + is $e->nodes->[7]->pos, 1, 'pos ertre'; + is $e->nodes->[7]->string($e), 'ertre', 'string ertre'; + + is $e->nodes->[8]->edge, {}, 'no edges from eertree'; + is $e->nodes->[8]->link, 3, 'link eertree->ee'; + is $e->nodes->[8]->pos, 0, 'pos eertree'; + is $e->nodes->[8]->string($e), 'eertree', 'string eertree'; +} + +my @examples = ( + [redivider => qw[ r redivider e edivide d divid i ivi v ]], + [deific => qw[ d e i ifi f c ]], + [rotors => qw[ r rotor o oto t s ]], + [challenge => qw[ c h a l ll e n g ]], + [champion => qw[ c h a m p i o n ]], + [christmas => qw[ c h r i s t m a ]], + [abbcabc => qw[ a b c bb ]], + [xabcxc => qw[ x a b c cxc ]], +); + +my $i = 1; +for my $example (@examples) { + my $tree = 'Eertree'->new(string => $example->[0]); + $tree->build; + is [grep length, map $_->string($tree), @{ $tree->nodes }], + bag { item($_) for @$example[1 .. $#$example]; end() }, + "Example " . $i++; +} + +done_testing(); diff --git a/challenge-145/e-choroba/perl5/ch-1.pl b/challenge-145/e-choroba/perl5/ch-1.pl deleted file mode 100755 index 539d15e75f..0000000000 --- a/challenge-145/e-choroba/perl5/ch-1.pl +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/perl -use warnings; -use strict; - -sub dot_product { - my ($A, $B) = @_; - my $sum = 0; - for my $i (0 .. $#$A) { - $sum += $A->[$i] * $B->[$i]; - } - return $sum -} - -use Test2::V0; -plan 1; - -my @a = (1, 2, 3); -my @b = (4, 5, 6); -is dot_product(\@a, \@b), 32, 'Example 1'; diff --git a/challenge-145/e-choroba/perl5/ch-2.pl b/challenge-145/e-choroba/perl5/ch-2.pl deleted file mode 100755 index 2ee4b431d3..0000000000 --- a/challenge-145/e-choroba/perl5/ch-2.pl +++ /dev/null @@ -1,205 +0,0 @@ -#!/usr/bin/perl -use warnings; -use strict; -use feature qw{ say }; - -{ package Eertree::Node; - use Moo; - - has length => (is => 'ro', required => 1); - has pos => (is => 'rwp', required => 1); - has link => (is => 'rw'); - has edge => (is => 'lazy', builder => sub { {} }, predicate => 1); - - sub string { - my ($self, $eertree) = @_; - return substr $eertree->string, $self->pos, $self->length - } -} - -{ package Eertree; - use Moo; - - has nodes => (is => 'ro', default => sub { [ - 'Eertree::Node'->new(link => 0, length => -1, pos => -1), - 'Eertree::Node'->new(link => 0, length => 0, pos => 0) - ]}); - has string => (is => 'ro'); - has max => (is => 'rw', default => 0); - - sub node { - my ($self, $index) = @_; - return $self->nodes->[$index] - } - - sub at { - my ($self, $pos) = @_; - return substr $self->string, $pos, 1 - } - - sub build { - my ($self) = @_; - my $i = 0; - $self->add($i++, $_) for split //, $self->string; - } - - sub Push { - my ($self, $node) = @_; - push @{ $self->nodes }, $node; - } - - sub Last { $#{ $_[0]->nodes } } - - sub add { - my ($self, $index, $char) = @_; - - my $new_node; - my $p = $self->max; - while ($self->node($p)) { - my $node = $self->node($p); - my $pos = $node->length == -1 - ? $index - : $index - $node->length - 1; - if ($pos >= 0 && $self->at($pos) eq $char) { - if (exists $node->edge->{$char}) { - $new_node = $self->node($node->edge->{$char}); - $self->max($node->edge->{$char}); - return - } - $new_node = 'Eertree::Node'->new(pos => $pos, - length => $index - $pos + 1); - $node->edge->{$char} = $self->Last + 1; - last - } - $p = $node->link; - } - - $self->Push($new_node); - $self->max($self->Last); - - if ($new_node->length == 1) { - $new_node->link(1); - return - } - - my $q = $self->node($p)->link; - while ($self->node($p)) { - my $pos = $self->node($q)->length == -1 - ? $index - : $index - $self->node($q)->length - 1; - if ($pos >= 0 && $self->at($pos) eq $char) { - $new_node->link($self->node($q)->edge->{$char}); - last - } - $q = $self->node($q)->link; - } - } - - sub to_dot { - my ($self) = @_; - say 'digraph { rankdir = BT;'; - for my $i (0 .. $self->Last) { - my $node = $self->node($i); - say $i, qq([shape=record, label="$i|), - $node->string($self) || $i - 1, '"]'; - say $i, '->', $node->link, '[color=blue]'; - } - for my $i (0 .. $self->Last) { - my $node = $self->node($i); - for my $ch (keys %{ $node->edge }) { - say $i, '->', $node->edge->{$ch}, - "[label=$ch, constraint=false]"; - } - } - say '}'; - } -} - - -use Test2::V0; - -{ my $e = 'Eertree'->new(string => 'a'); - $e->build; - is $e->Last, 2, 'size'; - is $e->nodes->[0]->edge, {a => 2}, 'edge -1->a'; - is $e->nodes->[2]->link, 1, 'link a->1'; - is $e->nodes->[2]->string($e), 'a', 'string a'; -} -{ my $e = 'Eertree'->new(string => 'aa'); - $e->build; - is $e->Last, 3, 'size'; - is $e->nodes->[0]->edge, {a => 2}, 'edge -1->a'; - is $e->nodes->[1]->edge, {a => 3}, 'edge 0->aa'; - is $e->nodes->[2]->string($e), 'a', 'string a'; - is $e->nodes->[2]->link, 1, 'link'; - is $e->nodes->[3]->string($e), 'aa', 'string aa'; - is $e->nodes->[3]->link, 2, 'link aa->a'; -} - - -{ my $e = 'Eertree'->new(string => 'eertree'); - $e->build; - - is scalar @{ $e->nodes }, 9, 'size'; - - is $e->nodes->[0]->edge, {e => 2, r => 4, t => 5}, 'edges from -1'; - - is $e->nodes->[1]->edge, {e => 3}, 'edge from 0'; - - is $e->nodes->[2]->edge, {}, 'no edges from e'; - is $e->nodes->[2]->link, 1, 'link e->0'; - is $e->nodes->[2]->pos, 0, 'pos e'; - is $e->nodes->[2]->string($e), 'e', 'string e'; - - is $e->nodes->[3]->edge, {}, 'no edges from "ee"'; - is $e->nodes->[3]->link, 2, 'link ee->e'; - is $e->nodes->[3]->pos, 0, 'pos ee'; - is $e->nodes->[3]->string($e), 'ee', 'string ee'; - - is $e->nodes->[4]->edge, {}, 'no edges from r'; - is $e->nodes->[4]->link, 1, 'link r->0'; - is $e->nodes->[4]->pos, 2, 'pos r'; - is $e->nodes->[4]->string($e), 'r', 'string r'; - - is $e->nodes->[5]->edge, {r => 6}, 'edge t->rtr'; - is $e->nodes->[5]->link, 1, 'link t->0'; - is $e->nodes->[5]->pos, 3, 'pos t'; - is $e->nodes->[5]->string($e), 't', 'string t'; - - is $e->nodes->[6]->edge, {e => 7}, 'edge rtr->ertre'; - is $e->nodes->[6]->link, 4, 'link rtr->r'; - is $e->nodes->[6]->pos, 2, 'pos rtr'; - is $e->nodes->[6]->string($e), 'rtr', 'string rtr'; - - is $e->nodes->[7]->edge, {e => 8}, 'edge ertre->eertree'; - is $e->nodes->[7]->link, 2, 'link ertre->e'; - is $e->nodes->[7]->pos, 1, 'pos ertre'; - is $e->nodes->[7]->string($e), 'ertre', 'string ertre'; - - is $e->nodes->[8]->edge, {}, 'no edges from eertree'; - is $e->nodes->[8]->link, 3, 'link eertree->ee'; - is $e->nodes->[8]->pos, 0, 'pos eertree'; - is $e->nodes->[8]->string($e), 'eertree', 'string eertree'; -} - -my @examples = ( - [redivider => qw[ r redivider e edivide d divid i ivi v ]], - [deific => qw[ d e i ifi f c ]], - [rotors => qw[ r rotor o oto t s ]], - [challenge => qw[ c h a l ll e n g ]], - [champion => qw[ c h a m p i o n ]], - [christmas => qw[ c h r i s t m a ]], - [abbcabc => qw[ a b c bb ]], - [xabcxc => qw[ x a b c cxc ]], -); - -my $i = 1; -for my $example (@examples) { - my $tree = 'Eertree'->new(string => $example->[0]); - $tree->build; - is [grep length, map $_->string($tree), @{ $tree->nodes }], - bag { item($_) for @$example[1 .. $#$example]; end() }, - "Example " . $i++; -} - -done_testing(); diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 89001a163a..54f53c47b6 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,13 +1,186 @@ { + "tooltip" : { + "headerFormat" : "{series.name}
", + "followPointer" : 1, + "pointFormat" : "{point.name}: {point.y:f}
" + }, "yAxis" : { "title" : { "text" : "Total Solutions" } }, + "xAxis" : { + "type" : "category" + }, + "chart" : { + "type" : "column" + }, + "series" : [ + { + "data" : [ + { + "y" : 4, + "drilldown" : "Abigail", + "name" : "Abigail" + }, + { + "drilldown" : "Adam Russell", + "y" : 1, + "name" : "Adam Russell" + }, + { + "drilldown" : "Andrew Shitov", + "y" : 1, + "name" : "Andrew Shitov" + }, + { + "drilldown" : "Andrezgz", + "y" : 2, + "name" : "Andrezgz" + }, + { + "name" : "Arne Sommer", + "drilldown" : "Arne Sommer", + "y" : 5 + }, + { + "y" : 2, + "drilldown" : "Athanasius", + "name" : "Athanasius" + }, + { + "name" : "Colin Crain", + "drilldown" : "Colin Crain", + "y" : 3 + }, + { + "drilldown" : "Dave Jacoby", + "name" : "Dave Jacoby", + "y" : 3 + }, + { + "drilldown" : "Duncan C. White", + "y" : 2, + "name" : "Duncan C. White" + }, + { + "name" : "E. Choroba", + "drilldown" : "E. Choroba", + "y" : 2 + }, + { + "drilldown" : "Flavio Poletti", + "name" : "Flavio Poletti", + "y" : 6 + }, + { + "drilldown" : "Ian Goodnight", + "name" : "Ian Goodnight", + "y" : 2 + }, + { + "y" : 1, + "drilldown" : "Jake", + "name" : "Jake" + }, + { + "drilldown" : "James Smith", + "y" : 3, + "name" : "James Smith" + }, + { + "y" : 2, + "drilldown" : "Jan Krnavek", + "name" : "Jan Krnavek" + }, + { + "name" : "Laurent Rosenfeld", + "drilldown" : "Laurent Rosenfeld", + "y" : 6 + }, + { + "y" : 6, + "drilldown" : "Luca Ferrari", + "name" : "Luca Ferrari" + }, + { + "drilldown" : "Mark Anderson", + "y" : 1, + "name" : "Mark Anderson" + }, + { + "drilldown" : "Mark Senn", + "y" : 2, + "name" : "Mark Senn" + }, + { + "name" : "Matthew Neleigh", + "drilldown" : "Matthew Neleigh", + "y" : 1 + }, + { + "drilldown" : "Mohammad S Anwar", + "y" : 2, + "name" : "Mohammad S Anwar" + }, + { + "drilldown" : "Niels van Dijke", + "y" : 1, + "name" : "Niels van Dijke" + }, + { + "name" : "Olivier Delouya", + "drilldown" : "Olivier Delouya", + "y" : 1 + }, + { + "name" : "Paulo Custodio", + "drilldown" : "Paulo Custodio", + "y" : 2 + }, + { + "y" : 1, + "drilldown" : "Pete Houston", + "name" : "Pete Houston" + }, + { + "drilldown" : "Peter Campbell Smith", + "name" : "Peter Campbell Smith", + "y" : 3 + }, + { + "drilldown" : "Robert DiCicco", + "name" : "Robert DiCicco", + "y" : 2 + }, + { + "drilldown" : "Roger Bell_West", + "y" : 5, + "name" : "Roger Bell_West" + }, + { + "drilldown" : "Simon Green", + "y" : 3, + "name" : "Simon Green" + }, + { + "y" : 4, + "drilldown" : "Ulrich Rieke", + "name" : "Ulrich Rieke" + }, + { + "drilldown" : "W. Luis Mochan", + "name" : "W. Luis Mochan", + "y" : 3 + } + ], + "colorByPoint" : 1, + "name" : "The Weekly Challenge - 145" + } + ], "drilldown" : { "series" : [ { - "name" : "Abigail", "data" : [ [ "Perl", @@ -18,21 +191,22 @@ 2 ] ], + "name" : "Abigail", "id" : "Abigail" }, { + "id" : "Adam Russell", "name" : "Adam Russell", "data" : [ [ "Perl", 1 ] - ], - "id" : "Adam Russell" + ] }, { - "name" : "Andrew Shitov", "id" : "Andrew Shitov", + "name" : "Andrew Shitov", "data" : [ [ "Raku", @@ -41,17 +215,18 @@ ] }, { - "name" : "Andrezgz", "data" : [ [ "Perl", 2 ] ], + "name" : "Andrezgz", "id" : "Andrezgz" }, { "id" : "Arne Sommer", + "name" : "Arne Sommer", "data" : [ [ "Perl", @@ -65,8 +240,7 @@ "Blog", 1 ] - ], - "name" : "Arne Sommer" + ] }, { "name" : "Athanasius", @@ -83,7 +257,6 @@ ] }, { - "id" : "Colin Crain", "data" : [ [ "Perl", @@ -94,7 +267,8 @@ 1 ] ], - "name" : "Colin Crain" + "name" : "Colin Crain", + "id" : "Colin Crain" }, { "name" : "Dave Jacoby", @@ -111,16 +285,27 @@ ] }, { + "name" : "Duncan C. White", "id" : "Duncan C. White", + "data" : [ + [ + "Perl", + 2 + ] + ] + }, + { "data" : [ [ "Perl", 2 ] ], - "name" : "Duncan C. White" + "id" : "E. Choroba", + "name" : "E. Choroba" }, { + "name" : "Flavio Poletti", "id" : "Flavio Poletti", "data" : [ [ @@ -135,8 +320,7 @@ "Blog", 2 ] - ], - "name" : "Flavio Poletti" + ] }, { "data" : [ @@ -145,21 +329,20 @@ 2 ] ], - "id" : "Ian Goodnight", - "name" : "Ian Goodnight" + "name" : "Ian Goodnight", + "id" : "Ian Goodnight" }, { - "name" : "Jake", "data" : [ [ "Perl", 1 ] ], - "id" : "Jake" + "id" : "Jake", + "name" : "Jake" }, { - "id" : "James Smith", "data" : [ [ "Perl", @@ -170,21 +353,20 @@ 1 ] ], + "id" : "James Smith", "name" : "James Smith" }, { + "id" : "Jan Krnavek", + "name" : "Jan Krnavek", "data" : [ [ "Raku", 2 ] - ], - "id" : "Jan Krnavek", - "name" : "Jan Krnavek" + ] }, { - "name" : "Laurent Rosenfeld", - "id" : "Laurent Rosenfeld", "data" : [ [ "Perl", @@ -198,10 +380,13 @@ "Blog", 2 ] - ] + ], + "id" : "Laurent Rosenfeld", + "name" : "Laurent Rosenfeld" }, { "id" : "Luca Ferrari", + "name" : "Luca Ferrari", "data" : [ [ "Raku", @@ -211,21 +396,19 @@ "Blog", 4 ] - ], - "name" : "Luca Ferrari" + ] }, { - "name" : "Mark Anderson", "data" : [ [ "Raku", 1 ] ], + "name" : "Mark Anderson", "id" : "Mark Anderson" }, { - "id" : "Mark Senn", "data" : [ [ "Raku", @@ -236,17 +419,18 @@ 1 ] ], - "name" : "Mark Senn" + "name" : "Mark Senn", + "id" : "Mark Senn" }, { - "name" : "Matthew Neleigh", - "id" : "Matthew Neleigh", "data" : [ [ "Perl", 1 ] - ] + ], + "id" : "Matthew Neleigh", + "name" : "Matthew Neleigh" }, { "name" : "Mohammad S Anwar", @@ -274,33 +458,33 @@ }, { "name" : "Olivier Delouya", + "id" : "Olivier Delouya", "data" : [ [ "Perl", 1 ] - ], - "id" : "Olivier Delouya" + ] }, { + "name" : "Paulo Custodio", + "id" : "Paulo Custodio", "data" : [ [ "Perl", 2 ] - ], - "id" : "Paulo Custodio", - "name" : "Paulo Custodio" + ] }, { - "name" : "Pete Houston", "data" : [ [ "Perl", 1 ] ], - "id" : "Pete Houston" + "id" : "Pete Houston", + "name" : "Pete Houston" }, { "data" : [ @@ -313,18 +497,18 @@ 1 ] ], - "id" : "Peter Campbell Smith", - "name" : "Peter Campbell Smith" + "name" : "Peter Campbell Smith", + "id" : "Peter Campbell Smith" }, { - "name" : "Robert DiCicco", - "id" : "Robert DiCicco", "data" : [ [ "Perl", 2 ] - ] + ], + "id" : "Robert DiCicco", + "name" : "Robert DiCicco" }, { "name" : "Roger Bell_West", @@ -359,8 +543,6 @@ ] }, { - "name" : "Ulrich Rieke", - "id" : "Ulrich Rieke", "data" : [ [ "Perl", @@ -370,10 +552,11 @@ "Raku", 2 ] - ] + ], + "name" : "Ulrich Rieke", + "id" : "Ulrich Rieke" }, { - "name" : "W. Luis Mochan", "data" : [ [ "Perl", @@ -384,195 +567,27 @@ 1 ] ], - "id" : "W. Luis Mochan" + "id" : "W. Luis Mochan", + "name" : "W. Luis Mochan" } ] }, - "legend" : { - "enabled" : 0 - }, "subtitle" : { - "text" : "[Champions: 30] Last updated at 2022-01-03 02:06:52 GMT" + "text" : "[Champions: 31] Last updated at 2022-01-03 02:20:19 GMT" }, "title" : { "text" : "The Weekly Challenge - 145" }, - "tooltip" : { - "followPointer" : 1, - "headerFormat" : "{series.name}
", - "pointFormat" : "{point.name}: {point.y:f}
" - }, - "series" : [ - { - "name" : "The Weekly Challenge - 145", - "data" : [ - { - "name" : "Abigail", - "drilldown" : "Abigail", - "y" : 4 - }, - { - "drilldown" : "Adam Russell", - "y" : 1, - "name" : "Adam Russell" - }, - { - "drilldown" : "Andrew Shitov", - "y" : 1, - "name" : "Andrew Shitov" - }, - { - "name" : "Andrezgz", - "y" : 2, - "drilldown" : "Andrezgz" - }, - { - "name" : "Arne Sommer", - "y" : 5, - "drilldown" : "Arne Sommer" - }, - { - "y" : 2, - "drilldown" : "Athanasius", - "name" : "Athanasius" - }, - { - "name" : "Colin Crain", - "y" : 3, - "drilldown" : "Colin Crain" - }, - { - "drilldown" : "Dave Jacoby", - "y" : 3, - "name" : "Dave Jacoby" - }, - { - "name" : "Duncan C. White", - "y" : 2, - "drilldown" : "Duncan C. White" - }, - { - "name" : "Flavio Poletti", - "drilldown" : "Flavio Poletti", - "y" : 6 - }, - { - "y" : 2, - "drilldown" : "Ian Goodnight", - "name" : "Ian Goodnight" - }, - { - "y" : 1, - "drilldown" : "Jake", - "name" : "Jake" - }, - { - "name" : "James Smith", - "y" : 3, - "drilldown" : "James Smith" - }, - { - "name" : "Jan Krnavek", - "drilldown" : "Jan Krnavek", - "y" : 2 - }, - { - "y" : 6, - "drilldown" : "Laurent Rosenfeld", - "name" : "Laurent Rosenfeld" - }, - { - "name" : "Luca Ferrari", - "y" : 6, - "drilldown" : "Luca Ferrari" - }, - { - "name" : "Mark Anderson", - "y" : 1, - "drilldown" : "Mark Anderson" - }, - { - "y" : 2, - "drilldown" : "Mark Senn", - "name" : "Mark Senn" - }, - { - "name" : "Matthew Neleigh", - "y" : 1, - "drilldown" : "Matthew Neleigh" - }, - { - "y" : 2, - "drilldown" : "Mohammad S Anwar", - "name" : "Mohammad S Anwar" - }, - { - "name" : "Niels van Dijke", - "y" : 1, - "drilldown" : "Niels van Dijke" - }, - { - "drilldown" : "Olivier Delouya", - "y" : 1, - "name" : "Olivier Delouya" - }, - { - "y" : 2, - "drilldown" : "Paulo Custodio", - "name" : "Paulo Custodio" - }, - { - "drilldown" : "Pete Houston", - "y" : 1, - "name" : "Pete Houston" - }, - { - "y" : 3, - "drilldown" : "Peter Campbell Smith", - "name" : "Peter Campbell Smith" - }, - { - "name" : "Robert DiCicco", - "y" : 2, - "drilldown" : "Robert DiCicco" - }, - { - "y" : 5, - "drilldown" : "Roger Bell_West", - "name" : "Roger Bell_West" - }, - { - "drilldown" : "Simon Green", - "y" : 3, - "name" : "Simon Green" - }, - { - "drilldown" : "Ulrich Rieke", - "y" : 4, - "name" : "Ulrich Rieke" - }, - { - "y" : 3, - "drilldown" : "W. Luis Mochan", - "name" : "W. Luis Mochan" - } - ], - "colorByPoint" : 1 - } - ], - "xAxis" : { - "type" : "category" - }, - "chart" : { - "type" : "column" - }, "plotOptions" : { "series" : { + "borderWidth" : 0, "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - }, - "borderWidth" : 0 + "enabled" : 1, + "format" : "{point.y}" + } } + }, + "legend" : { + "enabled" : 0 } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 6ad28c73b9..ddc3d34ff2 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,18 +1,16 @@ { - "xAxis" : { - "labels" : { - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - } - }, - "type" : "category" + "legend" : { + "enabled" : "false" }, - "chart" : { - "type" : "column" + "title" : { + "text" : "The Weekly Challenge Contributions [2019 - 2021]" + }, + "subtitle" : { + "text" : "Last updated at 2022-01-03 02:20:19 GMT" }, "series" : [ { + "name" : "Contributions", "data" : [ [ "Blog", @@ -20,7 +18,7 @@ ], [ "Perl", - 7001 + 7003 ], [ "Raku", @@ -28,36 +26,38 @@ ] ], "dataLabels" : { - "rotation" : -90, + "align" : "right", "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" }, - "y" : 10, "format" : "{point.y:.0f}", "enabled" : "true", - "align" : "right", - "color" : "#FFFFFF" - }, - "name" : "Contributions" + "color" : "#FFFFFF", + "y" : 10, + "rotation" : -90 + } } ], - "tooltip" : { - "pointFormat" : "{point.y:.0f}" - }, - "title" : { - "text" : "The Weekly Challenge Contributions [2019 - 2021]" - }, - "subtitle" : { - "text" : "Last updated at 2022-01-03 02:06:52 GMT" - }, - "legend" : { - "enabled" : "false" - }, "yAxis" : { "min" : 0, "title" : { "text" : null } + }, + "xAxis" : { + "labels" : { + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + } + }, + "type" : "category" + }, + "chart" : { + "type" : "column" + }, + "tooltip" : { + "pointFormat" : "{point.y:.0f}" } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 3eccac4e23..86f60717d4 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,23 +1,22 @@ { - "plotOptions" : { - "series" : { - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - }, - "borderWidth" : 0 - } - }, "xAxis" : { "type" : "category" }, "chart" : { "type" : "column" }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "tooltip" : { + "headerFormat" : "", + "pointFormat" : "Challenge {point.name}: {point.y:f}
", + "followPointer" : "true" + }, "series" : [ { - "name" : "The Weekly Challenge Languages", - "colorByPoint" : "true", "data" : [ { "drilldown" : "001", @@ -26,12 +25,12 @@ }, { "drilldown" : "002", - "y" : 125, - "name" : "#002" + "name" : "#002", + "y" : 125 }, { - "name" : "#003", "drilldown" : "003", + "name" : "#003", "y" : 83 }, { @@ -40,54 +39,54 @@ "name" : "#004" }, { - "name" : "#005", "y" : 78, - "drilldown" : "005" + "drilldown" : "005", + "name" : "#005" }, { - "name" : "#006", + "drilldown" : "006", "y" : 58, - "drilldown" : "006" + "name" : "#006" }, { - "drilldown" : "007", "y" : 64, + "drilldown" : "007", "name" : "#007" }, { - "name" : "#008", "y" : 78, - "drilldown" : "008" + "drilldown" : "008", + "name" : "#008" }, { - "y" : 76, "drilldown" : "009", + "y" : 76, "name" : "#009" }, { + "name" : "#010", "drilldown" : "010", - "y" : 65, - "name" : "#010" + "y" : 65 }, { - "name" : "#011", + "y" : 85, "drilldown" : "011", - "y" : 85 + "name" : "#011" }, { + "name" : "#012", "drilldown" : "012", - "y" : 89, - "name" : "#012" + "y" : 89 }, { + "drilldown" : "013", "name" : "#013", - "y" : 85, - "drilldown" : "013" + "y" : 85 }, { - "name" : "#014", + "y" : 101, "drilldown" : "014", - "y" : 101 + "name" : "#014" }, { "name" : "#015", @@ -105,9 +104,9 @@ "name" : "#017" }, { - "name" : "#018", "drilldown" : "018", - "y" : 81 + "y" : 81, + "name" : "#018" }, { "drilldown" : "019", @@ -120,19 +119,19 @@ "name" : "#020" }, { - "name" : "#021", "drilldown" : "021", + "name" : "#021", "y" : 72 }, { - "drilldown" : "022", "y" : 68, + "drilldown" : "022", "name" : "#022" }, { - "y" : 97, + "name" : "#023", "drilldown" : "023", - "name" : "#023" + "y" : 97 }, { "name" : "#024", @@ -141,13 +140,13 @@ }, { "name" : "#025", - "y" : 59, - "drilldown" : "025" + "drilldown" : "025", + "y" : 59 }, { - "name" : "#026", "drilldown" : "026", - "y" : 74 + "y" : 74, + "name" : "#026" }, { "drilldown" : "027", @@ -155,9 +154,9 @@ "name" : "#027" }, { - "name" : "#028", + "y" : 82, "drilldown" : "028", - "y" : 82 + "name" : "#028" }, { "drilldown" : "029", @@ -165,18 +164,18 @@ "name" : "#029" }, { - "y" : 119, "drilldown" : "030", + "y" : 119, "name" : "#030" }, { - "y" : 91, + "name" : "#031", "drilldown" : "031", - "name" : "#031" + "y" : 91 }, { - "y" : 96, "drilldown" : "032", + "y" : 96, "name" : "#032" }, { @@ -185,34 +184,34 @@ "name" : "#033" }, { - "name" : "#034", "drilldown" : "034", + "name" : "#034", "y" : 66 }, { - "y" : 66, "drilldown" : "035", - "name" : "#035" + "name" : "#035", + "y" : 66 }, { - "name" : "#036", "drilldown" : "036", - "y" : 68 + "y" : 68, + "name" : "#036" }, { - "name" : "#037", + "y" : 67, "drilldown" : "037", - "y" : 67 + "name" : "#037" }, { - "y" : 68, "drilldown" : "038", + "y" : 68, "name" : "#038" }, { - "name" : "#039", + "y" : 62, "drilldown" : "039", - "y" : 62 + "name" : "#039" }, { "y" : 73, @@ -220,14 +219,14 @@ "name" : "#040" }, { - "name" : "#041", + "drilldown" : "041", "y" : 76, - "drilldown" : "041" + "name" : "#041" }, { + "name" : "#042", "drilldown" : "042", - "y" : 92, - "name" : "#042" + "y" : 92 }, { "y" : 68, @@ -240,9 +239,9 @@ "y" : 85 }, { - "y" : 96, "drilldown" : "045", - "name" : "#045" + "name" : "#045", + "y" : 96 }, { "y" : 87, @@ -251,8 +250,8 @@ }, { "name" : "#047", - "y" : 84, - "drilldown" : "047" + "drilldown" : "047", + "y" : 84 }, { "y" : 108, @@ -265,34 +264,34 @@ "name" : "#049" }, { - "name" : "#050", "drilldown" : "050", - "y" : 98 + "y" : 98, + "name" : "#050" }, { - "name" : "#051", + "drilldown" : "051", "y" : 89, - "drilldown" : "051" + "name" : "#051" }, { - "y" : 91, "drilldown" : "052", + "y" : 91, "name" : "#052" }, { "drilldown" : "053", - "y" : 101, - "name" : "#053" + "name" : "#053", + "y" : 101 }, { - "name" : "#054", + "y" : 103, "drilldown" : "054", - "y" : 103 + "name" : "#054" }, { + "name" : "#055", "drilldown" : "055", - "y" : 88, - "name" : "#055" + "y" : 88 }, { "name" : "#056", @@ -305,18 +304,18 @@ "y" : 80 }, { - "name" : "#058", + "drilldown" : "058", "y" : 69, - "drilldown" : "058" + "name" : "#058" }, { - "name" : "#059", "drilldown" : "059", - "y" : 89 + "y" : 89, + "name" : "#059" }, { - "drilldown" : "060", "y" : 85, + "drilldown" : "060", "name" : "#060" }, { @@ -325,34 +324,34 @@ "name" : "#061" }, { - "name" : "#062", "drilldown" : "062", - "y" : 58 + "y" : 58, + "name" : "#062" }, { - "y" : 89, + "name" : "#063", "drilldown" : "063", - "name" : "#063" + "y" : 89 }, { - "name" : "#064", + "drilldown" : "064", "y" : 80, - "drilldown" : "064" + "name" : "#064" }, { - "name" : "#065", + "drilldown" : "065", "y" : 73, - "drilldown" : "065" + "name" : "#065" }, { "drilldown" : "066", - "y" : 84, - "name" : "#066" + "name" : "#066", + "y" : 84 }, { "drilldown" : "067", - "y" : 90, - "name" : "#067" + "name" : "#067", + "y" : 90 }, { "drilldown" : "068", @@ -360,19 +359,19 @@ "name" : "#068" }, { - "drilldown" : "069", "y" : 83, + "drilldown" : "069", "name" : "#069" }, { - "name" : "#070", "drilldown" : "070", - "y" : 93 + "y" : 93, + "name" : "#070" }, { - "name" : "#071", + "y" : 78, "drilldown" : "071", - "y" : 78 + "name" : "#071" }, { "y" : 112, @@ -380,9 +379,9 @@ "name" : "#072" }, { - "name" : "#073", "drilldown" : "073", - "y" : 110 + "y" : 110, + "name" : "#073" }, { "name" : "#074", @@ -390,8 +389,8 @@ "y" : 115 }, { - "drilldown" : "075", "y" : 115, + "drilldown" : "075", "name" : "#075" }, { @@ -400,29 +399,29 @@ "y" : 101 }, { - "name" : "#077", "drilldown" : "077", + "name" : "#077", "y" : 98 }, { - "name" : "#078", + "y" : 127, "drilldown" : "078", - "y" : 127 + "name" : "#078" }, { - "y" : 122, + "name" : "#079", "drilldown" : "079", - "name" : "#079" + "y" : 122 }, { - "name" : "#080", "y" : 127, - "drilldown" : "080" + "drilldown" : "080", + "name" : "#080" }, { - "name" : "#081", "drilldown" : "081", - "y" : 114 + "y" : 114, + "name" : "#081" }, { "drilldown" : "082", @@ -430,24 +429,24 @@ "name" : "#082" }, { - "y" : 127, "drilldown" : "083", + "y" : 127, "name" : "#083" }, { - "name" : "#084", + "drilldown" : "084", "y" : 119, - "drilldown" : "084" + "name" : "#084" }, { - "y" : 114, "drilldown" : "085", - "name" : "#085" + "name" : "#085", + "y" : 114 }, { - "name" : "#086", "y" : 104, - "drilldown" : "086" + "drilldown" : "086", + "name" : "#086" }, { "name" : "#087", @@ -456,13 +455,13 @@ }, { "name" : "#088", - "y" : 121, - "drilldown" : "088" + "drilldown" : "088", + "y" : 121 }, { - "y" : 113, + "name" : "#089", "drilldown" : "089", - "name" : "#089" + "y" : 113 }, { "drilldown" : "090", @@ -480,19 +479,19 @@ "name" : "#092" }, { - "y" : 87, "drilldown" : "093", + "y" : 87, "name" : "#093" }, { - "name" : "#094", "drilldown" : "094", - "y" : 87 + "y" : 87, + "name" : "#094" }, { + "name" : "#095", "drilldown" : "095", - "y" : 108, - "name" : "#095" + "y" : 108 }, { "drilldown" : "096", @@ -505,19 +504,19 @@ "name" : "#097" }, { + "drilldown" : "098", "name" : "#098", - "y" : 108, - "drilldown" : "098" + "y" : 108 }, { - "y" : 97, "drilldown" : "099", - "name" : "#099" + "name" : "#099", + "y" : 97 }, { - "name" : "#100", "drilldown" : "100", - "y" : 120 + "y" : 120, + "name" : "#100" }, { "y" : 83, @@ -525,9 +524,9 @@ "name" : "#101" }, { - "name" : "#102", "drilldown" : "102", - "y" : 90 + "y" : 90, + "name" : "#102" }, { "y" : 79, @@ -540,14 +539,14 @@ "name" : "#104" }, { - "y" : 75, "drilldown" : "105", + "y" : 75, "name" : "#105" }, { + "name" : "#106", "drilldown" : "106", - "y" : 97, - "name" : "#106" + "y" : 97 }, { "y" : 90, @@ -561,13 +560,13 @@ }, { "drilldown" : "109", - "y" : 107, - "name" : "#109" + "name" : "#109", + "y" : 107 }, { - "name" : "#110", + "y" : 108, "drilldown" : "110", - "y" : 108 + "name" : "#110" }, { "name" : "#111", @@ -575,59 +574,59 @@ "y" : 91 }, { - "name" : "#112", "y" : 92, - "drilldown" : "112" + "drilldown" : "112", + "name" : "#112" }, { - "name" : "#113", + "drilldown" : "113", "y" : 92, - "drilldown" : "113" + "name" : "#113" }, { - "name" : "#114", "drilldown" : "114", - "y" : 108 + "y" : 108, + "name" : "#114" }, { - "name" : "#115", "drilldown" : "115", - "y" : 96 + "y" : 96, + "name" : "#115" }, { - "name" : "#116", + "drilldown" : "116", "y" : 95, - "drilldown" : "116" + "name" : "#116" }, { - "y" : 97, "drilldown" : "117", - "name" : "#117" + "name" : "#117", + "y" : 97 }, { - "name" : "#118", + "y" : 83, "drilldown" : "118", - "y" : 83 + "name" : "#118" }, { "name" : "#119", - "y" : 125, - "drilldown" : "119" + "drilldown" : "119", + "y" : 125 }, { - "y" : 116, + "name" : "#120", "drilldown" : "120", - "name" : "#120" + "y" : 116 }, { "name" : "#121", - "y" : 92, - "drilldown" : "121" + "drilldown" : "121", + "y" : 92 }, { - "name" : "#122", + "drilldown" : "122", "y" : 110, - "drilldown" : "122" + "name" : "#122" }, { "drilldown" : "123", @@ -640,19 +639,19 @@ "name" : "#124" }, { - "name" : "#125", "drilldown" : "125", - "y" : 63 + "y" : 63, + "name" : "#125" }, { - "name" : "#126", "drilldown" : "126", - "y" : 113 + "y" : 113, + "name" : "#126" }, { + "name" : "#127", "drilldown" : "127", - "y" : 110, - "name" : "#127" + "y" : 110 }, { "drilldown" : "128", @@ -660,39 +659,39 @@ "name" : "#128" }, { - "name" : "#129", "drilldown" : "129", - "y" : 50 + "y" : 50, + "name" : "#129" }, { - "name" : "#130", "drilldown" : "130", + "name" : "#130", "y" : 73 }, { - "y" : 91, "drilldown" : "131", - "name" : "#131" + "name" : "#131", + "y" : 91 }, { - "y" : 78, "drilldown" : "132", + "y" : 78, "name" : "#132" }, { - "name" : "#133", "y" : 95, - "drilldown" : "133" + "drilldown" : "133", + "name" : "#133" }, { - "y" : 94, "drilldown" : "134", + "y" : 94, "name" : "#134" }, { - "name" : "#135", "y" : 104, - "drilldown" : "135" + "drilldown" : "135", + "name" : "#135" }, { "y" : 95, @@ -700,28 +699,28 @@ "name" : "#136" }, { - "name" : "#137", + "drilldown" : "137", "y" : 100, - "drilldown" : "137" + "name" : "#137" }, { + "name" : "#138", "drilldown" : "138", - "y" : 100, - "name" : "#138" + "y" : 100 }, { - "drilldown" : "139", "y" : 97, + "drilldown" : "139", "name" : "#139" }, { + "name" : "#140", "drilldown" : "140", - "y" : 103, - "name" : "#140" + "y" : 103 }, { - "name" : "#141", "drilldown" : "141", + "name" : "#141", "y" : 100 }, { @@ -730,33 +729,27 @@ "name" : "#142" }, { - "y" : 79, + "name" : "#143", "drilldown" : "143", - "name" : "#143" + "y" : 79 }, { - "drilldown" : "144", "y" : 83, + "drilldown" : "144", "name" : "#144" }, { - "y" : 80, "drilldown" : "145", + "y" : 82, "name" : "#145" } - ] + ], + "colorByPoint" : "true", + "name" : "The Weekly Challenge Languages" } ], - "tooltip" : { - "followPointer" : "true", - "headerFormat" : "", - "pointFormat" : "Challenge {point.name}: {point.y:f}
" - }, "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2022-01-03 02:06:52 GMT" - }, - "title" : { - "text" : "The Weekly Challenge Language" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2022-01-03 02:20:19 GMT" }, "drilldown" : { "series" : [ @@ -779,7 +772,6 @@ ] }, { - "id" : "002", "data" : [ [ "Perl", @@ -794,7 +786,8 @@ 10 ] ], - "name" : "002" + "name" : "002", + "id" : "002" }, { "name" : "003", @@ -816,6 +809,7 @@ }, { "id" : "004", + "name" : "004", "data" : [ [ "Perl", @@ -829,11 +823,9 @@ "Blog", 10 ] - ], - "name" : "004" + ] }, { - "id" : "005", "data" : [ [ "Perl", @@ -848,10 +840,12 @@ 12 ] ], - "name" : "005" + "name" : "005", + "id" : "005" }, { "name" : "006", + "id" : "006", "data" : [ [ "Perl", @@ -865,8 +859,7 @@ "Blog", 7 ] - ], - "id" : "006" + ] }, { "data" : [ @@ -887,6 +880,8 @@ "name" : "007" }, { + "id" : "008", + "name" : "008", "data" : [ [ "Perl", @@ -900,12 +895,9 @@ "Blog", 12 ] - ], - "id" : "008", - "name" : "008" + ] }, { - "id" : "009", "data" : [ [ "Perl", @@ -920,10 +912,10 @@ 13 ] ], + "id" : "009", "name" : "009" }, { - "id" : "010", "data" : [ [ "Perl", @@ -938,6 +930,7 @@ 11 ] ], + "id" : "010", "name" : "010" }, { @@ -955,8 +948,8 @@ 10 ] ], - "id" : "011", - "name" : "011" + "name" : "011", + "id" : "011" }, { "data" : [ @@ -977,8 +970,8 @@ "name" : "012" }, { - "name" : "013", "id" : "013", + "name" : "013", "data" : [ [ "Perl", @@ -995,8 +988,8 @@ ] }, { - "name" : "014", "id" : "014", + "name" : "014", "data" : [ [ "Perl", @@ -1013,7 +1006,6 @@ ] }, { - "name" : "015", "data" : [ [ "Perl", @@ -1028,6 +1020,7 @@ 15 ] ], + "name" : "015", "id" : "015" }, { @@ -1050,6 +1043,7 @@ }, { "name" : "017", + "id" : "017", "data" : [ [ "Perl", @@ -1063,11 +1057,11 @@ "Blog", 12 ] - ], - "id" : "017" + ] }, { "name" : "018", + "id" : "018", "data" : [ [ "Perl", @@ -1081,11 +1075,9 @@ "Blog", 14 ] - ], - "id" : "018" + ] }, { - "id" : "019", "data" : [ [ "Perl", @@ -1100,9 +1092,11 @@ 13 ] ], + "id" : "019", "name" : "019" }, { + "id" : "020", "name" : "020", "data" : [ [ @@ -1117,11 +1111,11 @@ "Blog", 13 ] - ], - "id" : "020" + ] }, { "name" : "021", + "id" : "021", "data" : [ [ "Perl", @@ -1135,12 +1129,9 @@ "Blog", 10 ] - ], - "id" : "021" + ] }, { - "name" : "022", - "id" : "022", "data" : [ [ "Perl", @@ -1154,9 +1145,13 @@ "Blog", 10 ] - ] + ], + "id" : "022", + "name" : "022" }, { + "name" : "023", + "id" : "023", "data" : [ [ "Perl", @@ -1170,12 +1165,9 @@