diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2022-05-23 02:13:23 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2022-05-23 02:13:23 +0100 |
| commit | 1947547dc51662f49f6a7a3bda6984991b84070c (patch) | |
| tree | e967c3b9388081f1bb36925e326bff833d148550 | |
| parent | d296937e83075423d40bf160c55bf9142e099454 (diff) | |
| download | perlweeklychallenge-club-1947547dc51662f49f6a7a3bda6984991b84070c.tar.gz perlweeklychallenge-club-1947547dc51662f49f6a7a3bda6984991b84070c.tar.bz2 perlweeklychallenge-club-1947547dc51662f49f6a7a3bda6984991b84070c.zip | |
- Added solutions by Colin Crain.
| -rwxr-xr-x | challenge-165/colin-crain/perl/ch-1.pl | 182 | ||||
| -rwxr-xr-x | challenge-165/colin-crain/perl/ch-2.pl | 220 | ||||
| -rw-r--r-- | stats/pwc-current.json | 201 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 76 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 1134 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 734 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 50 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 46 | ||||
| -rw-r--r-- | stats/pwc-summary-151-180.json | 42 | ||||
| -rw-r--r-- | stats/pwc-summary-181-210.json | 52 | ||||
| -rw-r--r-- | stats/pwc-summary-211-240.json | 28 | ||||
| -rw-r--r-- | stats/pwc-summary-241-270.json | 34 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 38 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 106 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 110 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 558 |
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" : { + "followPoint |
