aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2021-08-08 12:05:28 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2021-08-08 12:05:28 +0100
commitaf864edec948b6d2042dffa7489aea21ac1ed8ea (patch)
treefc6dc835c0c5d00ac48e5c64773b253f876243a2
parent5a4b206590d0dd19d4ecb7f67ac615d544acc37b (diff)
downloadperlweeklychallenge-club-af864edec948b6d2042dffa7489aea21ac1ed8ea.tar.gz
perlweeklychallenge-club-af864edec948b6d2042dffa7489aea21ac1ed8ea.tar.bz2
perlweeklychallenge-club-af864edec948b6d2042dffa7489aea21ac1ed8ea.zip
- Added solutions by Colin Crain.
-rw-r--r--challenge-124/colin-crain/perl/ch-1.pl282
-rw-r--r--challenge-124/colin-crain/perl/ch-2.pl91
-rw-r--r--challenge-124/colin-crain/raku/ch-2.raku39
-rw-r--r--stats/pwc-current.json184
-rw-r--r--stats/pwc-language-breakdown-summary.json70
-rw-r--r--stats/pwc-language-breakdown.json1698
-rw-r--r--stats/pwc-leaders.json354
-rw-r--r--stats/pwc-summary-1-30.json44
-rw-r--r--stats/pwc-summary-121-150.json54
-rw-r--r--stats/pwc-summary-151-180.json86
-rw-r--r--stats/pwc-summary-181-210.json44
-rw-r--r--stats/pwc-summary-211-240.json30
-rw-r--r--stats/pwc-summary-31-60.json36
-rw-r--r--stats/pwc-summary-61-90.json38
-rw-r--r--stats/pwc-summary-91-120.json56
-rw-r--r--stats/pwc-summary.json512
16 files changed, 2019 insertions, 1599 deletions
diff --git a/challenge-124/colin-crain/perl/ch-1.pl b/challenge-124/colin-crain/perl/ch-1.pl
new file mode 100644
index 0000000000..167a3a4a37
--- /dev/null
+++ b/challenge-124/colin-crain/perl/ch-1.pl
@@ -0,0 +1,282 @@
+#!/Users/colincrain/perl5/perlbrew/perls/perl-5.32.0/bin/perl
+#
+# venus-was-her-name.pl
+#
+# Happy Women Day
+# Submitted by: Mohammad S Anwar
+# Write a script to print the Venus Symbol, international gender symbol
+# for women. Please feel free to use any character.
+#
+# ^^^^^
+# ^ ^
+# ^ ^
+# ^ ^
+# ^ ^
+# ^ ^
+# ^ ^
+# ^ ^
+# ^ ^
+# ^ ^
+# ^^^^^
+# ^
+# ^
+# ^
+# ^^^^^
+# ^
+# ^
+#
+# method:
+#
+# Somehow I feel confident some submissions from the team will copy
+# the above to a heredoc and print it out. I mean, it does fulfill
+# the requirement.
+#
+# But I am not that person.
+#
+# Why not? Well for I suppose the main reason is respect: I feel
+# that trivializing the task reflects poorly on the motivation
+# behind it, and trivializing International Women's Day, or any day
+# you want to call Women's Day for that matter, is just not
+# something I would ever want to do. I am and always have been a big
+# fan of women. I'm more than capable of trivializing worthless
+# ideas, don't get me wrong. But not this, no, not this. I'm going
+# to do this right, whatever that means.
+#
+# So what do we do? Well it's been quite a long time since I've done
+# any graphics programming, so how about that? Draw a circle and two
+# rectangles. Maybe out of X chromosones.
+#
+# To draw the circle we'll use Bresenham’s algorithm to draw the
+# best "pixels" in a "screen buffer", in this case a 2-dimensional
+# array. We can then write a rectangle tool and draw a vertical bar,
+# and another horizontal bar bisecting it. Because we're using a
+# buffer intermediate we can just write to the elements we need
+# filled in and not care about the canvas.
+#
+# About that: this is another place Perl's autovivifing arrays
+# really shine, because we don't need to precalculate the canvas
+# size. We can start drawing in and once the drawing is complete we
+# scan through the rows and transform undefined elements into
+# spaces, or whatever we define a space to be.
+#
+# The right edge will be invisibly ragged if we use spaces, so we
+# won't choose to do anything about it. As long as we use a
+# monospaced font, or at least two characters that match widths, all
+# the alignment will work out.
+#
+# Perl Notes:
+#
+# the implementation of Bresenham's algorithm I used chooses
+# the best single pixel to draw a 45° arc, flipped and mirrored
+# 8 ways. After a little experimentation I decided the best
+# looking result to widen the line was to draw another circle
+# inside it, an another inside that. This led to the idea of a
+# standard width, to be followed in the rectangular blocks as
+# well. The standard length became the radius of the circle and
+# the lengths of the bars.
+#
+# I did fiddle the height of the vertical bar because good
+# design is good design. Round numbers are useless if it looks
+# bad.
+#
+# The width, the font weight, became 1/5 the radius, or 1/10
+# the character width. That feels right; it's hard-coded but
+# easily configureed in one place. So the size of the Venus
+# drawing is specified by one parameter now, being half the
+# final width or 1/3.2 the height.
+#
+# SO... I added some noise, and mixed up the characters to give
+# it more drama. There's a chance now a set character will move
+# aboiut in a brownian manner, and if it moves it becomes a
+# venus symbol. The original character remains intact unless it
+# gets overwritten. Then an additional layer of noise with just
+# dots, that won't overwite an existing character. The noise
+# function is asymetric a bit, drifting to the lower right,
+# giving it some dynamism.
+#
+# The whole process reminds me of tweaking a Renderman shader
+# or something — fine tuning the constants to whatever looks
+# right.
+#
+# Now I see a crowd forming, perhaps at a march, joined up
+# together to form a Venus symbol, drifting in from the lower
+# right. I'm really happy with what I came up with, and it's
+# entirely worth the effort. But women, in general, are, so
+# that's consistant.
+
+
+# © 2021 colin crain
+## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
+
+
+use warnings;
+use strict;
+use utf8;
+use feature ":5.26";
+use feature qw(signatures);
+no warnings 'experimental::signatures';
+
+binmode STDOUT, ':utf8';
+
+use POSIX qw( round );
+
+### ### ### cfg
+
+use constant { SPACE => ' ' };
+use constant { CHAR => '⚐︎︎' };
+use constant { WOMAN => '♀︎' };
+use constant { DUST => '.' };
+
+## all of these are pretty much voodoo, set to what looks good
+use constant { CANVAS_MULTIPLIER => 1.2 }; ## extra whitespace to canvas
+use constant { FONT_WEIGHT => 3.5 }; ## line width ratio to radius
+use constant { CROSS_HEIGHT => 1.2 }; ## ratio to radius
+use constant { BAR_PLACEMENT => 1.5 }; ## half way down vertical bar
+use constant { NOISE_FACTOR => 2.2 }; ## ??? larger is more
+use constant { NOISE_SCALE_FACTOR => 2 }; ## ??? scales the scaling
+use constant { DUST_SCALE => 1.4 }; ## larger dust spread
+
+### ### ### /cfg
+
+
+
+### ### ### INPUT
+my $size = shift @ARGV || 20; ## default radius 20 chars
+
+
+
+### init globals based on config
+
+our $cen_rows = $size * CANVAS_MULTIPLIER;
+our $cen_cols = $size * CANVAS_MULTIPLIER;
+our $rad = $size ;
+our $width = round( $size/FONT_WEIGHT ); ## round vs. truncation
+our $buf = [];
+
+### ### ### main
+
+draw_circle( $cen_rows, $cen_cols, $rad-$_ ) for (0..$width-1);
+
+draw_rectangle( $cen_rows + $rad,
+ $cen_cols - ($width/2), ## centered at half canvas
+ $rad * CROSS_HEIGHT,
+ $width );
+
+draw_rectangle( $cen_rows + $rad * BAR_PLACEMENT,
+ $cen_cols - ($rad/2), ## centered at half canvas
+ $width,
+ $rad );
+
+add_noisy_crowd(NOISE_FACTOR);
+
+print_buffer();
+
+### ### ### /main
+
+sub draw_circle ( $cen_rows, $cen_cols, $rad ) {
+## Bresenham's algorithm for a circle
+ my $x = 0;
+ my $y = $rad;
+ my $d = 3 - 2 * $rad;
+
+ draw_circle_to_buffer( $cen_rows, $cen_cols, $x, $y );
+
+ while ( $y >= $x ) {
+ $x++;
+ if ($d > 0) {
+ $y--;
+ $d += 4 * ( $x - $y ) + 10;
+
+ }
+ else {
+ $d += 4 * $x + 6;
+ }
+ draw_circle_to_buffer( $cen_rows, $cen_cols, $x, $y );
+ }
+}
+
+sub draw_circle_to_buffer ( $cen_rows, $cen_cols, $x, $y ) {
+ $buf->[$cen_rows+$x][$cen_cols+$y]
+ = $buf->[$cen_rows-$x][$cen_cols+$y]
+ = $buf->[$cen_rows+$x][$cen_cols-$y]
+ = $buf->[$cen_rows-$x][$cen_cols-$y]
+ = $buf->[$cen_rows+$y][$cen_cols+$x]
+ = $buf->[$cen_rows-$y][$cen_cols+$x]
+ = $buf->[$cen_rows+$y][$cen_cols-$x]
+ = $buf->[$cen_rows-$y][$cen_cols-$x]
+ = CHAR;
+}
+
+sub noise ($scale) {
+## a tool to add noise to pixel placement - this is pretty much a magic
+## function that is tuned to look right, whatever that means. Randomness
+## falls off polynomially.
+ srand;
+ return int (rand($scale)**2 - $scale/2);
+ $scale *= NOISE_SCALE_FACTOR;
+ return int( (rand($scale) - $scale/2) ** 2 );
+}
+
+
+sub print_buffer {
+ respace_buffer();
+ say "$_->@*" for $buf->@*;
+}
+
+sub respace_buffer {
+## before printing (or adding noise, as it works out) we need to make sure
+## the canvas is defined. Perhaps we should have gone with that precomputed
+## and inititated canvas to start after all... Oh well. This works. Apply
+## as necessary. This way give us more dynamic freedom with adding noise or
+## whatnot.
+ for my $row ( 0..$buf->$#* ) {
+ for my $col ( 0..$buf->[$row]->$#*) {
+ $buf->[$row][$col] = SPACE if not defined $buf->[$row][$col];
+ }
+ }
+}
+
+sub draw_rectangle ( $upper_left_row, $upper_left_col, $rows, $cols ) {
+## upper left point, height and width
+ for my $row ( $upper_left_row..$upper_left_row + $rows ) {
+ for my $col ($upper_left_col..$upper_left_col + $cols) {
+ $buf->[$row][$col] = CHAR;
+ }
+ }
+}
+
+sub add_noisy_crowd ($level){
+## Pure artistic magic. Moves drawn chars with Brownian statistical
+## roll-off and replaces the CHAR with a WOMAN, currently configured as a
+## Unicode Venus symbol. Then creates much more random noise made up of
+## dots, the "dust", based on the CHAR placement, but leaves any already
+## defined elements alone, only adding new dots within a much larger random
+## radius. The noise function at present also drifts slightly to the right
+## and down; this is allowed by intent to dynamically draw the eye. It's
+## just good composition. The dust is limited to the undefined spaces of
+## the grid, the right and down, for the same reason. The artistic tuning
+## of the `noise()` function, parameters and overwrite behavior is all a
+## continual work-in-progress. I do like it as it is but it need not stay
+## this way.
+
+ respace_buffer(); ## prevent dust from filling image
+ for my $row ( 0..$buf->$#* ) {
+ for my $col ( 0..$buf->[$row]->$#*) {
+ if ( defined $buf->[$row][$col] && $buf->[$row][$col] eq CHAR ) {
+ my $x = $row + noise($level);
+ my $y = $col + noise($level);
+ $buf->[$x][$y] = WOMAN; ## keep original char, but
+ ## overwrite venus symbols
+ ## as it happens
+
+ $x += noise($level+DUST_SCALE);
+ $y += noise($level+DUST_SCALE);
+ $buf->[$x][$y] //= DUST; ## add dust to surrounding area
+ ## but do not overwrite
+ ## (only adds to undefined areas at
+ ## the right edge and below,
+ ## giving a pleasing look)
+ }
+ }
+ }
+}
diff --git a/challenge-124/colin-crain/perl/ch-2.pl b/challenge-124/colin-crain/perl/ch-2.pl
new file mode 100644
index 0000000000..0b7b6a3e62
--- /dev/null
+++ b/challenge-124/colin-crain/perl/ch-2.pl
@@ -0,0 +1,91 @@
+#!/Users/colincrain/perl5/perlbrew/perls/perl-5.32.0/bin/perl
+#
+# .pl
+#
+# Tug of War
+# Submitted by: Mohammad S Anwar
+# You are given a set of $n integers (n1, n2, n3, ….).
+#
+# Write a script to divide the set in two subsets of n/2 sizes each so
+# that the difference of the sum of two subsets is the least. If $n is
+# even then each subset must be of size $n/2 each. In case $n is odd
+# then one subset must be ($n-1)/2 and other must be ($n+1)/2.
+#
+# Example
+#
+# Input: Set = (10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
+# Output: Subset 1 = (30, 40, 60, 70, 80)
+# Subset 2 = (10, 20, 50, 90, 100)
+#
+# Input: Set = (10, -15, 20, 30, -25, 0, 5, 40, -5)
+# Subset 1 = (30, 0, 5, -5) = 30
+# Subset 2 = (10, -15, 20, -25, 40) = 30
+#
+# method:
+# Did we do something like this already? In any case an algorithm
+# springs immediately to mind: sort the input, and distribute the two
+# largest values betwen the other lists.
+
+# Yea, but negative values complicate that algorithm, especially when it
+# comes to making sure the divided parts are of equal-ish size. After
+# exploring that angle, I decided it was too complicated. So rather than
+# that, we're going to exhaustively compute the combinations n choose k
+# for half the elements, rounding down. Subtracting the sum of the
+# combination from the total sum of the list gives the fitness metric to
+# be minimized.
+#
+# Actually the difference of the part versus half the total will be the
+# same for the other half, so we can construct the metric by doubling
+# the partial sum and subtracting that, which is easier. We keep a
+# running minimum, keeping the difference between the segments and the
+# top-rated combination.
+#
+# At the end we need to create the complement segment, which we do by
+# finding the index of and then splicing out the elements in the
+# minimizing combination from the original inoput list.
+#
+# © 2021 colin crain
+## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
+
+
+
+use warnings;
+use strict;
+use utf8;
+use feature ":5.26";
+use feature qw(signatures);
+no warnings 'experimental::signatures';
+
+use List::Util qw( sum first );
+use Algorithm::Combinatorics qw( combinations );
+
+my @input = sort { $a <=> $b } @ARGV > 0
+ ? @ARGV
+ : (10, -15, 20, 30, -25, 0, 5, 40, -5);
+
+die "must have more than 1 element in input array" if @input < 2;
+
+my $sum = my $min = sum( @input );
+my @part1;
+
+my $half = int( @input/2 );
+my $iter = combinations(\@input, $half);
+while (my $c = $iter->next) {
+ my $partial = sum $c->@*;
+ if (abs($sum - 2 * $partial) < $min) {
+ $min = abs($sum - 2 * $partial);
+ @part1 = $c->@*;
+ }
+}
+
+for my $target ( @part1 ) {
+ splice @input, (first { $input[$_] == $target } (0..$#input)), 1;
+}
+
+my $output =
+ (join ' + ', sort {$b<=>$a} @part1) . ' = ' . sum( @part1 ) . "\n"
+. (join ' + ', sort {$b<=>$a} @input) . ' = ' . sum( @input );
+
+$output =~ s/\+ \-/- /g;
+
+say $output;
diff --git a/challenge-124/colin-crain/raku/ch-2.raku b/challenge-124/colin-crain/raku/ch-2.raku
new file mode 100644
index 0000000000..be77b94179
--- /dev/null
+++ b/challenge-124/colin-crain/raku/ch-2.raku
@@ -0,0 +1,39 @@
+#!/usr/bin/env perl6
+#
+#
+# .raku
+#
+#
+#
+# © 2021 colin crain
+## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
+
+
+
+unit sub MAIN ( *@input ) ;
+
+@input.elems == 0 && @input = (10, -15, 20, 30, -25, 0, 5, 40, -5);
+my $total = @input.sum;
+my $min = $total;
+my $half = @input.elems div 2;
+my @part1;
+
+for @input.combinations($half) -> $c {
+ my $psum = $c.sum;
+ if ($total - 2 * $psum).abs < $min {
+ $min = ($total - 2 * $psum).abs ;
+ @part1 = |$c;
+ }
+}
+
+my @part2 = (bag(@input) ∖ bag(@part1)).kxxv;; ## multiset subtraction (set minus) operator
+
+
+my $output = qq:to/END/;
+ {@part1.sort.reverse.join(' + ') ~ " = " ~ @part1.sum}
+ {@part2.sort.reverse.join(' + ') ~ " = " ~ @part2.sum}
+ END
+
+say S:g/"+ -"/- / given $output;
+
+
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index 3fe1caea0a..54d3229a80 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,12 +1,34 @@
{
+ "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
+ },
+ "plotOptions" : {
+ "series" : {
+ "dataLabels" : {
+ "format" : "{point.y}",
+ "enabled" : 1
+ },
+ "borderWidth" : 0
+ }
+ },
+ "legend" : {
+ "enabled" : 0
+ },
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
+ },
"series" : [
{
"name" : "The Weekly Challenge - 124",
"data" : [
{
+ "drilldown" : "Bruce Gray",
"name" : "Bruce Gray",
- "y" : 4,
- "drilldown" : "Bruce Gray"
+ "y" : 4
},
{
"drilldown" : "Cheok-Yin Fung",
@@ -15,7 +37,7 @@
},
{
"drilldown" : "Colin Crain",
- "y" : 1,
+ "y" : 4,
"name" : "Colin Crain"
},
{
@@ -35,63 +57,63 @@
},
{
"drilldown" : "James Smith",
- "name" : "James Smith",
- "y" : 3
+ "y" : 3,
+ "name" : "James Smith"
},
{
- "drilldown" : "Jan Krnavek",
"name" : "Jan Krnavek",
- "y" : 1
+ "y" : 1,
+ "drilldown" : "Jan Krnavek"
},
{
"drilldown" : "Jorg Sommrey",
- "y" : 2,
- "name" : "Jorg Sommrey"
+ "name" : "Jorg Sommrey",
+ "y" : 2
},
{
- "drilldown" : "kjetillll",
"name" : "kjetillll",
- "y" : 2
+ "y" : 2,
+ "drilldown" : "kjetillll"
},
{
- "drilldown" : "Laurent Rosenfeld",
+ "y" : 5,
"name" : "Laurent Rosenfeld",
- "y" : 5
+ "drilldown" : "Laurent Rosenfeld"
},
{
- "name" : "Luca Ferrari",
+ "drilldown" : "Luca Ferrari",
"y" : 4,
- "drilldown" : "Luca Ferrari"
+ "name" : "Luca Ferrari"
},
{
"drilldown" : "Mark Anderson",
- "y" : 1,
- "name" : "Mark Anderson"
+ "name" : "Mark Anderson",
+ "y" : 1
},
{
- "name" : "Niels van Dijke",
+ "drilldown" : "Niels van Dijke",
"y" : 2,
- "drilldown" : "Niels van Dijke"
+ "name" : "Niels van Dijke"
},
{
- "drilldown" : "Peter Campbell Smith",
+ "y" : 1,
"name" : "Peter Campbell Smith",
- "y" : 1
+ "drilldown" : "Peter Campbell Smith"
},
{
- "y" : 5,
"name" : "Roger Bell_West",
+ "y" : 5,
"drilldown" : "Roger Bell_West"
},
{
"drilldown" : "Simon Green",
- "name" : "Simon Green",
- "y" : 2
+ "y" : 2,
+ "name" : "Simon Green"
},
{
"drilldown" : "Simon Proctor",
- "name" : "Simon Proctor",
- "y" : 2
+ "y" : 2,
+ "name" : "Simon Proctor"
},
{
"y" : 4,
@@ -99,9 +121,9 @@
"drilldown" : "Stuart Little"
},
{
+ "drilldown" : "Ulrich Rieke",
"name" : "Ulrich Rieke",
- "y" : 3,
- "drilldown" : "Ulrich Rieke"
+ "y" : 3
},
{
"drilldown" : "W. Luis Mochan",
@@ -112,36 +134,8 @@
"colorByPoint" : 1
}
],
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
- },
- "title" : {
- "text" : "The Weekly Challenge - 124"
- },
- "subtitle" : {
- "text" : "[Champions: 21] Last updated at 2021-08-07 14:55:15 GMT"
- },
- "chart" : {
- "type" : "column"
- },
- "legend" : {
- "enabled" : 0
- },
- "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
+ "xAxis" : {
+ "type" : "category"
},
"drilldown" : {
"series" : [
@@ -160,27 +154,34 @@
"id" : "Bruce Gray"
},
{
+ "name" : "Cheok-Yin Fung",
+ "id" : "Cheok-Yin Fung",
"data" : [
[
"Perl",
1
]
- ],
- "name" : "Cheok-Yin Fung",
- "id" : "Cheok-Yin Fung"
+ ]
},
{
- "id" : "Colin Crain",
"data" : [
[
+ "Perl",
+ 2
+ ],
+ [
+ "Raku",
+ 1
+ ],
+ [
"Blog",
1
]
],
+ "id" : "Colin Crain",
"name" : "Colin Crain"
},
{
- "id" : "Dave Jacoby",
"data" : [
[
"Perl",
@@ -191,20 +192,20 @@
1
]
],
+ "id" : "Dave Jacoby",
"name" : "Dave Jacoby"
},
{
- "id" : "E. Choroba",
"name" : "E. Choroba",
"data" : [
[
"Perl",
2
]
- ]
+ ],
+ "id" : "E. Choroba"
},
{
- "id" : "Flavio Poletti",
"data" : [
[
"Perl",
@@ -219,6 +220,7 @@
2
]
],
+ "id" : "Flavio Poletti",
"name" : "Flavio Poletti"
},
{
@@ -237,22 +239,22 @@
},
{
"id" : "Jan Krnavek",
- "name" : "Jan Krnavek",
"data" : [
[
"Raku",
1
]
- ]
+ ],
+ "name" : "Jan Krnavek"
},
{
+ "name" : "Jorg Sommrey",
"data" : [
[
"Perl",
2
]
],
- "name" : "Jorg Sommrey",
"id" : "Jorg Sommrey"
},
{
@@ -266,6 +268,8 @@
"id" : "kjetillll"
},
{
+ "name" : "Laurent Rosenfeld",
+ "id" : "Laurent Rosenfeld",
"data" : [
[
"Perl",
@@ -279,13 +283,11 @@
"Blog",
1
]
- ],
- "name" : "Laurent Rosenfeld",
- "id" : "Laurent Rosenfeld"
+ ]
},
{
- "id" : "Luca Ferrari",
"name" : "Luca Ferrari",
+ "id" : "Luca Ferrari",
"data" : [
[
"Raku",
@@ -299,36 +301,35 @@
},
{
"name" : "Mark Anderson",
+ "id" : "Mark Anderson",
"data" : [
[
"Raku",
1
]
- ],
- "id" : "Mark Anderson"
+ ]
},
{
+ "name" : "Niels van Dijke",
"id" : "Niels van Dijke",
"data" : [
[
"Perl",
2
]
- ],
- "name" : "Niels van Dijke"
+ ]
},
{
- "name" : "Peter Campbell Smith",
+ "id" : "Peter Campbell Smith",
"data" : [
[
"Perl",
1
]
],
- "id" : "Peter Campbell Smith"
+ "name" : "Peter Campbell Smith"
},
{
- "id" : "Roger Bell_West",
"data" : [
[
"Perl",
@@ -343,10 +344,11 @@
1
]
],
+ "id" : "Roger Bell_West",
"name" : "Roger Bell_West"
},
{
- "id" : "Simon Green",
+ "name" : "Simon Green",
"data" : [
[
"Perl",
@@ -357,17 +359,17 @@
1
]
],
- "name" : "Simon Green"
+ "id" : "Simon Green"
},
{
+ "name" : "Simon Proctor",
"id" : "Simon Proctor",
"data" : [
[
"Raku",
2
]
- ],
- "name" : "Simon Proctor"
+ ]
},
{
"id" : "Stuart Little",
@@ -408,12 +410,18 @@
1
]
],
- "name" : "W. Luis Mochan",
- "id" : "W. Luis Mochan"
+ "id" : "W. Luis Mochan",
+ "name" : "W. Luis Mochan"
}
]
},
- "xAxis" : {
- "type" : "category"
+ "subtitle" : {
+ "text" : "[Champions: 21] Last updated at 2021-08-08 11:05:15 GMT"
+ },
+ "title" : {
+ "text" : "The Weekly Challenge - 124"
+ },
+ "chart" : {
+ "type" : "column"
}
}
diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json
index 8956c5f251..6e5db24ae7 100644
--- a/stats/pwc-language-breakdown-summary.json
+++ b/stats/pwc-language-breakdown-summary.json
@@ -1,40 +1,25 @@
{
- "chart" : {
- "type" : "column"
- },
- "legend" : {
- "enabled" : "false"
- },
- "subtitle" : {
- "text" : "Last updated at 2021-08-07 14:55:15 GMT"
- },
- "xAxis" : {
- "labels" : {
- "style" : {
- "fontSize" : "13px",
- "fontFamily" : "Verdana, sans-serif"
- }
- },
- "type" : "category"
- },
- "tooltip" : {
- "pointFormat" : "<b>{point.y:.0f}</b>"
+ "yAxis" : {
+ "min" : 0,
+ "title" : {
+ "text" : null
+ }
},
"series" : [
{
+ "name" : "Contributions",
"dataLabels" : {
+ "style" : {
+ "fontFamily" : "Verdana, sans-serif",
+ "fontSize" : "13px"
+ },
"rotation" : -90,
- "enabled" : "true",
- "format" : "{point.y:.0f}",
"y" : 10,
- "color" : "#FFFFFF",
"align" : "right",
- "style" : {
- "fontSize" : "13px",
- "fontFamily" : "Verdana, sans-serif"
- }
+ "color" : "#FFFFFF",
+ "format" : "{point.y:.0f}",
+ "enabled" : "true"
},
- "name" : "Contributions",
"data" : [
[
"Blog",
@@ -42,22 +27,37 @@
],
[
"Perl",
- 5941
+ 5943
],
[
"Raku",
- 3702
+ 3703
]
]
}
],
- "yAxis" : {
- "min" : 0,
- "title" : {
- "text" : null
- }
+ "xAxis" : {
+ "labels" : {
+ "style" : {
+ "fontSize" : "13px",
+ "fontFamily" : "Verdana, sans-serif"
+ }
+ },
+ "type" : "category"
},
"title" : {
"text" : "The Weekly Challenge Contributions [2019 - 2021]"
+ },
+ "chart" : {
+ "type" : "column"
+ },
+ "subtitle" : {
+ "text" : "Last updated at 2021-08-08 11:05:15 GMT"
+ },
+ "tooltip" : {
+ "pointFormat" : "<b>{point.y:.0f}</b>"
+ },
+ "legend" : {
+ "enabled" : "false"
}
}
diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json
index 07ea003d56..5bdf216dd9 100644
--- a/stats/pwc-language-breakdown.json
+++ b/stats/pwc-language-breakdown.json
@@ -1,667 +1,33 @@
{
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
- },
- "series" : [
- {
- "data" : [
- {
- "y" : 161,
- "name" : "#001",