From ed823b76e3a2dd399df5a2cf9ef6434c166f197c Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Sun, 1 Aug 2021 22:54:09 +0100 Subject: - Added solutions by Colin Crain. --- challenge-123/colin-crain/perl/ch-1.pl | 147 +++++ challenge-123/colin-crain/perl/ch-2.pl | 180 ++++++ challenge-123/colin-crain/raku/ch-2.raku | 69 +++ stats/pwc-current.json | 476 ++++++++-------- stats/pwc-language-breakdown-summary.json | 52 +- stats/pwc-language-breakdown.json | 916 +++++++++++++++--------------- stats/pwc-leaders.json | 736 ++++++++++++------------ stats/pwc-summary-1-30.json | 38 +- stats/pwc-summary-121-150.json | 40 +- stats/pwc-summary-151-180.json | 108 ++-- stats/pwc-summary-181-210.json | 108 ++-- stats/pwc-summary-211-240.json | 82 +-- stats/pwc-summary-31-60.json | 46 +- stats/pwc-summary-61-90.json | 110 ++-- stats/pwc-summary-91-120.json | 34 +- stats/pwc-summary.json | 40 +- 16 files changed, 1793 insertions(+), 1389 deletions(-) create mode 100644 challenge-123/colin-crain/perl/ch-1.pl create mode 100644 challenge-123/colin-crain/perl/ch-2.pl create mode 100644 challenge-123/colin-crain/raku/ch-2.raku diff --git a/challenge-123/colin-crain/perl/ch-1.pl b/challenge-123/colin-crain/perl/ch-1.pl new file mode 100644 index 0000000000..ecae5ba89f --- /dev/null +++ b/challenge-123/colin-crain/perl/ch-1.pl @@ -0,0 +1,147 @@ +#!/Users/colincrain/perl5/perlbrew/perls/perl-5.32.0/bin/perl +# +# all-numbers-are-beautiful.pl +# +# Ugly Numbers +# Submitted by: Mohammad S Anwar +# You are given an integer $n >= 1. +# +# Write a script to find the $nth element of Ugly Numbers. +# +# Ugly numbers are those number whose prime factors are 2, 3 or 5. For +# example, the first 10 Ugly Numbers are 1, 2, 3, 4, 5, 6, 8, 9, 10, 12. +# +# Example +# Input: $n = 7 +# Output: 8 +# +# Input: $n = 10 +# Output: 12 +# +# notes: +# I feel the very notion of numbers constructed solely from the +# factors 2, 3, and 5 being somehow "ugly" would be quite distressing and +# offensive to proponents of 5-limit just intonation musical tuning systems, +# and expressing this sentiment in certain rarefied +# environments is liable to provoke a hostile, even violent, response. +# +# These psycho-temporal explorers, remember, have chosen to live with their +# minds in the nexus between acoustic vibrations and the cosmos itself, +# and have left an even temperment — apologies for that pun but you must +# admit it works — far behind. +# +# I've been listening to Terry Riley's *The Harp of New Albion* quite a lot +# since the Black Ships came, and consider it an amazing achievement, +# among the most beautiful things I've ever heard. And all built from ratios +# of numbers made from 2, 3 and 5. So there. To those that say ugly I +# laugh openly and derisively at the raw foolishness of the claim. +# +# And besides, the numbers don't care one bit about our collective, +# infitesimally unimportant opinions. They have so, so many better +# things to do. +# +# In honor of constructing note intervals from factors, I will choose a +# constructive method to compose our sequence. +# +# method: +# +# If we start composing numbers using just the products of 2, 3 +# and 5, we can populate a line, order them and find the number at the +# index requested. This sounds like a sound strategy (I'm going to leave +# that somewhat awkward phrasing because it reenforces the musical +# thematic resonance, as does the word "resonance" as well). +# +# The question arises, though, is how many values do we need to +# construct? Well obviously the answer is "enough", but the relative +# placement of the values constructed from a given number of factors +# from the pool will be figuratively all over the map. If we are to +# avoid filtering and factoring scads of values, instead adding the +# products of (2,2), (2,3), (2,5), (3,3), etc, we need to know when to +# stop. +# +# Ok, perhaps we could stop and check every once in a while, but the +# problem is that calculating the next sequental value is non-obvious. 5 +# x 5 x 5 = 125, with 3 factors, but earlier than that in the sequence +# is 2 x 2 x 2 x 2 x 2 x 2 = 64 with 6 factors. +# +# Actually I believe that power of 2 example is the key. Our sequence is +# constructed from numbers found as the product of sets of numbers drawn +# from our limited pool of three values. These sets will have increasing +# numbers of elements as our final sequence grows generally larger, but +# there can be no assumption that a number from a set of *k* elements +# will necessarily fall after all numbers from the sets with *k*-1 +# elements, and in fact we know this is not true. But what we do know is +# that for a given number line constructed from all sets of members +# sized 1 to *k*, that the smallest next number added to the number line +# will be the smallest value from the set composed of *k*+1 elements. +# The smallest number that can be created in the set with *k*+1 elements +# is 2^k+1, so we can therefore conclude that the number line for all +# sets less than *k* members, for those values less than 2^k+1, is +# complete and ordered, and can be safely used. +# +# method: +# +# Because we need to create a very large number of combinations, we will +# pull out the big guns and use the `combinations_with_repetition()` +# function from `Algorithm::Combinatorics`. This will give us our +# required combinations quickly without breaking the bank in memory. +# Likewise the` List::Util` function `product()` will multiply all the +# factors to get our result. +# +# At each multiset size of factors the new additions to the number line +# are pushed on and the list sorted, and the number of safe values is +# computed. If more values are required to produce enough numbers the +# loop is repeated, adding an additional factor until enough elements +# have been constructed. +# +# The size of the sequence is limited by integer size in the system, +# S[12691] = 9216000000000000000, the largest number precisely calculable +# without using the `bigint` pragma. + +# © 2021 colin crain +## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## + + + +use warnings; +use strict; +use utf8; +use feature ":5.26"; +use feature qw(signatures); +no warnings 'experimental::signatures'; + +use Algorithm::Combinatorics qw( combinations_with_repetition ); +use List::Util qw( product ); + +my $request = shift @ARGV // 12691; + +$request--; + +my @factors = (2, 3, 5); +my @inter = ( 1 ); +my @seq; +my $fcount = 0; + +while (++$fcount) { + + for my $iter (combinations_with_repetition( \@factors, $fcount)) { + my $p = product $iter->@*; + push @inter, $p; + } + @seq = grep { $_ < 2**$fcount+1 } sort {$a<=>$b} @inter; + last if scalar @seq > $request; +} + +say "requested index, 1-based count: ", $request+1; +say "sequence value: $seq[$request]"; + +say "sequence computed to ", scalar @seq, " known values"; +say "sequence:"; +say $_ for @seq; + + + + + + + diff --git a/challenge-123/colin-crain/perl/ch-2.pl b/challenge-123/colin-crain/perl/ch-2.pl new file mode 100644 index 0000000000..1cc1555603 --- /dev/null +++ b/challenge-123/colin-crain/perl/ch-2.pl @@ -0,0 +1,180 @@ +#!/Users/colincrain/perl5/perlbrew/perls/perl-5.32.0/bin/perl +# +# no-room-for-squares.pl +# +# Square Points +# Submitted by: Mohammad S Anwar +# You are given coordinates of four points i.e. +# (x1, y1), (x2, y2), (x3, y3) and (x4, y4). +# +# Write a script to find out if the given four points form a square. +# +# Example +# Input: x1 = 10, y1 = 20 +# x2 = 20, y2 = 20 +# x3 = 20, y3 = 10 +# x4 = 10, y4 = 10 +# Output: 1 as the given coordinates form a square. + + +# +# Input: x1 = 12, y1 = 24 +# x2 = 16, y2 = 10 +# x3 = 20, y3 = 12 +# x4 = 18, y4 = 16 +# Output: 0 as the given coordinates doesn't form a square. +# +# method: +# +# there are two ways to look at this problem that I see: the easy +# problem and the harder version. The easy problem, as in first +# example, is to identify a square in orthogonal alignment with the +# coordinate system. In the more complex version we should consider +# a square: (1,1), (5,2), (4,6), (0,5) which is canted one unit +# counterclockwise. +# +# So how can we mathematically identify a square? Some properties of +# squares would be in order. A square has: +# 1. four vertex angles summing to 360° +# 2. parallel opposing edges +# 3. four equal angles at the vertices +# 4. four sides of equal length +# +# The properites correspond to a square being, in increasing constraint: +# 1. a quadralateral +# 2. a parallelogram +# 3. a rectangle +# 4. a regular rectangle. +# +# This last constraint, of equalateral sides, without the previous, +# equiangular vertices, can also identify a rhombus. If the four +# equiangular vertices sum to 360°, the individual angles must be +# right angles, at 90°. +# +# What we don't need to prove all of these assertions, only enough +# to eliminate the poossibilites that the shape is *not* a square. +# We can do this by showing that in the complete graph described by +# the four points we have four edges the same length and two edges +# the same length. We could be more specific and require the two +# differing edged to hold the relationship 1:√2, but if the two +# alternate lengths are diagonals, they will need to be equal to +# form a square, and if they are not both diagonals they cannot be +# equal. If neither is a diagonal the edges cannot be the same +# length without multiple sets of points occupying the same +# position, and we no longer have a quadralateral if a connecting +# edge has zero length. +# +# Unfortunately there does exist one polygon that defeats this +# analysis (see? I'm brutal about breaking my own algorithms too) +# and that is most easily described as taking an equilateral +# triangle, with three edges te same length, and extending a new +# unit-length edge from one vertex perpendicular to the opposing +# edge, out away from the triangle. These four edges are two sides +# and two diagonals of a concave polygon made by conecting the point +# on the far end of the new line to each of the two other vertices. +# +# A +# | AB, BC, BD and CD are the unit value +# | +# | connect AC and AD, and +# B +# / \ the polygon is AC -> CB -> BD -> DA +# / \ +# / \ known as a "flying vee" shape +# C _ E _ D +# +# No one ever said the points needed to describe a *convex* polygon. + +# This suggests we need an additional check, but fortunately we can +# still avoid having to deal directly with the square root of 2, as +# we can derive the length of the two equal segments AC and AD. +# +# The line AE has length +# +# 1 + (√3/2) +# +# and the length of AE is 1/2. Using Pythagoras' theorem, the length +# of AC is +# +# √(2+√3) ≅ 1.93 +# +# The square root of 2 plus some positive value will always be +# greater than √2, so we don't need to directly compare to some +# irrational number. If we're less than 1.5 the unit value we're +# good. + + +# + +# +# © 2021 colin crain +## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## + + + +use warnings; +use strict; +use utf8; +use feature ":5.26"; +use feature qw(signatures); +no warnings 'experimental::signatures'; + + +sub is_square ($pts) { + my @pts = $pts->@*; + my @dist; + + ## get distance list for all edges in complete graph of points + for my $idx (0..2) { + push @dist, map { euclidean( $pts[$idx], $pts[$_] )} ( $idx+1..3 ) + } + + ## makes sure only 2 values for length + my ($v1, $c1, $v2, $c2) = ( shift @dist, 1, undef, 0); + for (@dist) { + if ( $_ == $v1 ) { $c1++; next } + $v2 //= $_; + if ( $_ == $v2 ) { $c2++; next } + return 0; + } + + ## order lengths to "sides" first, fail if not 4 + if ( $c1 < $c2 ) { ($v1, $c1, $v2, $c2) = ($v2, $c2, $v1, $c1) } + return 0 unless $c1 == 4; + + ## fail unless 2 remaining sides are less than 1.5 x short side + ## this is the concave polygon case + return 0 unless $v2 < 1.5 * $v1; + + return 1; +} + + +sub euclidean ($pt1, $pt2) { + return sqrt( ($pt1->[0] - $pt2->[0])**2 + ($pt1->[1] - $pt2->[1])**2 ); +} + + + + + +use Test::More; + +is is_square( [ [10,20], [20,20], [20,10], [10,10] ] ), 1 + , 'ex-1'; +is is_square( [ [1,1], [5,2], [4,6], [0,5] ] ), 1 + , 'racked 1 ccw'; +is is_square( [ [12,24], [16,10], [20,12], [18,16] ] ), 0 + , 'ex-2'; +is is_square( [ [1,5], [5,5], [9,5], [1,1] ] ), 0 + , 'parallelogram'; +is is_square( [ [1,5], [5,1], [9,5], [5,9] ] ), 1 + , 'regular diamond'; +is is_square( [ [-5,0], [0,-5], [5,0], [0,5] ] ), 1 + , 'regular diamond around origin'; +is is_square( [ [-2,-3], [3,-3], [3,2], [-2,2] ] ), 1 + , 'off-center around origin'; +is is_square( [ [-4,-1], [1,-5], [5,0], [0,4] ] ), 1 + , 'off-center around origin, rotate 2 cw'; + +done_testing(); diff --git a/challenge-123/colin-crain/raku/ch-2.raku b/challenge-123/colin-crain/raku/ch-2.raku new file mode 100644 index 0000000000..f5e50ac497 --- /dev/null +++ b/challenge-123/colin-crain/raku/ch-2.raku @@ -0,0 +1,69 @@ +#!/usr/bin/env perl6 +# +# +# .raku +# +# +# +# © 2021 colin crain +## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## + + + +unit sub MAIN () ; + +use Test; +plan 8; + +is is_square( [ [10,20], [20,20], [20,10], [10,10] ] ), 1 + , 'ex-1'; +is is_square( [ [1,1], [5,2], [4,6], [0,5] ] ), 1 + , 'racked 1 ccw'; +is is_square( [ [12,24], [16,10], [20,12], [18,16] ] ), 0 + , 'ex-2'; +is is_square( [ [1,5], [5,5], [9,5], [1,1] ] ), 0 + , 'parallelogram'; +is is_square( [ [1,5], [5,1], [9,5], [5,9] ] ), 1 + , 'regular diamond'; +is is_square( [ [-5,0], [0,-5], [5,0], [0,5] ] ), 1 + , 'regular diamond around origin'; +is is_square( [ [-2,-3], [3,-3], [3,2], [-2,2] ] ), 1 + , 'off-center around origin'; +is is_square( [ [-4,-1], [1,-5], [5,0], [0,4] ] ), 1 + , 'off-center around origin, rotate 2 cw'; + + + +sub is_square ( @pts ) { + my @distances; + + for 0..2 -> $idx { + @distances.push: |($idx+1..3).map({ euclidean( @pts[$idx], @pts[$_] )}) + } + ## makes sure we have only 2 values for length + my ($v1, $c1, $v2, $c2) = @distances.shift, 1, False, 0; + for @distances { + if $_ == $v1 { $c1++; next } + $v2 ||= $_; + if $_ == $v2 { $c2++; next } + return 0; + } + ## reorder lengths to edges, fail if $v1 is not 4 equal sides + if $c1 < $c2 { ($v1, $c1, $v2, $c2) = ($v2, $c2, $v1, $c1) } + return 0 unless $c1 == 4; + + ## fail unless 2 remaining sides are less than 1.5 x short side + ## this is the concave polygon case + return 0 unless $v2 < 1.5 * $v1; + + return 1; +} + + +sub euclidean ( @pt1, @pt2 ) { + sqrt( (@pt1[0]-@pt2[0])**2 + (@pt1[1]-@pt2[1])**2 ); +} + + + + diff --git a/stats/pwc-current.json b/stats/pwc-current.json index d899adc031..61892ce33e 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,170 +1,25 @@ { - "subtitle" : { - "text" : "[Champions: 30] Last updated at 2021-08-01 20:27:16 GMT" - }, - "series" : [ - { - "data" : [ - { - "y" : 2, - "drilldown" : "Abigail", - "name" : "Abigail" - }, - { - "drilldown" : "Adam Russell", - "y" : 4, - "name" : "Adam Russell" - }, - { - "drilldown" : "Arne Sommer", - "y" : 5, - "name" : "Arne Sommer" - }, - { - "y" : 4, - "drilldown" : "Athanasius", - "name" : "Athanasius" - }, - { - "y" : 4, - "drilldown" : "Bruce Gray", - "name" : "Bruce Gray" - }, - { - "drilldown" : "Cheok-Yin Fung", - "y" : 3, - "name" : "Cheok-Yin Fung" - }, - { - "drilldown" : "Colin Crain", - "y" : 1, - "name" : "Colin Crain" - }, - { - "drilldown" : "Dave Jacoby", - "y" : 4, - "name" : "Dave Jacoby" - }, - { - "drilldown" : "Duncan C. White", - "y" : 2, - "name" : "Duncan C. White" - }, - { - "name" : "E. Choroba", - "drilldown" : "E. Choroba", - "y" : 2 - }, - { - "name" : "Flavio Poletti", - "y" : 6, - "drilldown" : "Flavio Poletti" - }, - { - "name" : "James Smith", - "drilldown" : "James Smith", - "y" : 3 - }, - { - "y" : 2, - "drilldown" : "Jan Krnavek", - "name" : "Jan Krnavek" - }, - { - "name" : "Jorg Sommrey", - "y" : 2, - "drilldown" : "Jorg Sommrey" - }, - { - "name" : "Laurent Rosenfeld", - "drilldown" : "Laurent Rosenfeld", - "y" : 5 - }, - { - "y" : 1, - "drilldown" : "Lubos Kolouch", - "name" : "Lubos Kolouch" - }, - { - "drilldown" : "Lucas Ransan", - "y" : 2, - "name" : "Lucas Ransan" - }, - { - "y" : 2, - "drilldown" : "Mark Anderson", - "name" : "Mark Anderson" - }, - { - "drilldown" : "Markus Holzer", - "y" : 2, - "name" : "Markus Holzer" - }, - { - "name" : "Matthew Neleigh", - "y" : 2, - "drilldown" : "Matthew Neleigh" - }, - { - "y" : 2, - "drilldown" : "Mohammad S Anwar", - "name" : "Mohammad S Anwar" - }, - { - "drilldown" : "Niels van Dijke", - "y" : 2, - "name" : "Niels van Dijke" - }, - { - "name" : "Pete Houston", - "drilldown" : "Pete Houston", - "y" : 2 - }, - { - "name" : "Roger Bell_West", - "y" : 5, - "drilldown" : "Roger Bell_West" - }, - { - "name" : "Simon Green", - "drilldown" : "Simon Green", - "y" : 3 - }, - { - "y" : 2, - "drilldown" : "Simon Proctor", - "name" : "Simon Proctor" - }, - { - "name" : "Stuart Little", - "y" : 4, - "drilldown" : "Stuart Little" - }, - { - "y" : 4, - "drilldown" : "Ulrich Rieke", - "name" : "Ulrich Rieke" - }, - { - "name" : "W. Luis Mochan", - "y" : 3, - "drilldown" : "W. Luis Mochan" - }, - { - "name" : "Wanderdoc", - "y" : 2, - "drilldown" : "Wanderdoc" - } - ], - "name" : "The Weekly Challenge - 123", - "colorByPoint" : 1 + "yAxis" : { + "title" : { + "text" : "Total Solutions" } - ], - "legend" : { - "enabled" : 0 }, - "xAxis" : { - "type" : "category" + "chart" : { + "type" : "column" + }, + "tooltip" : { + "pointFormat" : "{point.name}: {point.y:f}
", + "followPointer" : 1, + "headerFormat" : "{series.name}
" + }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + } + } }, "drilldown" : { "series" : [ @@ -179,7 +34,6 @@ ] }, { - "name" : "Adam Russell", "data" : [ [ "Perl", @@ -190,6 +44,7 @@ 2 ] ], + "name" : "Adam Russell", "id" : "Adam Russell" }, { @@ -211,8 +66,6 @@ ] }, { - "id" : "Athanasius", - "name" : "Athanasius", "data" : [ [ "Perl", @@ -222,10 +75,13 @@ "Raku", 2 ] - ] + ], + "name" : "Athanasius", + "id" : "Athanasius" }, { "id" : "Bruce Gray", + "name" : "Bruce Gray", "data" : [ [ "Perl", @@ -235,10 +91,11 @@ "Raku", 2 ] - ], - "name" : "Bruce Gray" + ] }, { + "id" : "Cheok-Yin Fung", + "name" : "Cheok-Yin Fung", "data" : [ [ "Perl", @@ -248,21 +105,29 @@ "Blog", 1 ] - ], - "name" : "Cheok-Yin Fung", - "id" : "Cheok-Yin Fung" + ] }, { "id" : "Colin Crain", + "name" : "Colin Crain", "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 1 + ], [ "Blog", 1 ] - ], - "name" : "Colin Crain" + ] }, { + "name" : "Dave Jacoby", + "id" : "Dave Jacoby", "data" : [ [ "Perl", @@ -272,33 +137,29 @@ "Blog", 2 ] - ], - "name" : "Dave Jacoby", - "id" : "Dave Jacoby" + ] }, { "id" : "Duncan C. White", + "name" : "Duncan C. White", "data" : [ [ "Perl", 2 ] - ], - "name" : "Duncan C. White" + ] }, { - "id" : "E. Choroba", "data" : [ [ "Perl", 2 ] ], + "id" : "E. Choroba", "name" : "E. Choroba" }, { - "id" : "Flavio Poletti", - "name" : "Flavio Poletti", "data" : [ [ "Perl", @@ -312,11 +173,13 @@ "Blog", 2 ] - ] + ], + "name" : "Flavio Poletti", + "id" : "Flavio Poletti" }, { - "id" : "James Smith", "name" : "James Smith", + "id" : "James Smith", "data" : [ [ "Perl", @@ -329,8 +192,8 @@ ] }, { - "id" : "Jan Krnavek", "name" : "Jan Krnavek", + "id" : "Jan Krnavek", "data" : [ [ "Raku", @@ -339,17 +202,18 @@ ] }, { - "name" : "Jorg Sommrey", "data" : [ [ "Perl", 2 ] ], + "name" : "Jorg Sommrey", "id" : "Jorg Sommrey" }, { "id" : "Laurent Rosenfeld", + "name" : "Laurent Rosenfeld", "data" : [ [ "Perl", @@ -363,8 +227,7 @@ "Blog", 1 ] - ], - "name" : "Laurent Rosenfeld" + ] }, { "data" : [ @@ -373,22 +236,22 @@ 1 ] ], - "name" : "Lubos Kolouch", - "id" : "Lubos Kolouch" + "id" : "Lubos Kolouch", + "name" : "Lubos Kolouch" }, { "id" : "Lucas Ransan", + "name" : "Lucas Ransan", "data" : [ [ "Raku", 2 ] - ], - "name" : "Lucas Ransan" + ] }, { - "id" : "Mark Anderson", "name" : "Mark Anderson", + "id" : "Mark Anderson", "data" : [ [ "Raku", @@ -403,28 +266,28 @@ 2 ] ], - "name" : "Markus Holzer", - "id" : "Markus Holzer" + "id" : "Markus Holzer", + "name" : "Markus Holzer" }, { "name" : "Matthew Neleigh", + "id" : "Matthew Neleigh", "data" : [ [ "Perl", 2 ] - ], - "id" : "Matthew Neleigh" + ] }, { - "name" : "Mohammad S Anwar", "data" : [ [ "Perl", 2 ] ], - "id" : "Mohammad S Anwar" + "id" : "Mohammad S Anwar", + "name" : "Mohammad S Anwar" }, { "data" : [ @@ -433,21 +296,20 @@ 2 ] ], - "name" : "Niels van Dijke", - "id" : "Niels van Dijke" + "id" : "Niels van Dijke", + "name" : "Niels van Dijke" }, { - "id" : "Pete Houston", "data" : [ [ "Perl", 2 ] ], + "id" : "Pete Houston", "name" : "Pete Houston" }, { - "id" : "Roger Bell_West", "data" : [ [ "Perl", @@ -462,11 +324,10 @@ 1 ] ], + "id" : "Roger Bell_West", "name" : "Roger Bell_West" }, { - "id" : "Simon Green", - "name" : "Simon Green", "data" : [ [ "Perl", @@ -476,19 +337,23 @@ "Blog", 1 ] - ] + ], + "name" : "Simon Green", + "id" : "Simon Green" }, { - "name" : "Simon Proctor", "data" : [ [ "Raku", 2 ] ], + "name" : "Simon Proctor", "id" : "Simon Proctor" }, { + "id" : "Stuart Little", + "name" : "Stuart Little", "data" : [ [ "Perl", @@ -498,12 +363,11 @@ "Raku", 2 ] - ], - "name" : "Stuart Little", - "id" : "Stuart Little" + ] }, { "name" : "Ulrich Rieke", + "id" : "Ulrich Rieke", "data" : [ [ "Perl", @@ -513,8 +377,7 @@ "Raku", 2 ] - ], - "id" : "Ulrich Rieke" + ] }, { "data" : [ @@ -531,40 +394,185 @@ "id" : "W. Luis Mochan" }, { + "id" : "Wanderdoc", + "name" : "Wanderdoc", "data" : [ [ "Perl", 2 ] - ], - "name" : "Wanderdoc", - "id" : "Wanderdoc" + ] } ] }, - "tooltip" : { - "pointFormat" : "{point.name}: {point.y:f}
", - "followPointer" : 1, - "headerFormat" : "{series.name}
" + "legend" : { + "enabled" : 0 }, "title" : { "text" : "The Weekly Challenge - 123" }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "chart" : { - "type" : "column" + "xAxis" : { + "type" : "category" }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - }, - "borderWidth" : 0 + "series" : [ + { + "colorByPoint" : 1, + "name" : "The Weekly Challenge - 123", + "data" : [ + { + "y" : 2, + "name" : "Abigail", + "drilldown" : "Abigail" + }, + { + "drilldown" : "Adam Russell", + "name" : "Adam Russell", + "y" : 4 + }, + { + "drilldown" : "Arne Sommer", + "y" : 5, + "name" : "Arne Sommer" + }, + { + "drilldown" : "Athanasius", + "name" : "Athanasius", + "y" : 4 + }, + { + "name" : "Bruce Gray", + "y" : 4, + "drilldown" : "Bruce Gray" + }, + { + "drilldown" : "Cheok-Yin Fung", + "y" : 3, + "name" : "Cheok-Yin Fung" + }, + { + "y" : 4, + "name" : "Colin Crain", + "drilldown" : "Colin Crain" + }, + { + "name" : "Dave Jacoby", + "y" : 4, + "drilldown" : "Dave Jacoby" + }, + { + "drilldown" : "Duncan C. White", + "y" : 2, + "name" : "Duncan C. White" + }, + { + "y" : 2, + "name" : "E. Choroba", + "drilldown" : "E. Choroba" + }, + { + "name" : "Flavio Poletti", + "y" : 6, + "drilldown" : "Flavio Poletti" + }, + { + "y" : 3, + "name" : "James Smith", + "drilldown" : "James Smith" + }, + { + "drilldown" : "Jan Krnavek", + "y" : 2, + "name" : "Jan Krnavek" + }, + { + "name" : "Jorg Sommrey", + "y" : 2, + "drilldown" : "Jorg Sommrey" + }, + { + "drilldown" : "Laurent Rosenfeld", + "name" : "Laurent Rosenfeld", + "y" : 5 + }, + { + "y" : 1, + "name" : "Lubos Kolouch", + "drilldown" : "Lubos Kolouch" + }, + { + "drilldown" : "Lucas Ransan", + "name" : "Lucas Ransan", + "y" : 2 + }, + { + "drilldown" : "Mark Anderson", + "y" : 2, + "name" : "Mark Anderson" + }, + { + "drilldown" : "Markus Holzer", + "name" : "Markus Holzer", + "y" : 2 + }, + { + "drilldown" : "Matthew Neleigh", + "name" : "Matthew Neleigh", + "y" : 2 + }, + { + "drilldown" : "Mohammad S Anwar", + "y" : 2, + "name" : "Mohammad S Anwar" + }, + { + "drilldown" : "Niels van Dijke", + "y" : 2, + "name" : "Niels van Dijke" + }, + { + "name" : "Pete Houston", + "y" : 2, + "drilldown" : "Pete Houston" + }, + { + "name" : "Roger Bell_West", + "y" : 5, + "drilldown" : "Roger Bell_West" + }, + { + "y" : 3, + "name" : "Simon Green", + "drilldown" : "Simon Green" + }, + { + "y" : 2, + "name" : "Simon Proctor", + "drilldown" : "Simon Proctor" + }, + { + "name" : "Stuart Little", + "y" : 4, + "drilldown" : "Stuart Little" + }, + { + "drilldown" : "Ulrich Rieke", + "y" : 4, + "name" : "Ulrich Rieke" + }, + { + "y" : 3, + "name" : "W. Luis Mochan", + "drilldown" : "W. Luis Mochan" + }, + { + "drilldown" : "Wanderdoc", + "name" : "Wanderdoc", + "y" : 2 + } + ] } + ], + "subtitle" : { + "text" : "[Champions: 30] Last updated at 2021-08-01 21:53:52 GMT" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index fbaa2bf75e..2d554d636b 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,4 +1,22 @@ { + "legend" : { + "enabled" : "false" + }, + "tooltip" : { + "pointFormat" : "{point.y:.0f}" + }, + "yAxis" : { + "title" : { + "text" : null + }, + "min" : 0 + }, + "chart" : { + "type" : "column" + }, + "subtitle" : { + "text" : "Last updated at 2021-08-01 21:53:51 GMT" + }, "xAxis" : { "labels" : { "style" : { @@ -8,24 +26,20 @@ }, "type" : "category" }, - "subtitle" : { - "text" : "Last updated at 2021-08-01 20:27:16 GMT" - }, "series" : [ { "dataLabels" : { - "enabled" : "true", - "y" : 10, + "format" : "{point.y:.0f}", "color" : "#FFFFFF", "style" : { "fontFamily" : "Verdana, sans-serif", "fontSize" : "13px" }, + "align" : "right", + "y" : 10, "rotation" : -90, - "format" : "{point.y:.0f}", - "align" : "right" + "enabled" : "true" }, - "name" : "Contributions", "data" : [ [ "Blog", @@ -33,31 +47,17 @@ ], [ "Perl", - 5904 + 5906 ], [ "Raku", - 3682 + 3683 ] - ] + ], + "name" : "Contributions" } ], - "legend" : { - "enabled" : "false" - }, "title" : { "text" : "The Weekly Challenge Contributions [2019 - 2021]" - }, - "tooltip" : { - "pointFormat" : "{point.y:.0f}" - }, - "yAxis" : { - "title" : { - "text" : null - }, - "min" : 0 - }, - "chart" : { - "type" : "column" } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 576552257c..2dcae0341b 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,13 +1,4 @@ { - "plotOptions" : { - "series" : { - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - }, - "borderWidth" : 0 - } - }, "chart" : { "type" : "column" }, @@ -16,22 +7,28 @@ "text" : "Total Solutions" } }, - "title" : { - "text" : "The Weekly Challenge Language" + "plotOptions" : { + "series" : { + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + }, + "borderWidth" : 0 + } }, "tooltip" : { - "headerFormat" : "", "pointFormat" : "Challenge {point.name}: {point.y:f}
", - "followPointer" : "true" + "followPointer" : "true", + "headerFormat" : "" }, - "xAxis" : { - "type" : "category" + "legend" : { + "enabled" : "false" }, "drilldown" : { "series" : [ { - "id" : "001", "name" : "001", + "id" : "001", "data" : [ [ "Perl", @@ -62,11 +59,12 @@ 10 ] ], - "name" : "002", - "id" : "002" + "id" : "002", + "name" : "002" }, { "name" : "003", + "id" : "003", "data" : [ [ "Perl", @@ -80,11 +78,9 @@ "Blog", 9 ] - ], - "id" : "003" + ] }, { - "id" : "004", "data" : [ [ "Perl", @@ -99,11 +95,12 @@ 10 ] ], + "id" : "004", "name" : "004" }, { - "id" : "005", "name" : "005", + "id" : "005", "data" : [ [ "Perl", @@ -120,8 +117,6 @@ ] }, { - "id" : "006", - "name" : "006", "data" : [ [ "Perl", @@ -135,10 +130,13 @@ "Blog", 7 ] - ] + ], + "name" : "006", + "id" : "006" }, { "id" : "007", + "name" : "007", "data" : [ [ "Perl", @@ -152,11 +150,9 @@ "Blog", 10 ] - ], - "name" : "007" + ] }, { - "id" : "008", "data" : [ [ "Perl", @@ -171,10 +167,12 @@ 12 ] ], + "id" : "008", "name" : "008" }, { "id" : "009", + "name" : "009", "data" : [ [ "Perl", @@ -188,10 +186,11 @@ "Blog", 13 ] - ], - "name" : "009" + ] }, { + "name" : "010", + "id" : "010", "data" : [ [ "Perl", @@ -205,12 +204,11 @@ "Blog", 11 ] - ], - "name" : "010", - "id" : "010" + ] }, { "id" : "011", + "name" : "011", "data" : [ [ "Perl", @@ -224,10 +222,10 @@ "Blog", 10 ] - ], - "name" : "011" + ] }, { + "id" : "012", "name" : "012", "data" : [ [ @@ -242,8 +240,7 @@ "Blog", 11 ] - ], - "id" : "012" + ] }, { "data" : [ @@ -260,10 +257,12 @@ 13 ] ], - "name" : "013", - "id" : "013" + "id" : "013", + "name" : "013" }, { + "id" : "014", + "name" : "014", "data" : [ [ "Perl", @@ -277,12 +276,11 @@ "Blog", 15 ] - ], - "name" : "014", - "id" : "014" + ] }, { "name" : "015", + "id" : "015", "data" : [ [ "Perl", @@ -296,11 +294,9 @@ "Blog", 15 ] - ], - "id" : "015" + ] }, { - "name" : "016", "data" : [ [ "Perl", @@ -315,9 +311,12 @@ 12 ] ], + "name" : "016", "id" : "016" }, { + "id" : "017", + "name" : "017", "data" : [ [ "Perl", @@ -331,13 +330,9 @@ "Blog", 12 ] - ], - "name" : "017", - "id" : "017" + ] }, { - "id" : "018", - "name" : "018", "data" : [ [ "Perl", @@ -351,10 +346,13 @@ "Blog", 14 ] - ] + ], + "name" : "018", + "id" : "018" }, { "id" : "019", + "name" : "019", "data" : [ [ "Perl", @@ -368,12 +366,9 @@ "Blog", 13 ] - ], - "name" : "019" + ] }, { - "id" : "020", - "name" : "020", "data" : [ [ "Perl", @@ -387,10 +382,11 @@ "Blog", 13 ] - ] + ], + "id" : "020", + "name" : "020" }, { - "name" : "021", "data" : [ [ "Perl", @@ -405,11 +401,10 @@ 10 ] ], + "name" : "021", "id" : "021" }, { - "id" : "022", - "name" : "022", "data" : [ [ "Perl", @@ -423,10 +418,11 @@ "Blog", 10 ] - ] + ], + "id" : "022", + "name" : "022" }, { - "id" : "023", "data" : [ [ "Perl", @@ -441,6 +437,7 @@ 12 ] ], + "id" : "023", "name" : "023" }, { @@ -462,7 +459,6 @@ "id" : "024" }, { - "name" : "025", "data" : [ [ "Perl", @@ -477,11 +473,12 @@ 12 ] ], - "id" : "025" + "id" : "025", + "name" : "025" }, { - "id" : "026", "name" : "026", + "id" : "026", "data" : [ [ "Perl", @@ -498,7 +495,6 @@ ] }, { - "id" : "027", "data" : [ [ "Perl", @@ -513,9 +509,12 @@ 9 ] ], + "id" : "027", "name" : "027" }, { + "id" : "028", + "name" : "028", "data" : [ [ "Perl", @@ -529,12 +528,9 @@ "Blog", 9 ] - ], - "name" : "028", - "id" : "028" + ] }, { - "id" : "029", "data" : [ [ "Perl", @@ -549,10 +545,12 @@ 12 ] ], + "id" : "029", "name" : "029" }, { "id" : "030", + "name" : "030", "data" : [ [ "Perl", @@ -566,11 +564,11 @@ "Blog", 10 ] - ], - "name" : "030" + ] }, { "id" : "031", + "name" : "031", "data" : [ [ "Perl", @@ -584,12 +582,9 @@ "Blog", 9 ] - ], - "name" : "031" + ] }, { - "id" : "032", - "name" : "032", "data" : [ [ "Perl", @@ -603,11 +598,11 @@ "Blog", 10 ] - ] + ], + "id" : "032", + "name" : "032" }, { - "id" : "033", - "name" : "033", "data" : [ [ "Perl", @@ -621,9 +616,13 @@ "Blog", 10 ] - ] + ], + "id" : "033", + "name" : "033" }, { + "name" : "034", + "id" : "034", "data" : [ [ "Perl", @@ -637,13 +636,11 @@ "Blog", 11 ] - ], - "name" : "034", - "id" : "034" + ] }, { - "id" : "035", "name" : "035", + "id" : "035", "data" : [ [ "Perl", @@ -660,7 +657,6 @@ ] }, { - "id" : "036", "data" : [ [ "Perl", @@ -675,10 +671,12 @@ 11 ] ], + "id" : "036", "name" : "036" }, { "name" : "037", + "id" : "037", "data" : [ [ "Perl", @@ -692,12 +690,9 @@ "Blog", 9 ] - ], - "id" : "037" + ] }, { - "id" : "038", - "name" : "038", "data" : [ [ "Perl", @@ -711,7 +706,9 @@ "Blog", 12 ] - ] + ], + "name" : "038", + "id" : "038" }, { "data" : [ @@ -728,11 +725,10 @@ 12 ] ], - "name" : "039", - "id" : "039" + "id" : "039", + "name" : "039" }, { - "id" : "040", "data" : [ [ "Perl", @@ -747,10 +743,12 @@ 10 ] ], - "name" : "040" + "name" : "040", + "id" : "040" }, { "id" : "041", + "name" : "041", "data" : [ [ "Perl", @@ -764,10 +762,11 @@ "Blog", 9 ] - ], - "name" : "041" + ] }, { + "id" : "042", + "name" : "042", "data" : [ [ "Perl", @@ -781,11 +780,11 @@ "Blog", 11 ] - ], - "name" : "042", - "id" : "042" + ] }, { + "id" : "043", + "name" : "043", "data" : [ [ "Perl", @@ -799,9 +798,7 @@ "Blog", 11 ] - ], - "name" : "043", - "id" : "043" + ] }, { "id" : "044", @@ -840,7 +837,6 @@ "id" : "045" }, { - "id" : "046", "data" : [ [ "Perl", @@ -855,11 +851,12 @@ 10 ] ], + "id" : "046", "name" : "046" }, { - "id" : "047", "name" : "047", + "id" : "047", "data" : [ [ "Perl", @@ -876,8 +873,6 @@ ] }, { - "id" : "048", - "name" : "048", "data" : [ [ "Perl", @@ -891,10 +886,11 @@ "Blog", 12 ] - ] + ], + "name" : "048", + "id" : "048" }, { - "id" : "049", "data" : [ [ "Perl", @@ -909,10 +905,12 @@ 12 ] ], - "name" : "049" + "name" : "049", + "id" : "049" }, { "name" : "050", + "id" : "050", "data" : [ [ "Perl", @@ -926,10 +924,11 @@ "Blog", 12 ] - ], - "id" : "050" + ] }, { + "id" : "051", + "name" : "051", "data" : [ [ "Perl", @@ -943,12 +942,9 @@ "Blog", 11 ] - ], - "name" : "051", - "id" : "051" + ] }, { - "name" : "052", "data" : [ [ "Perl", @@ -963,9 +959,11 @@ 14 ] ], - "id" : "052" + "id" : "052", + "name" : "052" }, { + "id" : "053", "name" : "053", "data" : [ [ @@ -980,12 +978,9 @@ "Blog", 15 ] - ], - "id" : "053" + ] }, { - "id" : "054", - "name" : "054", "data" : [ [ "Perl", @@ -999,7 +994,9 @@ "Blog", 18 ] - ] + ], + "name" : "054", + "id" : "054" }, { "data" : [ @@ -1020,7 +1017,6 @@ "id" : "055" }, { - "id" : "056", "data" : [ [ "Perl", @@ -1035,6 +1031,7 @@ 16 ] ], + "id" : "056", "name" : "056" }, { @@ -1056,8 +1053,6 @@ ] }, { - "id" : "058", - "name" : "058", "data" : [ [ "Perl", @@ -1071,10 +1066,13 @@ "Blog", 13 ] - ] + ], + "name" : "058", + "id" : "058" }, { "id" : "059", + "name" : "059", "data" : [ [ "Perl", @@ -1088,8 +1086,7 @@ "Blog", 16 ] - ], - "name" : "059" + ] }, { "data" : [ @@ -1106,11 +1103,10 @@ 16 ] ], - "name" : "060", - "id" : "060" + "id" : "060", + "name" : "060" }, { - "id" : "061", "data" : [ [ "Perl", @@ -1125,7 +1121,8 @@ 14 ] ], - "name" : "061" + "name" : "061", + "id" : "061" }, { "data" : [ @@ -1142,8 +1139,8 @@ 11 ] ], - "name" : "062", - "id" : "062" + "id" : "062", + "name" : "062" }, { "data" : [ @@ -1160,11 +1157,12 @@ 13 ] ], - "name" : "063", - "id" : "063" + "id" : "063", + "name" : "063" }, { "name" : "064", + "id" : "064", "data" : [ [ "Perl", @@ -1178,11 +1176,9 @@ "Blog", 16 ] - ], - "id" : "064" + ] }, { - "name" : "065", "data" : [ [ "Perl", @@ -1197,9 +1193,11 @@ 15 ] ], - "id" : "065" + "id" : "065", + "name" : "065" }, { + "name" : "066", "id" : "066", "data" : [ [ @@ -1214,12 +1212,9 @@ "Blog", 14 ] - ], - "name" : "066" + ] }, { - "id" : "067", - "name" : "067", "data" : [ [ "Perl", @@ -1233,7 +1228,9 @@ "Blog", 18 ] - ] + ], + "id" : "067", + "name" : "067" }, { "data" : [ @@ -1254,8 +1251,6 @@ "id" : "068" }, { - "id" : "069", - "name" : "069", "data" : [ [ "Perl", @@ -1269,11 +1264,11 @@ "Blog", 16 ] - ] + ], + "name" : "069", + "id" : "069" }, { - "id" : "070", - "name" : "070", "data" : [ [ "Perl", @@ -1287,7 +1282,9 @@ "Blog", 17 ] - ] + ], + "id" : "070", + "name" : "070" }, { "data" : [ @@ -1304,11 +1301,12 @@ 15 ] ], - "name" : "071", - "id" : "071" + "id" : "071", + "name" : "071" }, { "id" : "072", + "name" : "072", "data" : [ [ "Perl", @@ -1322,10 +1320,10 @@ "Blog", 19 ] - ], - "name" : "072" + ] }, { + "name" : "073", "id" : "073", "data" : [ [ @@ -1340,11 +1338,11 @@ "Blog", 17 ] - ], - "name" : "073" + ] }, { "id" : "074", + "name" : "074", "data" : [ [ "Perl", @@ -1358,10 +1356,10 @@ "Blog", 20 ] - ], - "name" : "074" + ] }, { + "name" : "075", "id" : "075", "data" : [ [ @@ -1376,11 +1374,11 @@ "Blog", 20 ] - ], - "name" : "075" + ] }, { "name" : "076", + "id" : "076", "data" : [ [ "Perl", @@ -1394,10 +1392,10 @@ "Blog", 16 ] - ], - "id" : "076" + ] }, { + "name" : "077", "id" : "077", "data" : [ [ @@ -1412,10 +1410,10 @@ "Blog", 14 ] - ], - "name" : "077" + ] }, { + "name" : "078", "id" : "078", "data" : [ [ @@ -1430,11 +1428,11 @@ "Blog", 18 ] - ], - "name" : "078" + ] }, { "name" : "079", + "id" : "079", "data" : [ [ "Perl", @@ -1448,8 +1446,7 @@ "Blog", 17 ] - ], - "id" : "079" + ] }, { "id" : "080", @@ -1484,12 +1481,10 @@ 15 ] ], - "name" : "081", - "id" : "081" + "id" : "081", + "name" : "081" }, { - "id" : "082", - "name" : "082", "data" : [ [ "Perl", @@ -1503,7 +1498,9 @@ "Blog", 17 ] - ] + ], + "name" : "082", + "id" : "082" }, { "data" : [ @@ -1525,6 +1522,7 @@ }, { "name" : "084", + "id" : "084", "data" : [ [ "Perl", @@ -1538,12 +1536,9 @@ "Blog", 12 ] - ], - "id" : "084" + ] }, { - "id" : "085", - "name" : "085", "data" : [ [ "Perl", @@ -1557,7 +1552,9 @@ "Blog", 18 ] - ] + ], + "id" : "085", + "name" : "085" }, { "id" : "086", @@ -1578,6 +1575,7 @@ ] }, { + "name" : "087", "id" : "087", "data" : [ [ @@ -1592,10 +1590,11 @@ "Blog", 14 ] - ], - "name" : "087" + ] }, { + "name" : "088", + "id" : "088", "data" : [ [ "Perl", @@ -1609,13 +1608,9 @@ "Blog", 20 ] - ], - "name" : "088", - "id" : "088" + ] }, { - "id" : "089", - "name" : "089", "data" : [ [ "Perl", @@ -1629,11 +1624,11 @@ "Blog", 20 ] - ] + ], + "name" : "089", + "id" : "089" }, { - "id" : "090", - "name" : "090", "data" : [ [ "Perl", @@ -1647,10 +1642,11 @@ "Blog", 17 ] - ] + ], + "name" : "090", + "id" : "090" }, { - "id" : "091", "data" : [ [ "Perl", @@ -1665,9 +1661,11 @@ 16 ] ], - "name" : "091" + "name" : "091", + "id" : "091" }, { + "name" : "092", "id" : "092", "data" : [ [ @@ -1682,11 +1680,11 @@ "Blog", 16 ] - ], - "name" : "092" + ] }, { "id" : "093", + "name" : "093", "data" : [ [ "Perl", @@ -1700,10 +1698,10 @@ "Blog", 16 ] - ], - "name" : "093" + ] }, { + "name" : "094", "id" : "094", "data" : [ [ @@ -1718,11 +1716,9 @@ "Blog", 17 ] - ], - "name" : "094" + ] }, { - "id" : "095", "data" : [ [ "Perl", @@ -1737,11 +1733,12 @@ 19 ] ], + "id" : "095", "name" : "095" }, { - "id" : "096", "name" : "096", + "id" : "096", "data" : [ [ "Perl", @@ -1758,8 +1755,6 @@ ] }