aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2019-12-29 23:55:12 +0000
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2019-12-29 23:55:12 +0000
commit21427ef274b3ba8402af632acc8858dd828c15d0 (patch)
tree5d7fdcc7c8bcdf8f211dc8a6ccc23448c1d28370
parent67ea9e1ec5b4acf3729ad8d8d737a67900c1bce8 (diff)
downloadperlweeklychallenge-club-21427ef274b3ba8402af632acc8858dd828c15d0.tar.gz
perlweeklychallenge-club-21427ef274b3ba8402af632acc8858dd828c15d0.tar.bz2
perlweeklychallenge-club-21427ef274b3ba8402af632acc8858dd828c15d0.zip
- Added solutions by Colin Crain.
-rw-r--r--challenge-040/colin-crain/perl5/ch-1.pl148
-rw-r--r--challenge-040/colin-crain/perl5/ch-2.pl73
-rw-r--r--challenge-040/colin-crain/perl6/ch-1.p657
-rw-r--r--challenge-040/colin-crain/perl6/ch-2.p663
-rw-r--r--stats/pwc-current.json323
-rw-r--r--stats/pwc-language-breakdown-summary.json70
-rw-r--r--stats/pwc-language-breakdown.json328
-rw-r--r--stats/pwc-leaders.json970
-rw-r--r--stats/pwc-summary-1-30.json48
-rw-r--r--stats/pwc-summary-121-150.json38
-rw-r--r--stats/pwc-summary-31-60.json52
-rw-r--r--stats/pwc-summary-61-90.json40
-rw-r--r--stats/pwc-summary-91-120.json94
-rw-r--r--stats/pwc-summary.json324
14 files changed, 1496 insertions, 1132 deletions
diff --git a/challenge-040/colin-crain/perl5/ch-1.pl b/challenge-040/colin-crain/perl5/ch-1.pl
new file mode 100644
index 0000000000..e4c331309b
--- /dev/null
+++ b/challenge-040/colin-crain/perl5/ch-1.pl
@@ -0,0 +1,148 @@
+#! /opt/local/bin/perl
+#
+# ch-1.pl
+#
+# PWC 40 - TASK #1
+# Show multiple arrays content
+# You are given two or more arrays. Write a script to display values of each list at a given index.
+#
+# For example:
+#
+# Array 1: [ I L O V E Y O U ]
+# Array 2: [ 2 4 0 3 2 0 1 9 ]
+# Array 3: [ ! ? £ $ % ^ & * ]
+# We expect the following output:
+#
+# I 2 !
+# L 4 ?
+# O 0 £
+# V 3 $
+# E 2 %
+# Y 0 ^
+# O 1 &
+# U 9 *
+#
+# method: So, the request here is for a Haskell-like,
+# functional-programming-style "list convolution" function,
+# interleaving multiple lists into one aggregate list of lists. This
+# type of function, combining multiple lists into single, aggregate
+# list of tuples by index, is usually called zip. Right out of the
+# gate we need to mention about List::MoreUtils, which has a zip
+# function that does this. Or perhaps not, because we have no
+# intention of using it. Not today, zip, not today. But you should
+# know it's there, along with cousins and variants. On that subject,
+# Haskell, requiring as it does rather explicit definition to offer
+# it's mathematical proof-like certainty in action, has different
+# functions to zip differing numbers of lists, with zip, zip2, zip3
+# all the way to zip7. In perl we can generalize more, and our
+# version will take as many arrays as offered.
+#
+# Another question is what to do with differing list lengths, as we can
+# either provide a list of well-defined lists limited to the length of
+# the shortest input, and toss any indexes that can't be completely
+# interleaved, or insert data, even if that data is undef, and fill out
+# the shorter lists to fit the longest. Haskell chooses the former idea,
+# as does perl6. Did we mention Raku? Well it too has a zip function, by
+# the way, like Haskell, built right in. One might even say the ideas
+# are functionally related. See what I did there? Although in Raku one
+# single function can handle any number of input lists to merge; it also
+# has an infix binary Z operator which is pretty nest and can be chained
+# to zip multiple lists. I believe List::MoreUtils::zip takes the latter choice,
+# and will make sure every bit of data in each of the input lists will
+# end up somewhere in the result, null padding the resultant lists with
+# undefs as required.
+#
+# There really is no obvious right and wrong in either approach, as
+# one removes data and the the other changes the lengths of shorter
+# lists, which while subtle as it is could easily be construed as
+# corruption. Because any list element can be undefined, a list with
+# additional trailing undefs is not really the same list as one
+# without, is it? Or put another way, the action of interleaving the
+# lists is no longer reversible, as we can no longer distinguish
+# between a short list whose last element is undef and and one that
+# has been extended to create indices to interleave.
+
+# Then again the same can be said for truncated lists, but in that
+# case the action of truncation is well defined with respect to the
+# data we retain. We can reverse the process, and know for certain
+# that the lists we produce will accurately reflect the data in the
+# originals, even should one of those lists have undef for a trailing
+# element. But we won't know whether there were any lists truncated,
+# or any information about any missing elements. In the end the only
+# way to make the call as to right and wrong is for which behavior is
+# required, or matters. You, perhaps your language and your data can
+# be the only judge.
+#
+# The lists to be interleaved will be provided as array references,
+# the output will be a list of lists, or rather a reference to an
+# array of array references.
+#
+# I think the well defined version is obviously safer, but have
+# included an undef padded alternate for the brave, the foolish and
+# data horders who just won't ever throw away anything, because you
+# never know. I do that a lot, so I should know.
+#
+# 2019 colin crain
+## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
+
+
+# use warnings;
+use strict;
+use feature ":5.26";
+
+use Data::Dumper;
+## ## ## ## ## MAIN
+
+## the given data:
+my $a = ["I", "L", "O", "V", "E", "Y", "O", "U"];
+my $b = [ 2, 4, 0, 3, 2, 0, 1, 9 ];
+my $c = ['!', '?', '£', '$', '%', '^', '&', '*'];
+
+## add an element to @a to show truncation
+push $a->@*, 'X';
+
+my $zipped = zip( $a, $b, $c );
+
+for my $list ( $zipped->@* ) {
+ say join ' ', $list->@*;
+}
+
+say '=' x 25;
+
+## add more elements to @a to show the new behavior
+push $a->@*, ('X') x 2, ('O') x 3;
+
+my $zipped_undef = zip_undef( $a, $b, $c );
+
+for my $list ( $zipped_undef->@* ) {
+ say join ' ', $list->@*;
+}
+
+## ## ## ## ## SUBS
+
+sub zip {
+## interleaves into a list of lists, with an index for every element in the shortest input list
+## longer lists will be truncated and the data unused
+ my @output;
+ my $shortest = (sort {$b <=> $a} map {scalar($_->@*)} @_)[0];
+ for my $list ( @_ ){
+ for my $idx (0..$shortest-1) {
+ push $output[$idx]->@*, $list->[$idx];
+ }
+ }
+ return \@output;
+}
+
+sub zip_undef {
+## interleaves into a list of lists, with an index for every element in the longest input list
+## shorter lists will be null padded with undefs to fit
+ my @output;
+ my $longest = ( sort {$a <=> $b} map {scalar($_->@*)} @_)[0];
+
+ for my $list ( @_ ){
+ for my $idx (0..$longest-1) {
+ push $output[$idx]->@*, $list->[$idx]; ## this will autovivate undef elements as required
+ }
+ }
+ return \@output;
+}
diff --git a/challenge-040/colin-crain/perl5/ch-2.pl b/challenge-040/colin-crain/perl5/ch-2.pl
new file mode 100644
index 0000000000..4cbe0ea2c2
--- /dev/null
+++ b/challenge-040/colin-crain/perl5/ch-2.pl
@@ -0,0 +1,73 @@
+#! /opt/local/bin/perl
+#
+# subsort.pl
+#
+# PWC 40 - TASK #2
+# Sort SubList
+# You are given a list of numbers and set of indices belong to the
+# list. Write a script to sort the values belongs to the indices.
+#
+# For example,
+#
+# List: [ 10, 4, 1, 8, 12, 3 ]
+# Indices: 0,2,5
+# We would sort the values at indices 0, 2 and 5 i.e. 10, 1 and 3.
+#
+# Final List would look like below:
+#
+# List: [ 1, 4, 3, 8, 12, 10 ]
+#
+# method: Another puzzle from the list-processsing world! But like many
+# confusing data structure problems, the answer reveals itself by
+# first figuring out what the real question is. As such, this is
+# dispatched in what amounts to two lines of code: in the first line
+# we get the values at the indices specified from the original list
+# and sort them; in the second line we alter the original list in
+# place using the splice function, shifting our sorted values off
+# one by one as we iterate through the specifying indices.
+#
+# One point of possible confusion in this challenge is the use of the
+# word "set" in the specification of the indices, rather than "list".
+# In mathematics set theory decribes the behavior of collections of
+# items that either do or do not belong to a set; the order of the
+# items is not normally considered. As such it will be understood that
+# the sorted elements will be defined by the given indices taken as a
+# whole, irrespective of the order those elements are delivered. By
+# first sorting the list of indices we establish that the insertions
+# into the master list will be made in a well defined, increasing
+# order, synchronized with our list of sorted elements.
+#
+# The indices will be assumed to be numbers, the main elements will
+# be sorted first numerically, then semantically if applicable.
+#
+#
+# 2019 colin crain
+## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
+
+
+
+use warnings;
+use strict;
+use feature ":5.26";
+
+## ## ## ## ## MAIN
+
+my $list = [ 10, 4, 1, 8, 12, 3 ];
+my $indices = [ 0, 5, 2 ];
+
+## presort the index set to make an ordered list from low to high
+my @indices = sort { $a <=> $b } $indices->@*;
+
+# OUTPUT
+#
+say "prechange list : [ ", (join ', ', $list->@*), " ]";
+
+## we get the values at the indices specified from the original list and sort
+my @sorted = sort {$a <=> $b || $a cmp $b } map { $list->[$_] } @indices;
+
+## reinsert the sorted data
+splice( $list->@*, $_, 1, shift @sorted ) for @indices ;
+
+# OUTPUT
+#
+say "postchange list : [ ", (join ', ', $list->@*), " ]";
diff --git a/challenge-040/colin-crain/perl6/ch-1.p6 b/challenge-040/colin-crain/perl6/ch-1.p6
new file mode 100644
index 0000000000..a41dd552b9
--- /dev/null
+++ b/challenge-040/colin-crain/perl6/ch-1.p6
@@ -0,0 +1,57 @@
+use v6;
+
+# ch-1.p6
+#
+# PWC 40 - TASK #1
+# Show multiple arrays content
+# You are given two or more arrays. Write a script to display values of each list at a given index.
+#
+# For example:
+#
+# Array 1: [ I L O V E Y O U ]
+# Array 2: [ 2 4 0 3 2 0 1 9 ]
+# Array 3: [ ! ? £ $ % ^ & * ]
+# We expect the following output:
+#
+# I 2 !
+# L 4 ?
+# O 0 £
+# V 3 $
+# E 2 %
+# Y 0 ^
+# O 1 &
+# U 9 *
+#
+# method: there's more than one way to do it, of course. In Raku there's even a
+# choice of built-in zip operators available, the function zip() and
+# the infix Z metaoperator. The Z metaoperator can be used here without its
+# metaprocessing ability, which isn't necessary to just gather the
+# elements. An example of the metaoperator, zipping (Z) with string
+# concatenation (~) -> (Z~) is given as well. Note this makes a new string
+# rather than a list.
+#
+# 2019 colin crain
+#
+## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
+
+my @a = <I L O V E Y O U>;
+my @b = 2, 4, 0, 3, 2, 0, 1, 9;
+my @c = <! ? £ $ % ^ & *>;
+
+
+my @zipzip = zip @a, @b, @c;
+my @zipZ = @a Z @b Z @c;
+my @zipConcat = @a Z~ @b Z~ @c;
+
+
+for @zipzip -> @list {
+ say join ' ', @list;
+}
+say '=' x 25;
+
+for @zipZ -> @list {
+ say join ' ', @list;
+}
+say '=' x 25;
+
+$_.say for @zipConcat;
diff --git a/challenge-040/colin-crain/perl6/ch-2.p6 b/challenge-040/colin-crain/perl6/ch-2.p6
new file mode 100644
index 0000000000..370a544612
--- /dev/null
+++ b/challenge-040/colin-crain/perl6/ch-2.p6
@@ -0,0 +1,63 @@
+use v6;
+
+#
+# ch-2.p6
+#
+# PWC 40 - TASK #2
+# Sort SubList
+# You are given a list of numbers and set of indices belong to the
+# list. Write a script to sort the values belongs to the indices.
+#
+# For example,
+#
+# List: [ 10, 4, 1, 8, 12, 3 ]
+# Indices: 0,2,5
+# We would sort the values at indices 0, 2 and 5 i.e. 10, 1 and 3.
+#
+# Final List would look like below:
+#
+# List: [ 1, 4, 3, 8, 12, 10 ]
+#
+# method: this is a straightforward port of my perl 5 solution: like many
+# confusing data structure problems, the answer reveals itself by
+# first figuring out what the real question is. As such, this is
+# dispatched in what amounts to two lines of code: in the first line
+# we get the values at the indices specified from the original list
+# and sort them; in the second line we alter the original list in
+# place using the splice function, shifting our sorted values off one
+# by one as we iterate through the specifying indices.
+#
+# One point of possible confusion in this challenge is the use of the
+# word "set" in the specification of the indices, rather than "list".
+# In mathematics set theory decribes the behavior of collections of
+# items that either do or do not belong to a set; the order of the
+# items is not normally considered. As such it will be understood that
+# the sorted elements will be defined by the given indices taken as a
+# whole, irrespective of the order those elements are delivered. By
+# first sorting the list of indices we establish that the insertions
+# into the master list will be made in a well defined, increasing
+# order, synchronized with our list of sorted elements.
+#
+#
+# 2019 colin crain
+## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
+
+sub MAIN {
+
+ my @list = (10, 4, 1, 8, 12, 3);
+ my @indices = (0, 5, 2);
+
+ ## presort the index set in place to make an ordered list from low to high
+ @indices .= sort;
+
+ say "prechange list : [ ", (join ', ', @list), " ]";
+
+ ## we get the values at the indices specified from the original list and sort
+ my @sorted = (map { @list[$_] }, @indices ).sort;
+
+ ## reinsert the sorted data
+ @list.splice( $_, 1, @sorted.shift) for @indices;
+
+ say "postchange list : [ ", (join ', ', @list), " ]";
+
+}
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index 57207927c7..cbab314b12 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,133 +1,12 @@
{
- "series" : [
- {
- "data" : [
- {
- "name" : "Adam Russell",
- "drilldown" : "Adam Russell",
- "y" : 3
- },
- {
- "name" : "Andrezgz",
- "drilldown" : "Andrezgz",
- "y" : 2
- },
- {
- "name" : "Anton Fedotov",
- "drilldown" : "Anton Fedotov",
- "y" : 2
- },
- {
- "y" : 3,
- "drilldown" : "Arne Sommer",
- "name" : "Arne Sommer"
- },
- {
- "name" : "Burkhard Nickels",
- "y" : 5,
- "drilldown" : "Burkhard Nickels"
- },
- {
- "name" : "Duane Powell",
- "y" : 2,
- "drilldown" : "Duane Powell"
- },
- {
- "name" : "Duncan C. White",
- "y" : 2,
- "drilldown" : "Duncan C. White"
- },
- {
- "drilldown" : "E. Choroba",
- "y" : 3,
- "name" : "E. Choroba"
- },
- {
- "name" : "Javier Luque",
- "y" : 5,
- "drilldown" : "Javier Luque"
- },
- {
- "y" : 5,
- "drilldown" : "Laurent Rosenfeld",
- "name" : "Laurent Rosenfeld"
- },
- {
- "name" : "Lubos Kolouch",
- "y" : 2,
- "drilldown" : "Lubos Kolouch"
- },
- {
- "drilldown" : "Noud",
- "y" : 2,
- "name" : "Noud"
- },
- {
- "name" : "Roger Bell West",
- "y" : 4,
- "drilldown" : "Roger Bell West"
- },
- {
- "name" : "Ruben Westerberg",
- "drilldown" : "Ruben Westerberg",
- "y" : 4
- },
- {
- "y" : 5,
- "drilldown" : "Ryan Thompson",
- "name" : "Ryan Thompson"
- },
- {
- "drilldown" : "Saif Ahmed",
- "y" : 2,
- "name" : "Saif Ahmed"
- },
- {
- "y" : 2,
- "drilldown" : "Simon Proctor",
- "name" : "Simon Proctor"
- },
- {
- "name" : "Steven Wilson",
- "drilldown" : "Steven Wilson",
- "y" : 2
- },
- {
- "drilldown" : "Ulrich Rieke",
- "y" : 2,
- "name" : "Ulrich Rieke"
- },
- {
- "drilldown" : "Wanderdoc",
- "y" : 2,
- "name" : "Wanderdoc"
- }
- ],
- "name" : "Perl Weekly Challenge - 040",
- "colorByPoint" : 1
- }
- ],
- "subtitle" : {
- "text" : "[Champions: 20] Last updated at 2019-12-29 23:24:26 GMT"
- },
- "legend" : {
- "enabled" : 0
- },
- "chart" : {
- "type" : "column"
- },
- "xAxis" : {
- "type" : "category"
- },
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
+ "title" : {
+ "text" : "Perl Weekly Challenge - 040"
},
"drilldown" : {
"series" : [
{
"id" : "Adam Russell",
+ "name" : "Adam Russell",
"data" : [
[
"Perl 5",
@@ -137,8 +16,7 @@
"Blog",
1
]
- ],
- "name" : "Adam Russell"
+ ]
},
{
"id" : "Andrezgz",
@@ -197,6 +75,20 @@
[
"Perl 5",
2
+ ],
+ [
+ "Perl 6",
+ 2
+ ]
+ ],
+ "name" : "Colin Crain",
+ "id" : "Colin Crain"
+ },
+ {
+ "data" : [
+ [
+ "Perl 5",
+ 2
]
],
"name" : "Duane Powell",
@@ -213,7 +105,6 @@
"id" : "Duncan C. White"
},
{
- "id" : "E. Choroba",
"name" : "E. Choroba",
"data" : [
[
@@ -224,10 +115,10 @@
"Blog",
1
]
- ]
+ ],
+ "id" : "E. Choroba"
},
{
- "id" : "Javier Luque",
"name" : "Javier Luque",
"data" : [
[
@@ -242,10 +133,12 @@
"Blog",
1
]
- ]
+ ],
+ "id" : "Javier Luque"
},
{
"id" : "Laurent Rosenfeld",
+ "name" : "Laurent Rosenfeld",
"data" : [
[
"Perl 5",
@@ -259,18 +152,17 @@
"Blog",
1
]
- ],
- "name" : "Laurent Rosenfeld"
+ ]
},
{
- "id" : "Lubos Kolouch",
- "name" : "Lubos Kolouch",
"data" : [
[
"Perl 5",
2
]
- ]
+ ],
+ "name" : "Lubos Kolouch",
+ "id" : "Lubos Kolouch"
},
{
"id" : "Noud",
@@ -283,7 +175,6 @@
"name" : "Noud"
},
{
- "name" : "Roger Bell West",
"data" : [
[
"Perl 5",
@@ -294,6 +185,7 @@
2
]
],
+ "name" : "Roger Bell West",
"id" : "Roger Bell West"
},
{
@@ -311,7 +203,7 @@
]
},
{
- "name" : "Ryan Thompson",
+ "id" : "Ryan Thompson",
"data" : [
[
"Perl 5",
@@ -326,60 +218,187 @@
1
]
],
- "id" : "Ryan Thompson"
+ "name" : "Ryan Thompson"
},
{
+ "name" : "Saif Ahmed",
"data" : [
[
"Perl 5",
2
]
],
- "name" : "Saif Ahmed",
"id" : "Saif Ahmed"
},
{
+ "id" : "Simon Proctor",
"name" : "Simon Proctor",
"data" : [
[
"Perl 6",
2
]
- ],
- "id" : "Simon Proctor"
+ ]
},
{
+ "id" : "Steven Wilson",
+ "name" : "Steven Wilson",
"data" : [
[
"Perl 5",
2
]
- ],
- "name" : "Steven Wilson",
- "id" : "Steven Wilson"
+ ]
},
{
"id" : "Ulrich Rieke",
- "name" : "Ulrich Rieke",
"data" : [
[
"Perl 5",
2
]
- ]
+ ],
+ "name" : "Ulrich Rieke"
},
{
- "id" : "Wanderdoc",
+ "name" : "Wanderdoc",
"data" : [
[
"Perl 5",
2
]
],
- "name" : "Wanderdoc"
+ "id" : "Wanderdoc"
}
]
},
+ "subtitle" : {
+ "text" : "[Champions: 21] Last updated at 2019-12-29 23:54:55 GMT"
+ },
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
+ },
+ "chart" : {
+ "type" : "column"
+ },
+ "xAxis" : {
+ "type" : "category"
+ },
+ "series" : [
+ {
+ "name" : "Perl Weekly Challenge - 040",
+ "colorByPoint" : 1,
+ "data" : [
+ {
+ "y" : 3,
+ "drilldown" : "Adam Russell",
+ "name" : "Adam Russell"
+ },
+ {
+ "drilldown" : "Andrezgz",
+ "name" : "Andrezgz",
+ "y" : 2
+ },
+ {
+ "name" : "Anton Fedotov",
+ "drilldown" : "Anton Fedotov",
+ "y" : 2
+ },
+ {
+ "y" : 3,
+ "drilldown" : "Arne Sommer",
+ "name" : "Arne Sommer"
+ },
+ {
+ "y" : 5,
+ "drilldown" : "Burkhard Nickels",
+ "name" : "Burkhard Nickels"
+ },
+ {
+ "y" : 4,
+ "name" : "Colin Crain",
+ "drilldown" : "Colin Crain"
+ },
+ {
+ "y" : 2,
+ "drilldown" : "Duane Powell",
+ "name" : "Duane Powell"
+ },
+ {
+ "drilldown" : "Duncan C. White",
+ "name" : "Duncan C. White",
+ "y" : 2
+ },
+ {
+ "name" : "E. Choroba",
+ "drilldown" : "E. Choroba",
+ "y" : 3
+ },
+ {
+ "drilldown" : "Javier Luque",
+ "name" : "Javier Luque",
+ "y" : 5
+ },
+ {
+ "name" : "Laurent Rosenfeld",
+ "drilldown" : "Laurent Rosenfeld",
+ "y" : 5
+ },
+ {
+ "y" : 2,
+ "name" : "Lubos Kolouch",
+ "drilldown" : "Lubos Kolouch"
+ },
+ {
+ "y" : 2,
+ "drilldown" : "Noud",
+ "name" : "Noud"
+ },
+ {
+ "name" : "Roger Bell West",
+ "drilldown" : "Roger Bell West",
+ "y" : 4
+ },
+ {
+ "name" : "Ruben Westerberg",
+ "drilldown" : "Ruben Westerberg",
+ "y" : 4
+ },
+ {
+ "drilldown" : "Ryan Thompson",
+ "name" : "Ryan Thompson",
+ "y" : 5
+ },
+ {
+ "name" : "Saif Ahmed",
+ "drilldown" : "Saif Ahmed",
+ "y" : 2
+ },
+ {
+ "y" : 2,
+ "drilldown" : "Simon Proctor",
+ "name" : "Simon Proctor"
+ },
+ {
+ "drilldown" : "Steven Wilson",
+ "name" : "Steven Wilson",
+ "y" : 2
+ },
+ {
+ "y" : 2,
+ "name" : "Ulrich Rieke",
+ "drilldown" : "Ulrich Rieke"
+ },
+ {
+ "y" : 2,
+ "name" : "Wanderdoc",
+ "drilldown" : "Wanderdoc"
+ }
+ ]
+ }
+ ],
"plotOptions" : {
"series" : {
"borderWidth" : 0,
@@ -389,12 +408,12 @@
}
}
},
- "title" : {
- "text" : "Perl Weekly Challenge - 040"
+ "legend" : {
+ "enabled" : 0
},
"tooltip" : {
- "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>",
+ "followPointer" : 1,
"pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>",
- "followPointer" : 1
+ "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>"
}
}
diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json
index 1f312005a7..b7209fcc2c 100644
--- a/stats/pwc-language-breakdown-summary.json
+++ b/stats/pwc-language-breakdown-summary.json
@@ -1,28 +1,21 @@
{
- "legend" : {
- "enabled" : "false"
- },
"yAxis" : {
- "min" : 0,
"title" : {
"text" : null
- }
+ },
+ "min" : 0
+ },
+ "legend" : {
+ "enabled" : "false"
+ },
+ "title" : {
+ "text" : "Perl Weekly Challenge Contributions - 2019"
+ },
+ "chart" : {
+ "type" : "column"
},
"series" : [
{
- "name" : "Contributions",
- "dataLabels" : {
- "color" : "#FFFFFF",
- "y" : 10,
- "style" : {
- "fontFamily" : "Verdana, sans-serif",
- "fontSize" : "13px"
- },
- "enabled" : "true",
- "rotation" : -90,
- "align" : "right",
- "format" : "{point.y:.0f}"
- },
"data" : [
[
"Blog",
@@ -30,34 +23,41 @@
],
[
"Perl 5",
- 1651
+ 1653
],
[
"Perl 6",
- 990
+ 992
]
- ]
+ ],
+ "name" : "Contributions",
+ "dataLabels" : {
+ "enabled" : "true",
+ "style" : {
+ "fontFamily" : "Verdana, sans-serif",
+ "fontSize" : "13px"
+ },
+ "color" : "#FFFFFF",
+ "align" : "right",
+ "rotation" : -90,
+ "y" : 10,
+ "format" : "{point.y:.0f}"
+ }
}
],
"subtitle" : {
- "text" : "Last updated at 2019-12-29 23:25:19 GMT"
+ "text" : "Last updated at 2019-12-29 23:55:07 GMT"
+ },
+ "tooltip" : {
+ "pointFormat" : "<b>{point.y:.0f}</b>"
},
"xAxis" : {
- "type" : "category",
"labels" : {
"style" : {
- "fontSize" : "13px",
- "fontFamily" : "Verdana, sans-serif"
+ "fontFamily" : "Verdana, sans-serif",
+ "fontSize" : "13px"
}
- }
- },
- "chart" : {
- "type" : "column"
- },
- "tooltip" : {
- "pointFormat" : "<b>{point.y:.0f}</b>"
- },
- "title" : {
- "text" : "Perl Weekly Challenge Contributions - 2019"
+ },
+ "type" : "category"
}
}
diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json
index 8b2047789e..50a833452e 100644
--- a/stats/pwc-language-breakdown.json
+++ b/stats/pwc-language-breakdown.json
@@ -1,13 +1,35 @@
{
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
+ },
+ "plotOptions" : {
+ "series" : {
+ "dataLabels" : {
+ "format" : "{point.y}",
+ "enabled" : 1
+ },
+ "borderWidth" : 0
+ }
+ },
+ "legend" : {
+ "enabled" : "false"
+ },
+ "chart" : {
+ "type" : "column"
+ },
+ "title" : {
+ "text" : "Perl Weekly Challenge Language"
+ },
"series" : [
{
"name" : "Perl Weekly Challenge Languages",
- "colorByPoint" : "true",
"data" : [
{
- "name" : "#001",
+ "drilldown" : "001",
"y" : 140,
- "drilldown" : "001"
+ "name" : "#001"
},
{
"name" : "#002",
@@ -16,48 +38,48 @@
},
{
"drilldown" : "003",
- "name" : "#003",
- "y" : 71
+ "