diff options
| -rw-r--r-- | challenge-089/colin-crain/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-089/colin-crain/perl/ch-1.pl | 84 | ||||
| -rw-r--r-- | challenge-089/colin-crain/perl/ch-2.pl | 213 | ||||
| -rw-r--r-- | challenge-089/colin-crain/raku/ch-1.raku | 20 | ||||
| -rw-r--r-- | stats/pwc-current.json | 599 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 66 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 1328 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 414 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 118 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 82 | ||||
| -rw-r--r-- | stats/pwc-summary-151-180.json | 48 | ||||
| -rw-r--r-- | stats/pwc-summary-181-210.json | 82 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 52 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 44 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 126 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 480 |
16 files changed, 2049 insertions, 1708 deletions
diff --git a/challenge-089/colin-crain/blog.txt b/challenge-089/colin-crain/blog.txt new file mode 100644 index 0000000000..e1c97c61bb --- /dev/null +++ b/challenge-089/colin-crain/blog.txt @@ -0,0 +1 @@ +https://colincrain.com/2020/12/06/the-greatest-common-magick-trick/ diff --git a/challenge-089/colin-crain/perl/ch-1.pl b/challenge-089/colin-crain/perl/ch-1.pl new file mode 100644 index 0000000000..f2ca9300dd --- /dev/null +++ b/challenge-089/colin-crain/perl/ch-1.pl @@ -0,0 +1,84 @@ +#! /opt/local/bin/perl5.26
+#
+# gcd_sum.pl
+#
+# TASK #1 › GCD Sum
+# Submitted by: Mohammad S Anwar
+# You are given a positive integer $N.
+#
+# Write a script to sum GCD of all possible unique pairs between 1 and $N.
+#
+# Example 1:
+# Input: 3
+# Output: 3
+#
+# gcd(1,2) + gcd(1,3) + gcd(2,3)
+# Example 2:
+# Input: 4
+# Output: 7
+#
+# gcd(1,2) + gcd(1,3) + gcd(1,4) + gcd(2,3) + gcd(2,4) + gcd(3,4)
+
+# method:
+# Nothing too complicated here -- we have two parts to this somewhat
+# mashed together task. In the first step we need to assmble a list
+# of paired values from the range 1 to out input value. If we take
+# the second value as incrementally larger than the first, then the
+# resulting pairs will not repeat and be unique.
+
+# For this we will compose our own pairs() function, with two loops
+# to produce an array of arrays.
+
+# In the second part of the puzzle, each unique pair is taken as
+# values for a greatest common divisor function, and the sum of the
+# return values for the list of combinations is output.
+
+# We'll use a quick implimentation Euclid's Algorithm to find our
+# GCDs.
+#
+# validation: checked against A178881
+# "Sum of all pairs of greater common divisors for (i,j) where i<j. "
+#
+# 2020 colin crain
+## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
+
+
+
+use warnings;
+use strict;
+use feature ":5.26";
+
+## ## ## ## ## MAIN:
+
+my $input = shift @ARGV // 4100;
+
+my $sum = 0 ;
+$sum += gcd($_->@*) for pairs($input)->@*;
+
+say "input $input";
+say "sum $sum";
+
+## ## ## ## ## SUBS:
+
+sub gcd {
+## Euclid's algorithm
+ my ($m, $n) = @_;
+ while ( $n != 0 ) {
+ $n > $m and ($m, $n) = ($n, $m);
+ my $r = $m - $n * ( int ($m/$n));
+ return $n if $r == 0;
+ ($m, $n) = ($n, $r);
+ }
+}
+
+sub pairs {
+## unique pairs among values 1 and $max
+ my ($max) = @_;
+ my @out;
+ for my $m ( 1..$max-1 ) {
+ for my $n ( $m+1..$max ) {
+ push @out, [$m, $n];
+ }
+ }
+ return \@out;
+}
diff --git a/challenge-089/colin-crain/perl/ch-2.pl b/challenge-089/colin-crain/perl/ch-2.pl new file mode 100644 index 0000000000..a50f1b0849 --- /dev/null +++ b/challenge-089/colin-crain/perl/ch-2.pl @@ -0,0 +1,213 @@ +#! /opt/local/bin/perl
+#
+# magic_square.pl
+#
+# TASK #2 › Magical Matrix
+#
+# Submitted by: Mohammad S Anwar
+# Write a script to display matrix as below with numbers 1 - 9. Please
+# make sure numbers are used once.
+#
+# [ a b c ]
+# [ d e f ]
+# [ g h i ]
+#
+# So that it satisfies the following:
+#
+# a + b + c = 15
+# d + e + f = 15
+# g + h + i = 15
+# a + d + g = 15
+# b + e + h = 15
+# c + f + i = 15
+# a + e + i = 15
+# c + e + g = 15
+#
+#
+# method:
+# Never much considered this particular age-old math problem before.
+# Not for any particular reason mind you, and I've spent countless
+# hours over the years on math puzzles.
+#
+# One thing straight off the bat is the similarities to the sudoku
+# puzzle a few weeks back. I mean, obviously. So the basic mechanics
+# of guessing a cell seem a reasonable way to start:
+# using that data to constrain the possible
+# values of the remaining cells, then picking from available choices
+# for the next cell, continuing until either a contradiction is
+# reached or the last cell is filled.
+
+# Studying the square, it's apparent that not every cell is equal
+# per se. The center, for instance, is part of two orthogonal
+# and two diagonal lines, for a total of 4. The corners, on the
+# other hand, are contained within two orthogonals and only one
+# diagonal, for three lines, and the edges only affect two. So it
+# stands to reason that if we are going to take a constraining tree
+# appraoch then we should progress from the center, to the corners,
+# and then the edges, so our earlier choices have maximum effect.
+#
+# Another consideration is the sum of each line. Once any two
+# numbers have been placed, the third is determined by the other two
+# and the required total.
+#
+# Combining these two facts, any possible configuration can be
+# evaluated for magic behavior after choosing only three values: the
+# center, any corner, and either adjacent corner to that picked. The
+# center does not determine any cell configuration on its own, but
+# does constrain all 8 remaining cells surrounding it. The next, a
+# corner (they are all equivalent so it does not matter which we
+# pick) can be any value that is neither the center value nor a
+# value that would require its complement across the line to be a
+# number out-of-bounds. For example, with a center of 1, the top
+# left cannot be 2 because the lower right would need to be 12 to
+# sum to 15, which is not allowed. In this case the top left would
+# need to be a value of 5 or more.
+#
+# Once one corner is chosen, this act will determine its opposing
+# corner. The final choice, of either adjacent corner, is any value
+# not already determined, nor, like the corner before, a number that
+# would require its opposite to be disallowed.
+#
+# With the placement of the second corner all remaining edges are
+# constrained to be the difference between the target value and the
+# sum of the two placed cells. Once calculated, there will either be
+# a contradiction found or the result will be determined to be a
+# magic square. The contradictions will be either to require a value no
+# longer available, or invalid across the relevant center orthogonal.
+
+# ---
+
+# using this method, it didn't take me long at all to make the following
+# square in my head, on the third try:
+#
+# 4 3 8
+# 9 5 1
+# 2 7 6
+#
+# so that's nice. We know it's sound.
+
+
+# 2020 colin crain
+## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
+
+
+use warnings;
+use strict;
+use feature ":5.26";
+
+## ## ## ## ## MAIN:
+
+
+our $target = 15;
+my @output;
+my %numbers = map { $_, undef } (1..9);
+
+## place center value
+for my $center (keys %numbers) {
+ ## start possible solution with center placed
+ ## and removed from remaining number list
+ my @sol_center;
+ $sol_center[4] = $center;
+ my %nums_center = %numbers;
+ delete $nums_center{$center};
+
+ ## place top left value
+ for my $left (keys %nums_center) {
+ ## new copy within loop
+ ## for solution and remaining number list
+ my @sol_left = @sol_center;
+ my %nums_left = %nums_center;
+
+ next unless add_left($left, \@sol_left, \%nums_left);
+
+ ## place top right value
+ ## from this is can be determined whether the square can be comleted
+ for my $right (keys %nums_left) {
+ my $solution = add_right($right, \@sol_left, \%nums_left );
+ push @output, $solution if defined $solution;
+ }
+ }
+}
+
+## reveal any squares identified
+print_square($_) for @output;
+
+
+## ## ## ## ## SUBS:
+
+sub add_left {
+## add single value to top left corner, triggering placement
+## of value into bottom right corner
+## returns 1 if successful, undef if complement outside bounds
+ my ($left, $sol, $nums) = @_;
+
+ $sol->[0] = $left;
+ delete $nums->{$left};
+
+ return undef unless fill_cell(8, 4, 0, $sol, $nums);
+ return 1;
+}
+
+sub add_right {
+## add single value to top right corner
+## this determines a list of other cells to be
+ my ($right, $sol, $nums) = @_;
+
+ ## make a copy of the data for this solution
+ my @solution = $sol->@*;
+ my %numbers = $nums->%*;
+
+ $solution[2] = $right;
+ delete %numbers{$right};
+
+ ## the remaining cells to be filled, in order
+ ## the lists are the index, and the two other cells in the line that define it
+ ## [cell index, line cell one, line cell two]
+ my @checks = ( [6,4,2],
+ [1,0,2],
+ [3,0,6],
+ [5,2,8],
+ [7,6,8] );
+
+ for my $next_cell ( @checks ) {
+ return undef unless fill_cell( $next_cell->@*, \@solution, \%numbers );
+ }
+
+ ## we really should do a check on the last remaining
+ ## two central orthogonals before returning.
+ ## knowing that the solution is unique, this isn't ever going to find anything,
+ ## but we do it for completeness
+ return undef if not check_center_lines(\@solution);
+
+ return \@solution;
+}
+
+sub fill_cell {
+## given an index and two other indices,
+## calculates the required value to sum to the target
+ my ($idx, $one, $two, $sol, $nums) = @_;
+ my $cell = $target - $sol->[$one] - $sol->[$two];
+ return undef unless exists $nums->{$cell};
+
+ $sol->[$idx] = $cell;
+ delete $nums->{$cell};
+ return 1
+}
+
+sub check_center_lines {
+## validate the two orthogonals that pass through the center
+ my ($sol) = @_;
+ for ([3,4,5], [1,4,7]) {
+ return undef if $sol->[$_->[0]] + $sol->[$_->[1]]
+ + $sol->[$_->[2]] != $target;
+ }
+ return 1;
+}
+
+sub print_square {
+ my $sq = shift;
+ say "$sq->@[0..2]";
+ say "$sq->@[3..5]";
+ say "$sq->@[6..8]";
+ say '';
+}
diff --git a/challenge-089/colin-crain/raku/ch-1.raku b/challenge-089/colin-crain/raku/ch-1.raku new file mode 100644 index 0000000000..a6724d1faf --- /dev/null +++ b/challenge-089/colin-crain/raku/ch-1.raku @@ -0,0 +1,20 @@ +#!/usr/bin/env perl6
+#
+#
+# .raku
+#
+#
+#
+# 2020 colin crain
+## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
+
+
+
+unit sub MAIN (Int $input where {$input > 0} = 1000) ;
+
+my $out = (1..$input).combinations(2)
+ .map({[gcd] |$_})
+ .sum;
+
+say "input $input";
+say "sum $out";
diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 2b022337ed..ce938b9082 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,6 +1,11 @@ { - "subtitle" : { - "text" : "[Champions: 37] Last updated at 2020-12-07 04:48:31 GMT" + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "title" : { + "text" : "Perl Weekly Challenge - 089" }, "xAxis" : { "type" : "category" @@ -8,15 +13,229 @@ "plotOptions" : { "series" : { "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 + "enabled" : 1, + "format" : "{point.y}" }, "borderWidth" : 0 } }, + "legend" : { + "enabled" : 0 + }, + "chart" : { + "type" : "column" + }, + "subtitle" : { + "text" : "[Champions: 38] Last updated at 2020-12-07 04:53:40 GMT" + }, + "series" : [ + { + "name" : "Perl Weekly Challenge - 089", + "colorByPoint" : 1, + "data" : [ + { + "name" : "Aaron Smith", + "drilldown" : "Aaron Smith", + "y" : 3 + }, + { + "drilldown" : "Abigail", + "y" : 4, + "name" : "Abigail" + }, + { + "name" : "Adam Russell", + "drilldown" : "Adam Russell", + "y" : 4 + }, + { + "drilldown" : "Alexander Karelas", + "y" : 2, + "name" : "Alexander Karelas" + }, + { + "y" : 2, + "drilldown" : "Alexander Pankoff", + "name" : "Alexander Pankoff" + }, + { + "y" : 2, + "drilldown" : "Andrew Shitov", + "name" : "Andrew Shitov" + }, + { + "name" : "Arne Sommer", + "drilldown" : "Arne Sommer", + "y" : 5 + }, + { + "name" : "Athanasius", + "y" : 4, + "drilldown" : "Athanasius" + }, + { + "drilldown" : "Cheok-Yin Fung", + "y" : 3, + "name" : "Cheok-Yin Fung" + }, + { + "name" : "Clifton Wood", + "y" : 2, + "drilldown" : "Clifton Wood" + }, + { + "drilldown" : "Colin Crain", + "y" : 4, + "name" : "Colin Crain" + }, + { + "y" : 3, + "drilldown" : "Dave Jacoby", + "name" : "Dave Jacoby" + }, + { + "name" : "Duncan C. White", + "y" : 2, + "drilldown" : "Duncan C. White" + }, + { + "y" : 2, + "drilldown" : "E. Choroba", + "name" : "E. Choroba" + }, + { + "drilldown" : "Feng Chang", + "y" : 2, + "name" : "Feng Chang" + }, + { + "y" : 4, + "drilldown" : "Flavio Poletti", + "name" : "Flavio Poletti" + }, + { + "drilldown" : "Jaldhar H. Vyas", + "y" : 5, + "name" : "Jaldhar H. Vyas" + }, + { + "y" : 2, + "drilldown" : "James Smith", + "name" : "James Smith" + }, + { + "y" : 2, + "drilldown" : "Jan Krnavek", + "name" : "Jan Krnavek" + }, + { + "y" : 2, + "drilldown" : "Joel Crosswhite", + "name" : "Joel Crosswhite" + }, + { + "name" : "Jorg Sommrey", + "y" : 2, + "drilldown" : "Jorg Sommrey" + }, + { + "drilldown" : "Julio de Castro", + "y" : 4, + "name" : "Julio de Castro" + }, + { + "drilldown" : "Kang-min Liu", + "y" : 4, + "name" : "Kang-min Liu" + }, + { + "drilldown" : "Laurent Rosenfeld", + "y" : 5, + "name" : "Laurent Rosenfeld" + }, + { + "y" : 2, + "drilldown" : "Lubos Kolouch", + "name" : "Lubos Kolouch" + }, + { + "drilldown" : "Mark Anderson", + "y" : 2, + "name" : "Mark Anderson" + }, + { + "y" : 2, + "drilldown" : "Miguel Prz", + "name" : "Miguel Prz" + }, + { + "name" : "Niels van Dijke", + "drilldown" : "Niels van Dijke", + "y" : 2 + }, + { + "name" : "Nuno Vieira", + "drilldown" : "Nuno Vieira", + "y" : 2 + }, + { + "drilldown" : "Philip Hood", + "y" : 2, + "name" : "Philip Hood" + }, + { + "y" : 5, + "drilldown" : "Roger Bell_West", + "name" : "Roger Bell_West" + }, + { + "drilldown" : "Simon Green", + "y" : 3, + "name" : "Simon Green" + }, + { + "name" : "Simon Proctor", + "drilldown" : "Simon Proctor", + "y" : 2 + }, + { + "name" : "Stuart Little", + "drilldown" : "Stuart Little", + "y" : 2 + }, + { + "y" : 4, + "drilldown" : "Ulrich Rieke", + "name" : "Ulrich Rieke" + }, + { + "y" : 3, + "drilldown" : "W. Luis Mochan", + "name" : "W. Luis Mochan" + }, + { + "name" : "Walt Mankowski", + "drilldown" : "Walt Mankowski", + "y" : 3 + }, + { + "name" : "Wanderdoc", + "y" : 2, + "drilldown" : "Wanderdoc" + } + ] + } + ], + "tooltip" : { + "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>", + "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>", + "followPointer" : 1 + }, "drilldown" : { "series" : [ { + "name" : "Aaron Smith", + "id" : "Aaron Smith", "data" : [ [ "Raku", @@ -26,9 +245,7 @@ "Blog", 1 ] - ], - "name" : "Aaron Smith", - "id" : "Aaron Smith" + ] }, { "data" : [ @@ -45,8 +262,6 @@ "id" : "Abigail" }, { - "id" : "Adam Russell", - "name" : "Adam Russell", "data" : [ [ "Perl", @@ -56,17 +271,19 @@ "Blog", 2 ] - ] + ], + "id" : "Adam Russell", + "name" : "Adam Russell" }, { - "name" : "Alexander Karelas", - "id" : "Alexander Karelas", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Alexander Karelas", + "id" : "Alexander Karelas" }, { "data" : [ @@ -75,12 +292,10 @@ 2 ] ], - "id" : "Alexander Pankoff", - "name" : "Alexander Pankoff" + "name" : "Alexander Pankoff", + "id" : "Alexander Pankoff" }, { - "id" : "Andrew Shitov", - "name" : "Andrew Shitov", "data" : [ [ "Perl", @@ -90,9 +305,13 @@ "Raku", 1 ] - ] + ], + "name" : "Andrew Shitov", + "id" : "Andrew Shitov" }, { + "id" : "Arne Sommer", + "name" : "Arne Sommer", "data" : [ [ "Perl", @@ -106,11 +325,11 @@ "Blog", 1 ] - ], - "name" : "Arne Sommer", - "id" : "Arne Sommer" + ] }, { + "id" : "Athanasius", + "name" : "Athanasius", "data" : [ [ "Perl", @@ -120,13 +339,11 @@ "Raku", 2 ] - ], - "id" : "Athanasius", - "name" : "Athanasius" + ] }, { - "id" : "Cheok-Yin Fung", "name" : "Cheok-Yin Fung", + "id" : "Cheok-Yin Fung", "data" : [ [ "Perl", @@ -149,38 +366,56 @@ "id" : "Clifton Wood" }, { - "name" : "Dave Jacoby", - "id" : "Dave Jacoby", + "name" : "Colin Crain", + "id" : "Colin Crain", "data" : [ [ "Perl", 2 ], [ + "Raku", + 1 + ], + [ "Blog", 1 ] ] }, { + "id" : "Dave Jacoby", + "name" : "Dave Jacoby", "data" : [ [ "Perl", 2 + ], + [ + "Blog", + 1 ] - ], - "id" : "Duncan C. White", - "name" : "Duncan C. White" + ] }, { + "id" : "Duncan C. White", + "name" : "Duncan C. White", "data" : [ [ "Perl", 2 ] - ], + ] + }, + { + "id" : "E. Choroba", "name" : "E. Choroba", - "id" : "E. Choroba" + "data" : [ + [ + "Perl", + 2 + ] + ] }, { "data" : [ @@ -193,6 +428,8 @@ "name" : "Feng Chang" }, { + "id" : "Flavio Poletti", + "name" : "Flavio Poletti", "data" : [ [ "Perl", @@ -202,11 +439,11 @@ "Blog", 2 ] - ], - "id" : "Flavio Poletti", - "name" : "Flavio Poletti" + ] }, { + "name" : "Jaldhar H. Vyas", + "id" : "Jaldhar H. Vyas", "data" : [ [ "Perl", @@ -220,29 +457,27 @@ "Blog", 1 ] - ], - "name" : "Jaldhar H. Vyas", - "id" : "Jaldhar H. Vyas" + ] }, { - "name" : "James Smith", - "id" : "James Smith", "data" : [ [ "Perl", 2 ] - ] + ], + "id" : "James Smith", + "name" : "James Smith" }, { - "id" : "Jan Krnavek", - "name" : "Jan Krnavek", "data" : [ [ "Raku", 2 ] - ] + ], + "name" : "Jan Krnavek", + "id" : "Jan Krnavek" }, { "name" : "Joel Crosswhite", @@ -261,12 +496,12 @@ 2 ] ], - "name" : "Jorg Sommrey", - "id" : "Jorg Sommrey" + "id" : "Jorg Sommrey", + "name" : "Jorg Sommrey" }, { - "id" : "Julio de Castro", "name" : "Julio de Castro", + "id" : "Julio de Castro", "data" : [ [ "Perl", @@ -279,8 +514,8 @@ ] }, { - "id" : "Kang-min Liu", "name" : "Kang-min Liu", + "id" : "Kang-min Liu", "data" : [ [ "Raku", @@ -293,6 +528,8 @@ ] }, { + "id" : "Laurent Rosenfeld", + "name" : "Laurent Rosenfeld", "data" : [ [ "Perl", @@ -306,13 +543,11 @@ "Blog", 1 ] - ], - "name" : "Laurent Rosenfeld", - "id" : "Laurent Rosenfeld" + ] }, { - "id" : "Lubos Kolouch", "name" : "Lubos Kolouch", + "id" : "Lubos Kolouch", "data" : [ [ "Perl", @@ -331,24 +566,24 @@ "id" : "Mark Anderson" }, { - "name" : "Miguel Prz", - "id" : "Miguel Prz", "data" : [ [ "Perl", 2 ] - ] + ], + "id" : "Miguel Prz", + "name" : "Miguel Prz" }, { - "name" : "Niels van Dijke", - "id" : "Niels van Dijke", "data" : [ [ "Perl", 2 ] - ] + ], + "id" : "Niels van Dijke", + "name" : "Niels van Dijke" }, { "name" : "Nuno Vieira", @@ -361,16 +596,18 @@ ] }, { + "name" : "Philip Hood", + "id" : "Philip Hood", "data" : [ [ "Raku", 2 ] - ], - "id" : "Philip Hood", - "name" : "Philip Hood" + ] }, { + "id" : "Roger Bell_West", + "name" : "Roger Bell_West", "data" : [ [ "Perl", @@ -384,11 +621,11 @@ "Blog", 1 ] - ], - "id" : "Roger Bell_West", - "name" : "Roger Bell_West" + ] }, { + "id" : "Simon Green", + "name" : "Simon Green", "data" : [ [ "Perl", @@ -398,9 +635,7 @@ "Blog", 1 ] - ], - "id" : "Simon Green", - "name" : "Simon Green" + ] }, { "data" : [ @@ -413,8 +648,8 @@ "id" : "Simon Proctor" }, { - "name" : "Stuart Little", "id" : "Stuart Little", + "name" : "Stuart Little", "data" : [ [ "Raku", @@ -433,8 +668,8 @@ 2 ] ], - "id" : "Ulrich Rieke", - "name" : "Ulrich Rieke" + "name" : "Ulrich Rieke", + "id" : "Ulrich Rieke" }, { "data" : [ @@ -447,10 +682,12 @@ 1 ] ], - "id" : "W. Luis Mochan", - "name" : "W. Luis Mochan" + "name" : "W. Luis Mochan", + "id" : "W. Luis Mochan" }, { + "id" : "Walt Mankowski", + "name" : "Walt Mankowski", "data" : [ [ "Perl", @@ -460,13 +697,11 @@ "Blog", 1 ] - ], - "name" : "Walt Mankowski", - "id" : "Walt Mankowski" + ] }, { - "name" : "Wanderdoc", "id" : "Wanderdoc", + "name" : "Wanderdoc", "data" : [ [ "Perl", @@ -475,217 +710,5 @@ ] } ] - }, - "chart" : { - "type" : "column" - }, - "series" : [ - { - "data" : [ - { - "y" : 3, - "name" : "Aaron Smith", - "drilldown" : "Aaron Smith" - }, - { - "y" : 4, - "drilldown" : "Abigail", - "name" : "Abigail" - }, - { - "drilldown" : "Adam Russell", - "name" : "Adam Russell", - "y" : 4 - }, - { - "y" : 2, - "name" : "Alexander Karelas", - "drilldown" : "Alexander Karelas" - }, - { - "name" : "Alexander Pankoff", - "drilldown" : "Alexander Pankoff", - "y" : 2 - }, - { - "drilldown" : "Andrew Shitov", - "name" : "Andrew Shitov", - "y" : 2 - }, - { - "drilldown" : "Arne Sommer", - "name" : "Arne Sommer", - "y" : 5 - }, - { - "drilldown" : "Athanasius", - "name" : "Athanasius", - "y" : 4 - }, - { - "name" : "Cheok-Yin Fung", - "drilldown" : "Cheok-Yin Fung", - "y" : 3 - }, - { - "y" : 2, |
