From 557c74ebe992c09731a36aee2e607e189a7c41fe Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Mon, 21 Feb 2022 04:20:31 +0000 Subject: - Added solutions by Colin Crain. --- challenge-152/colin-crain/perl/ch-1.pl | 146 +++ challenge-152/colin-crain/perl/ch-2.pl | 170 ++++ challenge-152/colin-crain/raku/ch-1.raku | 22 + challenge-152/colin-crain/raku/ch-2.raku | 68 ++ stats/pwc-current.json | 240 ++--- stats/pwc-language-breakdown-summary.json | 48 +- stats/pwc-language-breakdown.json | 994 +++++++++--------- stats/pwc-leaders.json | 706 ++++++------- stats/pwc-summary-1-30.json | 92 +- stats/pwc-summary-121-150.json | 32 +- stats/pwc-summary-151-180.json | 104 +- stats/pwc-summary-181-210.json | 114 +-- stats/pwc-summary-211-240.json | 20 +- stats/pwc-summary-241-270.json | 46 +- stats/pwc-summary-31-60.json | 20 +- stats/pwc-summary-61-90.json | 34 +- stats/pwc-summary-91-120.json | 126 +-- stats/pwc-summary.json | 1566 ++++++++++++++--------------- 18 files changed, 2481 insertions(+), 2067 deletions(-) create mode 100755 challenge-152/colin-crain/perl/ch-1.pl create mode 100755 challenge-152/colin-crain/perl/ch-2.pl create mode 100755 challenge-152/colin-crain/raku/ch-1.raku create mode 100755 challenge-152/colin-crain/raku/ch-2.raku diff --git a/challenge-152/colin-crain/perl/ch-1.pl b/challenge-152/colin-crain/perl/ch-1.pl new file mode 100755 index 0000000000..6ad1905161 --- /dev/null +++ b/challenge-152/colin-crain/perl/ch-1.pl @@ -0,0 +1,146 @@ +#!/Users/colincrain/perl5/perlbrew/perls/perl-5.32.0/bin/perl +# +# paths-of-least-resistance.pl +# +# Triangle Sum Path +# Submitted by: Mohammad S Anwar +# You are given a triangle array. +# +# Write a script to find the minimum sum path from top to bottom. +# +# Example 1: +# Input: $triangle = [ [1], [5,3], [2,3,4], [7,1,0,2], [6,4,5,2,8] ] +# +# 1 +# 5 3 +# 2 3 4 +# 7 1 0 2 +# 6 4 5 2 8 +# +# Output: 8 +# +# Minimum Sum Path = 1 + 3 + 2 + 0 + 2 => 8 +# Example 2: +# Input: $triangle = [ [5], [2,3], [4,1,5], [0,1,2,3], [7,2,4,1,9] ] +# +# 5 +# 2 3 +# 4 1 5 +# 0 1 2 3 +# 7 2 4 1 9 +# +# Output: 9 +# +# Minimum Sum Path = 5 + 2 + 1 + 0 + 1 => 9 + +# method: +# +# This took me bit, understanding what exactly was meant by the +# idea of a "minimum sum path". A triangle, to me, implies a +# directed graph of some sort, which would involve navigating +# the edges in some optimal fashion. +# +# A quick study of the examples shows this not to be the case. +# In fact, for lack of some flash of insight I can't seem to +# come up with much of a reason at all for using those terms to +# descibe what we are being asked to do. I mean, its not wrong, +# per se, just not very illuminating. +# +# The first two ideas, "minimum" and "sum" speak for +# themselves, and the smallest total value from a sequence of +# addition is indeed what we want. It's the "path" part that +# strikes me as the part that will cause confusion. The term +# path generally spaks to a series of connected steps +# describing a way to proceed. One might think that the "steps" +# involved here were somehow the selected minimal digits, but +# as it turn out the steps are the the descending levels of the +# triangle, with each level a complete unit. As such the goal +# is only to select the minimal value from each level, one per +# level, and sum the collection. +# +# As the triangles themselves are delivered transformed into a +# flat list-of-lists data structure, the levels themseleves are +# already grouped into groups of elements for us. Although they +# are constructed as an array-of-arrays, as that is the data +# structure available to us, in practice the collection is +# unordered: the "sum" operation is communitive, and does not +# care about the order of the additions. Likewise the "minimum" +# operates on a set, finding the smallest value, again without +# regard to order. +# +# So hence my use of the word "lists" before, as the indexing +# that de facto exists is inconsequential to either the +# processing or the outcome. What we have is a list of +# anonymous array units to be processed one-by-one until we are +# dine, gathering from each the smallest element to an +# accumulator that is reported. +# +# That's a lot of words to very specifically describe a much +# simpler operation than I first expected. +# +# Although just printing the actual sum would be simpler, we'll +# follow the example and gather the elements selected along the +# way to produce our "path". +# +# --- +# +# You know, when I do these challenges, and especially when I +# review the work of others, I make a concerted effort not to +# ever use the word "easy". Why? Because it communicates very +# little informatiion, and none of it useful. When I say +# something is easy, I can only really mean that it is easy for +# me. Other people, less familiar with the material, or the +# required steps to a solution, might find the task +# considerably more difficult. I don't know what they know, and +# knowing the solution myself makes me blind to the state of +# not knowing it. +# +# To them, knowing that I found the task easy does not help at +# all. It's a distraction, or perhaps nothing at all at best, +# and at worst sets up a judgemental ruling that their own +# efforts, struggling to put the pieces together, are +# substandard. I have no idea why I would ever want to do this. +# Belittleing another person in no way makes me objectively +# better. I remain exactly as able after as I was before. +# +# This isn't to be taken as a rejection of things actually +# *being* easy mind you. I love that feeling of being overtaken +# by exhuberance on a job well-done. Confidence is good, as is +# pride in one's work, up to but not beyond the point of being +# noticed by the gods. That other related word, hubris, is an +# important idea to keep around, and I'm quite pleased a +# clasicist hammered the nuances of the Greek term into my head +# years ago. It has seved me well in life. +# +# So in the end I've decided that declaring things "easy" +# amounts to nothing but a brag. An empty boast at that, as the +# claim does not achieve anything of value. The only possible +# effect it can have, it seems, is to cut someone else down, if +# they are finding the task difficult. +# +# Perhaps I'm being a little hard on the term. It's still a +# good word, after all. +# +# But I really can't stand braggarts. +# +# +# © 2022 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 min ); + +## default triangle +my $triangle = [ [1], [5,3], [2,3,4], [7,1,0,2], [6,4,5,2,8] ] ; + +my @out = map { min( $_->@* ) } $triangle->@*; + +say "minimum sum path: ", (join ' + ', @out), " => ", sum @out; diff --git a/challenge-152/colin-crain/perl/ch-2.pl b/challenge-152/colin-crain/perl/ch-2.pl new file mode 100755 index 0000000000..cca54a2236 --- /dev/null +++ b/challenge-152/colin-crain/perl/ch-2.pl @@ -0,0 +1,170 @@ +#!/Users/colincrain/perl5/perlbrew/perls/perl-5.32.0/bin/perl +# +# whos-masking-the-mask.pl +# +# Rectangle Area +# Submitted by: Mohammad S Anwar +# +# You are given coordinates bottom-left and top-right corner of +# two rectangles in a 2D plane. +# +# Write a script to find the total area covered by the two rectangles. +# +# Example 1: +# Input: Rectangle 1 => (-1,0), (2,2) +# Rectangle 2 => (0,-1), (4,4) +# +# Output: 22 +# +# Example 2: +# Input: Rectangle 1 => (-3,-1), (1,3) +# Rectangle 2 => (-1,-3), (2,2) +# +# Output: 25 + +# analysis: +# +# I like it when the puzzle doesn't explain itself in too much +# detail as to what's going on with it. Here we are given two +# rectangles and asked to find the area covered by both. Ok, +# sure. Deriving the area involves the application of a fairly +# simple formula. Do that for each and there we are. +# +# But what if the rectangles overlap? Oh, right. That's the +# puzzle. The part that isn't mentioned. +# +# If we simply sum the two areas, any overlap will be counted +# twice. We can't have that. What to do? +# +# We need to find that overlap, that's what, and do somehing +# about it. Stat. +# +# What we are looking for then is the *union* of the two areas. +# For this we take the area covered only by one rectangle, the +# area covered only by the other, the area covered by both, and +# then we add all of that up. Or, you know, come to the same +# answer some other way. Like if we could find just the +# intersection area, we could subtract that from the sum of +# each considered independantly. That would work too. +# +# So what is the overlap, then? We keep coming back to that +# question. Let's answer it. +# +# In the first example, we have two z-axis ranges, one for each +# rectangle... +# +# Oh right. Before we begin, we'll note that two points only +# determine a rectangle if it is laid out orthogonally on the +# plane. If we allow the shape to be rotated, which of course +# is prefectly allowable in a 2-dimensional cartesion space, +# then we lose the meaning of the "bottom-left" and "top-right" +# corners as distinct properties. Although one (or two) points +# will always be bottom-most, unless we are orthogonally +# aligned that point will not also be left-most. The whole idea +# gets schmurtled. +# +# So because we are only given the two points to define our +# rectangle, we can safely infer that that the two rectangles +# are orthogonally placed within the grid. This is good, +# because calculating teh area in arbitrarily-rotated +# rectangles is considerably harder to do. Not impossible, but +# much more complicated. +# +# That settled, we have two x-axis ranges, one for each +# rectangle. Any overlapped area will be contained within the +# overlap of these ranges, although the area may still be 0 if +# there is no \y-axis overlap as well. +# +# Which leads us to th e\t-axis next. It is the combination of +# these four overlaped ranges that in turn defines the left and +# right, top and bottom extremities of the intersected area. +# +# So we get that shape, subtract it from the sum of the two +# rectangles, ad we have our answer. +# +# method: +# +# We're going to go with the subtractive solution outlined +# above. Let's call the area of one rectangle A, the other B. +# Then we're looking for the union of the two areas: +# +# A ∪ B = A + B - ( A ∩ B ) +# + +# +# © 2022 colin crain +## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## + + + +use warnings; +use strict; +use utf8; +use feature ":5.26"; +use feature qw(signatures); +no warnings 'experimental::signatures'; + + + +## a rectangle is defined as two point tuples [$p1,$p2] for the +## bottom-left and upper-right vertices +## main functions return returns units² + +sub area ( $rect ) { + my $x = abs( $rect->[0][0] - $rect->[1][0] ); + my $y = abs( $rect->[0][1] - $rect->[1][1] ); + return $x * $y; +} + +sub intersect ( $rect1, $rect2 ) { + _overlap( [ map { $_->[0] } $rect1->@* ], ## rect 1 x-axis + [ map { $_->[0] } $rect2->@* ] ) ## rect 2 x-axis + * + _overlap( [ map { $_->[1] } $rect1->@* ], ## rect 1 y-axis + [ map { $_->[1] } $rect2->@* ] ); ## rect 2 y-axis +} + +sub union ( $rect1, $rect2 ) { + area ($rect1) + + area ($rect2) + - intersect ($rect1, $rect2) ; +} + +sub _overlap ( $r1, $r2 ) { +## ranges are ordered 2-element tuples [start,end] : end > start +## no order is assumed between the two ranges $r1 and $r2 +## returns absolute value of overlapping range +## there are five cases total: +## 1. no overlap +## 2. A overlaps start of B +## 3. B overlaps start of A +## 4. A completely encloses B +## 5. B completely encloses A + + ## sort the ranges by start point (merge cases 2+3 and 4+5) + $r1->[0] > $r2->[0] and ( $r1, $r2 ) = ( $r2, $r1 ); + + $r2->[0] > $r1->[1] + ? 0 ## no overlap (1) + : abs( $r2->[0] + - ( $r2->[1] > $r1->[1] + ? $r1->[1] ## intersection (2+3) + : $r2->[1] ) ) ## A encloses B (4+5) +} + + + +use Test::More; + +is union( [[-1,0], [2,2]], [[0,-1], [4,4]] ), 22, 'ex-1'; +is union( [[-3,-1], [1,3]], [[-1,-3], [2,2]] ), 25, 'ex-2'; +is union( [[-2,-2], [0,0]], [[0,0], [2,2]] ), 8, 'figure-8, no overlap'; +is union( [[0,0], [2,2]], [[0,0], [2,2]] ), 4, 'superimposed, all overlap'; + +is union( [[0,0], [2,4]], [[0,0], [3,4]] ), 12, 'A in B, left-aligned'; +is union( [[0,0], [3,4]], [[0,0], [2,4]] ), 12, 'B in A, left-aligned'; +is union( [[1,0], [3,4]], [[0,0], [3,4]] ), 12, 'A in B, right-aligned'; +is union( [[0,0], [3,4]], [[1,0], [3,4]] ), 12, 'B in A, right-aligned'; + + +done_testing(); diff --git a/challenge-152/colin-crain/raku/ch-1.raku b/challenge-152/colin-crain/raku/ch-1.raku new file mode 100755 index 0000000000..7d0dbeb49e --- /dev/null +++ b/challenge-152/colin-crain/raku/ch-1.raku @@ -0,0 +1,22 @@ +#!/usr/bin/env perl6 +# +# +# the-path-in-the-pyramid.raku +# +# +# +# © 2022 colin crain +## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## + + + +unit sub MAIN () ; + +my @triangle = [1], [5,3], [2,3,4], [7,1,0,2], [6,4,5,2,8]; + +my @out = @triangle.map( { $_.min }); + +say "minimum sum path: {@out.join(' + ')} => {@out.sum}"; + + + diff --git a/challenge-152/colin-crain/raku/ch-2.raku b/challenge-152/colin-crain/raku/ch-2.raku new file mode 100755 index 0000000000..00f9c22b65 --- /dev/null +++ b/challenge-152/colin-crain/raku/ch-2.raku @@ -0,0 +1,68 @@ +#!/usr/bin/env perl6 +# +# +# whos-masking-the-mask.raku +# +# +# +# © 2022 colin crain +## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## + + + +unit sub MAIN () ; + +sub area ( @rect ) { + + ((@rect[0][0] - @rect[1][0]) * (@rect[0][1] - @rect[1][1])).abs +} + +sub intersect ( @rect1, @rect2 ) { + + _overlap( @rect1.map(*[0]), ## rect 1 x-axis + @rect2.map(*[0]) ) ## rect 2 x-axis + + * + + _overlap( @rect1.map(*[1]), ## rect 1 y-axis + @rect2.map(*[1]) ); ## rect 2 y-axis +} + +sub union ( @rect1, @rect2 ) { + + area(@rect1) + + area(@rect2) + - intersect(@rect1, @rect2) ; +} + +sub _overlap ( $r1 is copy, $r2 is copy ) { + + ## sort the ranges by start point (merge cases 2+3 and 4+5) + $r1[0] > $r2[0] and ($r1, $r2) = ($r2, $r1) ; + + $r2[0] > $r1[1] + ?? 0 ## no overlap (1) + !! abs( $r2[0] + - ( $r2[1] > $r1[1] + ?? $r1[1] ## intersection (2+3) + !! $r2[1] ) ) ## A encloses B (4+5) +} + + +use Test; + +is union( ((-1,0),(2,2) ), ((0,-1),(4,4)) ) , 22, 'ex-1'; +is union( ((-3,-1), (1,3)), ((-1,-3), (2,2)) ) , 25, 'ex-2'; +is union( ((-2,-2), (0,0)), ((1,1), (3,3)) ) , 8, 'independant, no overlap'; +is union( ((-2,-2), (0,0)), ((0,0), (2,2)) ) , 8, 'figure-8, single point overlap'; +is union( ((0,-2), (2,0)), ((0,0), (2,2)) ) , 8, 'stacked, single line overlap'; +is union( ((0,-2), (2,1)), ((0,-1), (2,2)) ) , 8, 'stacked, overlapped'; +is union( ((0,0), (2,2)), ((0,0), (2,2)) ) , 4, 'superimposed, all overlap'; + + +is union( ((0,0), (2,4)), ((0,0), (3,4)) ), 12, 'A in B, left-aligned'; +is union( ((0,0), (3,4)), ((0,0), (2,4)) ), 12, 'B in A, left-aligned'; +is union( ((1,0), (3,4)), ((0,0), (3,4)) ), 12, 'A in B, right-aligned'; +is union( ((0,0), (3,4)), ((1,0), (3,4)) ), 12, 'B in A, right-aligned'; + + diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 4676e7f5ca..0a9e7c9b37 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,33 +1,36 @@ { + "tooltip" : { + "followPointer" : 1, + "pointFormat" : "{point.name}: {point.y:f}
", + "headerFormat" : "{series.name}
" + }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + } + } + }, "title" : { "text" : "The Weekly Challenge - 152" }, "legend" : { "enabled" : 0 }, - "subtitle" : { - "text" : "[Champions: 26] Last updated at 2022-02-20 23:25:39 GMT" - }, - "xAxis" : { - "type" : "category" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, "series" : [ { "name" : "The Weekly Challenge - 152", "data" : [ { - "drilldown" : "Abigail", "y" : 2, + "drilldown" : "Abigail", "name" : "Abigail" }, { - "drilldown" : "Alexander Pankoff", "name" : "Alexander Pankoff", + "drilldown" : "Alexander Pankoff", "y" : 4 }, { @@ -37,83 +40,83 @@ }, { "name" : "Athanasius", - "y" : 4, - "drilldown" : "Athanasius" + "drilldown" : "Athanasius", + "y" : 4 }, { + "y" : 1, "drilldown" : "Cheok-Yin Fung", - "name" : "Cheok-Yin Fung", - "y" : 1 + "name" : "Cheok-Yin Fung" }, { - "y" : 2, "name" : "Colin Crain", - "drilldown" : "Colin Crain" + "drilldown" : "Colin Crain", + "y" : 6 }, { "name" : "Dave Jacoby", - "y" : 4, - "drilldown" : "Dave Jacoby" + "drilldown" : "Dave Jacoby", + "y" : 4 }, { "name" : "Duncan C. White", - "y" : 2, - "drilldown" : "Duncan C. White" + "drilldown" : "Duncan C. White", + "y" : 2 }, { "y" : 2, - "name" : "E. Choroba", - "drilldown" : "E. Choroba" + "drilldown" : "E. Choroba", + "name" : "E. Choroba" }, { - "drilldown" : "Flavio Poletti", "y" : 6, - "name" : "Flavio Poletti" + "name" : "Flavio Poletti", + "drilldown" : "Flavio Poletti" }, { - "drilldown" : "James Smith", + "y" : 3, "name" : "James Smith", - "y" : 3 + "drilldown" : "James Smith" }, { - "drilldown" : "Jan Krnavek", + "y" : 1, "name" : "Jan Krnavek", - "y" : 1 + "drilldown" : "Jan Krnavek" }, { - "drilldown" : "Jorg Sommrey", + "y" : 2, "name" : "Jorg Sommrey", - "y" : 2 + "drilldown" : "Jorg Sommrey" }, { + "drilldown" : "Laurent Rosenfeld", "name" : "Laurent Rosenfeld", - "y" : 5, - "drilldown" : "Laurent Rosenfeld" + "y" : 5 }, { - "drilldown" : "Lubos Kolouch", + "y" : 2, "name" : "Lubos Kolouch", - "y" : 2 + "drilldown" : "Lubos Kolouch" }, { "y" : 4, - "name" : "Luca Ferrari", - "drilldown" : "Luca Ferrari" + "drilldown" : "Luca Ferrari", + "name" : "Luca Ferrari" }, { - "drilldown" : "Mark Anderson", + "y" : 2, "name" : "Mark Anderson", - "y" : 2 + "drilldown" : "Mark Anderson" }, { "drilldown" : "Mohammad S Anwar", - "y" : 1, - "name" : "Mohammad S Anwar" + "name" : "Mohammad S Anwar", + "y" : 1 }, { - "drilldown" : "Peter Campbell Smith", "y" : 3, - "name" : "Peter Campbell Smith" + "name" : "Peter Campbell Smith", + "drilldown" : "Peter Campbell Smith" }, { "y" : 2, @@ -121,14 +124,14 @@ "drilldown" : "PokGoPun" }, { - "drilldown" : "Robert DiCicco", + "y" : 2, "name" : "Robert DiCicco", - "y" : 2 + "drilldown" : "Robert DiCicco" }, { - "y" : 1, "name" : "Robert Ransbottom", - "drilldown" : "Robert Ransbottom" + "drilldown" : "Robert Ransbottom", + "y" : 1 }, { "drilldown" : "Roger Bell_West", @@ -136,41 +139,38 @@ "y" : 5 }, { - "drilldown" : "Simon Green", "name" : "Simon Green", + "drilldown" : "Simon Green", "y" : 3 }, { "y" : 4, - "name" : "Ulrich Rieke", - "drilldown" : "Ulrich Rieke" + "drilldown" : "Ulrich Rieke", + "name" : "Ulrich Rieke" }, { - "y" : 3, + "drilldown" : "W. Luis Mochan", "name" : "W. Luis Mochan", - "drilldown" : "W. Luis Mochan" + "y" : 3 } ], "colorByPoint" : 1 } ], - "plotOptions" : { - "series" : { - "borderWidth" : 0, - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - } - } - }, - "tooltip" : { - "followPointer" : 1, - "headerFormat" : "{series.name}
", - "pointFormat" : "{point.name}: {point.y:f}
" + "subtitle" : { + "text" : "[Champions: 26] Last updated at 2022-02-21 04:19:01 GMT" }, "chart" : { "type" : "column" }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "xAxis" : { + "type" : "category" + }, "drilldown" : { "series" : [ { @@ -198,8 +198,6 @@ "id" : "Alexander Pankoff" }, { - "id" : "Arne Sommer", - "name" : "Arne Sommer", "data" : [ [ "Raku", @@ -209,7 +207,9 @@ "Blog", 1 ] - ] + ], + "name" : "Arne Sommer", + "id" : "Arne Sommer" }, { "data" : [ @@ -226,27 +226,35 @@ "id" : "Athanasius" }, { - "id" : "Cheok-Yin Fung", + "name" : "Cheok-Yin Fung", "data" : [ [ "Perl", 1 ] ], - "name" : "Cheok-Yin Fung" + "id" : "Cheok-Yin Fung" }, { + "id" : "Colin Crain", "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], [ "Blog", 2 ] ], - "name" : "Colin Crain", - "id" : "Colin Crain" + "name" : "Colin Crain" }, { - "id" : "Dave Jacoby", + "name" : "Dave Jacoby", "data" : [ [ "Perl", @@ -257,31 +265,29 @@ 2 ] ], - "name" : "Dave Jacoby" + "id" : "Dave Jacoby" }, { + "id" : "Duncan C. White", + "name" : "Duncan C. White", "data" : [ [ "Perl", 2 ] - ], - "name" : "Duncan C. White", - "id" : "Duncan C. White" + ] }, { - "id" : "E. Choroba", + "name" : "E. Choroba", "data" : [ [ "Perl", 2 ] ], - "name" : "E. Choroba" + "id" : "E. Choroba" }, { - "id" : "Flavio Poletti", - "name" : "Flavio Poletti", "data" : [ [ "Perl", @@ -295,10 +301,12 @@ "Blog", 2 ] - ] + ], + "name" : "Flavio Poletti", + "id" : "Flavio Poletti" }, { - "name" : "James Smith", + "id" : "James Smith", "data" : [ [ "Perl", @@ -309,31 +317,29 @@ 1 ] ], - "id" : "James Smith" + "name" : "James Smith" }, { - "id" : "Jan Krnavek", "data" : [ [ "Raku", 1 ] ], - "name" : "Jan Krnavek" + "name" : "Jan Krnavek", + "id" : "Jan Krnavek" }, { "id" : "Jorg Sommrey", - "name" : "Jorg Sommrey", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Jorg Sommrey" }, { - "id" : "Laurent Rosenfeld", - "name" : "Laurent Rosenfeld", "data" : [ [ "Perl", @@ -347,19 +353,23 @@ "Blog", 1 ] - ] + ], + "name" : "Laurent Rosenfeld", + "id" : "Laurent Rosenfeld" }, { + "id" : "Lubos Kolouch", + "name" : "Lubos Kolouch", "data" : [ [ "Perl", 2 ] - ], - "name" : "Lubos Kolouch", - "id" : "Lubos Kolouch" + ] }, { + "id" : "Luca Ferrari", + "name" : "Luca Ferrari", "data" : [ [ "Raku", @@ -369,29 +379,27 @@ "Blog", 2 ] - ], - "name" : "Luca Ferrari", - "id" : "Luca Ferrari" + ] }, { - "id" : "Mark Anderson", "name" : "Mark Anderson", "data" : [ [ "Raku", 2 ] - ] + ], + "id" : "Mark Anderson" }, { "id" : "Mohammad S Anwar", + "name" : "Mohammad S Anwar", "data" : [ [ "Perl", 1 ] - ], - "name" : "Mohammad S Anwar" + ] }, { "name" : "Peter Campbell Smith", @@ -408,36 +416,37 @@ "id" : "Peter Campbell Smith" }, { + "id" : "PokGoPun", "data" : [ [ "Perl", 2 ] ], - "name" : "PokGoPun", - "id" : "PokGoPun" + "name" : "PokGoPun" }, { - "id" : "Robert DiCicco", - "name" : "Robert DiCicco", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Robert DiCicco", + "id" : "Robert DiCicco" }, { - "id" : "Robert Ransbottom", "data" : [ [ "Raku", 1 ] ], - "name" : "Robert Ransbottom" + "name" : "Robert Ransbottom", + "id" : "Robert Ransbottom" }, { + "name" : "Roger Bell_West", "data" : [ [ "Perl", @@ -452,10 +461,10 @@ 1 ] ], - "name" : "Roger Bell_West", "id" : "Roger Bell_West" }, { + "name" : "Simon Green", "data" : [ [ "Perl", @@ -466,11 +475,10 @@ 1 ] ], - "name" : "Simon Green", "id" : "Simon Green" }, { - "name" : "Ulrich Rieke", + "id" : "Ulrich Rieke", "data" : [ [ "Perl", @@ -481,11 +489,10 @@ 2 ] ], - "id" : "Ulrich Rieke" + "name" : "Ulrich Rieke" }, { "id" : "W. Luis Mochan", - "name" : "W. Luis Mochan", "data" : [ [ "Perl", @@ -495,7 +502,8 @@ "Blog", 1 ] - ] + ], + "name" : "W. Luis Mochan" } ] } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 8cf976ef50..95fa4df0f6 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,6 +1,16 @@ { + "tooltip" : { + "pointFormat" : "{point.y:.0f}" + }, + "title" : { + "text" : "The Weekly Challenge Contributions [2019 - 2022]" + }, + "legend" : { + "enabled" : "false" + }, "series" : [ { + "name" : "Contributions", "data" : [ [ "Blog", @@ -8,40 +18,33 @@ ], [ "Perl", - 7324 + 7326 ], [ "Raku", - 4399 + 4401 ] ], - "name" : "Contributions", "dataLabels" : { - "color" : "#FFFFFF", + "enabled" : "true", "y" : 10, - "rotation" : -90, "align" : "right", - "enabled" : "true", + "rotation" : -90, + "format" : "{point.y:.0f}", + "color" : "#FFFFFF", "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - }, - "format" : "{point.y:.0f}" + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + } } } ], + "subtitle" : { + "text" : "Last updated at 2022-02-21 04:19:01 GMT" + }, "chart" : { "type" : "column" }, - "tooltip" : { - "pointFormat" : "{point.y:.0f}" - }, - "legend" : { - "enabled" : "false" - }, - "title" : { - "text" : "The Weekly Challenge Contributions [2019 - 2022]" - }, "yAxis" : { "min" : 0, "title" : { @@ -49,15 +52,12 @@ } }, "xAxis" : { + "type" : "category", "labels" : { "style" : { "fontSize" : "13px", "fontFamily" : "Verdana, sans-serif" } - }, - "type" : "category" - }, - "subtitle" : { - "text" : "Last updated at 2022-02-20 23:25:38 GMT" + } } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 2ea81c1abd..e756fcd22a 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,6 +1,6 @@ { - "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2022-02-20 23:25:38 GMT" + "chart" : { + "type" : "column" }, "yAxis" : { "title" : { @@ -10,34 +10,10 @@ "xAxis" : { "type" : "category" }, - "title" : { - "text" : "The Weekly Challenge Language" - }, - "legend" : { - "enabled" : "false" - }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - }, - "borderWidth" : 0 - } - }, - "tooltip" : { - "pointFormat" : "Challenge {point.name}: {point.y:f}
", - "headerFormat" : "", - "followPointer" : "true" - }, - "chart" : { - "type" : "column" - }, "drilldown" : { "series" : [ { "id" : "001", - "name" : "001", "data" : [ [ "Perl", @@ -51,9 +27,11 @@ "Blog", 11 ] - ] + ], + "name" : "001" }, { + "id" : "002", "name" : "002", "data" : [ [ @@ -68,10 +46,10 @@ "Blog", 10 ] - ], - "id" : "002" + ] }, { + "name" : "003", "data" : [ [ "Perl", @@ -86,11 +64,10 @@ 9 ] ], - "name" : "003", "id" : "003" }, { - "name" : "004", + "id" : "004", "data" : [ [ "Perl", @@ -105,7 +82,7 @@ 10 ] ], - "id" : "004" + "name" : "004" }, { "name" : "005", @@ -145,6 +122,7 @@ }, { "id" : "007", + "name" : "007", "data" : [ [ "Perl", @@ -158,8 +136,7 @@ "Blog", 10 ] - ], - "name" : "007" + ] }, { "id" : "008", @@ -180,6 +157,7 @@ ] }, { + "id" : "009", "name" : "009", "data" : [ [ @@ -194,11 +172,10 @@ "Blog", 13 ] - ], - "id" : "009" + ] }, { - "name" : "010", + "id" : "010", "data" : [ [ "Perl", @@ -213,10 +190,10 @@ 11 ] ], - "id" : "010" + "name" : "010" }, { - "name" : "011", + "id" : "011", "data" : [ [ "Perl", @@ -231,11 +208,10 @@ 10 ] ], - "id" : "011" + "name" : "011" }, { "id" : "012", - "name" : "012", "data" : [ [ "Perl", @@ -249,9 +225,11 @@ "Blog", 11 ] - ] + ], + "name" : "012" }, { + "id" : "013", "data" : [ [ "Perl", @@ -266,8 +244,7 @@ 13 ] ], - "name" : "013", - "id" : "013" + "name" : "013" }, { "name" : "014", @@ -288,7 +265,6 @@ "id" : "014" }, { - "id" : "015", "name" : "015", "data" : [ [ @@ -303,10 +279,11 @@ "Blog", 15 ] - ] + ], + "id" : "015" }, { - "id" : "016", + "name" : "016", "data" : [ [ "Perl", @@ -321,7 +298,7 @@ 12 ] ], - "name" : "016" + "id" : "016" }, { "id" : "017", @@ -342,7 +319,6 @@ ] }, { - "id" : "018", "data" : [ [ "Perl", @@ -357,9 +333,11 @@ 14 ] ], - "name" : "018" + "name" : "018", + "id" : "018" }, { + "id" : "019", "name" : "019", "data" : [ [ @@ -374,10 +352,10 @@ "Blog", 13 ] - ], - "id" : "019" + ] }, { + "name" : "020", "data" : [ [ "Perl", @@ -392,11 +370,9 @@ 13 ] ], - "name" : "020", "id" : "020" }, { - "name" : "021", "data" : [ [ "Perl", @@ -411,6 +387,7 @@ 10 ] ], + "name" : "021", "id" : "021" }, { @@ -450,7 +427,7 @@ "id" : "023" }, { - "name" : "024", + "id" : "024", "data" : [ [ "Perl", @@ -465,10 +442,10 @@ 11 ] ], - "id" : "024" + "name" : "024" }, { - "name" : "025", + "id" : "025", "data" : [ [ "Perl", @@ -483,9 +460,11 @@ 12 ] ], - "id" : "025" + "name" : "025" }, { + "id" : "026", + "name" : "026", "data" : [ [ "Perl", @@ -499,9 +478,7 @@ "Blog", 10 ] - ], - "name" : "026", - "id" : "026" + ] }, { "id" : "027", @@ -522,6 +499,7 @@ "name" : "027" }, { + "id" : "028", "name" : "028", "data" : [ [ @@ -536,8 +514,7 @@ "Blog", 9 ] - ], - "id" : "028" + ] }, { "id" : "029", @@ -576,6 +553,7 @@ "name" : "030" }, { + "id" : "031", "name" : "031", "data" : [ [ @@ -590,11 +568,10 @@ "Blog", 9 ] - ], - "id" : "031" + ] }, { - "id" : "032", + "name" : "032", "data" : [ [ "Perl", @@ -609,9 +586,10 @@ 10 ] ], - "name" : "032" + "id" : "032" }, { + "name" : "033", "data" : [ [ "Perl", @@ -626,11 +604,9 @@ 10 ] ], - "name" : "033", "id" : "033" }, { - "name" : "034", "data" : [ [ "Perl", @@ -645,10 +621,10 @@ 11 ] ], + "name" : "034", "id" : "034" }, { - "name" : "035", "data" : [ [ "Perl", @@ -663,10 +639,11 @@ 9 ] ], + "name" : "035", "id" : "035" }, { - "id" : "036", + "name" : "036", "data" : [ [ "Perl", @@ -681,7 +658,7 @@ 11 ] ], - "name" : "036" + "id" : "036" }, { "data" : [ @@ -702,7 +679,7 @@ "id" : "037" }, { - "name" : "038", + "id" : "038", "data" : [ [ "Perl", @@ -717,7 +694,7 @@ 12 ] ], - "id" : "038" + "name" : "038" }, { "data" : [ @@ -756,6 +733,7 @@ "id" : "040" }, { + "id" : "041", "data" : [ [ "Perl", @@ -770,8 +748,7 @@ 9 ] ], - "name" : "041", - "id" : "041" + "name" : "041" }, { "data" : [ @@ -792,7 +769,6 @@ "id" : "042" }, { - "id" : "043", "name" : "043", "data" : [ [ @@ -807,10 +783,12 @@ "Blog", 11 ] - ] + ], + "id" : "043" }, { "id" : "044", + "name" : "044", "data" : [ [ "Perl", @@ -824,10 +802,10 @@ "Blog", 11 ] - ], - "name" : "044" + ] }, { + "id" : "045", "data" : [ [ "Perl", @@ -842,8 +820,7 @@ 11 ] ], - "name" : "045", - "id" : "045" + "name" : "045" }, { "id" : "046", @@ -864,7 +841,7 @@ "name" : "046" }, { - "id" : "047", + "name" : "047", "data" : [ [ "Perl", @@ -879,10 +856,10 @@ 10 ] ], - "name" : "047" + "id" : "047" }, { - "id" : "048", + "name" : "048", "data" : [ [ "Perl", @@ -897,10 +874,9 @@ 12 ] ], - "name" : "048" + "id" : "048" }, { - "id" : "049", "data" : [ [ "Perl", @@ -915,9 +891,12 @@ 12 ] ], - "name" : "049" + "name" : "049", + "id" : "049" }, { + "id" : "050", + "name" : "050", "data" : [ [ "Perl", @@ -931,12 +910,9 @@ "Blog", 12 ] - ], - "name" : "050", - "id" : "050" + ] }, { - "name" : "051", "data" : [ [ "Perl", @@ -951,11 +927,10 @@ 11 ] ], + "name" : "051", "id" : "051" }, { - "id" : "052", - "name" : "052", "data" : [ [ "Perl", @@ -969,7 +944,9 @@ "Blog", 14 ] - ] + ], + "name" : "052", + "id" : "052" }, { "id" : "053", @@ -990,7 +967,6 @@ "name" : "053" }, { - "id" : "054", "name" : "054", "data" : [ [ @@ -1005,7 +981,8 @@ "Blog", 18 ] - ] + ], + "id" : "054" }, { "data" : [ @@ -1044,6 +1021,8 @@ ] }, { + "id" : "057", + "name" : "057", "data" : [ [ "Perl", @@ -1057,11 +1036,10 @@ "Blog", 15 ] - ], - "name" : "057", - "id" : "057" + ] }, { + "id" : "058", "data" : [ [ "Perl", @@ -1076,10 +1054,10 @@ 13 ] ], - "name" : "058", - "id" : "058" + "name" : "058" }, { + "id" : "059", "data" : [ [ "Perl", @@ -1094,8 +1072,7 @@ 16 ] ], - "name" : "059", - "id" : "059" + "name" : "059" }, { "id" : "060", @@ -1117,7 +1094,6 @@ }, { "id" : "061", - "name" : "061", "data" : [ [ "Perl", @@ -1131,7 +1107,8 @@ "Blog", 14 ] - ] + ], + "name" : "061" }, { "data" : [ @@ -1152,7 +1129,6 @@ "id" : "062" }, { - "name" : "063", "data" : [ [ "Perl", @@ -1167,9 +1143,11 @@ 13 ] ], + "name" : "063", "id" : "063" }, { + "id" : "064", "data" : [ [ "Perl", @@ -1184,11 +1162,9 @@ 16 ] ], - "name" : "064", - "id" : "064" + "name" : "064" }, { - "id" : "065", "data" : [ [ "Perl", @@ -1203,10 +1179,12 @@ 15 ] ], - "name" : "065" + "name" : "065", + "id" : "065" }, { "id" : "066", + "name" : "066", "data" : [ [ "Perl", @@ -1220,8 +1198,7 @@ "Blog", 14 ] - ], - "name" : "066" + ] }, { "name" : "067", @@ -1242,7 +1219,7 @@ "id" : "067" }, { - "name" : "068", + "id" : "068", "data" : [ [ "Perl", @@ -1257,9 +1234,11 @@ 13 ] ], - "id" : "068" + "name" : "068" }, { + "id" : "069", + "name" : "069", "data" : [ [ "Perl", @@ -1273,12 +1252,11 @@ "Blog", 16 ] - ], - "name" : "069", - "id" : "069" + ] }, { "id" : "070", + "name" : "070", "data" : [ [ "Perl", @@ -1292,11 +1270,10 @@ "Blog", 17 ] - ], - "name" : "070" + ] }, { - "id" : "071", + "name" : "071", "data" : [ [ "Perl", @@ -1311,7 +1288,7 @@ 15 ] ], - "name" : "071" + "id" : "071" }, { "id" : "072", @@ -1332,7 +1309,7 @@ ] }, { - "id" : "073", + "name" : "073", "data" : [ [ "Perl", @@ -1347,10 +1324,10 @@ 17 ] ], - "name" : "073" + "id" : "073" }, { - "name" : "074", + "id" : "074", "data" : [ [ "Perl", @@ -1365,11 +1342,10 @@ 20 ] ], - "id" : "074" + "name" : "074" }, { "id" : "075", - "name" : "075", "data" : [ [ "Perl", @@ -1383,7 +1359,8 @@ "Blog", 20 ] - ] + ], + "name" : "075" }, { "id" : "076", @@ -1405,7 +1382,6 @@ }, { "id" : "077", - "name" : "077", "data" : [ [ "Perl", @@ -1419,10 +1395,10 @@ "Blog", 14 ] - ] + ], + "name" : "077" }, { - "id" : "078", "name" : "078", "data" : [ [ @@ -1437,7 +1413,8 @@ "Blog", 18 ] - ] + ], + "id" : "078" }, { "name" : "079", @@ -1459,6 +1436,7 @@ }, { "id" : "080", + "name" : "080", "data" : [ [ "Perl", @@ -1472,8 +1450,7 @@ "Blog", 16 ] - ], - "name" : "080" + ] }, { "id" : "081", @@ -1512,6 +1489,8 @@ "id" : "082" }, { + "id" : "083", + "name" : "083", "data" : [ [ "Perl", @@ -1525,9 +1504,7 @@ "Blog", 16 ] - ], - "name" : "083", - "id" : "083" + ] }, { "name" : "084", @@ -1548,6 +1525,7 @@ "id" : "084" }, { + "id" : "085", "data" : [ [ "Perl", @@ -1562,11 +1540,9 @@ 18 ] ], - "name" : "085", - "id" : "085" + "name" : "085" }, { - "id" : "086", "name" : "086", "data" : [ [ @@ -1581,7 +1557,8 @@ "Blog", 15 ] - ] + ], + "id" : "086" }, { "name" : "087", @@ -1602,6 +1579,7 @@ "id" : "087" }, { + "id" : "088", "data" : [ [ "Perl", @@ -1616,10 +1594,10 @@ 20 ] ], - "name" : "088", - "id" : "088" + "name" : "088" }, { + "id" : "089", "data" : [ [ "Perl", @@ -1634,11 +1612,10 @@ 20 ] ], - "name" : "089", - "id" : "089" + "name" : "089" }, { - "id" : "090", + "name" : "090", "data" : [ [ "Perl", @@ -1653,11 +1630,10 @@ 17 ] ], - "name" : "090" + "id" : "090" }, { "id" : "091", - "name" : "091", "data" : [ [ "Perl", @@ -1671,10 +1647,10 @@ "Blog", 16 ] - ] + ], + "name" : "091" }, { - "id" : "092", "name" : "092", "data" : [ [ @@ -1689,10 +1665,10 @@ "Blog", 16 ] - ] + ], + "id" : "092" }, { - "id" : "093", "data" : [ [ "Perl", @@ -1707,10 +1683,10 @@ 16 ] ], - "name" : "093" + "name" : "093", + "id" : "093" }, { - "id" : "094", "data" : [ [ "Perl", @@ -1725,7 +1701,8 @@ 17 ] ], - "name" : "094" + "name" : "094", + "id" : "094" }, { "name" : "095", @@ -1765,6 +1742,7 @@ }, { "id" : "097", + "name" : "097", "data" : [ [ "Perl", @@ -1778,12 +1756,9 @@ "Blog", 19 ] - ], - "name" : "097" + ] }, { - "id" : "098", - "name" : "098", "data" : [ [ "Perl", @@ -1797,11 +1772,12 @@ "Blog", 17 ] - ] + ], + "name" : "098", + "id" : "098" }, { "id" : "099", - "name" : "099", "data" : [ [ "Perl", @@ -1815,9 +1791,11 @@ "Blog", 14 ] - ] + ], + "name" : "099" }, { + "name" : "100", "data" : [ [ "Perl", @@ -1832,11 +1810,10 @@ 21 ] ], - "name" : "100", "id" : "100" }, { - "name" : "101", + "id" : "101", "data" : [ [ "Perl", @@ -1851,10 +1828,10 @@ 13 ] ], - "id" : "101" + "name" : "101" }, { - "name" : "102", + "id" : "102", "data" : [ [ "Perl", @@ -1869,10 +1846,9 @@ 15 ] ], - "id" : "102" + "name" : "102" }, { - "name" : "103", "data" : [ [ "Perl", @@ -1887,10 +1863,10 @@ 15 ] ], + "name" : "103", "id" : "103" }, { - "id" : "104", "name" : "104", "data" : [ [ @@ -1905,10 +1881,10 @@ "Blog", 14 ] - ] + ], + "id" : "104" }, { - "name" : "105", "data" : [ [ "Perl", @@ -1923,9 +1899,11 @@ 14 ] ], + "name" : "105", "id" : "105" }, { + "id" : "106", "data" : [ [ "Perl", @@ -1940,10 +1918,10 @@ 17 ] ], - "name" : "106", - "id" : "106" + "name" : "106" }, { + "id" : "107", "name" : "107", "data" : [ [ @@ -1958,8 +1936,7 @@ "Blog", 19 ] - ], - "id" : "107" + ] }, { "name" : "108", @@ -1981,7 +1958,6 @@ }, { "id" : "109", - "name" : "109", "data" : [ [ "Perl", @@ -1995,10 +1971,10 @@ "Blog", 22 ] - ] + ], + "name" : "109" }, { - "name" : "110", "data" : [ [ "Perl", @@ -2013,6 +1989,7 @@ 25 ] ], + "name" : "110", "id" : "110" }, { @@ -2052,7 +2029,7 @@ "id" : "112" }, { - "name" : "113", + "id" : "113", "data" : [ [ "Perl", @@ -2067,10 +2044,10 @@ 19 ] ], - "id" : "113" + "name" : "113" }, { - "id" : "114", + "name" : "114", "data" : [ [ "Perl", @@ -2085,11 +2062,9 @@ 21 ] ], - "name" : "114" + "id" : "114" }, { - "id" : "115", - "name" : "115", "data" : [ [ "Perl", @@ -2103,11 +2078,12 @@ "Blog", 20 ] - ] + ], + "name" : "115", + "id" : "115" }, { "id" : "116", - "name" : "116", "data" : [ [ "Perl", @@ -2121,7 +2097,8 @@ "Blog", 17 ] - ] + ], + "name" : "116" }, { "data" : [ @@ -2142,7 +2119,7 @@ "id" : "117" }, { - "id" : "118", + "name" : "118", "data" : [ [ "Perl", @@ -2157,10 +2134,10 @@ 17 ] ], - "name" : "118" + "id" : "118" }, { - "name" : "119", + "id" : "119", "data" : [ [ "Perl", @@ -2175,10 +2152,10 @@ 21 ] ], - "id" : "119" + "name" : "119" }, { - "id" : "120", + "name" : "120", "data" : [ [ "Perl", @@ -2193,7 +2170,7 @@ 21 ] ], - "name" : "120" + "id" : "120" }, { "name" : "121", @@ -2214,8 +2191,6 @@ "id" : "121" }, { - "id" : "122", - "name" : "122", "data" : [ [ "Perl", @@ -2229,7 +2204,9 @@ "Blog", 20 ] - ] + ], + "name" : "122", + "id" : "122" }, { "id" : "123", @@ -2250,6 +2227,7 @@ "name" : "123" }, { + "id" : "124", "name" : "124", "data" : [ [ @@ -2264,8 +2242,7 @@ "Blog", 16 ] - ], - "id" : "124" + ] }, { "data" : [ @@ -2287,7 +2264,6 @@ }, { "id" : "126", - "name" : "126", "data" : [ [ "Perl", @@ -2301,10 +2277,10 @@ "Blog", 19 ] - ] + ], + "name" : "126" }, { - "id" : "127", "data" : [ [ "Perl", @@ -2319,11 +2295,11 @@ 18 ] ], - "name" : "127" + "name" : "127", + "id" : "127" }, { "id" : "128", - "name" : "128", "data" : [ [ "Perl", @@ -2337,11 +2313,10 @@ "Blog", 15 ] - ] + ], + "name" : "128" }, { - "id" : "129", - "name" : "129", "data" : [ [ "Perl", @@ -2355,9 +2330,13 @@ "Blog", 14 ] - ] + ], + "name" : "129", + "id" : "129" }, { + "id" : "130", + "name" : "130", "data" : [ [ "Perl", @@ -2371,11 +2350,11 @@ "Blog",