diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-08-08 12:05:28 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-08-08 12:05:28 +0100 |
| commit | af864edec948b6d2042dffa7489aea21ac1ed8ea (patch) | |
| tree | fc6dc835c0c5d00ac48e5c64773b253f876243a2 | |
| parent | 5a4b206590d0dd19d4ecb7f67ac615d544acc37b (diff) | |
| download | perlweeklychallenge-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.pl | 282 | ||||
| -rw-r--r-- | challenge-124/colin-crain/perl/ch-2.pl | 91 | ||||
| -rw-r--r-- | challenge-124/colin-crain/raku/ch-2.raku | 39 | ||||
| -rw-r--r-- | stats/pwc-current.json | 184 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 70 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 1698 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 354 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 44 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 54 | ||||
| -rw-r--r-- | stats/pwc-summary-151-180.json | 86 | ||||
| -rw-r--r-- | stats/pwc-summary-181-210.json | 44 | ||||
| -rw-r--r-- | stats/pwc-summary-211-240.json | 30 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 36 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 38 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 56 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 512 |
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", |
