aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2019-09-29 22:17:19 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2019-09-29 22:17:19 +0100
commit1ed4200f27c95e70830bade3d3143320259ca9bb (patch)
treefdc966d65c26d97bc1d3f7d484aa70159e8e1af3
parentfc3b4ec4c844684573640a3e7456e1b6c79a178d (diff)
downloadperlweeklychallenge-club-1ed4200f27c95e70830bade3d3143320259ca9bb.tar.gz
perlweeklychallenge-club-1ed4200f27c95e70830bade3d3143320259ca9bb.tar.bz2
perlweeklychallenge-club-1ed4200f27c95e70830bade3d3143320259ca9bb.zip
- Added solutions by Laurent Rosenfeld.
-rw-r--r--challenge-027/laurent-rosenfeld/blog.txt1
-rw-r--r--challenge-027/laurent-rosenfeld/perl5/ch-1.pl58
-rw-r--r--challenge-027/laurent-rosenfeld/perl5/ch-2.pl31
-rw-r--r--challenge-027/laurent-rosenfeld/perl6/ch-1.p6111
-rw-r--r--challenge-027/laurent-rosenfeld/perl6/ch-2.p624
-rw-r--r--stats/pwc-current.json311
-rw-r--r--stats/pwc-language-breakdown-summary.json62
-rw-r--r--stats/pwc-language-breakdown.json430
-rw-r--r--stats/pwc-leaders.json462
-rw-r--r--stats/pwc-summary-1-30.json30
-rw-r--r--stats/pwc-summary-31-60.json112
-rw-r--r--stats/pwc-summary-61-90.json44
-rw-r--r--stats/pwc-summary-91-120.json92
-rw-r--r--stats/pwc-summary.json26
14 files changed, 1021 insertions, 773 deletions
diff --git a/challenge-027/laurent-rosenfeld/blog.txt b/challenge-027/laurent-rosenfeld/blog.txt
new file mode 100644
index 0000000000..84d863d65a
--- /dev/null
+++ b/challenge-027/laurent-rosenfeld/blog.txt
@@ -0,0 +1 @@
+http://blogs.perl.org/users/laurent_r/2019/09/perl-weekly-challenge-27-intersection-point-and-historical-values.html
diff --git a/challenge-027/laurent-rosenfeld/perl5/ch-1.pl b/challenge-027/laurent-rosenfeld/perl5/ch-1.pl
new file mode 100644
index 0000000000..dabd67b0d7
--- /dev/null
+++ b/challenge-027/laurent-rosenfeld/perl5/ch-1.pl
@@ -0,0 +1,58 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use feature qw/say/;
+
+sub find_line {
+ my ($x1, $y1, $x2, $y2) = @_;
+ my $slope = ($y2 - $y1) / ($x2 - $x1);
+ # find b for y1 = slope * x1 + b
+ my $b = $y1 - $slope * $x1;
+ return $slope, $b;
+}
+
+sub find_intersect {
+ my ($a1, $b1, $a2, $b2) = @_;
+ # solve y = ax + b for a1, b1 and a2, b2
+ # i.e.: a1 x + b1 = a2 x + b2 <=> x (a1 - a2) = b2 - b1
+ die "The segments are parallel or colinear, no intersection point!" if ($a1 == $a2);
+ my $abscissa = ($b2 - $b1) / ($a1 - $a2);
+ say "x = $abscissa";
+ my $ordinate = $a1 * $abscissa + $b1;
+ return $abscissa, $ordinate;
+}
+my ($a1, $b1, $a2, $b2);
+if (@ARGV == 8) {
+ die "The two segments are vertical, no intersection point"
+ if $ARGV[0] == $ARGV[2] and $ARGV[4] == $ARGV[6];
+ if ($ARGV[0] == $ARGV[2]) {
+ #First segment is vertical
+ my $abscissa = $ARGV[0];
+ ($a2, $b2) = find_line @ARGV[4..7];
+ my $ordinate = $a2 * $abscissa + $b2;
+ say "Intersection point: $abscissa, $ordinate";
+ exit 0;
+ }
+ if ($ARGV[4] == $ARGV[6]) {
+ # Second segment is vertical
+ my $abscissa = $ARGV[4];
+ ($a1, $b1) = find_line @ARGV[0..3];
+ my $ordinate = $a1 * $abscissa + $b1;
+ say "Intersection point: $abscissa, $ordinate";
+ exit 0;
+ }
+ ($a1, $b1) = find_line @ARGV[0..3];
+ ($a2, $b2) = find_line @ARGV[4..7];
+} else {
+ # default test values if arguments are missing or insufficient
+ ($a1, $b1) = find_line 3, 1, 5, 3;
+ ($a2, $b2) = find_line 3, 3, 6, 0;
+}
+say "a1: $a1";
+say "b1: $b1";
+say "a2: $a2";
+say "b2: $b2";
+
+my ($x, $y) = find_intersect ($a1, $b1, $a2, $b2);
+say "Intersection point abscissa: $x";
+say "Intersection point ordinate: $y";
diff --git a/challenge-027/laurent-rosenfeld/perl5/ch-2.pl b/challenge-027/laurent-rosenfeld/perl5/ch-2.pl
new file mode 100644
index 0000000000..6c7b1bc252
--- /dev/null
+++ b/challenge-027/laurent-rosenfeld/perl5/ch-2.pl
@@ -0,0 +1,31 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use feature qw/say/;
+
+sub create_watched_value {
+ my $value = shift;
+ my @past_values;
+ my $assign = sub {
+ my $new_val = shift;
+ push @past_values, $value;
+ $value = $new_val;
+ };
+ my $get_past_values = sub {
+ return "@past_values";
+ };
+ my $get_current_value = sub {
+ return $value;
+ };
+ return $assign, $get_past_values, $get_current_value;
+}
+
+my ($assign, $get_past, $get_current) = create_watched_value 10;
+say "Current: ", $get_current->();
+$assign->(15);
+say "Current: ", $get_current->();
+$assign->(20);
+say "Current: ", $get_current->();
+$assign->(5);
+say "Current: ", $get_current->();
+say "Past: ", $get_past->();
diff --git a/challenge-027/laurent-rosenfeld/perl6/ch-1.p6 b/challenge-027/laurent-rosenfeld/perl6/ch-1.p6
new file mode 100644
index 0000000000..d73fa817b1
--- /dev/null
+++ b/challenge-027/laurent-rosenfeld/perl6/ch-1.p6
@@ -0,0 +1,111 @@
+use v6;
+
+role Point {
+ has $.x;
+ has $.y;
+
+ method gist {
+ return "\n- Abscissa: $.x\n- Ordinate: $.y.";
+ }
+}
+class Segment {
+ has Point $.start;
+ has Point $.end;
+
+ method slope {
+ return ($.end.y - $.start.y) / ($.end.x - $.start.x);
+ }
+ method y-intercept {
+ my $slope = self.slope;
+ return $.start.y - $slope * $.start.x;
+ }
+ method line-coordinates {
+ return self.slope, self.y-intercept;
+ }
+}
+sub compute-intersection (Segment $s1, Segment $s2) {
+ my $abscissa = ($s2.y-intercept - $s1.y-intercept) /
+ ($s1.slope - $s2.slope);
+ my $ordinate = $s1.slope * $abscissa + $s1.y-intercept;
+ my $intersection = Point.new( x => $abscissa, y => $ordinate);
+}
+multi MAIN ( $a1, $b1, # start of line segment 1
+ $a2, $b2, # end of line segment 1
+ $a3, $b3, # start of line segment 2
+ $a4, $b4 # end of line segment 2
+ ) {
+ exit unless valid-args |@*ARGS;
+ my $segment1 = Segment.new(
+ start => Point.new(x => $a1, y => $b1),
+ end => Point.new(x => $a2, y => $b2)
+ );
+ my $segment2 = Segment.new(
+ start => Point.new(x => $a3, y => $b3),
+ end => Point.new(x => $a4, y => $b4)
+ );
+ say "Segments are parallel or colinear." and exit
+ if $segment1.slope == $segment2.slope;
+ say "Coordinates of intersection point: ",
+ compute-intersection $segment1, $segment2;
+}
+multi MAIN () {
+ say "Using default input values for testing. Should display poinr (2, 4).";
+ my $segment1 = Segment.new(
+ start => Point.new(x => 3, y => 1),
+ end => Point.new(x => 5, y => 3)
+ );
+ my $segment2 = Segment.new(
+ start => Point.new(x => 3, y => 3),
+ end => Point.new(x => 6, y => 0)
+ );
+ say "Coordinates of intersection point: ",
+ compute-intersection $segment1, $segment2;
+}
+sub valid-args ( $a1, $b1, # start of line segment 1
+ $a2, $b2, # end of line segment 1
+ $a3, $b3, # start of line segment 2
+ $a4, $b4 # end of line segment 2
+ ) {
+ unless @*ARGS.all ~~ /<[\d]>+/ {
+ say "Non numeric argument. Can't continue.";
+ return False;
+ }
+ if $a1 == $a2 and $b1 == $b2 {
+ say "The first two points are the same. Cannot draw a line.";
+ return False;
+ }
+ if $a3 == $a4 and $b3 == $b4 {
+ say "The last two points are the same. Cannot draw a line.";
+ return False;
+ }
+ if $a1 == $a2 and $a3 == $a4 {
+ say "The two segments are vertical. No intersection.";
+ return False;
+ }
+ if $a1 == $a2 {
+ # First segment is vertical but not the second one
+ my $segment2 = Segment.new(
+ start => Point.new(x => $a3, y => $b3),
+ end => Point.new(x => $a4, y => $b4)
+ );
+ my $ordinate = $segment2.slope
+ * $a1 + $segment2.y-intercept;
+ my $interception = Point.new(x => $a1, y => $ordinate);
+ say "Coordinates of intersection point: ", $interception;
+ return False;
+ }
+ if $a3 == $a4 {
+ # Second segment is vertical but not the first one
+ my $segment1 = Segment.new(
+ start => Point.new(x => $a1, y => $b1),
+ end => Point.new(x => $a2, y => $b2)
+ );
+ my $ordinate = $segment1.slope
+ * $a3 + $segment1.y-intercept;
+ my $interception = Point.new(x => $a3, y => $ordinate);
+ say "Coordinates of intersection point: ", $interception;
+ return False;
+ }
+ return True;
+}
+
diff --git a/challenge-027/laurent-rosenfeld/perl6/ch-2.p6 b/challenge-027/laurent-rosenfeld/perl6/ch-2.p6
new file mode 100644
index 0000000000..acc7fd97aa
--- /dev/null
+++ b/challenge-027/laurent-rosenfeld/perl6/ch-2.p6
@@ -0,0 +1,24 @@
+use v6;
+
+class WatchedValue {
+ has Int $.current-value is rw;
+ has @.past-values = ();
+
+ method get-past-values {
+ return @.past-values;
+ }
+}
+
+multi sub infix:<=:=> (WatchedValue $y, Int $z) {
+ push $y.past-values, $y.current-value;
+ $y.current-value = $z;
+}
+my $x = WatchedValue.new(current-value => 10);
+say "Current: ", $x.current-value;
+$x =:= 15;
+say "Current: ", $x.current-value;
+$x =:= 5;
+say "Current: ", $x.current-value;
+$x =:= 20;
+say "Current: ", $x.current-value;
+say "Past values: ", $x.get-past-values;
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index df572bc163..ece7690990 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,117 +1,7 @@
{
- "plotOptions" : {
- "series" : {
- "dataLabels" : {
- "format" : "{point.y}",
- "enabled" : 1
- },
- "borderWidth" : 0
- }
- },
- "series" : [
- {
- "colorByPoint" : 1,
- "data" : [
- {
- "y" : 3,
- "drilldown" : "Adam Russell",
- "name" : "Adam Russell"
- },
- {
- "drilldown" : "Andrezgz",
- "name" : "Andrezgz",
- "y" : 2
- },
- {
- "name" : "Arne Sommer",
- "drilldown" : "Arne Sommer",
- "y" : 3
- },
- {
- "y" : 2,
- "drilldown" : "Colin Crain",
- "name" : "Colin Crain"
- },
- {
- "y" : 2,
- "name" : "Duane Powell",
- "drilldown" : "Duane Powell"
- },
- {
- "name" : "E. Choroba",
- "drilldown" : "E. Choroba",
- "y" : 3
- },
- {
- "drilldown" : "Joelle Maslak",
- "name" : "Joelle Maslak",
- "y" : 4
- },
- {
- "y" : 2,
- "drilldown" : "Kevin Colyer",
- "name" : "Kevin Colyer"
- },
- {
- "name" : "Lubos Kolouch",
- "drilldown" : "Lubos Kolouch",
- "y" : 2
- },
- {
- "y" : 1,
- "name" : "Mark Anderson",
- "drilldown" : "Mark Anderson"
- },
- {
- "drilldown" : "Markus Holzer",
- "name" : "Markus Holzer",
- "y" : 2
- },
- {
- "name" : "Noud",
- "drilldown" : "Noud",
- "y" : 2
- },
- {
- "name" : "Roger Bell West",
- "drilldown" : "Roger Bell West",
- "y" : 3
- },
- {
- "y" : 4,
- "name" : "Ruben Westerberg",
- "drilldown" : "Ruben Westerberg"
- },
- {
- "drilldown" : "Simon Proctor",
- "name" : "Simon Proctor",
- "y" : 2
- },
- {
- "name" : "Trenton Langer",
- "drilldown" : "Trenton Langer",
- "y" : 2
- },
- {
- "name" : "Yet Ebreo",
- "drilldown" : "Yet Ebreo",
- "y" : 3
- }
- ],
- "name" : "Perl Weekly Challenge - 027"
- }
- ],
- "subtitle" : {
- "text" : "[Champions: 17] Last updated at 2019-09-29 20:45:33 GMT"
- },
- "title" : {
- "text" : "Perl Weekly Challenge - 027"
- },
"drilldown" : {
"series" : [
{
- "id" : "Adam Russell",
- "name" : "Adam Russell",
"data" : [
[
"Perl 5",
@@ -121,21 +11,21 @@
"Blog",
1
]
- ]
+ ],
+ "name" : "Adam Russell",
+ "id" : "Adam Russell"
},
{
- "name" : "Andrezgz",
- "id" : "Andrezgz",
"data" : [
[
"Perl 5",
2
]
- ]
+ ],
+ "id" : "Andrezgz",
+ "name" : "Andrezgz"
},
{
- "id" : "Arne Sommer",
- "name" : "Arne Sommer",
"data" : [
[
"Perl 6",
@@ -145,17 +35,19 @@
"Blog",
1
]
- ]
+ ],
+ "name" : "Arne Sommer",
+ "id" : "Arne Sommer"
},
{
- "id" : "Colin Crain",
- "name" : "Colin Crain",
"data" : [
[
"Perl 5",
2
]
- ]
+ ],
+ "name" : "Colin Crain",
+ "id" : "Colin Crain"
},
{
"data" : [
@@ -168,8 +60,6 @@
"name" : "Duane Powell"
},
{
- "id" : "E. Choroba",
- "name" : "E. Choroba",
"data" : [
[
"Perl 5",
@@ -179,7 +69,9 @@
"Blog",
1
]
- ]
+ ],
+ "name" : "E. Choroba",
+ "id" : "E. Choroba"
},
{
"data" : [
@@ -192,28 +84,46 @@
2
]
],
- "id" : "Joelle Maslak",
- "name" : "Joelle Maslak"
+ "name" : "Joelle Maslak",
+ "id" : "Joelle Maslak"
},
{
- "id" : "Kevin Colyer",
+ "data" : [
+ [
+ "Perl 6",
+ 2
+ ]
+ ],
"name" : "Kevin Colyer",
+ "id" : "Kevin Colyer"
+ },
+ {
+ "name" : "Laurent Rosenfeld",
+ "id" : "Laurent Rosenfeld",
"data" : [
[
+ "Perl 5",
+ 2
+ ],
+ [
"Perl 6",
2
+ ],
+ [
+ "Blog",
+ 1
]
]
},
{
- "name" : "Lubos Kolouch",
- "id" : "Lubos Kolouch",
"data" : [
[
"Perl 5",
2
]
- ]
+ ],
+ "name" : "Lubos Kolouch",
+ "id" : "Lubos Kolouch"
},
{
"data" : [
@@ -226,14 +136,14 @@
"name" : "Mark Anderson"
},
{
- "name" : "Markus Holzer",
- "id" : "Markus Holzer",
"data" : [
[
"Perl 6",
2
]
- ]
+ ],
+ "name" : "Markus Holzer",
+ "id" : "Markus Holzer"
},
{
"data" : [
@@ -246,8 +156,6 @@
"name" : "Noud"
},
{
- "name" : "Roger Bell West",
- "id" : "Roger Bell West",
"data" : [
[
"Perl 5",
@@ -257,11 +165,11 @@
"Perl 6",
1
]
- ]
+ ],
+ "id" : "Roger Bell West",
+ "name" : "Roger Bell West"
},
{
- "id" : "Ruben Westerberg",
- "name" : "Ruben Westerberg",
"data" : [
[
"Perl 5",
@@ -271,7 +179,9 @@
"Perl 6",
2
]
- ]
+ ],
+ "id" : "Ruben Westerberg",
+ "name" : "Ruben Westerberg"
},
{
"id" : "Simon Proctor",
@@ -294,8 +204,8 @@
]
},
{
- "name" : "Yet Ebreo",
"id" : "Yet Ebreo",
+ "name" : "Yet Ebreo",
"data" : [
[
"Perl 5",
@@ -309,21 +219,134 @@
}
]
},
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
+ "legend" : {
+ "enabled" : 0
+ },
+ "plotOptions" : {
+ "series" : {
+ "borderWidth" : 0,
+ "dataLabels" : {
+ "format" : "{point.y}",
+ "enabled" : 1
+ }
}
},
+ "series" : [
+ {
+ "colorByPoint" : 1,
+ "name" : "Perl Weekly Challenge - 027",
+ "data" : [
+ {
+ "y" : 3,
+ "drilldown" : "Adam Russell",
+ "name" : "Adam Russell"
+ },
+ {
+ "name" : "Andrezgz",
+ "drilldown" : "Andrezgz",
+ "y" : 2
+ },
+ {
+ "y" : 3,
+ "name" : "Arne Sommer",
+ "drilldown" : "Arne Sommer"
+ },
+ {
+ "drilldown" : "Colin Crain",
+ "name" : "Colin Crain",
+ "y" : 2
+ },
+ {
+ "y" : 2,
+ "name" : "Duane Powell",
+ "drilldown" : "Duane Powell"
+ },
+ {
+ "drilldown" : "E. Choroba",
+ "name" : "E. Choroba",
+ "y" : 3
+ },
+ {
+ "drilldown" : "Joelle Maslak",
+ "name" : "Joelle Maslak",
+ "y" : 4
+ },
+ {
+ "y" : 2,
+ "drilldown" : "Kevin Colyer",
+ "name" : "Kevin Colyer"
+ },
+ {
+ "drilldown" : "Laurent Rosenfeld",
+ "name" : "Laurent Rosenfeld",
+ "y" : 5
+ },
+ {
+ "drilldown" : "Lubos Kolouch",
+ "name" : "Lubos Kolouch",
+ "y" : 2
+ },
+ {
+ "y" : 1,
+ "name" : "Mark Anderson",
+ "drilldown" : "Mark Anderson"
+ },
+ {
+ "drilldown" : "Markus Holzer",
+ "name" : "Markus Holzer",
+ "y" : 2
+ },
+ {
+ "name" : "Noud",
+ "drilldown" : "Noud",
+ "y" : 2
+ },
+ {
+ "y" : 3,
+ "drilldown" : "Roger Bell West",
+ "name" : "Roger Bell West"
+ },
+ {
+ "y" : 4,
+ "name" : "Ruben Westerberg",
+ "drilldown" : "Ruben Westerberg"
+ },
+ {
+ "drilldown" : "Simon Proctor",
+ "name" : "Simon Proctor",
+ "y" : 2
+ },
+ {
+ "drilldown" : "Trenton Langer",
+ "name" : "Trenton Langer",
+ "y" : 2
+ },
+ {
+ "y" : 3,
+ "drilldown" : "Yet Ebreo",
+ "name" : "Yet Ebreo"
+ }
+ ]
+ }
+ ],
"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/>"
},
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
+ },
"chart" : {
"type" : "column"
},
- "legend" : {
- "enabled" : 0
+ "subtitle" : {
+ "text" : "[Champions: 18] Last updated at 2019-09-29 21:16:50 GMT"
+ },
+ "title" : {
+ "text" : "Perl Weekly Challenge - 027"
},
"xAxis" : {
"type" : "category"
diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json
index 9437ceab42..e0da245d34 100644
--- a/stats/pwc-language-breakdown-summary.json
+++ b/stats/pwc-language-breakdown-summary.json
@@ -1,63 +1,63 @@
{
- "xAxis" : {
- "type" : "category",
- "labels" : {
- "style" : {
- "fontSize" : "13px",
- "fontFamily" : "Verdana, sans-serif"
- }
- }
- },
- "yAxis" : {
- "min" : 0,
- "title" : {
- "text" : null
- }
- },
- "chart" : {
- "type" : "column"
+ "subtitle" : {
+ "text" : "Last updated at 2019-09-29 21:17:00 GMT"
},
"title" : {
"text" : "Perl Weekly Challenge Contributions - 2019"
},
- "legend" : {
- "enabled" : "false"
- },
"series" : [
{
"data" : [
[
"Blog",
- 289
+ 290
],
[
"Perl 5",
- 1089
+ 1091
],
[
"Perl 6",
- 664
+ 666
]
],
"dataLabels" : {
+ "format" : "{point.y:.0f}",
"rotation" : -90,
"color" : "#FFFFFF",
"enabled" : "true",
+ "align" : "right",
"style" : {
- "fontSize" : "13px",
- "fontFamily" : "Verdana, sans-serif"
+ "fontFamily" : "Verdana, sans-serif",
+ "fontSize" : "13px"
},
- "format" : "{point.y:.0f}",
- "y" : 10,
- "align" : "right"
+ "y" : 10
},
"name" : "Contributions"
}
],
+ "xAxis" : {
+ "type" : "category",
+ "labels" : {
+ "style" : {
+ "fontSize" : "13px",
+ "fontFamily" : "Verdana, sans-serif"
+ }
+ }
+ },
+ "yAxis" : {
+ "title" : {
+ "text" : null
+ },
+ "min" : 0
+ },
+ "chart" : {
+ "type" : "column"
+ },
+ "legend" : {
+ "enabled" : "false"
+ },
"tooltip" : {
"pointFormat" : "<b>{point.y:.0f}</b>"
- },
- "subtitle" : {
- "text" : "Last updated at 2019-09-29 20:45:45 GMT"
}
}
diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json
index 681f8bd749..2b007dc64a 100644
--- a/stats/pwc-language-breakdown.json
+++ b/stats/pwc-language-breakdown.json
@@ -1,25 +1,178 @@
{
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
+ "series" : [
+ {
+ "name" : "Perl Weekly Challenge Languages",
+ "colorByPoint" : "true",
+ "data" : [
+ {
+ "name" : "#001",
+ "drilldown" : "001",
+ "y" : 132
+ },
+ {
+ "name" : "#002",
+ "drilldown" : "002",
+ "y" : 104
+ },
+ {
+ "drilldown" : "003",
+ "name" : "#003",
+ "y" : 66
+ },
+ {
+ "y" : 86,
+ "drilldown" : "004",
+ "name" : "#004"
+ },
+ {
+ "y" : 66,
+ "drilldown" : "005",
+ "name" : "#005"
+ },
+ {
+ "y" : 47,
+ "name" : "#006",
+ "drilldown" : "006"
+ },
+ {
+ "y" : 55,
+ "drilldown" : "007",
+ "name" : "#007"
+ },
+ {
+ "drilldown" : "008",
+ "name" : "#008",
+ "y" : 69
+ },
+ {
+ "y" : 68,
+ "drilldown" : "009",
+ "name" : "#009"
+ },
+ {
+ "y" : 60,
+ "name" : "#010",
+ "drilldown" : "010"
+ },
+ {
+ "y" : 78,
+ "name" : "#011",
+ "drilldown" : "011"
+ },
+ {
+ "y" : 83,
+ "name" : "#012",
+ "drilldown" : "012"
+ },
+ {
+ "drilldown" : "013",
+ "name" : "#013",
+ "y" : 76
+ },
+ {
+ "y" : 95,
+ "drilldown" : "014",
+ "name" : "#014"
+ },
+ {
+ "drilldown" : "015",
+ "name" : "#015",
+ "y" : 93
+ },
+ {
+ "y" : 66,
+ "drilldown" : "016",
+ "name" : "#016"
+ },
+ {
+ "y" : 79,
+ "name" : "#017",
+ "drilldown" : "017"
+ },
+ {
+ "drilldown" : "018",
+ "name" : "#018",
+ "y" : 76
+ },
+ {
+ "y" : 95,
+ "name" : "#019",
+ "drilldown" : "019"
+ },
+ {
+ "drilldown" : "020",
+ "name" : "#020",
+ "y" : 95
+ },
+ {
+ "drilldown" : "021",
+ "name" : "#021",
+ "y" : 67
+ },
+ {
+ "drilldown" : "022",
+ "name" : "#022",
+ "y" : 63
+ },
+ {
+ "y" : 91,
+ "drilldown" : "023",
+ "name" : "#023"
+ },
+ {
+ "y" : 70,
+ "name" : "#024",
+ "drilldown" : "024"
+ },
+ {
+ "name" : "#025",
+ "drilldown" : "025",
+ "y" : 55
+ },
+ {
+ "y" : 67,
+ "drilldown" : "026",
+ "name" : "#026"
+ },
+ {
+ "drilldown" : "027",
+ "name" : "#027",
+ "y" : 45
+ }
+ ]
}
+ ],
+ "title" : {
+ "text" : "Perl Weekly Challenge Language"
},
"xAxis" : {
"type" : "category"
},
- "title" : {
- "text" : "Perl Weekly Challenge Language"
+ "plotOptions" : {
+ "series" : {
+ "borderWidth" : 0,
+ "dataLabels" : {
+ "format" : "{point.y}",
+ "enabled" : 1
+ }
+ }
},
- "chart" : {
- "type" : "column"
+ "subtitle" : {
+ "text" : "Click the columns to drilldown the language breakdown. Last updated at 2019-09-29 21:17:00 GMT"
},
- "legend" : {
- "enabled" : "false"
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
+ },
+ "tooltip" : {
+ "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/>"
},
"drilldown" : {
"series" : [
{
- "name" : "001",
"id" : "001",
"data" : [
[
@@ -34,7 +187,8 @@
"Blog",
11
]
- ]
+ ],
+ "name" : "001"
},
{
"name" : "002",
@@ -55,6 +209,7 @@
]
},
{
+ "name" : "003",
"data" : [
[
"Perl 5",
@@ -69,11 +224,10 @@
8
]
],
- "id" : "003",
- "name" : "003"
+ "id" : "003"
},
{
- "name" : "004",
+ "id" : "004",
"data" : [
[
"Perl 5",
@@ -88,10 +242,10 @@
9
]
],
- "id" : "004"
+ "name" : "004"
},
{
- "id" : "005",
+ "name" : "005",
"data" : [
[
"Perl 5",
@@ -106,7 +260,7 @@
11
]
],
- "name" : "005"
+ "id" : "005"
},
{
"data" : [
@@ -128,6 +282,7 @@
},
{
"name" : "007",
+ "id" : "007",
"data" : [