aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2019-07-04 12:04:27 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2019-07-04 12:04:27 +0100
commit99f6b977f6f03f41287a1935a063bac12329c862 (patch)
tree33f66a4a0744ec6bb890f6ba79ce1fa4b37e1088
parent3758c6f750d87aa18ee2d8278241bbbda10afa6b (diff)
downloadperlweeklychallenge-club-99f6b977f6f03f41287a1935a063bac12329c862.tar.gz
perlweeklychallenge-club-99f6b977f6f03f41287a1935a063bac12329c862.tar.bz2
perlweeklychallenge-club-99f6b977f6f03f41287a1935a063bac12329c862.zip
- Added solutions by Laurent Rosenfeld.
-rw-r--r--challenge-015/laurent-rosenfeld/blog.txt1
-rw-r--r--challenge-015/laurent-rosenfeld/perl5/ch-1.pl19
-rw-r--r--challenge-015/laurent-rosenfeld/perl5/ch-2.pl75
-rw-r--r--challenge-015/laurent-rosenfeld/perl6/ch-1.p69
-rw-r--r--challenge-015/laurent-rosenfeld/perl6/ch-1a.p67
-rw-r--r--challenge-015/laurent-rosenfeld/perl6/ch-1b.p612
-rw-r--r--challenge-015/laurent-rosenfeld/perl6/ch-2.p660
-rw-r--r--stats/pwc-current.json271
-rw-r--r--stats/pwc-language-breakdown-summary.json54
-rw-r--r--stats/pwc-language-breakdown.json266
-rw-r--r--stats/pwc-leaders.json504
-rw-r--r--stats/pwc-summary-1-30.json102
-rw-r--r--stats/pwc-summary-31-60.json30
-rw-r--r--stats/pwc-summary-61-90.json42
-rw-r--r--stats/pwc-summary-91-120.json38
-rw-r--r--stats/pwc-summary.json56
16 files changed, 876 insertions, 670 deletions
diff --git a/challenge-015/laurent-rosenfeld/blog.txt b/challenge-015/laurent-rosenfeld/blog.txt
new file mode 100644
index 0000000000..5401950ccc
--- /dev/null
+++ b/challenge-015/laurent-rosenfeld/blog.txt
@@ -0,0 +1 @@
+http://blogs.perl.org/users/laurent_r/2019/07/perl-weekly-challenge-15-strong-and-weak-primes-and-vigenere-encryption.html
diff --git a/challenge-015/laurent-rosenfeld/perl5/ch-1.pl b/challenge-015/laurent-rosenfeld/perl5/ch-1.pl
new file mode 100644
index 0000000000..975b168713
--- /dev/null
+++ b/challenge-015/laurent-rosenfeld/perl5/ch-1.pl
@@ -0,0 +1,19 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use feature qw/say/;
+
+sub is_prime{
+ my $num = shift;
+ for my $i (2 .. $num ** .5) {
+ return 0 if $num % $i == 0;
+ }
+ return 1;
+}
+my @p = grep is_prime($_), 1..105;
+my @strong = map $p[$_],
+ grep { $p[$_] - $p[$_-1] > $p[$_+1] - $p[$_] } 1..25;
+my @weak = map $p[$_],
+ grep { $p[$_] - $p[$_-1] < $p[$_+1] - $p[$_] } 1..25;
+say "Strong: @strong[0..9]";
+say "Weak: @weak[0..9]";
diff --git a/challenge-015/laurent-rosenfeld/perl5/ch-2.pl b/challenge-015/laurent-rosenfeld/perl5/ch-2.pl
new file mode 100644
index 0000000000..1b6943df2e
--- /dev/null
+++ b/challenge-015/laurent-rosenfeld/perl5/ch-2.pl
@@ -0,0 +1,75 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use feature qw/say/;
+
+
+sub create_code {
+ # Converts password to a list of numeric codes
+ # where 'a' corresponds to a shift of 1, etc.
+ my $passwd = shift;
+ return map { ord($_) - ord('a') + 1 } split //, $passwd;
+}
+sub rotate_one_letter {
+ # Converts a single letter and deals with cases where
+ # applying the shift would get the result out of range
+ my ($letter, $shift) = @_;
+ my $max = 255;
+ my $shifted = $shift + ord $letter;
+ $shifted = $shifted > $max ? $shifted - $max :
+ $shifted < 0 ? $shifted + $max :
+ $shifted;
+ return chr $shifted;
+}
+sub rotate_msg {
+ # calls rotate-one-letter for each letter of the input message
+ # and passes the right shift value for that letter
+ my ($msg, @code) = @_;
+ my $i = 0;
+ my $result = "";
+ for my $letter (split //, $msg) {
+ my $shift = $code[$i];
+ $result .= rotate_one_letter $letter, $shift;
+ $i++;
+ $i = 0 if $i >= @code;
+ }
+ return $result;
+}
+sub encode {
+ my ($message, @key) = @_;
+ rotate_msg $message, @key;
+}
+sub decode {
+ my ($message, @key) = @_;
+ my @back_key = map {- $_} @key;
+ rotate_msg $message, @back_key;
+}
+sub run_tests {
+ use Test::More; # Minimal tests for providing an example
+ plan tests => 6; # needed on a separate code line to avoid
+ # useless output when not running the tests
+ my $code = join "", create_code("abcde");
+ is $code, 12345, "Testing create_code";
+ my @c = create_code "password";
+ for my $word ( qw/foo bar hello world/) {
+ is decode( encode($word, @c), @c), $word,
+ "Round trip for $word";
+ }
+ my $msg = "One small step for man, one giant leap for mankind!";
+ my $ciphertext = encode $msg, @c;
+ is decode($ciphertext, @c), $msg,
+ "Message with spaces and punctuation";
+}
+
+
+if (@ARGV == 1 and $ARGV[0] eq "test") {
+ run_tests;
+} elsif ( @ARGV == 2) {
+ my ($message, $password) = @ARGV;
+ my @code = create_code $password;
+ my $ciphertext = encode $message, @code;
+ say "Encoded cyphertext: $ciphertext";
+ say "Roundtrip to decoded message: ", decode $ciphertext, @code;
+} else {
+ say "Wrong arguments";
+}
diff --git a/challenge-015/laurent-rosenfeld/perl6/ch-1.p6 b/challenge-015/laurent-rosenfeld/perl6/ch-1.p6
new file mode 100644
index 0000000000..ed544b5d08
--- /dev/null
+++ b/challenge-015/laurent-rosenfeld/perl6/ch-1.p6
@@ -0,0 +1,9 @@
+use v6;
+
+my @p = grep { .is-prime }, 1..*; #Lazy infinite list of primes
+my @strong = map { @p[$_] },
+ grep { @p[$_] > (@p[$_ - 1] + @p[$_ + 1]) / 2 }, 1..*;
+my @weak = map { @p[$_] },
+ grep { @p[$_] < (@p[$_ - 1] + @p[$_ + 1]) / 2 }, 1..*;
+say "Strong primes: @strong[0..9]";
+say "Weak primes: @weak[0..9]";
diff --git a/challenge-015/laurent-rosenfeld/perl6/ch-1a.p6 b/challenge-015/laurent-rosenfeld/perl6/ch-1a.p6
new file mode 100644
index 0000000000..c48fced80b
--- /dev/null
+++ b/challenge-015/laurent-rosenfeld/perl6/ch-1a.p6
@@ -0,0 +1,7 @@
+use v6;
+
+my @p = grep { .is-prime }, 1..*; # Lazy infinite list of primes
+say "Strong primes: ", (map { @p[$_] },
+ grep { @p[$_] > (@p[$_ - 1] + @p[$_ + 1]) / 2 }, 1..*)[0..9];
+say "Weak primes: ", (map { @p[$_] },
+ grep { @p[$_] < (@p[$_ - 1] + @p[$_ + 1]) / 2 }, 1..*)[0..9];
diff --git a/challenge-015/laurent-rosenfeld/perl6/ch-1b.p6 b/challenge-015/laurent-rosenfeld/perl6/ch-1b.p6
new file mode 100644
index 0000000000..db2df158b5
--- /dev/null
+++ b/challenge-015/laurent-rosenfeld/perl6/ch-1b.p6
@@ -0,0 +1,12 @@
+use v6;
+
+my @p = grep { .is-prime }, 1..*; # Lazy infinite list of primes
+sub mapper(UInt $i) {
+ @p[$i] > (@p[$i - 1] + @p[$i + 1])/2 ?? 'Strong' !!
+ @p[$i] < (@p[$i - 1] + @p[$i + 1])/2 ?? 'Weak' !!
+ 'Balanced';
+}
+my %categories = categorize &mapper, 1..120;
+for sort keys %categories -> $key {
+ say "$key primes: ", map {@p[$_]}, %categories{$key}[0..9];
+}
diff --git a/challenge-015/laurent-rosenfeld/perl6/ch-2.p6 b/challenge-015/laurent-rosenfeld/perl6/ch-2.p6
new file mode 100644
index 0000000000..e6154360a8
--- /dev/null
+++ b/challenge-015/laurent-rosenfeld/perl6/ch-2.p6
@@ -0,0 +1,60 @@
+use v6;
+
+subset Letter of Str where .chars == 1;
+
+sub create-code (Str $passwd) {
+ # Converts password to a list of numeric codes
+ # where 'a' corresponds to a shift of 1, etc.
+ return $passwd.comb(1).map: {.ord - 'a'.ord + 1}
+}
+sub rotate-one-letter (Letter $letter, Int $shift) {
+ # Converts a single letter and deals with cases
+ # where applying the shift would get out of range
+ constant $max = 255;
+ my $shifted = $letter.ord + $shift;
+ $shifted = $shifted > $max ?? $shifted - $max !!
+ $shifted < 0 ?? $shifted + $max !!
+ $shifted;
+ return $shifted.chr;
+}
+sub rotate-msg (Str $msg, @code) {
+ # calls rotate-one-letter for each letter of the input message
+ # and passes the right shift value for that letter
+ my $i = 0;
+ my $result = "";
+ for $msg.comb(1) -> $letter {
+ my $shift = @code[$i];
+ $result ~= rotate-one-letter $letter, $shift;
+ $i++;
+ $i = 0 if $i >= @code.elems;
+ }
+ return $result;
+}
+sub encode (Str $message, @key) {
+ rotate-msg $message, @key;
+}
+sub decode (Str $message, @key) {
+ my @back-key = map {- $_}, @key;
+ rotate-msg $message, @back-key;
+}
+multi MAIN (Str $message, Str $password) {
+ my @code = create-code $password;
+ my $ciphertext = encode $message, @code;
+ say "Encoded cyphertext: $ciphertext";
+ say "Roundtrip to decoded message: {decode $ciphertext, @code}";
+}
+multi MAIN ("test") {
+ use Test; # Minimal tests for providing an example
+ plan 6;
+ my $code = join "", create-code("abcde");
+ is $code, 12345, "Testing create-code";
+ my @c = create-code "password";
+ for <foo bar hello world> -> $word {
+ is decode( encode($word, @c), @c), $word,
+ "Round trip for $word";
+ }
+ my $msg = "One small step for man, one giant leap for mankind!";
+ my $ciphertext = encode $msg, @c;
+ is decode($ciphertext, @c), $msg,
+ "Message with spaces and punctuation";
+}
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index f1fff6c1c6..898d8714f5 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -4,19 +4,121 @@
"text" : "Total Solutions"
}
},
+ "title" : {
+ "text" : "Perl Weekly Challenge - 015"
+ },
+ "series" : [
+ {
+ "name" : "Perl Weekly Challenge - 015",
+ "colorByPoint" : 1,
+ "data" : [
+ {
+ "y" : 2,
+ "drilldown" : "Andrezgz",
+ "name" : "Andrezgz"
+ },
+ {
+ "name" : "Dave Jacoby",
+ "y" : 4,
+ "drilldown" : "Dave Jacoby"
+ },
+ {
+ "drilldown" : "Duane Powell",
+ "y" : 2,
+ "name" : "Duane Powell"
+ },
+ {
+ "name" : "E. Choroba",
+ "drilldown" : "E. Choroba",
+ "y" : 2
+ },
+ {
+ "name" : "Guillermo Ramos",
+ "y" : 3,
+ "drilldown" : "Guillermo Ramos"
+ },
+ {
+ "name" : "Gustavo Chaves",
+ "y" : 2,
+ "drilldown" : "Gustavo Chaves"
+ },
+ {
+ "name" : "Joelle Maslak",
+ "y" : 2,
+ "drilldown" : "Joelle Maslak"
+ },
+ {
+ "y" : 5,
+ "drilldown" : "Laurent Rosenfeld",
+ "name" : "Laurent Rosenfeld"
+ },
+ {
+ "drilldown" : "Roger Bell West",
+ "y" : 2,
+ "name" : "Roger Bell West"
+ },
+ {
+ "y" : 4,
+ "drilldown" : "Ruben Westerberg",
+ "name" : "Ruben Westerberg"
+ },
+ {
+ "y" : 1,
+ "drilldown" : "Simon Miner",
+ "name" : "Simon Miner"
+ },
+ {
+ "name" : "Steven Wilson",
+ "y" : 4,
+ "drilldown" : "Steven Wilson"
+ },
+ {
+ "drilldown" : "Veesh Goldman",
+ "y" : 2,
+ "name" : "Veesh Goldman"
+ },
+ {
+ "drilldown" : "Walt Mankowski",
+ "y" : 2,
+ "name" : "Walt Mankowski"
+ }
+ ]
+ }
+ ],
+ "tooltip" : {
+ "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>",
+ "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>",
+ "followPointer" : 1
+ },
+ "legend" : {
+ "enabled" : 0
+ },
+ "chart" : {
+ "type" : "column"
+ },
+ "plotOptions" : {
+ "series" : {
+ "borderWidth" : 0,
+ "dataLabels" : {
+ "enabled" : 1,
+ "format" : "{point.y}"
+ }
+ }
+ },
"drilldown" : {
"series" : [
{
- "id" : "Andrezgz",
- "name" : "Andrezgz",
"data" : [
[
"Perl 5",
2
]
- ]
+ ],
+ "id" : "Andrezgz",
+ "name" : "Andrezgz"
},
{
+ "name" : "Dave Jacoby",
"data" : [
[
"Perl 5",
@@ -27,50 +129,50 @@
1
]
],
- "id" : "Dave Jacoby",
- "name" : "Dave Jacoby"
+ "id" : "Dave Jacoby"
},
{
"name" : "Duane Powell",
- "id" : "Duane Powell",
"data" : [
[
"Perl 5",
2
]
- ]
+ ],
+ "id" : "Duane Powell"
},
{
- "name" : "E. Choroba",
- "id" : "E. Choroba",
"data" : [
[
"Perl 5",
2
]
- ]
+ ],
+ "id" : "E. Choroba",
+ "name" : "E. Choroba"
},
{
- "id" : "Guillermo Ramos",
- "name" : "Guillermo Ramos",
"data" : [
[
"Perl 5",
3
]
- ]
+ ],
+ "id" : "Guillermo Ramos",
+ "name" : "Guillermo Ramos"
},
{
"name" : "Gustavo Chaves",
- "id" : "Gustavo Chaves",
"data" : [
[
"Perl 5",
2
]
- ]
+ ],
+ "id" : "Gustavo Chaves"
},
{
+ "name" : "Joelle Maslak",
"data" : [
[
"Perl 5",
@@ -81,20 +183,39 @@
1
]
],
- "name" : "Joelle Maslak",
"id" : "Joelle Maslak"
},
{
+ "name" : "Laurent Rosenfeld",
+ "id" : "Laurent Rosenfeld",
"data" : [
[
"Perl 5",
2
+ ],
+ [
+ "Perl 6",
+ 2
+ ],
+ [
+ "Blog",
+ 1
]
- ],
+ ]
+ },
+ {
"id" : "Roger Bell West",
+ "data" : [
+ [
+ "Perl 5",
+ 2
+ ]
+ ],
"name" : "Roger Bell West"
},
{
+ "name" : "Ruben Westerberg",
+ "id" : "Ruben Westerberg",
"data" : [
[
"Perl 5",
@@ -104,9 +225,7 @@
"Perl 6",
2
]
- ],
- "name" : "Ruben Westerberg",
- "id" : "Ruben Westerberg"
+ ]
},
{
"data" : [
@@ -115,8 +234,8 @@
1
]
],
- "name" : "Simon Miner",
- "id" : "Simon Miner"
+ "id" : "Simon Miner",
+ "name" : "Simon Miner"
},
{
"name" : "Steven Wilson",
@@ -134,126 +253,30 @@
},
{
"id" : "Veesh Goldman",
- "name" : "Veesh Goldman",
"data" : [
[
"Perl 5",
2
]
- ]
+ ],
+ "name" : "Veesh Goldman"
},
{
- "id" : "Walt Mankowski",
"name" : "Walt Mankowski",
"data" : [
[
"Perl 5",
2
]
- ]
+ ],
+ "id" : "Walt Mankowski"
}
]
},
- "legend" : {
- "enabled" : 0
- },
"xAxis" : {
"type" : "category"
},
"subtitle" : {
- "text" : "[Champions: 13] Last updated at 2019-07-04 10:51:36 GMT"
- },
- "plotOptions" : {
- "series" : {
- "borderWidth" : 0,
- "dataLabels" : {
- "format" : "{point.y}",
- "enabled" : 1
- }
- }
- },
- "tooltip" : {
- "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>",
- "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>",
- "followPointer" : 1
- },
- "title" : {
- "text" : "Perl Weekly Challenge - 015"
- },
- "chart" : {
- "type" : "column"
- },
- "series" : [
- {
- "colorByPoint" : 1,
- "name" : "Perl Weekly Challenge - 015",
- "data" : [
- {
- "name" : "Andrezgz",
- "drilldown" : "Andrezgz",
- "y" : 2
- },
- {
- "drilldown" : "Dave Jacoby",
- "y" : 4,
- "name" : "Dave Jacoby"
- },
- {
- "name" : "Duane Powell",
- "drilldown" : "Duane Powell",
- "y" : 2
- },
- {
- "name" : "E. Choroba",
- "y" : 2,
- "drilldown" : "E. Choroba"
- },
- {
- "drilldown" : "Guillermo Ramos",
- "y" : 3,
- "name" : "Guillermo Ramos"
- },
- {
- "drilldown" : "Gustavo Chaves",
- "y" : 2,
- "name" : "Gustavo Chaves"
- },
- {
- "name" : "Joelle Maslak",
- "drilldown" : "Joelle Maslak",
- "y" : 2
- },
- {
- "name" : "Roger Bell West",
- "drilldown" : "Roger Bell West",
- "y" : 2
- },
- {
- "y" : 4,
- "drilldown" : "Ruben Westerberg",
- "name" : "Ruben Westerberg"
- },
- {
- "name" : "Simon Miner",
- "drilldown" : "Simon Miner",
- "y" : 1
- },
- {
- "y" : 4,
- "drilldown" : "Steven Wilson",
- "name" : "Steven Wilson"
- },
- {
- "y" : 2,
- "drilldown" : "Veesh Goldman",
- "name" : "Veesh Goldman"
- },
- {
- "y" : 2,
- "drilldown" : "Walt Mankowski",
- "name" : "Walt Mankowski"
- }
- ]
- }
- ]
+ "text" : "[Champions: 14] Last updated at 2019-07-04 11:03:58 GMT"
+ }
}
diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json
index ea7de88624..058ad65f0f 100644
--- a/stats/pwc-language-breakdown-summary.json
+++ b/stats/pwc-language-breakdown-summary.json
@@ -1,63 +1,63 @@
{
- "title" : {
- "text" : "Perl Weekly Challenge Contributions - 2019"
+ "subtitle" : {
+ "text" : "Last updated at 2019-07-04 11:04:14 GMT"
},
- "legend" : {
- "enabled" : "false"
+ "yAxis" : {
+ "min" : 0,
+ "title" : {
+ "text" : null
+ }
},
- "subtitle" : {
- "text" : "Last updated at 2019-07-04 10:51:47 GMT"
+ "xAxis" : {
+ "type" : "category",
+ "labels" : {
+ "style" : {
+ "fontSize" : "13px",
+ "fontFamily" : "Verdana, sans-serif"
+ }
+ }
},
"series" : [
{
"dataLabels" : {
- "color" : "#FFFFFF",
- "align" : "right",
"enabled" : "true",
"format" : "{point.y:.0f}",
"rotation" : -90,
"y" : 10,
+ "color" : "#FFFFFF",
"style" : {
"fontSize" : "13px",
"fontFamily" : "Verdana, sans-serif"
- }
+ },
+ "align" : "right"
},
"data" : [
[
"Blog",
- 133
+ 134
],
[
"Perl 5",
- 617
+ 619
],
[
"Perl 6",
- 342
+ 344
]
],
"name" : "Contributions"
}
],
- "xAxis" : {
- "labels" : {
- "style" : {
- "fontSize" : "13px",
- "fontFamily" : "Verdana, sans-serif"
- }
- },
- "type" : "category"
- },
"tooltip" : {
"pointFormat" : "<b>{point.y:.0f}</b>"
},
- "yAxis" : {
- "min" : 0,
- "title" : {
- "text" : null
- }
- },
"chart" : {
"type" : "column"
+ },
+ "legend" : {
+ "enabled" : "false"
+ },
+ "title" : {
+ "text" : "Perl Weekly Challenge Contributions - 2019"
}
}
diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json
index 17ba3c16c4..419b9b2df0 100644
--- a/stats/pwc-language-breakdown.json
+++ b/stats/pwc-language-breakdown.json
@@ -1,91 +1,12 @@
{
- "series" : [
- {
- "colorByPoint" : "true",
- "name" : "Perl Weekly Challenge Languages",
- "data" : [
- {
- "y" : 123,
- "name" : "#001",
- "drilldown" : "001"
- },
- {
- "drilldown" : "002",
- "name" : "#002",
- "y" : 104
- },
- {
- "name" : "#003",
- "drilldown" : "003",
- "y" : 66
- },
- {
- "drilldown" : "004",
- "name" : "#004",
- "y" : 84
- },
- {
- "name" : "#005",
- "drilldown" : "005",
- "y" : 66
- },
- {
- "drilldown" : "006",
- "name" : "#006",
- "y" : 47
- },
- {
- "y" : 54,
- "drilldown" : "007",
- "name" : "#007"
- },
- {
- "drilldown" : "008",
- "name" : "#008",
- "y" : 67
- },
- {
- "y" : 65,
- "drilldown" : "009",
- "name" : "#009"
- },
- {
- "name" : "#010",
- "drilldown" : "010",
- "y" : 58
- },
- {
- "drilldown" : "011",
- "name" : "#011",
- "y" : 77
- },
- {
- "y" : 81,
- "name" : "#012",
- "drilldown" : "012"
- },
- {
- "name" : "#013",
- "drilldown" : "013",
- "y" : 74
- },
- {
- "drilldown" : "014",
- "name" : "#014",
- "y" : 94
- },
- {
- "y" : 32,
- "drilldown" : "015",
- "name" : "#015"
- }
- ]
- }
- ],
+ "xAxis" : {
+ "type" : "category"
+ },
"drilldown" : {
"series" : [
{
"name" : "001",
+ "id" : "001",
"data" : [
[
"Perl 5",
@@ -99,8 +20,7 @@
"Blog",
10
]
- ],
- "id" : "001"
+ ]
},
{
"data" : [
@@ -117,10 +37,12 @@
9
]
],
- "name" : "002",
- "id" : "002"
+ "id" : "002",
+ "name" : "002"
},
{
+ "id" : "003",
+ "name" : "003",
"data" : [
[
"Perl 5",
@@ -134,9 +56,7 @@
"Blog",
8
]
- ],
- "name" : "003",
- "id" : "003"
+ ]
},
{
"data" : [
@@ -153,11 +73,10 @@
9
]
],
- "name" : "004",
- "id" : "004"
+ "id" : "004",
+ "name" : "004"
},
{
- "name" : "005",
"data" : [
[
"Perl 5",
@@ -172,9 +91,11 @@
11
]
],
+ "name" : "005",
"id" : "005"
},
{
+ "name" : "006",
"id" : "006",
"data" : [
[
@@ -189,11 +110,9 @@
"Blog",
6
]
- ],
- "name" : "006"
+ ]
},
{
- "name" : "007",
"data" : [
[
"Perl 5",
@@ -208,6 +127,7 @@
8
]
],
+ "name" : "007",
"id" : "007"
},
{
@@ -225,11 +145,10 @@
9
]
],
- "name" : "008",
- "id" : "008"
+ "id" : "008",
+ "name" : "008"
},
{
- "id" : "009",
"data" : [
[
"Perl 5",
@@ -244,11 +163,10 @@
11
]
],
+ "id" : "009",
"name" : "009"
},
{
- "id" : "010",
- "name" : "010",
"data" : [
[
"Perl 5",
@@ -262,10 +180,11 @@
"Blog",
9
]
- ]
+ ],
+ "name" : "010",
+ "id" : "010"
},
{
- "name" : "011",
"data" : [
[
"Perl 5",
@@ -280,9 +199,11 @@
8
]
],
- "id" : "011"
+ "id" : "011",
+ "name" : "011"
},
{
+ "id" : "012",
"name" : "012",
"data" : [
[
@@ -297,12 +218,9 @@
"Blog",
9
]
- ],
- "id" : "012"
+ ]
},
{
- "id" : "013",
- "name" : "013",
"data" : [
[
"Perl 5",
@@ -316,11 +234,13 @@
"Blog",
11
]
- ]
+ ],
+ "name" : "013",
+ "id" : "013"
},
{
- "id" : "014",
"name" : "014",
+ "id" : "014",
"data" : [
[
"Perl 5",
@@ -340,15 +260,15 @@
"data" : [
[
"Perl 5",
- 27
+ 29
],
[
"Perl 6",
- 3
+ 5
],
[
"Blog",
- 2
+ 3
]
],
"name" : "015",
@@ -356,38 +276,118 @@
}
]
},
- "chart" : {
- "type" : "column"
- },
"yAxis" : {
"title" : {
"text" : "Total Solutions"
}
},
- "xAxis" : {
- "type" : "category"
+ "subtitle" : {
+ "text" : "Click the columns to drilldown the language breakdown. Last updated at 2019-07-04 11:04:14 GMT"
+ },
+ "legend" : {
+ "enabled" : "false"
+ },
+ "title" : {
+ "text" : "Perl Weekly Challenge Language"
+ },
+ "chart" : {
+ "type" : "column"
},
"tooltip" : {
+ "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>",
"followPointer" : "true",
- "headerFormat" : "<span style=\"font-size:11px\"></span>",
- "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>"
+ "headerFormat" : "<span style=\"font-size:11px\"></span>"
},
+ "series" : [
+ {
+ "name" : "Perl Weekly Challenge Languages",
+ "data" : [
+ {
+ "name" : "#001",
+ "drilldown" : "001",
+ "y" : 123
+ },
+ {
+ "name" : "#002",
+ "drilldown" : "002",
+ "y" : 104