From 2fe2152b16e615548c59bd470500f56c87c34496 Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Sun, 12 Jan 2020 22:18:46 +0000 Subject: - Added solutions by Colin Crain. --- challenge-042/colin-crain/perl/ch-1.pl | 95 ++++ challenge-042/colin-crain/perl/ch-2.pl | 89 ++++ challenge-042/colin-crain/raku/ch-1.p6 | 92 ++++ challenge-042/colin-crain/raku/ch-2.p6 | 80 ++++ stats/pwc-current.json | 427 +++++++++-------- stats/pwc-language-breakdown-summary.json | 40 +- stats/pwc-language-breakdown.json | 330 ++++++------- stats/pwc-leaders.json | 772 +++++++++++++++--------------- stats/pwc-summary-1-30.json | 28 +- stats/pwc-summary-121-150.json | 84 ++-- stats/pwc-summary-31-60.json | 108 ++--- stats/pwc-summary-61-90.json | 100 ++-- stats/pwc-summary-91-120.json | 32 +- stats/pwc-summary.json | 316 ++++++------ 14 files changed, 1484 insertions(+), 1109 deletions(-) create mode 100644 challenge-042/colin-crain/perl/ch-1.pl create mode 100644 challenge-042/colin-crain/perl/ch-2.pl create mode 100644 challenge-042/colin-crain/raku/ch-1.p6 create mode 100644 challenge-042/colin-crain/raku/ch-2.p6 diff --git a/challenge-042/colin-crain/perl/ch-1.pl b/challenge-042/colin-crain/perl/ch-1.pl new file mode 100644 index 0000000000..a333d98c08 --- /dev/null +++ b/challenge-042/colin-crain/perl/ch-1.pl @@ -0,0 +1,95 @@ +#! /opt/local/bin/perl +# +# octal.pl +# +# PWC 42 - Task #1 +# Octal Number System +# Write a script to print decimal number 0 to 50 in Octal Number System. +# +# For example: +# +# Decimal 0 = Octal 0 +# Decimal 1 = Octal 1 +# Decimal 2 = Octal 2 +# Decimal 3 = Octal 3 +# Decimal 4 = Octal 4 +# Decimal 5 = Octal 5 +# Decimal 6 = Octal 6 +# Decimal 7 = Octal 7 +# Decimal 8 = Octal 10 +# and so on. +# +# method: the algorithm out of the box works for N, as any positive +# integer can be essentially recounted in a different base. It can +# be expanded to Z by keeping track of a 'sign bit', converting the +# absolute value and adding back the sign to the output as +# required. Rational numbers, Q, are where things get tricky. In +# cases where the set of prime factors of the two number systems +# are not the same, repeating fractions become an unfortunate +# reality. +# +# Specifically whether the pet of prime factors of the new base are a +# subset of that of the old. So any number base8 {2} can be expressed +# base10 {2,5} but not vice versa. +# +# For example 0.1 base10 = 0.0[6314...] base8 +# +# For this reason we will not consider Q for the moment. And R, Real +# numbers, including π and e and such, is just right out. Even +# though it isn't required for the challenge as stated, we will +# construct an algorithm that will handle negative numbers +# properly. +# +# It follows that any binary representation of a number can be +# converted into an octal, or hexadecimal, equivalent without losing +# any precision, as the only factors of these bases are in the set +# {2}. This is in fact specifically why they are convenient; unique +# combinations of 4 binary, 2 octal and 1 hexadecimal digits are +# directly mappable from one system to the other without any +# knowledge of the number, or part of a number, that they represent. +# The higher number bases serve as a convenient shorthand for +# sections of much harder for humans to read binary streams. +# +# We will use integer division to divide out the number by 8s. When +# we realize the graphemes we use to represent a number, no matter +# what base we use, are not really the number but a rather a +# representation of that number using marks, we can create the new +# number much as we would write it on a page. Each time we divide +# out we reset the number to floor(n/d) and write the remainder to +# the front of our output. Adding a special case for 0 and we have +# created a string that Perl can parse as a number, which it is, as +# much as writing the same on a page is that number. Perl is good +# like that. Because n is always positive, int(n) == floor(n) so +# there is no need to import the POSIX floor() function. +# +# 2020 colin crain +## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## + + + +use warnings; +use strict; +use feature ":5.26"; + +## ## ## ## ## MAIN + +printf "Decimal %-2d = Octal %-2d\n", $_, octal($_) for (-50..50); + + + +## ## ## ## ## SUBS + +sub octal { + my $num = shift; + my $sign = ($num >= 0) ? "" : '-'; + $num = abs($num); + my $out = ""; + my $rem; + while ( $num > 0 ) { + ($num, $rem) = (int( $num/8 ), $num % 8); + $out = $rem . $out; + } + $out = $sign . $out; + return $out ? $out : 0; ## needs to output 0 for 0 + +} diff --git a/challenge-042/colin-crain/perl/ch-2.pl b/challenge-042/colin-crain/perl/ch-2.pl new file mode 100644 index 0000000000..6eea648f11 --- /dev/null +++ b/challenge-042/colin-crain/perl/ch-2.pl @@ -0,0 +1,89 @@ +#! /opt/local/bin/perl +# +# balanced_brackets.pl +# +# PWC 42 - TASK #2 +# Balanced Brackets +# Write a script to generate a string with random number of ( and ) +# brackets. Then make the script validate the string if it has +# balanced brackets. +# +# For example: +# +# () - OK +# (()) - OK +# )( - NOT OK +# ())() - NOT OK +# +# method: to make the random string of parens, we take a range of 1 to +# 10 indexes and, mapping through them, assign either a left or right +# paren and place on a list, joining that list at the end to make a +# single string. So far so good. +# +# For validation, we will match pairs of parens and eliminate them +# from the string until no more can be matched. If our string goes +# away we were good, if not, then things didn't match up. That said, +# there are a number of short circuits to this process where it no +# longer pays to continue. +# +# • Matched parens come in pairs, by definition, so right out of the +# gate the length of the random string must be even. So this +# eliminates one half of the chances. We will check for evenness and +# exit with a message as required. +# +# • If the string under consideration starts with a right paren, that +# paren can no longer be matched and the validation will fail. One way +# to detect this is to look for the placement of a valid () match; if +# the match does not take place at index 0, there must be a paren +# preceeding it and that paren must be a right paren. So we exit with +# a note. +# +# • Finally if matching has stopped we check for length, if the string +# still has chars, it is imbalanced and we exit with a note, showing +# the unbalanced section. If we have no string lenght remaining, +# against all odds we have succeded at randomly crafting a balanced +# string of parens. +# +# It's obvious this last occurance will in fact rarely happen. The +# shortest matching sting is 2 chars, (). The odds are .5 any given +# string is odd-numbered, and .5 the first paren will be right, so our +# chance of immediately failing is .75 +# +# After this the odds get complicated, but never better, and worse as +# the length of the random base grows. So for purposes of this +# experiment the length has been limited to up to 10 chars. + +# +# 2020 colin crain +## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## + + + +use warnings; +use strict; +use feature ":5.26"; + +## ## ## ## ## MAIN + +my $upper = shift @ARGV // 10; +$upper = int(rand($upper)) + 1; + +my $str = make_string($upper); +say $str; +say validate( $str ); + + +## ## ## ## ## SUBS + +sub make_string { + return join '', map { ['(',')']->[int(rand(2))] } (1..$_[0]); +} + +sub validate { + my $str = shift; + unless (length($str)%2==0) { return "IMBALANCED - odd number of parens"}; + while ( $str =~ s/ \( (.*?) \) /$1/x) { + if ($-[0] != 0){ return "IMBALANCED - remaining group starts with right paren : $str" } + } + return (length $str == 0) ? "BALANCED" : "IMBALANCED - $str remaining"; +} diff --git a/challenge-042/colin-crain/raku/ch-1.p6 b/challenge-042/colin-crain/raku/ch-1.p6 new file mode 100644 index 0000000000..f7116ec224 --- /dev/null +++ b/challenge-042/colin-crain/raku/ch-1.p6 @@ -0,0 +1,92 @@ +use v6; + +# +# octal.p6 +# +# PWC 42 - Task #1 +# Octal Number System +# Write a script to print decimal number 0 to 50 in Octal Number System. +# +# For example: +# +# Decimal 0 = Octal 0 +# Decimal 1 = Octal 1 +# Decimal 2 = Octal 2 +# Decimal 3 = Octal 3 +# Decimal 4 = Octal 4 +# Decimal 5 = Octal 5 +# Decimal 6 = Octal 6 +# Decimal 7 = Octal 7 +# Decimal 8 = Octal 10 +# and so on. +# +# method: the algorithm out of the box works for N, as any positive +# integer can be essentially recounted in a different base. It can +# be expanded to Z by keeping track of a 'sign bit', converting the +# absolute value and adding back the sign to the output as +# required. Rational numbers, Q, are where things get tricky. In +# cases where the set of prime factors of the two number systems +# are not the same, repeating fractions become an unfortunate +# reality. +# +# Specifically whether the pet of prime factors of the new base are a +# subset of that of the old. So any number base8 {2} can be expressed +# base10 {2,5} but not vice versa. +# ____ +# For example 0.1 base10 = 0.0[6314] base8 +# +# For this reason we will not consider Q for the moment. And R, Real +# numbers, including π and e and such, is just right out. Even +# though it isn't required for the challenge as stated, we will +# construct an algorithm that will handle negative numbers +# properly. +# +# It follows that any binary representation of a number can be +# converted into an octal, or hexadecimal, equivalent without losing +# any precision, as the only factors of these bases are in the set +# {2}. This is in fact specifically why they are convenient; unique +# combinations of 4 binary, 2 octal and 1 hexadecimal digits are +# directly mappable from one system to the other without any +# knowledge of the number, or part of a number, that they represent. +# The higher number bases serve as a convenient shorthand for +# sections of much harder for humans to read binary streams. +# +# We will use integer division to divide out the number by 8s. When +# we realize the graphemes we use to represent a number, no matter +# what base we use, are not really the number but a rather a +# representation of that number using marks, we can create the new +# number much as we would write it on a page. Each time we divide +# out we reset the number to floor(n/d) and write the remainder to +# the front of our output. Adding a special case for 0 and we have +# created a string that Perl can parse as a number, which it is, as +# much as writing the same on a page is that number. Perl is good +# like that. + +# +# +# 2020 colin crain +## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## + +sub MAIN () { + + for -50 .. 50 { + printf "Decimal %3d = Octal %3d\n", $_, octal($_) ; + } +} + + +## ## ## ## ## SUBS + +sub octal ( $dec is copy ){ + my $out = ""; + my $sign = $dec < 0 ?? "-" !! ""; + $dec .= abs; + my $rem; + while ( $dec > 0 ) { + $rem = $dec % 8; + $dec = ($dec/8).floor; + $out = $rem ~ $out; + } + $out = $sign ~ $out; + return $out ?? $out !! 0; ## needs to output 0 for 0 +} diff --git a/challenge-042/colin-crain/raku/ch-2.p6 b/challenge-042/colin-crain/raku/ch-2.p6 new file mode 100644 index 0000000000..711f716f82 --- /dev/null +++ b/challenge-042/colin-crain/raku/ch-2.p6 @@ -0,0 +1,80 @@ +use v6; + +# +# balanced_brackets.p6 +# +# PWC 42 - TASK #2 +# Balanced Brackets +# Write a script to generate a string with random number of ( and ) +# brackets. Then make the script validate the string if it has +# balanced brackets. +# +# For example: +# +# () - OK +# (()) - OK +# )( - NOT OK +# ())() - NOT OK +# +# method :For validation, we will match pairs of parens and eliminate them +# from the string until no more can be matched. If our string goes +# away we were good, if not, then things didn't match up. That said, +# there is one short circuit to this process where it no +# longer pays to continue. +# +# • Matched parens come in pairs, by definition, so right out of the +# gate the length of the random string must be even. So this +# eliminates one half of the chances. We will check for evenness and +# exit with a message as required. +# +# Finally if matching has stopped we check for length, if the string +# still has chars, it is imbalanced and we exit with a note, showing +# the unbalanced section. If we have no string lenght remaining, +# against all odds we have succeded at randomly crafting a balanced +# string of parens. +# +# It's obvious this last occurance will in fact rarely happen. The +# shortest matching sting is 2 chars, (). The odds are .5 any given +# string is odd-numbered, and .5 the first paren will be right, hence unmatchable, so our +# chance of immediately failing is .75 +# +# After this the odds get complicated, but never better, and worse as +# the length of the random base grows. So for purposes of this +# experiment the length has been limited to up to 10 chars. +# +# As is, it isn't a very fun game as one almost always loses. +# +# 2020 colin crain +## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## + +sub MAIN ( Int:D $upper_bound where {$upper_bound > 1} = 10) { + my $str_length = (^$upper_bound).pick + 1; + my $str = make_string( $str_length ); + + say "start: $str"; + say "val: ", validate( $str ); + +} + + +## ## ## ## ## SUBS + +sub make_string ( Int:D $len){ + my $str; + my @str; + for (1..$len) { + @str.push: (^2).pick; + } + @str = map { [ '(' , ')' ][$_] }, @str; + return @str.join(""); +} + +sub validate (Str:D $orig) { + my $str = $orig; + unless $str.chars %% 2 { return "IMBALANCED - odd number of parens"}; + + while $str ~~ s/\((.*?)\)/$0/ { ; } + + return ($str.chars == 0) ?? "PARENS BALANCED" !! "IMBALANCED - $str unmatched"; +} + diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 5f0b9a3124..e236ddef7b 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,167 +1,23 @@ { - "series" : [ - { - "name" : "Perl Weekly Challenge - 042", - "data" : [ - { - "y" : 2, - "name" : "Alicia Bielsa", - "drilldown" : "Alicia Bielsa" - }, - { - "name" : "Arne Sommer", - "y" : 3, - "drilldown" : "Arne Sommer" - }, - { - "name" : "Burkhard Nickels", - "y" : 6, - "drilldown" : "Burkhard Nickels" - }, - { - "y" : 2, - "name" : "Cristina Heredia", - "drilldown" : "Cristina Heredia" - }, - { - "drilldown" : "Daniel Mita", - "y" : 2, - "name" : "Daniel Mita" - }, - { - "name" : "Dave Jacoby", - "y" : 2, - "drilldown" : "Dave Jacoby" - }, - { - "name" : "Duane Powell", - "y" : 2, - "drilldown" : "Duane Powell" - }, - { - "y" : 2, - "name" : "E. Choroba", - "drilldown" : "E. Choroba" - }, - { - "drilldown" : "Fabrizio Poggi", - "y" : 2, - "name" : "Fabrizio Poggi" - }, - { - "name" : "Javier Luque", - "y" : 5, - "drilldown" : "Javier Luque" - }, - { - "drilldown" : "Kevin Colyer", - "name" : "Kevin Colyer", - "y" : 2 - }, - { - "y" : 2, - "name" : "Kivanc Yazan", - "drilldown" : "Kivanc Yazan" - }, - { - "drilldown" : "Laurent Rosenfeld", - "y" : 5, - "name" : "Laurent Rosenfeld" - }, - { - "drilldown" : "Markus Holzer", - "y" : 2, - "name" : "Markus Holzer" - }, - { - "drilldown" : "Nazareno Delucca", - "name" : "Nazareno Delucca", - "y" : 2 - }, - { - "drilldown" : "Noud Aldenhoven", - "name" : "Noud Aldenhoven", - "y" : 2 - }, - { - "drilldown" : "Peter Scott", - "y" : 2, - "name" : "Peter Scott" - }, - { - "drilldown" : "Roger Bell West", - "name" : "Roger Bell West", - "y" : 4 - }, - { - "name" : "Ruben Westerberg", - "y" : 4, - "drilldown" : "Ruben Westerberg" - }, - { - "drilldown" : "Ryan Thompson", - "name" : "Ryan Thompson", - "y" : 6 - }, - { - "y" : 2, - "name" : "Saif Ahmed", - "drilldown" : "Saif Ahmed" - }, - { - "y" : 2, - "name" : "Simon Proctor", - "drilldown" : "Simon Proctor" - }, - { - "name" : "Steven Wilson", - "y" : 1, - "drilldown" : "Steven Wilson" - }, - { - "drilldown" : "Ulrich Rieke", - "name" : "Ulrich Rieke", - "y" : 2 - }, - { - "name" : "Walt Mankowski", - "y" : 2, - "drilldown" : "Walt Mankowski" - }, - { - "y" : 2, - "name" : "Wanderdoc", - "drilldown" : "Wanderdoc" - } - ], - "colorByPoint" : 1 - } - ], "legend" : { "enabled" : 0 }, - "chart" : { - "type" : "column" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } + "xAxis" : { + "type" : "category" }, "drilldown" : { "series" : [ { + "name" : "Alicia Bielsa", "data" : [ [ "Perl", 2 ] ], - "id" : "Alicia Bielsa", - "name" : "Alicia Bielsa" + "id" : "Alicia Bielsa" }, { - "name" : "Arne Sommer", "id" : "Arne Sommer", "data" : [ [ @@ -172,9 +28,11 @@ "Blog", 1 ] - ] + ], + "name" : "Arne Sommer" }, { + "name" : "Burkhard Nickels", "data" : [ [ "Perl", @@ -189,42 +47,55 @@ 2 ] ], - "id" : "Burkhard Nickels", - "name" : "Burkhard Nickels" + "id" : "Burkhard Nickels" }, { "data" : [ [ "Perl", 2 + ], + [ + "Raku", + 2 ] ], + "name" : "Colin Crain", + "id" : "Colin Crain" + }, + { + "id" : "Cristina Heredia", "name" : "Cristina Heredia", - "id" : "Cristina Heredia" + "data" : [ + [ + "Perl", + 2 + ] + ] }, { + "id" : "Daniel Mita", + "name" : "Daniel Mita", "data" : [ [ "Raku", 2 ] - ], - "id" : "Daniel Mita", - "name" : "Daniel Mita" + ] }, { + "id" : "Dave Jacoby", + "name" : "Dave Jacoby", "data" : [ [ "Perl", 2 ] - ], - "id" : "Dave Jacoby", - "name" : "Dave Jacoby" + ] }, { - "name" : "Duane Powell", "id" : "Duane Powell", + "name" : "Duane Powell", "data" : [ [ "Perl", @@ -234,22 +105,22 @@ }, { "id" : "E. Choroba", - "name" : "E. Choroba", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "E. Choroba" }, { + "id" : "Fabrizio Poggi", "data" : [ [ "Perl", 2 ] ], - "id" : "Fabrizio Poggi", "name" : "Fabrizio Poggi" }, { @@ -267,8 +138,8 @@ 1 ] ], - "id" : "Javier Luque", - "name" : "Javier Luque" + "name" : "Javier Luque", + "id" : "Javier Luque" }, { "data" : [ @@ -277,21 +148,20 @@ 2 ] ], - "id" : "Kevin Colyer", - "name" : "Kevin Colyer" + "name" : "Kevin Colyer", + "id" : "Kevin Colyer" }, { + "id" : "Kivanc Yazan", + "name" : "Kivanc Yazan", "data" : [ [ "Perl", 2 ] - ], - "id" : "Kivanc Yazan", - "name" : "Kivanc Yazan" + ] }, { - "name" : "Laurent Rosenfeld", "id" : "Laurent Rosenfeld", "data" : [ [ @@ -306,11 +176,12 @@ "Blog", 1 ] - ] + ], + "name" : "Laurent Rosenfeld" }, { - "name" : "Markus Holzer", "id" : "Markus Holzer", + "name" : "Markus Holzer", "data" : [ [ "Raku", @@ -319,37 +190,36 @@ ] }, { + "name" : "Nazareno Delucca", "data" : [ [ "Perl", 2 ] ], - "name" : "Nazareno Delucca", "id" : "Nazareno Delucca" }, { "id" : "Noud Aldenhoven", - "name" : "Noud Aldenhoven", "data" : [ [ "Raku", 2 ] - ] + ], + "name" : "Noud Aldenhoven" }, { + "id" : "Peter Scott", + "name" : "Peter Scott", "data" : [ [ "Perl", 2 ] - ], - "name" : "Peter Scott", - "id" : "Peter Scott" + ] }, { - "id" : "Roger Bell West", "name" : "Roger Bell West", "data" : [ [ @@ -360,11 +230,10 @@ "Raku", 2 ] - ] + ], + "id" : "Roger Bell West" }, { - "id" : "Ruben Westerberg", - "name" : "Ruben Westerberg", "data" : [ [ "Perl", @@ -374,7 +243,9 @@ "Raku", 2 ] - ] + ], + "name" : "Ruben Westerberg", + "id" : "Ruben Westerberg" }, { "data" : [ @@ -406,77 +277,225 @@ }, { "name" : "Simon Proctor", - "id" : "Simon Proctor", "data" : [ [ "Raku", 2 ] - ] + ], + "id" : "Simon Proctor" }, { - "name" : "Steven Wilson", - "id" : "Steven Wilson", "data" : [ [ "Perl", 1 ] - ] + ], + "name" : "Steven Wilson", + "id" : "Steven Wilson" }, { + "id" : "Ulrich Rieke", + "name" : "Ulrich Rieke", "data" : [ [ "Raku", 2 ] - ], - "id" : "Ulrich Rieke", - "name" : "Ulrich Rieke" + ] }, { + "name" : "Walt Mankowski", "data" : [ [ "Perl", 2 ] ], - "name" : "Walt Mankowski", "id" : "Walt Mankowski" }, { - "name" : "Wanderdoc", - "id" : "Wanderdoc", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Wanderdoc", + "id" : "Wanderdoc" } ] }, - "subtitle" : { - "text" : "[Champions: 26] Last updated at 2020-01-11 22:44:56 GMT" - }, "plotOptions" : { "series" : { "borderWidth" : 0, "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 + "enabled" : 1, + "format" : "{point.y}" } } }, "tooltip" : { "headerFormat" : "{series.name}
", - "pointFormat" : "{point.name}: {point.y:f}
", - "followPointer" : 1 + "followPointer" : 1, + "pointFormat" : "{point.name}: {point.y:f}
" }, "title" : { "text" : "Perl Weekly Challenge - 042" }, - "xAxis" : { - "type" : "category" + "series" : [ + { + "data" : [ + { + "y" : 2, + "name" : "Alicia Bielsa", + "drilldown" : "Alicia Bielsa" + }, + { + "drilldown" : "Arne Sommer", + "name" : "Arne Sommer", + "y" : 3 + }, + { + "y" : 6, + "name" : "Burkhard Nickels", + "drilldown" : "Burkhard Nickels" + }, + { + "drilldown" : "Colin Crain", + "name" : "Colin Crain", + "y" : 4 + }, + { + "name" : "Cristina Heredia", + "drilldown" : "Cristina Heredia", + "y" : 2 + }, + { + "y" : 2, + "name" : "Daniel Mita", + "drilldown" : "Daniel Mita" + }, + { + "name" : "Dave Jacoby", + "drilldown" : "Dave Jacoby", + "y" : 2 + }, + { + "y" : 2, + "name" : "Duane Powell", + "drilldown" : "Duane Powell" + }, + { + "drilldown" : "E. Choroba", + "name" : "E. Choroba", + "y" : 2 + }, + { + "name" : "Fabrizio Poggi", + "drilldown" : "Fabrizio Poggi", + "y" : 2 + }, + { + "name" : "Javier Luque", + "drilldown" : "Javier Luque", + "y" : 5 + }, + { + "y" : 2, + "drilldown" : "Kevin Colyer", + "name" : "Kevin Colyer" + }, + { + "name" : "Kivanc Yazan", + "drilldown" : "Kivanc Yazan", + "y" : 2 + }, + { + "drilldown" : "Laurent Rosenfeld", + "name" : "Laurent Rosenfeld", + "y" : 5 + }, + { + "y" : 2, + "drilldown" : "Markus Holzer", + "name" : "Markus Holzer" + }, + { + "y" : 2, + "name" : "Nazareno Delucca", + "drilldown" : "Nazareno Delucca" + }, + { + "y" : 2, + "name" : "Noud Aldenhoven", + "drilldown" : "Noud Aldenhoven" + }, + { + "name" : "Peter Scott", + "drilldown" : "Peter Scott", + "y" : 2 + }, + { + "y" : 4, + "drilldown" : "Roger Bell West", + "name" : "Roger Bell West" + }, + { + "name" : "Ruben Westerberg", + "drilldown" : "Ruben Westerberg", + "y" : 4 + }, + { + "y" : 6, + "name" : "Ryan Thompson", + "drilldown" : "Ryan Thompson" + }, + { + "y" : 2, + "drilldown" : "Saif Ahmed", + "name" : "Saif Ahmed" + }, + { + "name" : "Simon Proctor", + "drilldown" : "Simon Proctor", + "y" : 2 + }, + { + "y" : 1, + "name" : "Steven Wilson", + "drilldown" : "Steven Wilson" + }, + { + "y" : 2, + "drilldown" : "Ulrich Rieke", + "name" : "Ulrich Rieke" + }, + { + "y" : 2, + "name" : "Walt Mankowski", + "drilldown" : "Walt Mankowski" + }, + { + "name" : "Wanderdoc", + "drilldown" : "Wanderdoc", + "y" : 2 + } + ], + "name" : "Perl Weekly Challenge - 042", + "colorByPoint" : 1 + } + ], + "chart" : { + "type" : "column" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "subtitle" : { + "text" : "[Champions: 27] Last updated at 2020-01-12 22:18:06 GMT" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index c8cad7fa12..ba73e37659 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,34 +1,30 @@ { - "tooltip" : { - "pointFormat" : "{point.y:.0f}" - }, - "title" : { - "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" + "legend" : { + "enabled" : "false" }, "xAxis" : { + "type" : "category", "labels" : { "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" } - }, - "type" : "category" + } }, "series" : [ { "dataLabels" : { - "color" : "#FFFFFF", - "enabled" : "true", "y" : 10, + "enabled" : "true", "format" : "{point.y:.0f}", "rotation" : -90, + "color" : "#FFFFFF", "align" : "right", "style" : { "fontFamily" : "Verdana, sans-serif", "fontSize" : "13px" } }, - "name" : "Contributions", "data" : [ [ "Blog", @@ -36,20 +32,18 @@ ], [ "Perl", - 1725 + 1727 ], [ "Raku", - 1044 + 1046 ] - ] + ], + "name" : "Contributions" } ], - "legend" : { - "enabled" : "false" - }, - "subtitle" : { - "text" : "Last updated at 2020-01-11 22:44:56 GMT" + "title" : { + "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" }, "yAxis" : { "title" : { @@ -59,5 +53,11 @@ }, "chart" : { "type" : "column" + }, + "subtitle" : { + "text" : "Last updated at 2020-01-12 22:18:06 GMT" + }, + "tooltip" : { + "pointFormat" : "{point.y:.0f}" } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 3cc234780a..a62db5f3e7 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,11 +1,15 @@ { + "title" : { + "text" : "Perl Weekly Challenge Language" + }, "series" : [ { + "name" : "Perl Weekly Challenge Languages", "data" : [ { - "name" : "#001", "y" : 140, - "drilldown" : "001" + "drilldown" : "001", + "name" : "#001" }, { "drilldown" : "002", @@ -13,8 +17,8 @@ "y" : 109 }, { - "drilldown" : "003", "name" : "#003", + "drilldown" : "003", "y" : 71 }, { @@ -23,139 +27,139 @@ "drilldown" : "004" }, { + "drilldown" : "005", "name" : "#005", - "y" : 71, - "drilldown" : "005" + "y" : 71 }, { - "name" : "#006", "y" : 48, + "name" : "#006", "drilldown" : "006" }, { - "name" : "#007", "y" : 56, - "drilldown" : "007" + "drilldown" : "007", + "name" : "#007" }, { "y" : 70, - "name" : "#008", - "drilldown" : "008" + "drilldown" : "008", + "name" : "#008" }, { - "drilldown" : "009", "name" : "#009", + "drilldown" : "009", "y" : 68 }, { "y" : 60, - "name" : "#010", - "drilldown" : "010" + "drilldown" : "010", + "name" : "#010" }, { "drilldown" : "011", - "y" : 79, - "name" : "#011" + "name" : "#011", + "y" : 79 }, { "name" : "#012", - "y" : 83, - "drilldown" : "012" + "drilldown" : "012", + "y" : 83 }, { - "name" : "#013", "y" : 76, - "drilldown" : "013" + "drilldown" : "013", + "name" : "#013" }, { "y" : 96, - "name" : "#014", - "drilldown" : "014" + "drilldown" : "014", + "name" : "#014" }, { + "name" : "#015", "drilldown" : "015", - "y" : 93, - "name" : "#015" + "y" : 93 }, { - "name" : "#016", "y" : 66, - "drilldown" : "016" + "drilldown" : "016", + "name" : "#016" }, { - "y" : 79, + "drilldown" : "017", "name" : "#017", - "drilldown" : "017" + "y" : 79 }, { "name" : "#018", - "y" : 76, - "drilldown" : "018" + "drilldown" : "018", + "y" : 76 }, { - "drilldown" : "019", + "y" : 95, "name" : "#019", - "y" : 95 + "drilldown" : "019" }, { - "drilldown" : "020", "y" : 95, + "drilldown" : "020", "name" : "#020" }, { + "drilldown" : "021", "name" : "#021", - "y" : 67, - "drilldown" : "021" + "y" : 67 }, { + "name" : "#022", "drilldown" : "022", - "y" : 63, - "name" : "#022" + "y" : 63 }, { "drilldown" : "023", - "y" : 91, - "name" : "#023" + "name" : "#023", + "y" : 91 }, { + "y" : 70, "drilldown" : "024", - "name" : "#024", - "y" : 70 + "name" : "#024" }, { - "drilldown" : "025", "y" : 55, + "drilldown" : "025", "name" : "#025" }, { - "drilldown" : "026", "y" : 70, + "drilldown" : "026", "name" : "#026" }, { - "drilldown" : "027", "y" : 58, + "drilldown" : "027", "name" : "#027" }, { - "name" : "#028", "y" : 78, + "name" : "#028", "drilldown" : "028" }, { - "drilldown" : "029", "y" : 77, + "drilldown" : "029", "name" : "#029" }, { - "y" : 115, "name" : "#030", - "drilldown" : "030" + "drilldown" : "030", + "y" : 115 }, { + "y" : 87, "drilldown" : "031", - "name" : "#031", - "y" : 87 + "name" : "#031" }, { "drilldown" : "032", @@ -163,14 +167,14 @@ "y" : 92 }, { - "y" : 108, + "drilldown" : "033", "name" : "#033", - "drilldown" : "033" + "y" : 108 }, { "name" : "#034", - "y" : 60, - "drilldown" : "034" + "drilldown" : "034", + "y" : 60 }, { "y" : 60, @@ -178,45 +182,60 @@ "drilldown" : "035" }, { - "drilldown" : "036", "y" : 61, - "name" : "#036" + "name" : "#036", + "drilldown" : "036" }, { + "y" : 63, "drilldown" : "037", - "name" : "#037", - "y" : 63 + "name" : "#037" }, { - "drilldown" : "038", "name" : "#038", + "drilldown" : "038", "y" : 60 }, { - "drilldown" : "039", "name" : "#039", + "drilldown" : "039", "y" : 60 }, { - "drilldown" : "040", + "y" : 66, "name" : "#040", - "y" : 66 + "drilldown" : "040" }, { + "drilldown" : "041", "name" : "#041", - "y" : 67, - "drilldown" : "041" + "y" : 67 }, { - "drilldown" : "042", - "y" : 70, - "name" : "#042" + "y" : 74, + "name" : "#042", + "drilldown" : "042" } ], - "colorByPoint" : "true", - "name" : "Perl Weekly Challenge Languages" + "colorByPoint" : "true" } ], + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "chart" : { + "type" : "column" + }, + "subtitle" : { + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-01-12 22:18:06 GMT" + }, + "tooltip" : { + "pointFormat" : "Challenge {point.name}: {point.y:f}
", + "headerFormat" : "", + "followPointer" : "true" + }, "drilldown" : { "series" : [ { @@ -238,6 +257,8 @@ ] }, { + "id" : "002", + "name" : "002", "data" : [ [ "Perl", @@ -251,11 +272,11 @@ "Blog", 10 ] - ], - "id" : "002", - "name" : "002" + ] }, { + "id" : "003", + "name" : "003", "data" : [ [ "Perl", @@ -269,12 +290,9 @@ "Blog", 9 ] - ], - "id" : "003", - "name" : "003" + ] }, { - "id" : "004", "name" : "004", "data" : [ [ @@ -289,11 +307,10 @@ "Blog", 10 ] - ] + ], + "id" : "004" }, { - "id" : "005", - "name" : "005", "data" : [ [ "Perl", @@ -307,11 +324,12 @@ "Blog", 12 ] - ] + ], + "name" : "005", + "id" : "005" }, { "id" : "006", - "name" : "006", "data" : [ [ "Perl", @@ -325,11 +343,10 @@ "Blog", 7 ] - ] + ], + "name" : "006" }, { - "id" : "007", - "name" : "007", "data" : [ [ "Perl", @@ -343,11 +360,12 @@ "Blog", 10 ] - ] + ], + "name" : "007", + "id" : "007" }, { "name" : "008", - "id" : "008", "data" : [ [ "Perl", @@ -361,9 +379,11 @@ "Blog", 12 ] - ] + ], + "id" : "008" }, { + "id" : "009", "data" : [ [ "Perl", @@ -378,7 +398,6 @@ 13 ] ], - "id" : "009", "name" : "009" }, { @@ -400,6 +419,8 @@ ] }, { + "id" : "011", + "name" : "011", "data" : [ [ "Perl", @@ -413,13 +434,10 @@ "Blog", 10 ] - ], - "name" : "011", - "id" : "011" + ] }, { "name" : "012", - "id" : "012", "data" : [ [ "Perl", @@ -433,9 +451,11 @@ "Blog", 11 ] - ] + ], + "id" : "012" }, { + "name" : "013", "data" : [ [ "Perl", @@ -450,10 +470,10 @@ 13 ] ], - "name" : "013", "id" : "013" }, { + "name" : "014", "data" : [ [ "Perl", @@ -468,12 +488,9 @@ 15 ] ], - "id" : "014", - "name" : "014" + "id" : "014" }, { - "name" : "015", - "id" : "015", "data" : [ [ "Perl", @@ -487,9 +504,12 @@ "Blog", 15 ] - ] + ], + "name" : "015", + "id" : "015" }, { + "id" : "016", "data" : [ [ "Perl", @@ -504,12 +524,11 @@ 12 ] ], - "name" : "016", - "id" : "016" + "name" : "016" }, { - "name" : "017", "id" : "017", + "name" : "017", "data" : [ [ "Perl", @@ -544,8 +563,8 @@ "id" : "018" }, { - "name" : "019", "id" : "019", + "name" : "019", "data" : [ [ "Perl", @@ -562,8 +581,6 @@ ] }, { - "id" : "020", - "name" : "020", "data" : [ [ "Perl", @@ -577,11 +594,13 @@ "Blog", 13 ] - ] + ], + "name" : "020", + "id" : "020" }, { - "name" : "021", "id" : "021", + "name" : "021", "data" : [ [ "Perl", @@ -599,7 +618,6 @@ }, { "id" : "022", - "name" : "022", "data" : [ [ "Perl", @@ -613,11 +631,10 @@ "Blog", 10 ] - ] + ], + "name" : "022" }, { - "id" : "023", - "name" : "023", "data" : [ [ "Perl", @@ -631,10 +648,11 @@ "Blog", 12 ] - ] + ], + "name" : "023", + "id" : "023" }, { - "id" : "024", "name" : "024", "data" : [ [ @@ -649,7 +667,8 @@ "Blog", 11 ] - ] + ], + "id" : "024" }, { "data" : [ @@ -666,10 +685,11 @@ 12 ] ], - "id" : "025", - "name" : "025" + "name" : "025", + "id" : "025" }, { + "name" : "026", "data" : [ [ "Perl", @@ -684,11 +704,9 @@ 10 ] ], - "id" : "026", - "name" : "026" + "id" : "026" }, { - "id" : "027", "name" : "027", "data" : [ [ @@ -703,10 +721,10 @@ "Blog", 9 ] - ] + ], + "id" : "027" }, { - "id" : "028", "name" : "028", "data" : [ [ @@ -721,9 +739,11 @@ "Blog", 9 ] - ] + ], + "id" : "028" }, { + "name" : "029", "data" : [ [ "Perl", @@ -738,7 +758,6 @@ 12 ] ], - "name" : "029", "id" : "029" }, { @@ -760,8 +779,8 @@ ] }, { - "name" : "031", "id" : "031", + "name" : "031", "data" : [ [ "Perl", @@ -778,6 +797,7 @@ ] }, { + "name" : "032", "data" : [ [ "Perl", @@ -792,10 +812,10 @@ 10 ] ], - "id" : "032", - "name" : "032" + "id" : "032" }, { + "name" : "033", "data" : [ [ "Perl", @@ -810,10 +830,10 @@ 10 ] ], - "name" : "033", "id" : "033" }, { + "name" : "034", "data" : [ [ "Perl", @@ -828,10 +848,10 @@ 11 ] ], - "name" : "034", "id" : "034" }, { + "id" : "035", "data" : [ [ "Perl", @@ -846,12 +866,10 @@ 9 ] ], - "name" : "035", - "id" : "035" + "name" : "035" }, { "name" : "036", - "id" : "036", "data" : [ [ "Perl", @@ -865,7 +883,8 @@ "Blog", 10 ] - ] + ], + "id" : "036" }, { "id" : "037", @@ -886,6 +905,7 @@ ] }, { + "id" : "038", "data" : [ [ "Perl", @@ -900,10 +920,10 @@ 11 ] ], - "name" : "038", - "id" : "038" + "name" : "038" }, { + "name" : "039", "data" : [ [ "Perl", @@ -918,11 +938,9 @@ 12 ] ], - "name" : "039", "id" : "039" }, { - "id" : "040", "name" : "040", "data" : [ [ @@ -937,9 +955,11 @@ "Blog", 9 ] - ] + ], + "id" : "040" }, { + "id" : "041", "data" : [ [ "Perl", @@ -954,8 +974,7 @@ 6 ] ], - "name" : "041", - "id" : "041" + "name" : "041" }, { "id" : "042", @@ -963,11 +982,11 @@ "data" : [ [ "Perl", - 37 + 39 ], [ "Raku", - 26 + 28 ], [ "Blog", @@ -977,36 +996,17 @@ } ] }, - "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-01-11 22:44:56 GMT" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "chart" : { - "type" : "column" - }, - "legend" : { - "enabled" : "false" - }, "plotOptions" : { "series" : { - "borderWidth" : 0, "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - } + "format" : "{point.y}", + "enabled" : 1 + }, + "borderWidth" : 0 } }, - "title" : { - "text" : "Perl Weekly Challenge Language" - }, - "tooltip" : { - "pointFormat" : "Challenge {point.name}: {point.y:f}
", - "followPointer" : "true", - "headerFormat" : "" + "legend" : { + "enabled" : "false" }, "xAxis" : { "type" : "category" diff --git a/stats/pwc-leaders.json b/stats/pwc-leaders.json index 619e6fdf73..4a10590bad 100644 --- a/stats/pwc-leaders.json +++ b/stats/pwc-leaders.json @@ -1,295 +1,9 @@ { - "title" : { - "text" : "Perl Weekly Challenge Leaders (TOP 50)" - }, - "tooltip" : { - "headerFormat" : "", - "pointFormat" : "{point.name}: {point.y:f}
", - "followPointer" : "true" - }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - }, - "borderWidth" : 0 - } - }, - "xAxis" : { - "type" : "category" - }, - "series" : [ - { - "name" : "Perl Weekly Challenge Leaders", - "colorByPoint" : "true", - "data" : [ - { - "drilldown" : "Laurent Rosenfeld", - "y" : 522, - "name" : "#1: Laurent Rosenfeld" - }, - { - "name" : "#2: Joelle Maslak", - "y" : 334, - "drilldown" : "Joelle Maslak" - }, - { - "drilldown" : "Ruben Westerberg", - "name" : "#3: Ruben Westerberg", - "y" : 332 - }, - { - "drilldown" : "Jaldhar H. Vyas", - "y" : 326, - "name" : "#4: Jaldhar H. Vyas" - }, - { - "drilldown" : "Adam Russell", - "name" : "#5: Adam Russell", - "y" : 274 - }, - { - "drilldown" : "Arne Sommer", - "y" : 258, - "name" : "#6: Arne Sommer" - }, - { - "drilldown" : "Roger Bell West", - "name" : "#7: Roger Bell West", - "y" : 228 - }, - { - "y" : 224, - "name" : "#8: E. Choroba", - "drilldown" : "E. Choroba" - }, - { - "y" : 208, - "name" : "#9: Athanasius", - "drilldown" : "Athanasius" - }, - { - "name" : "#10: Andrezgz", - "y" : 166, - "drilldown" : "Andrezgz" - }, - { - "name" : "#11: Kian-Meng Ang", - "y" : 162, - "drilldown" : "Kian-Meng Ang" - }, - { - "name" : "#12: Simon Proctor", - "y" : 162, - "drilldown" : "Simon Proctor" - }, - { - "name" : "#13: Duncan C. White", - "y" : 144, - "drilldown" : "Duncan C. White" - }, - { - "drilldown" : "Dave Jacoby", - "y" : 136, - "name" : "#14: Dave Jacoby" - }, - { - "drilldown" : "Steven Wilson", - "name" : "#15: Steven Wilson", - "y" : 128 - }, - { - "drilldown" : "Javier Luque", - "y" : 120, - "name" : "#16: Javier Luque" - }, - { - "drilldown" : "Kevin Colyer", - "name" : "#17: Kevin Colyer", - "y" : 116 - }, - { - "drilldown" : "Ryan Thompson", - "y" : 114, - "name" : "#18: Ryan Thompson" - }, - { - "name" : "#19: Yet Ebreo", - "y" : 114, - "drilldown" : "Yet Ebreo" - }, - { - "name" : "#20: Duane Powell", - "y" : 108, - "drilldown" : "Duane Powell" - }, - { - "drilldown" : "Francis Whittle", - "name" : "#21: Francis Whittle", - "y" : 96 - }, - { - "drilldown" : "Noud Aldenhoven", - "name" : "#22: Noud Aldenhoven", - "y" : 94 - }, - { - "name" : "#23: Burkhard Nickels", - "y" : 92, - "drilldown" : "Burkhard Nickels" - }, - { - "drilldown" : "Feng Chang", - "y" : 88, - "name" : "#24: Feng Chang" - }, - { - "name" : "#25: Colin Crain", - "y" : 84, - "drilldown" : "Colin Crain" - }, - { - "name" : "#26: Lubos Kolouch", - "y" : 84, - "drilldown" : "Lubos Kolouch" - }, - { - "drilldown" : "Daniel Mantovani", - "name" : "#27: Daniel Mantovani", - "y" : 82 - }, - { - "name" : "#28: Mark Senn", - "y" : 80, - "drilldown" : "Mark Senn" - }, - { - "y" : 72, - "name" : "#29: Gustavo Chaves", - "drilldown" : "Gustavo Chaves" - }, - { - "drilldown" : "Yozen Hernandez", - "y" : 70, - "name" : "#30: Yozen Hernandez" - }, - { - "name" : "#31: Guillermo Ramos", - "y" : 64, - "drilldown" : "Guillermo Ramos" - }, - { - "drilldown" : "Ulrich Rieke", - "name" : "#32: Ulrich Rieke", - "y" : 64 - }, - { - "y" : 60, - "name" : "#33: Jo Christian Oterhals", - "drilldown" : "Jo Christian Oterhals" - }, - { - "name" : "#34: Ozzy", - "y" : 56, - "drilldown" : "Ozzy" - }, - { - "drilldown" : "Dr James A. Smith", - "y" : 52, - "name" : "#35: Dr James A. Smith" - }, - { - "drilldown" : "Randy Lauen", - "y" : 52, - "name" : "#36: Randy Lauen" - }, - { - "y" : 48, - "name" : "#37: Daniel Mita", - "drilldown" : "Daniel Mita" - }, - { - "y" : 46, - "name" : "#38: Dave Cross", - "drilldown" : "Dave Cross" - }, - { - "drilldown" : "Markus Holzer", - "name" : "#39: Markus Holzer", - "y" : 44 - }, - { - "y" : 44, - "name" : "#40: Veesh Goldman", - "drilldown" : "Veesh Goldman" - }, - { - "name" : "#41: Lars Balker", - "y" : 38, - "drilldown" : "Lars Balker" - }, - { - "name" : "#42: Kivanc Yazan", - "y" : 32, - "drilldown" : "Kivanc Yazan" - }, - { - "name" : "#43: Mark Anderson", - "y" : 32, - "drilldown" : "Mark Anderson" - }, - { - "drilldown" : "Nick Logan", - "y" : 32, - "name" : "#44: Nick Logan" - }, - { - "drilldown" : "Saif Ahmed", - "name" : "#45: Saif Ahmed", - "y" : 30 - }, - { - "drilldown" : "Pete Houston", - "name" : "#46: Pete Houston", - "y" : 28 - }, - { - "y" : 26, - "name" : "#47: Alicia Bielsa", - "drilldown" : "Alicia Bielsa" - }, - { - "drilldown" : "Walt Mankowski", - "name" : "#48: Walt Mankowski", - "y" : 26 - }, - { - "drilldown" : "Jaime Corchado", - "y" : 24, - "name" : "#49: Jaime Corchado" - }, - { - "drilldown" : "Lars Thegler", - "y" : 24, - "name" : "#50: Lars Thegler" - } - ] - } - ], "legend" : { "enabled" : "false" }, - "yAxis" : { - "title" : { - "text" : "Total Score" - } - }, - "chart" : { - "type" : "column" - }, - "subtitle" : { - "text" : "Click the columns to drilldown the score breakdown. Last updated at 2020-01-11 22:44:56 GMT" + "xAxis" : { + "type" : "category" }, "drilldown" : { "series" : [ @@ -312,6 +26,8 @@ ] }, { + "id" : "Joelle Maslak", + "name" : "Joelle Maslak", "data" : [ [ "Blog", @@ -325,9 +41,7 @@ "Raku", 81 ] - ], - "id" : "Joelle Maslak", - "name" : "Joelle Maslak" + ] }, { "data" : [ @@ -340,12 +54,10 @@ 83 ] ], - "id" : "Ruben Westerberg", - "name" : "Ruben Westerberg" + "name" : "Ruben Westerberg", + "id" : "Ruben Westerberg" }, { - "name" : "Jaldhar H. Vyas", - "id" : "Jaldhar H. Vyas", "data" : [ [ "Blog", @@ -359,11 +71,13 @@ "Raku", 70 ] - ] + ], + "name" : "Jaldhar H. Vyas", + "id" : "Jaldhar H. Vyas" }, { - "name" :