aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xchallenge-165/colin-crain/perl/ch-1.pl182
-rwxr-xr-xchallenge-165/colin-crain/perl/ch-2.pl220
-rw-r--r--stats/pwc-current.json201
-rw-r--r--stats/pwc-language-breakdown-summary.json76
-rw-r--r--stats/pwc-language-breakdown.json1134
-rw-r--r--stats/pwc-leaders.json734
-rw-r--r--stats/pwc-summary-1-30.json50
-rw-r--r--stats/pwc-summary-121-150.json46
-rw-r--r--stats/pwc-summary-151-180.json42
-rw-r--r--stats/pwc-summary-181-210.json52
-rw-r--r--stats/pwc-summary-211-240.json28
-rw-r--r--stats/pwc-summary-241-270.json34
-rw-r--r--stats/pwc-summary-31-60.json38
-rw-r--r--stats/pwc-summary-61-90.json106
-rw-r--r--stats/pwc-summary-91-120.json110
-rw-r--r--stats/pwc-summary.json558
16 files changed, 2014 insertions, 1597 deletions
diff --git a/challenge-165/colin-crain/perl/ch-1.pl b/challenge-165/colin-crain/perl/ch-1.pl
new file mode 100755
index 0000000000..705362c552
--- /dev/null
+++ b/challenge-165/colin-crain/perl/ch-1.pl
@@ -0,0 +1,182 @@
+#!/Users/colincrain/perl5/perlbrew/perls/perl-5.32.0/bin/perl
+#
+# scriving-pictures.pl
+#
+# Scalable Vector Graphics (SVG)
+# Submitted by: Ryan J Thompson
+#
+# Scalable Vector Graphics (SVG) are not made of pixels, but lines,
+# ellipses, and curves, that can be scaled to any size without any
+# loss of quality. If you have ever tried to resize a small JPG or
+# PNG, you know what I mean by “loss of quality”! What many people
+# do not know about SVG files is, they are simply XML files, so
+# they can easily be generated programmatically.
+#
+# For this task, you may use external library, such as Perl’s SVG
+# library, maintained in recent years by our very own Mohammad S
+# Anwar. You can instead generate the XML yourself; it’s actually
+# quite simple. The source for the example image for Task #2 might
+# be instructive.
+#
+# Your task is to accept a series of points and lines in the
+# following format, one per line, in arbitrary order:
+#
+# Point: x,y
+# Line: x1,y1,x2,y2
+#
+# Example:
+# 53,10
+# 53,10,23,30
+# 23,30
+#
+# Then, generate an SVG file plotting all points, and all lines. If
+# done correctly, you can view the output .svg file in your
+# browser.
+#
+# A Definition:
+#
+# scrive
+#
+# Etymology
+# Related to scribe.
+#
+# Verb
+# scrive (third-person singular simple present scrives, present
+# participle **scriving**, simple past and past participle scrived)
+#
+# **To describe; to draw a line with a pointed tool.**
+#
+#
+# © 2022 colin crain
+## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
+
+
+
+use warnings;
+use strict;
+use utf8;
+use feature ":5.26";
+use feature qw(signatures);
+no warnings 'experimental::signatures';
+
+
+
+
+## SVG package
+package SVG;
+use Moo;
+use feature qw(signatures);
+no warnings 'experimental::signatures';
+{
+ has groups => (
+ is => 'rw' ,
+ default => sub { return [] } );
+ has height => ( is => 'rw' );
+ has width => ( is => 'rw' );
+
+ around BUILDARGS => sub {
+ my ( $orig, $class, @args ) = @_;
+ return { height => $args[0],
+ width => $args[1] };
+ };
+
+ sub group( $self, $id, $attr ) {
+ push $self->groups->@*, [$id, $attr, []]
+ }
+
+ sub add( $self, $item ){
+ push $self->groups->[-1]->[2]->@*, $item;
+ }
+
+## supported object primitives
+
+ sub circle( $self, $x, $y, $r=3) {
+ ## default radius 3 for single point
+ return qq(<circle cx="${x}" cy="${y}" r="${r}" />);
+ }
+
+ sub line( $self, $x1, $y1, $x2, $y2 ) {
+ return qq(<line x1="${x1}" x2="${x2}" y1="${y1}" y2="${y2}" />);
+ }
+
+##
+ sub make_SVG( $self ) {
+ my $h = $self->height;
+ my $w = $self->width;
+
+ my $xml = <<~XML;
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+ <svg height="${h}" width="${w}"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ XML
+ for my $g ( $self->groups->@* ){
+ my $tag = qq(<g id="$g->[0]" );
+ $tag .= qq($_="$g->[1]->{$_}" ).' ' for keys $g->[1]->%*;
+ $tag .= qq(>\n);
+ $tag .= qq( $_\n) for $g->[2]->@*;
+ $tag .= qq(</g>\n);
+
+ $xml .= $tag;
+ }
+ $xml .= qq(</svg>\n);
+ return $xml;
+ }
+}
+
+package main;
+
+## read input from file
+my $filename = shift @ARGV || 'svg-data.txt';
+open my $in_fh, "<", $filename or die "can't open $filename for input: $!\n";
+
+## gather line and point data into lists
+my @points;
+my @lines;
+
+while (<$in_fh>) {
+ chomp;
+ /^(\d+),(\d+)$/ and push @points, [$1,$2];
+ /^(\d+),(\d+),(\d+),(\d+)$/ and push @lines, [$1,$2,$3,$4];
+}
+
+## construct SGV formatted data string
+my $svg = new SVG(200,300);
+my $attr;
+
+$attr = { "stroke" => "blue", "stroke-width" => "4" };
+$svg->group( "lines", $attr);
+$svg->add( $svg->line($_->@*) ) for @lines;
+
+$attr = { "fill"=>"red" };
+$svg->group( "circle", $attr);
+$svg->add( $svg->circle($_->@*) ) for @points;
+
+my $out = $svg->make_SVG;
+
+## print to file, based on input filename
+my ($outfile) = $filename =~ /^(.*)\./;
+open my $out_fh, ">", "./${outfile}.svg" or die "can't open file ./${outfile}.svg: $!";
+say $out_fh $out;
+close $out_fh;
+
+
+=cut
+
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<svg height="200" width="300"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="lines" stroke="blue" stroke-width="4" >
+ <line x1="53" x2="23" y1="10" y2="30" />
+</g>
+<g id="circle" fill="red" >
+ <circle cx="53" cy="10" r="3" />
+ <circle cx="23" cy="30" r="3" />
+</g>
+</svg>
+
diff --git a/challenge-165/colin-crain/perl/ch-2.pl b/challenge-165/colin-crain/perl/ch-2.pl
new file mode 100755
index 0000000000..df11f42597
--- /dev/null
+++ b/challenge-165/colin-crain/perl/ch-2.pl
@@ -0,0 +1,220 @@
+#!/Users/colincrain/perl5/perlbrew/perls/perl-5.32.0/bin/perl
+#
+# white-line-fever.pl
+#
+# Line of Best Fit
+# Submitted by: Ryan J Thompson
+# When you have a scatter plot of points, a line of best fit is the
+# line that best describes the relationship between the points, and
+# is very useful in statistics. Otherwise known as linear
+# regression.
+#
+# The method most often used is known as the least squares method,
+# as it is straightforward and efficient, but you may use any
+# method that generates the correct result.
+#
+# Calculate the line of best fit for the following 48 points:
+#
+# 333,129 39,189 140,156 292,134 393,52 160,166 362,122 13,193
+# 341,104 320,113 109,177 203,152 343,100 225,110 23,186 282,102
+# 284,98 205,133 297,114 292,126 339,112 327,79 253,136 61,169
+# 128,176 346,72 316,103 124,162 65,181 159,137 212,116 337,86
+# 215,136 153,137 390,104 100,180 76,188 77,181 69,195 92,186
+# 275,96 250,147 34,174 213,134 186,129 189,154 361,82 363,89
+#
+# © 2022 colin crain
+## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
+
+
+
+use warnings;
+use strict;
+use utf8;
+use feature ":5.26";
+use feature qw(signatures);
+no warnings 'experimental::signatures';
+
+## SVG package
+package SVG;
+use Moo;
+use feature qw(signatures);
+no warnings 'experimental::signatures';
+{
+ has groups => (
+ is => 'rw' ,
+ default => sub { return [] } );
+ has height => ( is => 'rw' );
+ has width => ( is => 'rw' );
+
+ around BUILDARGS => sub {
+ my ( $orig, $class, @args ) = @_;
+ return { height => $args[0],
+ width => $args[1] };
+ };
+
+ sub group( $self, $id, $attr ) {
+ push $self->groups->@*, [$id, $attr, []]
+ }
+
+ sub add( $self, $item ){
+ push $self->groups->[-1]->[2]->@*, $item;
+ }
+
+ ## supported object primitives
+
+ sub circle( $self, $x, $y, $r=3) {
+ ## default radius 3 for single point
+ return qq(<circle cx="${x}" cy="${y}" r="${r}" />);
+ }
+
+ sub line( $self, $x1, $y1, $x2, $y2 ) {
+ return qq(<line x1="${x1}" x2="${x2}" y1="${y1}" y2="${y2}" />);
+ }
+
+ ## output
+
+ sub make_SVG( $self ) {
+ my $h = $self->height;
+ my $w = $self->width;
+
+ my $xml = <<~XML;
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+ <svg height="${h}" width="${w}"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ XML
+ for my $g ( $self->groups->@* ){
+ my $tag = qq(<g id="$g->[0]" );
+ $tag .= qq($_="$g->[1]->{$_}" ).' ' for keys $g->[1]->%*;
+ $tag .= qq(>\n);
+ $tag .= qq( $_\n) for $g->[2]->@*;
+ $tag .= qq(</g>\n);
+
+ $xml .= $tag;
+ }
+ $xml .= qq(</svg>\n);
+ return $xml;
+ }
+}
+
+##/SVG
+
+package main;
+
+## input data
+my @data = (
+ [333,129], [39,189], [140,156], [292,134], [393,52],
+ [160,166], [362,122], [13,193], [341,104], [320,113],
+ [109,177], [203,152], [343,100], [225,110], [23,186],
+ [282,102], [284,98], [205,133], [297,114], [292,126],
+ [339,112], [327,79], [253,136], [61,169], [128,176],
+ [346,72], [316,103], [124,162], [65,181], [159,137],
+ [212,116], [337,86], [215,136], [153,137], [390,104],
+ [100,180], [76,188], [77,181], [69,195], [92,186],
+ [275,96], [250,147], [34,174], [213,134], [186,129],
+ [189,154], [361,82], [363,89] );
+
+## make SVG format data string
+my $attr;
+my $svg = new SVG(400,400);
+
+$attr = { "fill"=>"blue" };
+$svg->group( "points", $attr);
+$svg->add( $svg->circle($_->@*) ) for @data;
+
+$attr = { "stroke" => "red", "stroke-width" => "4" };
+$svg->group( "best-fit-line", $attr );
+$svg->add( $svg->line( best_fit(@data) ) );
+
+## write to file, ./best-fit.svg
+open my $fh, ">", "best-fit.svg" or die "cant open bestfit.svg to output: $!\n";
+my $xml = $svg->make_SVG;
+say $fh $xml;
+close $fh;
+
+
+sub best_fit (@points) {
+ my ($xsum, $ysum, $sqsum, $xysum);
+
+ for (@data) {
+ $xsum += $_->[0];
+ $ysum += $_->[1];
+ $sqsum += $_->[0] ** 2;
+ $xysum += $_->[0] * $_->[1];
+ }
+
+ my $slope = ((@data * $xysum) - ($xsum * $ysum)) / ((@data * $sqsum) - ($xsum ** 2));
+ my $intercept = ($ysum - ($slope * $xsum)) / @data;
+
+ ## hardwired 400px canvas for now
+ my $xmax = 400;
+
+ ## x1, y1, x2, y2
+ return (0, $intercept, 400, ($slope * 400 + $intercept))
+}
+
+=cut
+
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<svg height="400" width="400"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="points" fill="blue" >
+ <circle cx="333" cy="129" r="3" />
+ <circle cx="39" cy="189" r="3" />
+ <circle cx="140" cy="156" r="3" />
+ <circle cx="292" cy="134" r="3" />
+ <circle cx="393" cy="52" r="3" />
+ <circle cx="160" cy="166" r="3" />
+ <circle cx="362" cy="122" r="3" />
+ <circle cx="13" cy="193" r="3" />
+ <circle cx="341" cy="104" r="3" />
+ <circle cx="320" cy="113" r="3" />
+ <circle cx="109" cy="177" r="3" />
+ <circle cx="203" cy="152" r="3" />
+ <circle cx="343" cy="100" r="3" />
+ <circle cx="225" cy="110" r="3" />
+ <circle cx="23" cy="186" r="3" />
+ <circle cx="282" cy="102" r="3" />
+ <circle cx="284" cy="98" r="3" />
+ <circle cx="205" cy="133" r="3" />
+ <circle cx="297" cy="114" r="3" />
+ <circle cx="292" cy="126" r="3" />
+ <circle cx="339" cy="112" r="3" />
+ <circle cx="327" cy="79" r="3" />
+ <circle cx="253" cy="136" r="3" />
+ <circle cx="61" cy="169" r="3" />
+ <circle cx="128" cy="176" r="3" />
+ <circle cx="346" cy="72" r="3" />
+ <circle cx="316" cy="103" r="3" />
+ <circle cx="124" cy="162" r="3" />
+ <circle cx="65" cy="181" r="3" />
+ <circle cx="159" cy="137" r="3" />
+ <circle cx="212" cy="116" r="3" />
+ <circle cx="337" cy="86" r="3" />
+ <circle cx="215" cy="136" r="3" />
+ <circle cx="153" cy="137" r="3" />
+ <circle cx="390" cy="104" r="3" />
+ <circle cx="100" cy="180" r="3" />
+ <circle cx="76" cy="188" r="3" />
+ <circle cx="77" cy="181" r="3" />
+ <circle cx="69" cy="195" r="3" />
+ <circle cx="92" cy="186" r="3" />
+ <circle cx="275" cy="96" r="3" />
+ <circle cx="250" cy="147" r="3" />
+ <circle cx="34" cy="174" r="3" />
+ <circle cx="213" cy="134" r="3" />
+ <circle cx="186" cy="129" r="3" />
+ <circle cx="189" cy="154" r="3" />
+ <circle cx="361" cy="82" r="3" />
+ <circle cx="363" cy="89" r="3" />
+</g>
+<g id="bist-fit-line" stroke-width="4" stroke="red" >
+ <line x1="0" x2="400" y1="200.132272535582" y2="80.1496724310893" />
+</g>
+</svg>
+
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index 515f8d6be6..3e301f9f90 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,22 +1,23 @@
{
- "chart" : {
- "type" : "column"
- },
"subtitle" : {
- "text" : "[Champions: 21] Last updated at 2022-05-23 00:50:03 GMT"
+ "text" : "[Champions: 22] Last updated at 2022-05-23 00:57:56 GMT"
},
- "plotOptions" : {
- "series" : {
- "borderWidth" : 0,
- "dataLabels" : {
- "enabled" : 1,
- "format" : "{point.y}"
- }
+ "xAxis" : {
+ "type" : "category"
+ },
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
}
},
+ "chart" : {
+ "type" : "column"
+ },
+ "legend" : {
+ "enabled" : 0
+ },
"series" : [
{
- "name" : "The Weekly Challenge - 165",
"data" : [
{
"drilldown" : "Adam Russell",
@@ -24,9 +25,9 @@
"y" : 4
},
{
- "name" : "Arne Sommer",
+ "drilldown" : "Arne Sommer",
"y" : 3,
- "drilldown" : "Arne Sommer"
+ "name" : "Arne Sommer"
},
{
"drilldown" : "Athanasius",
@@ -39,29 +40,34 @@
"y" : 3
},
{
- "drilldown" : "Duncan C. White",
+ "y" : 2,
+ "name" : "Colin Crain",
+ "drilldown" : "Colin Crain"
+ },
+ {
"name" : "Duncan C. White",
- "y" : 2
+ "y" : 2,
+ "drilldown" : "Duncan C. White"
},
{
- "drilldown" : "Flavio Poletti",
"name" : "Flavio Poletti",
- "y" : 6
+ "y" : 6,
+ "drilldown" : "Flavio Poletti"
},
{
- "drilldown" : "James Smith",
+ "name" : "James Smith",
"y" : 3,
- "name" : "James Smith"
+ "drilldown" : "James Smith"
},
{
+ "drilldown" : "Jorg Sommrey",
"y" : 2,
- "name" : "Jorg Sommrey",
- "drilldown" : "Jorg Sommrey"
+ "name" : "Jorg Sommrey"
},
{
+ "drilldown" : "Julien Fiegehenn",
"name" : "Julien Fiegehenn",
- "y" : 2,
- "drilldown" : "Julien Fiegehenn"
+ "y" : 2
},
{
"drilldown" : "Laurent Rosenfeld",
@@ -70,38 +76,38 @@
},
{
"drilldown" : "Luca Ferrari",
- "name" : "Luca Ferrari",
- "y" : 8
+ "y" : 8,
+ "name" : "Luca Ferrari"
},
{
"drilldown" : "Mark Anderson",
- "y" : 2,
- "name" : "Mark Anderson"
+ "name" : "Mark Anderson",
+ "y" : 2
},
{
- "drilldown" : "Peter Campbell Smith",
+ "y" : 3,
"name" : "Peter Campbell Smith",
- "y" : 3
+ "drilldown" : "Peter Campbell Smith"
},
{
- "drilldown" : "Rick Bychowski",
"y" : 2,
- "name" : "Rick Bychowski"
+ "name" : "Rick Bychowski",
+ "drilldown" : "Rick Bychowski"
},
{
- "drilldown" : "Robert Ransbottom",
"name" : "Robert Ransbottom",
- "y" : 2
+ "y" : 2,
+ "drilldown" : "Robert Ransbottom"
},
{
- "drilldown" : "Roger Bell_West",
+ "y" : 5,
"name" : "Roger Bell_West",
- "y" : 5
+ "drilldown" : "Roger Bell_West"
},
{
+ "drilldown" : "Ryan Thompson",
"name" : "Ryan Thompson",
- "y" : 3,
- "drilldown" : "Ryan Thompson"
+ "y" : 3
},
{
"drilldown" : "Saif Ahmed",
@@ -119,37 +125,27 @@
"y" : 3
},
{
- "y" : 2,
+ "drilldown" : "Wanderdoc",
"name" : "Wanderdoc",
- "drilldown" : "Wanderdoc"
+ "y" : 2
}
],
+ "name" : "The Weekly Challenge - 165",
"colorByPoint" : 1
}
],
- "xAxis" : {
- "type" : "category"
- },
- "title" : {
- "text" : "The Weekly Challenge - 165"
- },
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
+ "plotOptions" : {
+ "series" : {
+ "borderWidth" : 0,
+ "dataLabels" : {
+ "format" : "{point.y}",
+ "enabled" : 1
+ }
}
},
- "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
- },
"drilldown" : {
"series" : [
{
- "name" : "Adam Russell",
"data" : [
[
"Perl",
@@ -160,11 +156,10 @@
2
]
],
+ "name" : "Adam Russell",
"id" : "Adam Russell"
},
{
- "name" : "Arne Sommer",
- "id" : "Arne Sommer",
"data" : [
[
"Raku",
@@ -174,20 +169,21 @@
"Blog",
1
]
- ]
+ ],
+ "name" : "Arne Sommer",
+ "id" : "Arne Sommer"
},
{
+ "id" : "Athanasius",
"name" : "Athanasius",
"data" : [
[
"Perl",
2
]
- ],
- "id" : "Athanasius"
+ ]
},
{
- "name" : "Cheok-Yin Fung",
"data" : [
[
"Perl",
@@ -198,20 +194,32 @@
1
]
],
+ "name" : "Cheok-Yin Fung",
"id" : "Cheok-Yin Fung"
},
{
- "name" : "Duncan C. White",
- "id" : "Duncan C. White",
"data" : [
[
"Perl",
2
]
- ]
+ ],
+ "id" : "Colin Crain",
+ "name" : "Colin Crain"
+ },
+ {
+ "data" : [
+ [
+ "Perl",
+ 2
+ ]
+ ],
+ "name" : "Duncan C. White",
+ "id" : "Duncan C. White"
},
{
"id" : "Flavio Poletti",
+ "name" : "Flavio Poletti",
"data" : [
[
"Perl",
@@ -225,10 +233,10 @@
"Blog",
2
]
- ],
- "name" : "Flavio Poletti"
+ ]
},
{
+ "name" : "James Smith",
"id" : "James Smith",
"data" : [
[
@@ -239,31 +247,31 @@
"Blog",
1
]
- ],
- "name" : "James Smith"
+ ]
},
{
- "name" : "Jorg Sommrey",
"data" : [
[
"Perl",
2
]
],
- "id" : "Jorg Sommrey"
+ "id" : "Jorg Sommrey",
+ "name" : "Jorg Sommrey"
},
{
+ "name" : "Julien Fiegehenn",
"id" : "Julien Fiegehenn",
"data" : [
[
"Perl",
2
]
- ],
- "name" : "Julien Fiegehenn"
+ ]
},
{
"name" : "Laurent Rosenfeld",
+ "id" : "Laurent Rosenfeld",
"data" : [
[
"Perl",
@@ -277,12 +285,11 @@
"Blog",
2
]
- ],
- "id" : "Laurent Rosenfeld"
+ ]
},
{
- "name" : "Luca Ferrari",
"id" : "Luca Ferrari",
+ "name" : "Luca Ferrari",
"data" : [
[
"Raku",
@@ -295,16 +302,17 @@
]
},
{
- "name" : "Mark Anderson",
"data" : [
[
"Raku",
2
]
],
+ "name" : "Mark Anderson",
"id" : "Mark Anderson"
},
{
+ "name" : "Peter Campbell Smith",
"id" : "Peter Campbell Smith",
"data" : [
[
@@ -315,30 +323,31 @@
"Blog",
1
]
- ],
- "name" : "Peter Campbell Smith"
+ ]
},
{
+ "id" : "Rick Bychowski",
+ "name" : "Rick Bychowski",
"data" : [
[
"Raku",
2
]
- ],
- "id" : "Rick Bychowski",
- "name" : "Rick Bychowski"
+ ]
},
{
+ "id" : "Robert Ransbottom",
"name" : "Robert Ransbottom",
"data" : [
[
"Raku",
2
]
- ],
- "id" : "Robert Ransbottom"
+ ]
},
{
+ "name" : "Roger Bell_West",
+ "id" : "Roger Bell_West",
"data" : [
[
"Perl",
@@ -352,12 +361,11 @@
"Blog",
1
]
- ],
- "id" : "Roger Bell_West",
- "name" : "Roger Bell_West"
+ ]
},
{
"id" : "Ryan Thompson",
+ "name" : "Ryan Thompson",
"data" : [
[
"Perl",
@@ -367,17 +375,16 @@
"Blog",
1
]
- ],
- "name" : "Ryan Thompson"
+ ]
},
{
- "id" : "Saif Ahmed",
"data" : [
[
"Perl",
2
]
],
+ "id" : "Saif Ahmed",
"name" : "Saif Ahmed"
},
{
@@ -391,7 +398,6 @@
"name" : "Ulrich Rieke"
},
{
- "name" : "W. Luis Mochan",
"data" : [
[
"Perl",
@@ -402,6 +408,7 @@
1
]
],
+ "name" : "W. Luis Mochan",
"id" : "W. Luis Mochan"
},
{
@@ -415,5 +422,13 @@
"name" : "Wanderdoc"
}
]
+ },
+ "title" : {
+ "text" : "The Weekly Challenge - 165"
+ },
+ "tooltip" : {
+ "followPointer" : 1,
+ "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/>"
}
}
diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json
index b38ec16c1f..194c31e483 100644
--- a/stats/pwc-language-breakdown-summary.json
+++ b/stats/pwc-language-breakdown-summary.json
@@ -1,6 +1,42 @@
{
+ "title" : {
+ "text" : "The Weekly Challenge Contributions [2019 - 2022]"
+ },
+ "tooltip" : {
+ "pointFormat" : "<b>{point.y:.0f}</b>"
+ },
+ "subtitle" : {
+ "text" : "Last updated at 2022-05-23 00:57:56 GMT"
+ },
+ "yAxis" : {
+ "title" : {
+ "text" : null
+ },
+ "min" : 0
+ },
+ "xAxis" : {
+ "type" : "category",
+ "labels" : {
+ "style" : {
+ "fontSize" : "13px",
+ "fontFamily" : "Verdana, sans-serif"
+ }
+ }
+ },
"series" : [
{
+ "dataLabels" : {
+ "y" : 10,
+ "color" : "#FFFFFF",
+ "format" : "{point.y:.0f}",
+ "rotation" : -90,
+ "enabled" : "true",
+ "style" : {
+ "fontSize" : "13px",
+ "fontFamily" : "Verdana, sans-serif"
+ },
+ "align" : "right"
+ },
"name" : "Contributions",
"data" : [
[
@@ -9,55 +45,19 @@
],
[
"Perl",
- 8074
+ 8076
],
[
"Raku",
4783
]
- ],
- "dataLabels" : {
- "align" : "right",
- "rotation" : -90,
- "color" : "#FFFFFF",
- "style" : {
- "fontSize" : "13px",
- "fontFamily" : "Verdana, sans-serif"
- },
- "format" : "{point.y:.0f}",
- "enabled" : "true",
- "y" : 10
- }
+ ]
}
],
- "xAxis" : {
- "type" : "category",
- "labels" : {
- "style" : {
- "fontSize" : "13px",
- "fontFamily" : "Verdana, sans-serif"
- }
- }
- },
- "title" : {
- "text" : "The Weekly Challenge Contributions [2019 - 2022]"
- },
- "yAxis" : {
- "title" : {
- "text" : null
- },
- "min" : 0
- },
"legend" : {
"enabled" : "false"
},
- "tooltip" : {
- "pointFormat" : "<b>{point.y:.0f}</b>"
- },
"chart" : {
"type" : "column"
- },
- "subtitle" : {
- "text" : "Last updated at 2022-05-23 00:50:02 GMT"
}
}
diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json
index a32040bf09..3809a15346 100644
--- a/stats/pwc-language-breakdown.json
+++ b/stats/pwc-language-breakdown.json
@@ -1,9 +1,11 @@
{
- "subtitle" : {
- "text" : "Click the columns to drilldown the language breakdown. Last updated at 2022-05-23 00:50:03 GMT"
+ "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/>"
},
- "chart" : {
- "type" : "column"
+ "title" : {
+ "text" : "The Weekly Challenge Language"
},
"drilldown" : {
"series" : [
@@ -22,11 +24,10 @@
11
]
],
- "id" : "001",
- "name" : "001"
+ "name" : "001",
+ "id" : "001"
},
{
- "id" : "002",
"data" : [
[
"Perl",
@@ -41,10 +42,10 @@
10
]
],
- "name" : "002"
+ "name" : "002",
+ "id" : "002"
},
{
- "name" : "003",
"data" : [
[
"Perl",
@@ -59,11 +60,10 @@
9
]
],