aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordrbaggy <js5@sanger.ac.uk>2021-11-18 16:38:13 +0000
committerdrbaggy <js5@sanger.ac.uk>2021-11-18 16:38:13 +0000
commita0a5e7ed6b414d31525a097cf49de8359237f3fc (patch)
tree8d86a271559b292f2f6392575e5c2725373e71b8
parentf748a7d32405d399712853441aa1c9906732bd3a (diff)
parent24273ec3ac38e5d069856336fdb86b31d3029d6e (diff)
downloadperlweeklychallenge-club-a0a5e7ed6b414d31525a097cf49de8359237f3fc.tar.gz
perlweeklychallenge-club-a0a5e7ed6b414d31525a097cf49de8359237f3fc.tar.bz2
perlweeklychallenge-club-a0a5e7ed6b414d31525a097cf49de8359237f3fc.zip
Merge remote-tracking branch 'upstream/master'
-rw-r--r--challenge-139/athanasius/perl/ch-1.pl136
-rw-r--r--challenge-139/athanasius/perl/ch-2.pl181
-rw-r--r--challenge-139/athanasius/raku/ch-1.raku121
-rw-r--r--challenge-139/athanasius/raku/ch-2.raku137
-rw-r--r--stats/pwc-current.json287
-rw-r--r--stats/pwc-language-breakdown-summary.json66
-rw-r--r--stats/pwc-language-breakdown.json1946
-rw-r--r--stats/pwc-leaders.json380
-rw-r--r--stats/pwc-summary-1-30.json96
-rw-r--r--stats/pwc-summary-121-150.json110
-rw-r--r--stats/pwc-summary-151-180.json54
-rw-r--r--stats/pwc-summary-181-210.json114
-rw-r--r--stats/pwc-summary-211-240.json108
-rw-r--r--stats/pwc-summary-241-270.json58
-rw-r--r--stats/pwc-summary-31-60.json38
-rw-r--r--stats/pwc-summary-61-90.json116
-rw-r--r--stats/pwc-summary-91-120.json52
-rw-r--r--stats/pwc-summary.json52
18 files changed, 2323 insertions, 1729 deletions
diff --git a/challenge-139/athanasius/perl/ch-1.pl b/challenge-139/athanasius/perl/ch-1.pl
new file mode 100644
index 0000000000..5ec411b460
--- /dev/null
+++ b/challenge-139/athanasius/perl/ch-1.pl
@@ -0,0 +1,136 @@
+#!perl
+
+###############################################################################
+=comment
+
+Perl Weekly Challenge 139
+=========================
+
+TASK #1
+-------
+*JortSort*
+
+Submitted by: Mohammad S Anwar
+
+You are given a list of numbers.
+
+Write a script to implement JortSort. It should return true/false depending if
+the given list of numbers are already sorted.
+
+Example 1:
+
+ Input: @n = (1,2,3,4,5)
+ Output: 1
+
+ Since the array is sorted, it prints 1.
+
+Example 2:
+
+ Input: @n = (1,3,2,4,5)
+ Output: 0
+
+ Since the array is NOT sorted, it prints 0.
+
+=cut
+###############################################################################
+
+#--------------------------------------#
+# Copyright © 2021 PerlMonk Athanasius #
+#--------------------------------------#
+
+#==============================================================================
+=comment
+
+References
+----------
+1. https://jort.technology/
+2. https://github.com/jennschiffer/jortsort
+3. Rosetta Code (https://rosettacode.org/wiki/JortSort):
+ "Note: jortSort is considered a work of satire. It achieves its result in an
+ intentionally roundabout way. You are encouraged to write your solutions in
+ the spirit of the original jortsort rather than trying to give the most
+ concise or idiomatic solution."
+
+Assumptions
+--------------
+Notwithstanding the Rosetta Code note quoted above, I consider the aim of the
+task to be the efficient (and straightforward) determination of whether a given
+list is sorted or not.
+
+Although the examples show only natural numbers, I can see no reason to exclude
+any real number from the list.
+
+From the examples, it is clear that "sorted" means "sorted in ascending
+numerical order". This still leaves open the question of how to classify a list
+containing identical adjacent elements. I have assumed that "sorted" means "in
+monotonically ascending order", so for a list such as (1, 2.5, 2.5, 3) the
+expected output will be 1.
+
+Algorithm
+---------
+The simplest approach I can think of is to compare each element F in the list
+with its predecessor E: if F < E then the list is unsorted and the search ends
+immediately. The worst case arises when the list is sorted (or when only the
+final element is out of order): then the number of comparisons required will be
+equal to the number elements in the list less one.
+
+=cut
+#==============================================================================
+
+use strict;
+use warnings;
+use Const::Fast;
+use Regexp::Common qw( number );
+
+const my $USAGE =>
+"Usage:
+ perl $0 [<n> ...]
+
+ [<n> ...] A list of numbers\n";
+
+#------------------------------------------------------------------------------
+BEGIN
+#------------------------------------------------------------------------------
+{
+ $| = 1;
+ print "\nChallenge 139, Task #1: JortSort (Perl)\n\n";
+}
+
+#==============================================================================
+MAIN:
+#==============================================================================
+{
+ my @n = parse_command_line();
+
+ printf "Input: \@n = (%s)\n", join ', ', @n;
+
+ my $sorted = 1;
+
+ for my $i (1 .. $#n)
+ {
+ if ($n[ $i ] < $n[ $i - 1 ])
+ {
+ $sorted = 0;
+ last;
+ }
+ }
+
+ print "Output: $sorted\n";
+}
+
+#------------------------------------------------------------------------------
+sub parse_command_line
+#------------------------------------------------------------------------------
+{
+ my @n = @ARGV;
+
+ for my $n (@n)
+ {
+ $n =~ / ^ $RE{num}{real} $ /x
+ or die qq[ERROR: "$n" is not a valid number\n$USAGE];
+ }
+
+ return @n;
+}
+
+###############################################################################
diff --git a/challenge-139/athanasius/perl/ch-2.pl b/challenge-139/athanasius/perl/ch-2.pl
new file mode 100644
index 0000000000..a6f05cc6ea
--- /dev/null
+++ b/challenge-139/athanasius/perl/ch-2.pl
@@ -0,0 +1,181 @@
+#!perl
+
+###############################################################################
+=comment
+
+Perl Weekly Challenge 139
+=========================
+
+TASK #2
+-------
+*Long Primes*
+
+Submitted by: Mohammad S Anwar
+
+Write a script to generate first 5 Long Primes.
+
+ A prime number (p) is called Long Prime if (1/p) has an infinite decimal
+ expansion repeating every (p-1) digits.
+
+Example
+
+ 7 is a long prime since 1/7 = 0.142857142857...
+ The repeating part (142857) size is 6 i.e. one less than the prime number 7.
+
+ Also 17 is a long prime since 1/17 = 0.05882352941176470588235294117647...
+ The repeating part (0588235294117647) size is 16 i.e. one less than the prime
+ number 17.
+
+ Another example, 2 is not a long prime as 1/2 = 0.5.
+ There is no repeating part in this case.
+
+=cut
+###############################################################################
+
+#--------------------------------------#
+# Copyright © 2021 PerlMonk Athanasius #
+#--------------------------------------#
+
+#==============================================================================
+=comment
+
+Reference
+---------
+The Online Encyclopedia of Integer Sequences: "A001913. Full reptend primes:
+primes with primitive root 10." at https://oeis.org/A001913:
+
+ 7, 17, 19, 23, 29, 47, 59, 61, 97, 109, 113, 131, 149, 167, 179, 181,
+193, 223, 229, 233, 257, 263, 269, 313, 337, 367, 379, 383, 389, 419, 433, 461,
+487, 491, 499, 503, 509, 541, 571, 577, 593, 619, 647, 659, 701, 709, 727, 743,
+811, 821, 823, 857, 863, 887, 937, 941, 953, 971, 977, 983
+
+Interface
+---------
+No command-line arguments are provided, but the script output may be altered
+by changing the constants $TARGET, $VERBOSE, and TIMER:
+ - $TARGET specifies the number of long primes to generate. (On my Core2 Duo
+ 2.16GHz machine, and with $VERBOSE set to a false value, the first 500 long
+ primes are found and displayed in under 11 seconds.)
+ - If set to a true value (the default), $VERBOSE displays each long prime
+ together with its reciprocal; the repeating digits in the reciprocal are
+ enclosed in parentheses;
+ - Set TIMER to a true value to display the time elapsed.
+
+Implementation
+--------------
+Primes are identified by the is_prime() routine from the CPAN module Math::
+Prime::Util.
+
+The non-repeating and repeating parts of a rational number's decimal expansion
+are found by the base_repeating() routine ported from the source code for
+Raku's Rational role.
+
+=cut
+#==============================================================================
+
+use strict;
+use warnings;
+use Const::Fast;
+use Math::Prime::Util qw( is_prime );
+
+use constant TIMER => 0;
+
+const my $TARGET => 5;
+const my $VERBOSE => 1;
+const my $USAGE => "Usage: perl $0\n";
+
+#------------------------------------------------------------------------------
+BEGIN
+#------------------------------------------------------------------------------
+{
+ $| = 1;
+ print "\nChallenge 139, Task #2: Long Primes (Perl)\n\n";
+}
+
+#==============================================================================
+MAIN:
+#==============================================================================
+{
+ use if TIMER, 'Time::HiRes' => qw( gettimeofday tv_interval );
+ my $t0 = [gettimeofday] if TIMER;
+
+ my $args = scalar @ARGV;
+ $args == 0
+ or die "ERROR: Expected 0 command line arguments, found $args\n$USAGE";
+
+ print "The first $TARGET long primes:";
+
+ for (my ($n, $first, $count) = (2, 1, 0); $count < $TARGET; ++$n)
+ {
+ if (is_prime( $n ))
+ {
+ my ($non_rep, $repeating) = base_repeating( $n );
+
+ if (length $repeating == $n - 1)
+ {
+ if ($VERBOSE)
+ {
+ printf "%s %2d because 1/%2d = %s(%s)\n",
+ ($first ? "\n\n" : ''), $n, $n, $non_rep, $repeating;
+ }
+ else
+ {
+ printf "%s%d", ($first ? ' ' : ', '), $n;
+ }
+
+ $first = 0;
+ ++$count;
+ }
+ }
+ }
+
+ print "\n" unless $VERBOSE;
+ print "\n", tv_interval($t0), " seconds\n" if TIMER;
+}
+
+#------------------------------------------------------------------------------
+# Ported from Raku (rakudo-2021.10/src/core.c/Rational.pm6) but simplified for
+# this task as follows:
+# - the denominator is assumed to be a positive integer;
+# - the numerator is not passed in, because it is always 1;
+# - base 10 only is used because the task description specifies a *decimal*
+# expansion.
+#
+sub base_repeating
+#------------------------------------------------------------------------------
+{
+ my ($denominator) = @_; # Must be an integer >= 1
+ my @quotients = 0;
+ my $numerator = 1;
+ my (@remainders, %remainders, @cycle);
+
+ while (1)
+ {
+ push @remainders, $numerator %= $denominator;
+
+ last if $remainders{ $numerator }++ || $numerator == 0;
+
+ $numerator *= 10;
+
+ push @quotients, int( $numerator / $denominator );
+ }
+
+ if ($numerator > 0)
+ {
+ my $idx = 0;
+
+ for my $remainder (@remainders)
+ {
+ last if $remainder == $numerator;
+ ++$idx;
+ }
+
+ @cycle = splice @quotients, $idx + 1;
+ }
+
+ splice @quotients, 1, 0, '.';
+
+ return (join( '', @quotients ), join( '', @cycle ));
+}
+
+###############################################################################
diff --git a/challenge-139/athanasius/raku/ch-1.raku b/challenge-139/athanasius/raku/ch-1.raku
new file mode 100644
index 0000000000..b656503b9d
--- /dev/null
+++ b/challenge-139/athanasius/raku/ch-1.raku
@@ -0,0 +1,121 @@
+use v6d;
+
+###############################################################################
+=begin comment
+
+Perl Weekly Challenge 139
+=========================
+
+TASK #1
+-------
+*JortSort*
+
+Submitted by: Mohammad S Anwar
+
+You are given a list of numbers.
+
+Write a script to implement JortSort. It should return true/false depending if
+the given list of numbers are already sorted.
+
+Example 1:
+
+ Input: @n = (1,2,3,4,5)
+ Output: 1
+
+ Since the array is sorted, it prints 1.
+
+Example 2:
+
+ Input: @n = (1,3,2,4,5)
+ Output: 0
+
+ Since the array is NOT sorted, it prints 0.
+
+=end comment
+###############################################################################
+
+#--------------------------------------#
+# Copyright © 2021 PerlMonk Athanasius #
+#--------------------------------------#
+
+#==============================================================================
+=begin comment
+
+References
+----------
+1. https://jort.technology/
+2. https://github.com/jennschiffer/jortsort
+3. Rosetta Code (https://rosettacode.org/wiki/JortSort):
+ "Note: jortSort is considered a work of satire. It achieves its result in an
+ intentionally roundabout way. You are encouraged to write your solutions in
+ the spirit of the original jortsort rather than trying to give the most
+ concise or idiomatic solution."
+
+Assumptions
+--------------
+Notwithstanding the Rosetta Code note quoted above, I consider the aim of the
+task to be the efficient (and straightforward) determination of whether a given
+list is sorted or not.
+
+Although the examples show only natural numbers, I can see no reason to exclude
+any real number from the list.
+
+From the examples, it is clear that "sorted" means "sorted in ascending
+numerical order". This still leaves open the question of how to classify a list
+containing identical adjacent elements. I have assumed that "sorted" means "in
+monotonically ascending order", so for a list such as (1, 2.5, 2.5, 3) the
+expected output will be 1.
+
+Algorithm
+---------
+The simplest approach I can think of is to compare each element F in the list
+with its predecessor E: if F < E then the list is unsorted and the search ends
+immediately. The worst case arises when the list is sorted (or when only the
+final element is out of order): then the number of comparisons required will be
+equal to the number elements in the list less one.
+
+=end comment
+#==============================================================================
+
+#------------------------------------------------------------------------------
+BEGIN
+#------------------------------------------------------------------------------
+{
+ "\nChallenge 139, Task #1: JortSort (Raku)\n".put;
+}
+
+#==============================================================================
+sub MAIN
+(
+ *@n where { .all ~~ Real:D } #= A list of numbers
+)
+#==============================================================================
+{
+ "Input: \@n = (%s)\n".printf: @n.join: ', ';
+
+ my Bool $sorted = True;
+
+ for 1 .. @n.end -> UInt $i
+ {
+ if @n[ $i ] < @n[ $i - 1 ]
+ {
+ $sorted = False;
+ last;
+ }
+ }
+
+ "Output: %d\n".printf: $sorted ?? 1 !! 0;
+}
+
+#------------------------------------------------------------------------------
+sub USAGE()
+#------------------------------------------------------------------------------
+{
+ my Str $usage = $*USAGE;
+
+ $usage ~~ s/ ($*PROGRAM-NAME) /raku $0/;
+
+ $usage.put;
+}
+
+##############################################################################
diff --git a/challenge-139/athanasius/raku/ch-2.raku b/challenge-139/athanasius/raku/ch-2.raku
new file mode 100644
index 0000000000..5822ff1957
--- /dev/null
+++ b/challenge-139/athanasius/raku/ch-2.raku
@@ -0,0 +1,137 @@
+use v6d;
+
+###############################################################################
+=begin comment
+
+Perl Weekly Challenge 139
+=========================
+
+TASK #2
+-------
+*Long Primes*
+
+Submitted by: Mohammad S Anwar
+
+Write a script to generate first 5 Long Primes.
+
+ A prime number (p) is called Long Prime if (1/p) has an infinite decimal
+ expansion repeating every (p-1) digits.
+
+Example
+
+ 7 is a long prime since 1/7 = 0.142857142857...
+ The repeating part (142857) size is 6 i.e. one less than the prime number 7.
+
+ Also 17 is a long prime since 1/17 = 0.05882352941176470588235294117647...
+ The repeating part (0588235294117647) size is 16 i.e. one less than the prime
+ number 17.
+
+ Another example, 2 is not a long prime as 1/2 = 0.5.
+ There is no repeating part in this case.
+
+=end comment
+###############################################################################
+
+#--------------------------------------#
+# Copyright © 2021 PerlMonk Athanasius #
+#--------------------------------------#
+
+#==============================================================================
+=begin comment
+
+Reference
+---------
+The Online Encyclopedia of Integer Sequences: "A001913. Full reptend primes:
+primes with primitive root 10." at https://oeis.org/A001913:
+
+ 7, 17, 19, 23, 29, 47, 59, 61, 97, 109, 113, 131, 149, 167, 179, 181,
+193, 223, 229, 233, 257, 263, 269, 313, 337, 367, 379, 383, 389, 419, 433, 461,
+487, 491, 499, 503, 509, 541, 571, 577, 593, 619, 647, 659, 701, 709, 727, 743,
+811, 821, 823, 857, 863, 887, 937, 941, 953, 971, 977, 983
+
+Interface
+---------
+No command-line arguments are provided, but the script output may be altered
+by changing the constants $TARGET and $VERBOSE:
+ - $TARGET specifies the number of long primes to generate. (On my Core2 Duo
+ 2.16GHz machine, and with $VERBOSE set to a false value, the first 250 long
+ primes are found and displayed in just over 15 seconds.)
+ - If set to a true value (the default), $VERBOSE displays each long prime
+ together with its reciprocal; the repeating digits in the reciprocal are
+ enclosed in parentheses;
+ - Set $TIMER to True to display the time elapsed.
+
+Implementation
+--------------
+Primes are identified by Raku's in-built is-prime() method.
+
+The non-repeating and repeating parts of a rational number's decimal expansion
+are found by Raku's in-built base-repeating() method.
+
+=end comment
+#==============================================================================
+
+my UInt constant $TARGET = 5;
+my Bool constant $VERBOSE = True;
+my Bool constant $TIMER = False;
+
+#------------------------------------------------------------------------------
+BEGIN
+#------------------------------------------------------------------------------
+{
+ "\nChallenge 139, Task #2: Long Primes (Raku)\n".put;
+}
+
+#==============================================================================
+sub MAIN()
+#==============================================================================
+{
+ my Instant $t0 = now if $TIMER;
+
+ "The first $TARGET long primes:".print;
+
+ my Bool $first = True;
+ my UInt $n = 2;
+
+ loop (my UInt $count = 0; $count < $TARGET; ++$n)
+ {
+ if $n.is-prime
+ {
+ my Rat $reciprocal = Rat.new: 1, $n;
+ my Str ($non-rep, $repeating) = $reciprocal.base-repeating: 10;
+
+ if $repeating.chars == $n - 1
+ {
+ if $VERBOSE
+ {
+ "\n\n".print if $first;
+
+ " %2d because 1/%2d = %s\(%s)\n".printf:
+ $n, $n, $non-rep, $repeating;
+ }
+ else
+ {
+ "%s%d".printf: ($first ?? ' ' !! ', '), $n;
+ }
+
+ $first = False;
+ ++$count;
+ }
+ }
+ }
+
+ "\n".print unless $VERBOSE;
+ "\n{now - $t0} seconds".put if $TIMER;
+}
+
+#------------------------------------------------------------------------------
+sub USAGE()
+#------------------------------------------------------------------------------
+{
+ my Str $usage = $*USAGE;
+
+ $usage ~~ s/ ($*PROGRAM-NAME) /raku $0/;
+ $usage.put;
+}
+
+##############################################################################
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index 23f5dbcef9..1f86cdf1a6 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,106 +1,15 @@
{
- "subtitle" : {
- "text" : "[Champions: 17] Last updated at 2021-11-18 07:54:06 GMT"
- },
- "title" : {
- "text" : "The Weekly Challenge - 139"
- },
"legend" : {
"enabled" : 0
},
- "series" : [
- {
- "data" : [
- {
- "y" : 1,
- "drilldown" : "Andrew Shitov",
- "name" : "Andrew Shitov"
- },
- {
- "drilldown" : "Cheok-Yin Fung",
- "y" : 2,
- "name" : "Cheok-Yin Fung"
- },
- {
- "name" : "Cristina Heredia",
- "drilldown" : "Cristina Heredia",
- "y" : 1
- },
- {
- "drilldown" : "Dave Jacoby",
- "y" : 3,
- "name" : "Dave Jacoby"
- },
- {
- "y" : 2,
- "drilldown" : "E. Choroba",
- "name" : "E. Choroba"
- },
- {
- "name" : "James Smith",
- "y" : 3,
- "drilldown" : "James Smith"
- },
- {
- "name" : "Luca Ferrari",
- "y" : 6,
- "drilldown" : "Luca Ferrari"
- },
- {
- "y" : 2,
- "drilldown" : "Mark Anderson",
- "name" : "Mark Anderson"
- },
- {
- "y" : 2,
- "drilldown" : "Niels van Dijke",
- "name" : "Niels van Dijke"
- },
- {
- "name" : "Olivier Delouya",
- "drilldown" : "Olivier Delouya",
- "y" : 1
- },
- {
- "name" : "Paulo Custodio",
- "drilldown" : "Paulo Custodio",
- "y" : 2
- },
- {
- "y" : 2,
- "drilldown" : "Peter Campbell Smith",
- "name" : "Peter Campbell Smith"
- },
- {
- "name" : "Robert DiCicco",
- "drilldown" : "Robert DiCicco",
- "y" : 1
- },
- {
- "name" : "Roger Bell_West",
- "drilldown" : "Roger Bell_West",
- "y" : 4
- },
- {
- "y" : 1,
- "drilldown" : "Steven Wilson",
- "name" : "Steven Wilson"
- },
- {
- "y" : 4,
- "drilldown" : "Ulrich Rieke",
- "name" : "Ulrich Rieke"
- },
- {
- "drilldown" : "W. Luis Mochan",
- "y" : 3,
- "name" : "W. Luis Mochan"
- }
- ],
- "colorByPoint" : 1,
- "name" : "The Weekly Challenge - 139"
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
}
- ],
+ },
+ "chart" : {
+ "type" : "column"
+ },
"drilldown" : {
"series" : [
{
@@ -114,6 +23,20 @@
]
},
{
+ "id" : "Athanasius",
+ "name" : "Athanasius",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Raku",
+ 2
+ ]
+ ]
+ },
+ {
"data" : [
[
"Perl",
@@ -124,14 +47,14 @@
"id" : "Cheok-Yin Fung"
},
{
+ "id" : "Cristina Heredia",
+ "name" : "Cristina Heredia",
"data" : [
[
"Perl",
1
]
- ],
- "id" : "Cristina Heredia",
- "name" : "Cristina Heredia"
+ ]
},
{
"name" : "Dave Jacoby",
@@ -148,14 +71,14 @@
]
},
{
+ "id" : "E. Choroba",
+ "name" : "E. Choroba",
"data" : [
[
"Perl",
2
]
- ],
- "name" : "E. Choroba",
- "id" : "E. Choroba"
+ ]
},
{
"data" : [
@@ -168,8 +91,8 @@
1
]
],
- "id" : "James Smith",
- "name" : "James Smith"
+ "name" : "James Smith",
+ "id" : "James Smith"
},
{
"data" : [
@@ -182,8 +105,8 @@
4
]
],
- "name" : "Luca Ferrari",
- "id" : "Luca Ferrari"
+ "id" : "Luca Ferrari",
+ "name" : "Luca Ferrari"
},
{
"data" : [
@@ -192,12 +115,12 @@
2
]
],
- "name" : "Mark Anderson",
- "id" : "Mark Anderson"
+ "id" : "Mark Anderson",
+ "name" : "Mark Anderson"
},
{
- "name" : "Niels van Dijke",
"id" : "Niels van Dijke",
+ "name" : "Niels van Dijke",
"data" : [
[
"Perl",
@@ -222,18 +145,18 @@
2
]
],
- "id" : "Paulo Custodio",
- "name" : "Paulo Custodio"
+ "name" : "Paulo Custodio",
+ "id" : "Paulo Custodio"
},
{
+ "id" : "Peter Campbell Smith",
+ "name" : "Peter Campbell Smith",
"data" : [
[
"Perl",
2
]
- ],
- "name" : "Peter Campbell Smith",
- "id" : "Peter Campbell Smith"
+ ]
},
{
"id" : "Robert DiCicco",
@@ -260,16 +183,18 @@
]
},
{
+ "name" : "Steven Wilson",
+ "id" : "Steven Wilson",
"data" : [
[
"Perl",
1
]
- ],
- "id" : "Steven Wilson",
- "name" : "Steven Wilson"
+ ]
},
{
+ "id" : "Ulrich Rieke",
+ "name" : "Ulrich Rieke",
"data" : [
[
"Perl",
@@ -279,9 +204,7 @@
"Raku",
2
]
- ],
- "id" : "Ulrich Rieke",
- "name" : "Ulrich Rieke"
+ ]
},
{
"data" : [
@@ -299,18 +222,117 @@
}
]
},
- "chart" : {
- "type" : "column"
+ "title" : {
+ "text" : "The Weekly Challenge - 139"
},
- "tooltip" : {
- "followPointer" : 1,
- "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>",
- "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>"
+ "xAxis" : {
+ "type" : "category"
},
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
+ "series" : [
+ {
+ "data" : [
+ {
+ "name" : "Andrew Shitov",
+ "y" : 1,
+ "drilldown" : "Andrew Shitov"
+ },
+ {
+ "name" : "Athanasius",
+ "y" : 4,
+ "drilldown" : "Athanasius"
+ },
+ {
+ "drilldown" : "Cheok-Yin Fung",
+ "y" : 2,
+ "name" : "Cheok-Yin Fung"
+ },
+ {
+ "drilldown" : "Cristina Heredia",
+ "y" : 1,
+ "name" : "Cristina Heredia"
+ },
+ {
+ "name" : "Dave Jacoby",
+ "y" : 3,
+ "drilldown" : "Dave Jacoby"
+ },
+ {
+ "y" : 2,
+ "drilldown" : "E. Choroba",
+ "name" : "E. Choroba"
+ },
+ {
+ "drilldown" : "James Smith",
+ "y" : 3,
+ "name" : "James Smith"
+ },
+ {
+ "name" : "Luca Ferrari",
+ "drilldown" : "Luca Ferrari",
+ "y" : 6
+ },
+ {
+ "name" : "Mark Anderson",
+ "drilldown" : "Mark Anderson",
+ "y" : 2
+ },
+ {
+ "name" : "Niels van Dijke",
+ "drilldown" : "Niels van Dijke",
+ "y" : 2
+ },
+ {
+ "name" : "Olivier Delouya",
+ "y" : 1,
+ "drilldown" : "Olivier Delouya"
+ },
+ {
+ "y" : 2,
+ "drilldown" : "Paulo Custodio",
+ "name" : "Paulo Custodio"
+ },
+ {
+ "drilldown" : "Peter Campbell Smith",
+ "y" : 2,
+ "name" : "Peter Campbell Smith"
+ },
+ {
+ "name" : "Robert DiCicco",
+ "drilldown" : "Robert DiCicco",
+ "y" : 1
+ },
+ {
+ "y" : 4,
+ "drilldown" : "Roger Bell_West",
+ "name" : "Roger Bell_West"
+ },
+ {
+ "name" : "Steven Wilson",
+ "drilldown" : "Steven Wilson",
+ "y" : 1
+ },
+ {
+ "name" : "Ulrich Rieke",
+ "y" : 4,
+ "drilldown" : "Ulrich Rieke"
+ },
+ {
+ "drilldown" : "W. Luis Mochan",
+ "y" : 3,
+ "name" : "W. Luis Mochan"
+ }
+ ],
+ "name" : "The Weekly Challenge - 139",
+ "