From 7d1248f1c265713a3bf41dfab4492e9fa24d57cb Mon Sep 17 00:00:00 2001 From: dcw Date: Mon, 9 Sep 2019 03:05:18 +0100 Subject: 3 hours too late, finished writing the indexer ch-2.pl --- challenge-024/duncan-c-white/README | 55 ++++++----- challenge-024/duncan-c-white/perl5/ch-1.sh | 11 +++ challenge-024/duncan-c-white/perl5/ch-2.pl | 115 ++++++++++++++++++++++ challenge-024/duncan-c-white/perl5/docs/times-001 | 4 + challenge-024/duncan-c-white/perl5/docs/times-002 | 7 ++ challenge-024/duncan-c-white/perl5/docs/times-003 | 4 + challenge-024/duncan-c-white/perl5/docs/times-004 | 10 ++ challenge-024/duncan-c-white/perl5/docs/times-005 | 4 + challenge-024/duncan-c-white/perl5/docs/times-006 | 6 ++ challenge-024/duncan-c-white/perl5/docs/times-007 | 7 ++ challenge-024/duncan-c-white/perl5/docs/times-008 | 6 ++ challenge-024/duncan-c-white/perl5/docs/times-009 | 8 ++ challenge-024/duncan-c-white/perl5/docs/times-010 | 11 +++ challenge-024/duncan-c-white/perl5/docs/times-011 | 6 ++ 14 files changed, 227 insertions(+), 27 deletions(-) create mode 100755 challenge-024/duncan-c-white/perl5/ch-1.sh create mode 100755 challenge-024/duncan-c-white/perl5/ch-2.pl create mode 100644 challenge-024/duncan-c-white/perl5/docs/times-001 create mode 100644 challenge-024/duncan-c-white/perl5/docs/times-002 create mode 100644 challenge-024/duncan-c-white/perl5/docs/times-003 create mode 100644 challenge-024/duncan-c-white/perl5/docs/times-004 create mode 100644 challenge-024/duncan-c-white/perl5/docs/times-005 create mode 100644 challenge-024/duncan-c-white/perl5/docs/times-006 create mode 100644 challenge-024/duncan-c-white/perl5/docs/times-007 create mode 100644 challenge-024/duncan-c-white/perl5/docs/times-008 create mode 100644 challenge-024/duncan-c-white/perl5/docs/times-009 create mode 100644 challenge-024/duncan-c-white/perl5/docs/times-010 create mode 100644 challenge-024/duncan-c-white/perl5/docs/times-011 diff --git a/challenge-024/duncan-c-white/README b/challenge-024/duncan-c-white/README index 4cd2bbfe01..926e2938aa 100644 --- a/challenge-024/duncan-c-white/README +++ b/challenge-024/duncan-c-white/README @@ -1,36 +1,37 @@ -Challenge 1: "Create a script that prints nth order forward difference -series. You should be a able to pass the list of numbers and order number -as command line parameters. Let me show you with an example: +Challenge 1: "Create a smallest script in terms of size that on +execution doesn't throw any error. The script doesn't have to do anything +special. You could even come up with smallest one-liner." -Suppose we have list (X) of numbers: 5, 9, 2, 8, 1, 6 and we would like -to create 1st order forward difference series (Y). So using the formula -Y(i) = X(i+1) - X(i), we get the following numbers: (9-5), (2-9), (8-2), -(1-8), (6-1), ie 4, -7, 6, -7, 5. -If you noticed, it has one less number than the original series. -Similarly you can generate the 2nd order forward difference series like: -(-7-4), (6+7), (-7-6), (5+7) => -11, 13, -13, 12. +My notes: Umm, if it doesn't have to do anything special, and we want it to +be tiny, does it have to do anything at all? Why not write the shortest +Perl one-liner: perl -e 1:-) -My notes: Clearly defined, very easy - let's have a go.. +Challenge 2: "Create a script to implement full text search functionality +using Inverted Index. According to wikipedia: -Challenge 2: "Create a script that prints Prime Decomposition of a -given number. The prime decomposition of a number is defined as a list -of prime numbers which when all multiplied together, are equal to that -number. For example, the Prime decomposition of 228 is 2,2,3,19 as 228 = -2 * 2 * 3 * 19." +In computer science, an inverted index (also referred to as a +postings file or inverted file) is a database index storing +a mapping from content, such as words or numbers, to its +locations in a table, or in a document or a set of documents +(named in contrast to a forward index, which maps from documents +to content). The purpose of an inverted index is to allow fast +full-text searches, at a cost of increased processing when a +document is added to the database." -My notes: So, prime factors then. Very easy again. In fact, haven't I -already solved this in one of the other prime-based questions? +My notes: One extreme to the other, an inverted index might be quite a +lot of work. Most especially, it would need an index-creator/updater +and a search-using-index tool. Also, the wikipedia article says that +some inverted indexes are: +wordindocument: word -> set of document (names or numbers), -Challenge 3: "Write a script to use Random Poems API: -https://www.poemist.com/api/v1/randompoems -This is the easiset API, I have come across so far. You don't need API -key for this. They have only route to work with (GET). The API task is -optional but we would love to see your solution." +whereas others are: -My notes: ok, even I can't argue that obtaining an API key for an API -I will literally never use again is too much hassle - when I don't need -an API key, and the whole program appears to be an LWP::Simple get.. +wordwhereindocuments: word -> set of (document, position) -update: well, apart from the Unicode in the response, complicating life. +(or perhaps set of word -> set of document -> list of position) + +Knowing the positions of each word in each document allows us to +search for several words "near to each other", so that's very useful. +But does the question want us to do that or not? Minimalism says not:-) diff --git a/challenge-024/duncan-c-white/perl5/ch-1.sh b/challenge-024/duncan-c-white/perl5/ch-1.sh new file mode 100755 index 0000000000..37c2dec647 --- /dev/null +++ b/challenge-024/duncan-c-white/perl5/ch-1.sh @@ -0,0 +1,11 @@ +#!/bin/sh - +# +# Challenge 1: "Create a smallest script in terms of size that on +# execution doesn't throw any error. The script doesn't have to do anything +# special. You could even come up with smallest one-liner." +# +# My notes: Umm, if it doesn't have to do anything special, and we want it to +# be tiny, does it have to do anything at all? Why not write the shortest +# Perl one-liner: perl -e 1:-) +# +perl -e 1 diff --git a/challenge-024/duncan-c-white/perl5/ch-2.pl b/challenge-024/duncan-c-white/perl5/ch-2.pl new file mode 100755 index 0000000000..47ea06621e --- /dev/null +++ b/challenge-024/duncan-c-white/perl5/ch-2.pl @@ -0,0 +1,115 @@ +#!/usr/bin/perl +# +# Challenge 2: "Create a script to implement full text search functionality +# using Inverted Index.. a database index storing a mapping from content, +# such as words or numbers, to its locations in a set of documents. +# The purpose of an inverted index is to allow fast full-text searches, +# at a cost of increased processing when a document is added to the database." +# +# My notes: One extreme to the other, an inverted index might be quite a +# lot of work. It needs an index-creator/updater mode, and a +# search-using-index mode. +# Let's use a dbm file to store the index, specifically: +# +# wordindocument: word -> set of document names, stored as a sorted list +# + +use v5.10; # for "say" +use strict; +use warnings; +use Function::Parameters; +use DB_File; +use Data::Dumper; + +my $usage = "Usage: ch-2.pl i[ndex] DOCUMENT[s],\n". + "or: ch-2.pl s[earch] keywords\n". + "or: ch-2.pl l[ist]\n"; +die $usage unless @ARGV > 0; + +my %index; +tie %index, 'DB_File', "index" || die "ch-2.pl: can't tie to index\n"; + +my $mode = shift @ARGV; +if( $mode =~ /^i/i ) +{ + die $usage unless @ARGV; + add( @ARGV ); +} elsif( $mode =~ /^s/i ) +{ + die $usage unless @ARGV; + my %docs = search( @ARGV ); + my $docstr = join( ',', sort keys %docs ); + print "documents containing @ARGV: $docstr\n"; +} elsif( $mode =~ /^l/i ) +{ + while( my $w = each %index ) + { + print "$w: $index{$w}\n"; + } +} else +{ + die $usage; +} +untie %index; + + +# +# addwordtoindex( $w, $filename ); +# Word $w occurs in file $filename, add this to the index. +# +fun addwordtoindex( $w, $filename ) +{ + my $docset = $index{$w} // ""; + my %s = map { $_ => 1 } split( /,/, $docset ); + $s{$filename}++; + $index{$w} = join(',', sort keys %s); +} + + +# +# add( @filenames ); +# Add each document named in @filename to the index. +# +fun add( @filename ) +{ + foreach my $file (@filename) + { + open( my $infh, '<', $file ) || next; + my %set; # words in this file + while( <$infh> ) + { + chomp; + my @wd = split( /\s+/ ); + foreach my $w (@wd) + { + $w =~ s/[\.,;:!?"'({\[]+$//; + next if $set{$w}++; + addwordtoindex( $w, $file ); + } + } + close( $infh ); + } +} + +# +# my %docs = search( @word ); +# Search for documents containing all the words in @word. +# using set intersection.. return a document set. +# +fun search( @word ) +{ + @word = grep { defined $index{$_} } @word; + my $w = shift @word; + my %docset = map { $_ => 1 } split(/,/, $index{$w}); + print "$w in $index{$w}\n"; + foreach my $w (@word) + { + my %set2 = map { $_ => 1 } split(/,/, $index{$w}); + print "$w in $index{$w}\n"; + foreach my $w (keys %docset) + { + delete $docset{$w} unless $set2{$w}; + } + } + return %docset; +} diff --git a/challenge-024/duncan-c-white/perl5/docs/times-001 b/challenge-024/duncan-c-white/perl5/docs/times-001 new file mode 100644 index 0000000000..722d22229a --- /dev/null +++ b/challenge-024/duncan-c-white/perl5/docs/times-001 @@ -0,0 +1,4 @@ +What do I mean about honesty and logic? The frontrunner in the race +for Downing Street offered a masterclass in his lack of it during the +referendum: "My policy on cake is pro having it and pro eating it." +Boris: You can't. diff --git a/challenge-024/duncan-c-white/perl5/docs/times-002 b/challenge-024/duncan-c-white/perl5/docs/times-002 new file mode 100644 index 0000000000..75366081a0 --- /dev/null +++ b/challenge-024/duncan-c-white/perl5/docs/times-002 @@ -0,0 +1,7 @@ +The Archangel Gabriel couldn't have delivered Mrs May's famous +"Brexit that works for everyone" promise. It will become fashionable +in columns like these to identify things she could have done to get +her deal through, and the time (always yesterday) when she could have +done them. And I can believe that with Mr Gove's persuasiveness or Mr +Johnson's amiable bombast, a different prime minister might just have +pushed something like her deal over the line. diff --git a/challenge-024/duncan-c-white/perl5/docs/times-003 b/challenge-024/duncan-c-white/perl5/docs/times-003 new file mode 100644 index 0000000000..8dffb9be2a --- /dev/null +++ b/challenge-024/duncan-c-white/perl5/docs/times-003 @@ -0,0 +1,4 @@ +But - have we all forgotten? - her deal is for the 22-month transition +period, not for Britain's final status outside the EU. So we'd now +be in that transition period, still tearing ourselves apart, for it's +really only about the final status that Brexiteers and Remainers disagree. diff --git a/challenge-024/duncan-c-white/perl5/docs/times-004 b/challenge-024/duncan-c-white/perl5/docs/times-004 new file mode 100644 index 0000000000..1d8b2a5356 --- /dev/null +++ b/challenge-024/duncan-c-white/perl5/docs/times-004 @@ -0,0 +1,10 @@ +And so to the logic. It's possible to believe (as I don't) that Brexit +could lead us to glory: but only after a "clean" exit from the EU +and the ties that come with membership. And it's possible to believe +(as I do) that we are wiser to remain. But to believe we could benefit +from being half-in, half-out defies logic. The ties of membership, +or half-membership, are what real Leavers believe hold us back. Real +Remainers, meanwhile, share their horror at subjecting ourselves to +rules we've lost the right to shape. The illogic of compromise that +delivers the worst of both worlds would defeat Gabriel, defeated Mrs May, +and will defeat whoever succeeds her. diff --git a/challenge-024/duncan-c-white/perl5/docs/times-005 b/challenge-024/duncan-c-white/perl5/docs/times-005 new file mode 100644 index 0000000000..a8202dd0c2 --- /dev/null +++ b/challenge-024/duncan-c-white/perl5/docs/times-005 @@ -0,0 +1,4 @@ +And so to honesty. Somebody has to square with the British people. She +never would. It is about Remain or Leave. We loop back to 2016, but this +time with a much clearer grasp of what "Leave" means. Isn't the +Gordian knot cut by putting the question again? diff --git a/challenge-024/duncan-c-white/perl5/docs/times-006 b/challenge-024/duncan-c-white/perl5/docs/times-006 new file mode 100644 index 0000000000..84e60d366b --- /dev/null +++ b/challenge-024/duncan-c-white/perl5/docs/times-006 @@ -0,0 +1,6 @@ +And here, I don't mean to queer Mr Johnson's pitch by putting the wind +up his Brexiteer supporters, but must mention one faint hope: a reason +for hoping a Johnson premiership would not end in calamity. My Times +colleague Rachel Sylvester discussed it in these pages on Tuesday. Mr +Johnson might be capable of ratting on his promise to take us out of +the EU - and getting away with it. diff --git a/challenge-024/duncan-c-white/perl5/docs/times-007 b/challenge-024/duncan-c-white/perl5/docs/times-007 new file mode 100644 index 0000000000..6aff7a66c7 --- /dev/null +++ b/challenge-024/duncan-c-white/perl5/docs/times-007 @@ -0,0 +1,7 @@ +The arguments against his suitability are too many for a comprehensive +list. Casual disregard for the truth; reckless caprice; lazy disregard for +detail; weak negotiating skills (as Whitehall knows); moral turpitude +which perhaps we should overlook in politics but which has been so +destructive of others' lives that I cannot forget it; and his failure +as foreign secretary to achieve anything but an extension of his notoriety +beyond our own shores. diff --git a/challenge-024/duncan-c-white/perl5/docs/times-008 b/challenge-024/duncan-c-white/perl5/docs/times-008 new file mode 100644 index 0000000000..47e3a38702 --- /dev/null +++ b/challenge-024/duncan-c-white/perl5/docs/times-008 @@ -0,0 +1,6 @@ +The man's a rascal. But like many rascals he's capable of a big +decision. It's possible to imagine him telling the country that this +Brexit business has got into such a poisonous muddle that we need to rip +it up and start again: to revoke Article 50, or refer back to the people, +or both. He might escape with his life. A Hunt, a Gove, a Hancock or a +Javid wouldn't. diff --git a/challenge-024/duncan-c-white/perl5/docs/times-009 b/challenge-024/duncan-c-white/perl5/docs/times-009 new file mode 100644 index 0000000000..e1aa54a521 --- /dev/null +++ b/challenge-024/duncan-c-white/perl5/docs/times-009 @@ -0,0 +1,8 @@ +Be clear: whoever takes over will soon enough need to be very, very +bold, one way or the other. Would-be Tory leaders will shortly be wooing +supporters with a promise to "go back to Brussels" for a better deal, +threatening no-deal Brexit if they don't. Whoever wins will then have +to try. They'll return empty-handed. What then? Here's Mr Johnson, +speaking in Switzerland today: "We will leave the EU on October 31, +deal or no deal ... The way to get a good deal is to prepare for a no +deal. To get things done you need to be prepared to walk away." diff --git a/challenge-024/duncan-c-white/perl5/docs/times-010 b/challenge-024/duncan-c-white/perl5/docs/times-010 new file mode 100644 index 0000000000..6baa07a886 --- /dev/null +++ b/challenge-024/duncan-c-white/perl5/docs/times-010 @@ -0,0 +1,11 @@ +This week the Institute for Government published an important report, +suggesting that a PM intent on a no-deal Brexit could thwart parliament by +a lightning decision to do it without MPs' say-so. Be warned, would-be +prime ministers: this would be nuclear, a coup against representative +democracy and a breach of our unwritten constitution. This way, infamy +lies. Gangrene would follow such an amputation. Don't even think +about it. + +That leaves a referendum, a revocation, a general election, or all +three. Theresa May's departing tears are unlikely to be the last shed +at Downing Street's door. diff --git a/challenge-024/duncan-c-white/perl5/docs/times-011 b/challenge-024/duncan-c-white/perl5/docs/times-011 new file mode 100644 index 0000000000..0103b56f15 --- /dev/null +++ b/challenge-024/duncan-c-white/perl5/docs/times-011 @@ -0,0 +1,6 @@ +Boris Johnson is enough of a rascal to rat on Brexit + +Matthew Parris + +The frontrunner for No 10 might be the only candidate who'd get away +with ripping up Article 50 and starting again. -- cgit From 2ff8e5da9e902fdbd166126d102ed82925297b29 Mon Sep 17 00:00:00 2001 From: Duane Powell Date: Mon, 16 Sep 2019 14:08:25 -0500 Subject: Commit solutions for perl weekly challenge 026 --- challenge-026/duane-powell/perl5/ch-1.pl | 1 + challenge-026/duane-powell/perl5/ch-2.pl | 1 + 2 files changed, 2 insertions(+) diff --git a/challenge-026/duane-powell/perl5/ch-1.pl b/challenge-026/duane-powell/perl5/ch-1.pl index 4a088bcb18..31ff47f746 100755 --- a/challenge-026/duane-powell/perl5/ch-1.pl +++ b/challenge-026/duane-powell/perl5/ch-1.pl @@ -18,6 +18,7 @@ print "$count\n"; __END__ + ./ch-1.pl 8 diff --git a/challenge-026/duane-powell/perl5/ch-2.pl b/challenge-026/duane-powell/perl5/ch-2.pl index 3121a97d2f..f5a76b36a8 100755 --- a/challenge-026/duane-powell/perl5/ch-2.pl +++ b/challenge-026/duane-powell/perl5/ch-2.pl @@ -20,6 +20,7 @@ print "The mean of angles ", join(',',@angles), " is $angle_mean\n"; __END__ + /ch-2.pl 10 20 30 The mean of angles 10,20,30 is 20 -- cgit From b54130ab5cd72084e4ef6c7ae67acef4e4345edf Mon Sep 17 00:00:00 2001 From: andrezgz Date: Tue, 17 Sep 2019 08:19:28 -0300 Subject: challenge-026 andrezgz solution --- challenge-026/andrezgz/perl5/ch-1.pl | 23 +++++++++++++++++++++++ challenge-026/andrezgz/perl5/ch-1.sh | 10 ++++++++++ challenge-026/andrezgz/perl5/ch-2.pl | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 challenge-026/andrezgz/perl5/ch-1.pl create mode 100644 challenge-026/andrezgz/perl5/ch-1.sh create mode 100644 challenge-026/andrezgz/perl5/ch-2.pl diff --git a/challenge-026/andrezgz/perl5/ch-1.pl b/challenge-026/andrezgz/perl5/ch-1.pl new file mode 100644 index 0000000000..e2bdf04779 --- /dev/null +++ b/challenge-026/andrezgz/perl5/ch-1.pl @@ -0,0 +1,23 @@ +#!/usr/bin/perl + +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-026/ +# Task #1 +# Create a script that accepts two strings, let us call it, +# "stones" and "jewels". It should print the count of "alphabet" +# from the string "stones" found in the string "jewels". +# For example, if your stones is "chancellor" and "jewels" is "chocolate", +# then the script should print "8". To keep it simple, +# only A-Z,a-z characters are acceptable. +# Also make the comparison case sensitive. + +use strict; +use warnings; + +die "Usage: $0 word1 word2" unless @ARGV == 2; +my ($w1, $w2) = @ARGV; + +print scalar # print the number + grep { + $_ =~ /[A-Za-z]/ # of alphabethic case insensitive characters + && index($w2, $_) != -1 # that exist on the second word + } split //, $w1; # from each one of the first word diff --git a/challenge-026/andrezgz/perl5/ch-1.sh b/challenge-026/andrezgz/perl5/ch-1.sh new file mode 100644 index 0000000000..faf638c62f --- /dev/null +++ b/challenge-026/andrezgz/perl5/ch-1.sh @@ -0,0 +1,10 @@ +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-026/ +# Task #1 +# Create a script that accepts two strings, let us call it, +# "stones" and "jewels". It should print the count of "alphabet" +# from the string "stones" found in the string "jewels". +# For example, if your stones is "chancellor" and "jewels" is "chocolate", +# then the script should print "8". To keep it simple, +# only A-Z,a-z characters are acceptable. +# Also make the comparison case sensitive. +perl -e 'print scalar grep {$_ =~ /[A-Za-z]/ && index($ARGV[1], $_) != -1} split //, $ARGV[0];' $1 $2 diff --git a/challenge-026/andrezgz/perl5/ch-2.pl b/challenge-026/andrezgz/perl5/ch-2.pl new file mode 100644 index 0000000000..389d631e2a --- /dev/null +++ b/challenge-026/andrezgz/perl5/ch-2.pl @@ -0,0 +1,35 @@ +#!/usr/bin/perl + +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-026/ +# Task #2 +# Create a script that prints mean angles of the given list of angles in degrees. +# Please read wiki page that explains the formula in details with an example. +# https://en.wikipedia.org/wiki/Mean_of_circular_quantities + +use strict; +use warnings; +use Math::Trig qw/rad2deg deg2rad/; + +die "Usage: $0 angle-deg [angle-deg..]" if @ARGV < 1; +die "Angles should be numbers (in degrees)" if grep { $_ !~ /\d+/ } @ARGV; +my @angles = map {deg2rad $_} @ARGV; + +my ($sin_sum,$cos_sum) = (0,0); +foreach my $angle (@angles) { + $sin_sum += sin $angle; + $cos_sum += cos $angle; +} + +if (abs $cos_sum < 1e-10 ) { + print 'Mean angle: ? (Cosine sum is zero)'; + exit 0; +} + +#Scaling does not matter for atan2, no need to calculate sin and cos means +my $angles_mean = rad2deg atan2 $sin_sum, $cos_sum; + +if ($cos_sum < 0 ) {$angles_mean +=180} +elsif ($sin_sum < 0 ) {$angles_mean +=360} + +$angles_mean -= 360 if $angles_mean > 180; #analogous angle +print 'Mean angle: '.$angles_mean; -- cgit From ab98ce23a507882351339483b3215e75d46c50f4 Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Tue, 17 Sep 2019 12:26:29 +0100 Subject: - Added solutions by Andrezgz. --- challenge-025/lars-balker/perl5/ch-1.pl | 41 ++ stats/pwc-challenge-001.json | 758 ++++++++++++------------- stats/pwc-challenge-002.json | 634 ++++++++++----------- stats/pwc-challenge-003.json | 234 ++++---- stats/pwc-challenge-004.json | 470 ++++++++-------- stats/pwc-challenge-005.json | 380 ++++++------- stats/pwc-challenge-006.json | 214 +++---- stats/pwc-challenge-007.json | 202 +++---- stats/pwc-challenge-008.json | 210 +++---- stats/pwc-challenge-009.json | 400 +++++++------- stats/pwc-challenge-010.json | 240 ++++---- stats/pwc-challenge-011.json | 420 +++++++------- stats/pwc-challenge-012.json | 464 ++++++++-------- stats/pwc-challenge-013.json | 414 +++++++------- stats/pwc-challenge-014.json | 484 ++++++++-------- stats/pwc-challenge-015.json | 496 ++++++++--------- stats/pwc-challenge-016.json | 436 +++++++-------- stats/pwc-challenge-017.json | 226 ++++---- stats/pwc-challenge-018.json | 216 ++++---- stats/pwc-challenge-019.json | 496 ++++++++--------- stats/pwc-challenge-020.json | 546 +++++++++--------- stats/pwc-challenge-021.json | 226 ++++---- stats/pwc-challenge-022.json | 356 ++++++------ stats/pwc-challenge-023.json | 408 +++++++------- stats/pwc-challenge-024.json | 198 +++---- stats/pwc-challenge-025.json | 187 ++++--- stats/pwc-current.json | 115 ++-- stats/pwc-language-breakdown-summary.json | 44 +- stats/pwc-language-breakdown.json | 238 ++++---- stats/pwc-leaders.json | 890 +++++++++++++++--------------- stats/pwc-master-stats.json | 270 ++++----- stats/pwc-summary-1-30.json | 32 +- stats/pwc-summary-31-60.json | 112 ++-- stats/pwc-summary-61-90.json | 110 ++-- stats/pwc-summary-91-120.json | 94 ++-- stats/pwc-summary.json | 46 +- 36 files changed, 5689 insertions(+), 5618 deletions(-) create mode 100644 challenge-025/lars-balker/perl5/ch-1.pl diff --git a/challenge-025/lars-balker/perl5/ch-1.pl b/challenge-025/lars-balker/perl5/ch-1.pl new file mode 100644 index 0000000000..41021a5473 --- /dev/null +++ b/challenge-025/lars-balker/perl5/ch-1.pl @@ -0,0 +1,41 @@ +#!/usr/bin/env perl + +use v5.10; +use strict; +use warnings; + +# Generate a longest sequence of the following “English Pokemon” names +# where each name starts with the last letter of previous name. + +my @names = qw/ + audino bagon baltoy banette bidoof braviary bronzor carracosta + charmeleon cresselia croagunk darmanitan deino emboar emolga + exeggcute gabite girafarig gulpin haxorus heatmor heatran ivysaur + jellicent jumpluff kangaskhan kricketune landorus ledyba loudred + lumineon lunatone machamp magnezone mamoswine nosepass petilil + pidgeotto pikachu pinsir poliwrath poochyena porygon2 porygonz + registeel relicanth remoraid rufflet sableye scolipede scrafty + seaking sealeo silcoon simisear snivy snorlax spoink starly + tirtouga trapinch treecko tyrogue vigoroth vulpix wailord + wartortle whismur wingull yamask +/; + +my $longest = []; + +try([], "", @names); + +say "@$longest"; + +# naive brute force recursion +sub try { + my ($picks, $prefix, @rest) = @_; + + $longest = $picks if @$picks > @$longest; + + for (my $i = 0; $i < @rest; ++$i) { + next unless $rest[$i] =~ /^$prefix/; + try([@$picks, $rest[$i]], + substr($rest[$i], -1), + @rest[0..$i-1, $i+1..$#rest]); + } +} diff --git a/stats/pwc-challenge-001.json b/stats/pwc-challenge-001.json index d64b6376c3..91fe3beed0 100644 --- a/stats/pwc-challenge-001.json +++ b/stats/pwc-challenge-001.json @@ -1,24 +1,324 @@ { + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "title" : { + "text" : "Perl Weekly Challenge - 001" + }, + "series" : [ + { + "colorByPoint" : 1, + "data" : [ + { + "y" : 3, + "drilldown" : "Adam Russell", + "name" : "Adam Russell" + }, + { + "name" : "Ailbhe Tweedie", + "y" : 1, + "drilldown" : "Ailbhe Tweedie" + }, + { + "y" : 2, + "drilldown" : "Alex Daniel", + "name" : "Alex Daniel" + }, + { + "drilldown" : "Andrezgz", + "y" : 2, + "name" : "Andrezgz" + }, + { + "y" : 2, + "drilldown" : "Antonio Gamiz", + "name" : "Antonio Gamiz" + }, + { + "y" : 5, + "drilldown" : "Arne Sommer", + "name" : "Arne Sommer" + }, + { + "name" : "Arpad Toth", + "y" : 2, + "drilldown" : "Arpad Toth" + }, + { + "drilldown" : "Athanasius", + "y" : 2, + "name" : "Athanasius" + }, + { + "y" : 2, + "drilldown" : "Bob Kleemann", + "name" : "Bob Kleemann" + }, + { + "drilldown" : "Daniel Mantovani", + "y" : 1, + "name" : "Daniel Mantovani" + }, + { + "y" : 3, + "drilldown" : "Dave Cross", + "name" : "Dave Cross" + }, + { + "drilldown" : "Dave Jacoby", + "y" : 2, + "name" : "Dave Jacoby" + }, + { + "y" : 2, + "drilldown" : "David Kayal", + "name" : "David Kayal" + }, + { + "drilldown" : "Doug Schrag", + "y" : 2, + "name" : "Doug Schrag" + }, + { + "y" : 4, + "drilldown" : "Dr James A. Smith", + "name" : "Dr James A. Smith" + }, + { + "name" : "Duncan C. White", + "y" : 2, + "drilldown" : "Duncan C. White" + }, + { + "name" : "Eddy HS", + "drilldown" : "Eddy HS", + "y" : 2 + }, + { + "y" : 2, + "drilldown" : "Finley", + "name" : "Finley" + }, + { + "drilldown" : "Fred Zinn", + "y" : 1, + "name" : "Fred Zinn" + }, + { + "name" : "Freddie B", + "y" : 2, + "drilldown" : "Freddie B" + }, + { + "drilldown" : "Gustavo Chaves", + "y" : 1, + "name" : "Gustavo Chaves" + }, + { + "drilldown" : "JJ Merelo", + "y" : 2, + "name" : "JJ Merelo" + }, + { + "name" : "Jaldhar H. Vyas", + "y" : 4, + "drilldown" : "Jaldhar H. Vyas" + }, + { + "name" : "Jeff", + "drilldown" : "Jeff", + "y" : 2 + }, + { + "name" : "Jeremy Carman", + "drilldown" : "Jeremy Carman", + "y" : 2 + }, + { + "y" : 1, + "drilldown" : "Jim Bacon", + "name" : "Jim Bacon" + }, + { + "name" : "Jo Christian Oterhals", + "drilldown" : "Jo Christian Oterhals", + "y" : 5 + }, + { + "name" : "Joelle Maslak", + "y" : 4, + "drilldown" : "Joelle Maslak" + }, + { + "drilldown" : "John Barrett", + "y" : 1, + "name" : "John Barrett" + }, + { + "name" : "Juan Caballero", + "y" : 2, + "drilldown" : "Juan Caballero" + }, + { + "name" : "Khalid", + "drilldown" : "Khalid", + "y" : 2 + }, + { + "name" : "Kian-Meng Ang", + "drilldown" : "Kian-Meng Ang", + "y" : 3 + }, + { + "name" : "Kivanc Yazan", + "drilldown" : "Kivanc Yazan", + "y" : 2 + }, + { + "drilldown" : "Lars Balker", + "y" : 4, + "name" : "Lars Balker" + }, + { + "name" : "Laurent Rosenfeld", + "y" : 4, + "drilldown" : "Laurent Rosenfeld" + }, + { + "y" : 2, + "drilldown" : "Mark Senn", + "name" : "Mark Senn" + }, + { + "name" : "Martin Mugeni", + "y" : 2, + "drilldown" : "Martin Mugeni" + }, + { + "name" : "Neil Bowers", + "y" : 1, + "drilldown" : "Neil Bowers" + }, + { + "name" : "Nick Logan", + "y" : 4, + "drilldown" : "Nick Logan" + }, + { + "y" : 2, + "drilldown" : "Oleksii Tsvietnov", + "name" : "Oleksii Tsvietnov" + }, + { + "name" : "Ozzy", + "drilldown" : "Ozzy", + "y" : 2 + }, + { + "y" : 2, + "drilldown" : "Pavel Jurca", + "name" : "Pavel Jurca" + }, + { + "name" : "Pete Houston", + "drilldown" : "Pete Houston", + "y" : 2 + }, + { + "y" : 3, + "drilldown" : "Philippe Bruhat", + "name" : "Philippe Bruhat" + }, + { + "drilldown" : "Prajith P", + "y" : 1, + "name" : "Prajith P" + }, + { + "drilldown" : "Sean Meininger", + "y" : 2, + "name" : "Sean Meininger" + }, + { + "name" : "Simon Proctor", + "drilldown" : "Simon Proctor", + "y" : 6 + }, + { + "name" : "Simon Reinhardt", + "drilldown" : "Simon Reinhardt", + "y" : 2 + }, + { + "y" : 4, + "drilldown" : "Steve Rogerson", + "name" : "Steve Rogerson" + }, + { + "name" : "Steven Wilson", + "y" : 2, + "drilldown" : "Steven Wilson" + }, + { + "name" : "Tiago Stock", + "drilldown" : "Tiago Stock", + "y" : 1 + }, + { + "name" : "Tore Andersson", + "drilldown" : "Tore Andersson", + "y" : 2 + }, + { + "name" : "Veesh Goldman", + "y" : 1, + "drilldown" : "Veesh Goldman" + }, + { + "drilldown" : "William Gilmore", + "y" : 1, + "name" : "William Gilmore" + }, + { + "drilldown" : "Yet Ebreo", + "y" : 4, + "name" : "Yet Ebreo" + } + ], + "name" : "Perl Weekly Challenge - 001" + } + ], + "tooltip" : { + "headerFormat" : "{series.name}
", + "pointFormat" : "{point.name}: {point.y:f}
", + "followPointer" : 1 + }, "chart" : { "type" : "column" }, "subtitle" : { - "text" : "[Champions: 55] Last updated at 2019-09-15 17:47:38 GMT" + "text" : "[Champions: 55] Last updated at 2019-09-17 11:25:19 GMT" }, "plotOptions" : { "series" : { "borderWidth" : 0, "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" + "format" : "{point.y}", + "enabled" : 1 } } }, + "xAxis" : { + "type" : "category" + }, + "legend" : { + "enabled" : 0 + }, "drilldown" : { "series" : [ { - "id" : "Adam Russell", - "name" : "Adam Russell", "data" : [ [ "Perl 5", @@ -28,7 +328,9 @@ "Blog", 1 ] - ] + ], + "name" : "Adam Russell", + "id" : "Adam Russell" }, { "data" : [ @@ -51,27 +353,27 @@ "id" : "Alex Daniel" }, { + "name" : "Andrezgz", "data" : [ [ "Perl 5", 2 ] ], - "name" : "Andrezgz", "id" : "Andrezgz" }, { - "name" : "Antonio Gamiz", "data" : [ [ "Perl 6", 2 ] ], + "name" : "Antonio Gamiz", "id" : "Antonio Gamiz" }, { - "id" : "Arne Sommer", + "name" : "Arne Sommer", "data" : [ [ "Perl 5", @@ -86,17 +388,17 @@ 1 ] ], - "name" : "Arne Sommer" + "id" : "Arne Sommer" }, { - "id" : "Arpad Toth", + "name" : "Arpad Toth", "data" : [ [ "Perl 5", 2 ] ], - "name" : "Arpad Toth" + "id" : "Arpad Toth" }, { "id" : "Athanasius", @@ -109,13 +411,13 @@ ] }, { - "name" : "Bob Kleemann", "data" : [ [ "Perl 5", 2 ] ], + "name" : "Bob Kleemann", "id" : "Bob Kleemann" }, { @@ -129,7 +431,6 @@ ] }, { - "id" : "Dave Cross", "data" : [ [ "Perl 5", @@ -140,9 +441,11 @@ 1 ] ], - "name" : "Dave Cross" + "name" : "Dave Cross", + "id" : "Dave Cross" }, { + "id" : "Dave Jacoby", "data" : [ [ "Perl 5", @@ -153,8 +456,7 @@ 1 ] ], - "name" : "Dave Jacoby", - "id" : "Dave Jacoby" + "name" : "Dave Jacoby" }, { "name" : "David Kayal", @@ -167,17 +469,17 @@ "id" : "David Kayal" }, { + "id" : "Doug Schrag", + "name" : "Doug Schrag", "data" : [ [ "Perl 6", 2 ] - ], - "name" : "Doug Schrag", - "id" : "Doug Schrag" + ] }, { - "id" : "Dr James A. Smith", + "name" : "Dr James A. Smith", "data" : [ [ "Perl 5", @@ -188,70 +490,69 @@ 2 ] ], - "name" : "Dr James A. Smith" + "id" : "Dr James A. Smith" }, { - "name" : "Duncan C. White", + "id" : "Duncan C. White", "data" : [ [ "Perl 5", 2 ] ], - "id" : "Duncan C. White" + "name" : "Duncan C. White" }, { + "id" : "Eddy HS", "data" : [ [ "Perl 5", 2 ] ], - "name" : "Eddy HS", - "id" : "Eddy HS" + "name" : "Eddy HS" }, { - "id" : "Finley", - "name" : "Finley", "data" : [ [ "Perl 6", 2 ] - ] + ], + "name" : "Finley", + "id" : "Finley" }, { + "name" : "Fred Zinn", "data" : [ [ "Perl 5", 1 ] ], - "name" : "Fred Zinn", "id" : "Fred Zinn" }, { - "name" : "Freddie B", "data" : [ [ "Perl 5", 2 ] ], + "name" : "Freddie B", "id" : "Freddie B" }, { "id" : "Gustavo Chaves", - "name" : "Gustavo Chaves", "data" : [ [ "Perl 5", 1 ] - ] + ], + "name" : "Gustavo Chaves" }, { - "name" : "JJ Merelo", "data" : [ [ "Perl 6", @@ -262,6 +563,7 @@ 1 ] ], + "name" : "JJ Merelo", "id" : "JJ Merelo" }, { @@ -279,14 +581,14 @@ "id" : "Jaldhar H. Vyas" }, { + "id" : "Jeff", "name" : "Jeff", "data" : [ [ "Perl 5", 2 ] - ], - "id" : "Jeff" + ] }, { "id" : "Jeremy Carman", @@ -303,16 +605,17 @@ "name" : "Jeremy Carman" }, { + "name" : "Jim Bacon", "data" : [ [ "Perl 5", 1 ] ], - "name" : "Jim Bacon", "id" : "Jim Bacon" }, { + "id" : "Jo Christian Oterhals", "name" : "Jo Christian Oterhals", "data" : [ [ @@ -327,8 +630,7 @@ "Blog", 1 ] - ], - "id" : "Jo Christian Oterhals" + ] }, { "id" : "Joelle Maslak", @@ -345,37 +647,37 @@ "name" : "Joelle Maslak" }, { - "name" : "John Barrett", "data" : [ [ "Perl 5", 1 ] ], + "name" : "John Barrett", "id" : "John Barrett" }, { "id" : "Juan Caballero", - "name" : "Juan Caballero", "data" : [ [ "Perl 5", 2 ] - ] + ], + "name" : "Juan Caballero" }, { - "name" : "Khalid", + "id" : "Khalid", "data" : [ [ "Perl 5", 2 ] ], - "id" : "Khalid" + "name" : "Khalid" }, { - "id" : "Kian-Meng Ang", + "name" : "Kian-Meng Ang", "data" : [ [ "Perl 5", @@ -386,19 +688,21 @@ 1 ] ], - "name" : "Kian-Meng Ang" + "id" : "Kian-Meng Ang" }, { - "id" : "Kivanc Yazan", "name" : "Kivanc Yazan", "data" : [ [ "Perl 5", 2 ] - ] + ], + "id" : "Kivanc Yazan" }, { + "id" : "Lars Balker", + "name" : "Lars Balker", "data" : [ [ "Perl 5", @@ -408,9 +712,7 @@ "Perl 6", 2 ] - ], - "name" : "Lars Balker", - "id" : "Lars Balker" + ] }, { "id" : "Laurent Rosenfeld", @@ -441,14 +743,14 @@ "id" : "Mark Senn" }, { + "id" : "Martin Mugeni", + "name" : "Martin Mugeni", "data" : [ [ "Perl 6", 2 ] - ], - "name" : "Martin Mugeni", - "id" : "Martin Mugeni" + ] }, { "id" : "Neil Bowers", @@ -485,36 +787,37 @@ "id" : "Oleksii Tsvietnov" }, { + "id" : "Ozzy", + "name" : "Ozzy", "data" : [ [ "Perl 6", 2 ] - ], - "name" : "Ozzy", - "id" : "Ozzy" + ] }, { - "id" : "Pavel Jurca", "data" : [ [ "Perl 5", 2 ] ], - "name" : "Pavel Jurca" + "name" : "Pavel Jurca", + "id" : "Pavel Jurca" }, { + "id" : "Pete Houston", "data" : [ [ "Perl 5", 2 ] ], - "name" : "Pete Houston", - "id" : "Pete Houston" + "name" : "Pete Houston" }, { + "id" : "Philippe Bruhat", "name" : "Philippe Bruhat", "data" : [ [ @@ -525,8 +828,7 @@ "Blog", 1 ] - ], - "id" : "Philippe Bruhat" + ] }, { "id" : "Prajith P", @@ -539,16 +841,17 @@ ] }, { - "id" : "Sean Meininger", "name" : "Sean Meininger", "data" : [ [ "Perl 6", 2 ] - ] + ], + "id" : "Sean Meininger" }, { + "id" : "Simon Proctor", "name" : "Simon Proctor", "data" : [ [ @@ -563,17 +866,16 @@ "Blog", 2 ] - ], - "id" : "Simon Proctor" + ] }, { - "name" : "Simon Reinhardt", "data" : [ [ "Perl 5", 2 ] ], + "name" : "Simon Reinhardt", "id" : "Simon Reinhardt" }, { @@ -602,23 +904,23 @@ }, { "id" : "Tiago Stock", - "name" : "Tiago Stock", "data" : [ [ "Perl 5", 1 ] - ] + ], + "name" : "Tiago Stock" }, { - "name" : "Tore Andersson", + "id" : "Tore Andersson", "data" : [ [ "Perl 5", 2 ] ], - "id" : "Tore Andersson" + "name" : "Tore Andersson" }, { "name" : "Veesh Goldman", @@ -631,17 +933,17 @@ "id" : "Veesh Goldman" }, { - "id" : "William Gilmore", "name" : "William Gilmore", "data" : [ [ "Perl 5", 1 ] - ] + ], + "id" : "William Gilmore" }, { - "name" : "Yet Ebreo", + "id" : "Yet Ebreo", "data" : [ [ "Perl 5", @@ -652,310 +954,8 @@ 2 ] ], - "id" : "Yet Ebreo" + "name" : "Yet Ebreo" } ] - }, - "title" : { - "text" : "Perl Weekly Challenge - 001" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "tooltip" : { - "pointFormat" : "{point.name}: {point.y:f}
", - "headerFormat" : "{series.name}
", - "followPointer" : 1 - }, - "legend" : { - "enabled" : 0 - }, - "xAxis" : { - "type" : "category" - }, - "series" : [ - { - "data" : [ - { - "drilldown" : "Adam Russell", - "y" : 3, - "name" : "Adam Russell" - }, - { - "name" : "Ailbhe Tweedie", - "y" : 1, - "drilldown" : "Ailbhe Tweedie" - }, - { - "name" : "Alex Daniel", - "y" : 2, - "drilldown" : "Alex Daniel" - }, - { - "name" : "Andrezgz", - "y" : 2, - "drilldown" : "Andrezgz" - }, - { - "name" : "Antonio Gamiz", - "y" : 2, - "drilldown" : "Antonio Gamiz" - }, - { - "drilldown" : "Arne Sommer", - "y" : 5, - "name" : "Arne Sommer" - }, - { - "drilldown" : "Arpad Toth", - "y" : 2, - "name" : "Arpad Toth" - }, - { - "name" : "Athanasius", - "drilldown" : "Athanasius", - "y" : 2 - }, - { - "drilldown" : "Bob Kleemann", - "y" : 2, - "name" : "Bob Kleemann" - }, - { - "y" : 1, - "drilldown" : "Daniel Mantovani", - "name" : "Daniel Mantovani" - }, - { - "y" : 3, - "drilldown" : "Dave Cross", - "name" : "Dave Cross" - }, - { - "name" : "Dave Jacoby", - "drilldown" : "Dave Jacoby", - "y" : 2 - }, - { - "name" : "David Kayal", - "drilldown" : "David Kayal", - "y" : 2 - }, - { - "name" : "Doug Schrag", - "drilldown" : "Doug Schrag", - "y" : 2 - }, - { - "drilldown" : "Dr James A. Smith", - "y" : 4, - "name" : "Dr James A. Smith" - }, - { - "y" : 2, - "drilldown" : "Duncan C. White", - "name" : "Duncan C. White" - }, - { - "name" : "Eddy HS", - "y" : 2, - "drilldown" : "Eddy HS" - }, - { - "y" : 2, - "drilldown" : "Finley", - "name" : "Finley" - }, - { - "drilldown" : "Fred Zinn", - "y" : 1, - "name" : "Fred Zinn" - }, - { - "y" : 2, - "drilldown" : "Freddie B", - "name" : "Freddie B" - }, - { - "name" : "Gustavo Chaves", - "y" : 1, - "drilldown" : "Gustavo Chaves" - }, - { - "name" : "JJ Merelo", - "drilldown" : "JJ Merelo", - "y" : 2 - }, - { - "name" : "Jaldhar H. Vyas", - "y" : 4, - "drilldown" : "Jaldhar H. Vyas" - }, - { - "name" : "Jeff", - "y" : 2, - "drilldown" : "Jeff" - }, - { - "name" : "Jeremy Carman", - "y" : 2, - "drilldown" : "Jeremy Carman" - }, - { - "y" : 1, - "drilldown" : "Jim Bacon", - "name" : "Jim Bacon" - }, - { - "drilldown" : "Jo Christian Oterhals", - "y" : 5, - "name" : "Jo Christian Oterhals" - }, - { - "y" : 4, - "drilldown" : "Joelle Maslak", - "name" : "Joelle Maslak" - }, - { - "name" : "John Barrett", - "y" : 1, - "drilldown" : "John Barrett" - }, - { - "drilldown" : "Juan Caballero", - "y" : 2, - "name" : "Juan Caballero" - }, - { - "y" : 2, - "drilldown" : "Khalid", - "name" : "Khalid" - }, - { - "name" : "Kian-Meng Ang", - "drilldown" : "Kian-Meng Ang", - "y" : 3 - }, - { - "y" : 2, - "drilldown" : "Kivanc Yazan", - "name" : "Kivanc Yazan" - }, - { - "drilldown" : "Lars Balker", - "y" : 4, - "name" : "Lars Balker" - }, - { - "drilldown" : "Laurent Rosenfeld", - "y" : 4, - "name" : "Laurent Rosenfeld" - }, - { - "drilldown" : "Mark Senn", - "y" : 2, - "name" : "Mark Senn" - }, - { - "drilldown" : "Martin Mugeni", - "y" : 2, - "name" : "Martin Mugeni" - }, - { - "name" : "Neil Bowers", - "drilldown" : "Neil Bowers", - "y" : 1 - }, - { - "name" : "Nick Logan", - "drilldown" : "Nick Logan", - "y" : 4 - }, - { - "y" : 2, - "drilldown" : "Oleksii Tsvietnov", - "name" : "Oleksii Tsvietnov" - }, - { - "drilldown" : "Ozzy", - "y" : 2, - "name" : "Ozzy" - }, - { - "y" : 2, - "drilldown" : "Pavel Jurca", - "name" : "Pavel Jurca" - }, - { - "drilldown" : "Pete Houston", - "y" : 2, - "name" : "Pete Houston" - }, - { - "y" : 3, - "drilldown" : "Philippe Bruhat", - "name" : "Philippe Bruhat" - }, - { - "y" : 1, - "drilldown" : "Prajith P", - "name" : "Prajith P" - }, - { - "name" : "Sean Meininger", - "drilldown" : "Sean Meininger", - "y" : 2 - }, - { - "name" : "Simon Proctor", - "y" : 6, - "drilldown" : "Simon Proctor" - }, - { - "name" : "Simon Reinhardt", - "y" : 2, - "drilldown" : "Simon Reinhardt" - }, - { - "y" : 4, - "drilldown" : "Steve Rogerson", - "name" : "Steve Rogerson" - }, - { - "name" : "Steven Wilson", - "drilldown" : "Steven Wilson", - "y" : 2 - }, - { - "y" : 1, - "drilldown" : "Tiago Stock", - "name" : "Tiago Stock" - }, - { - "y" : 2, - "drilldown" : "Tore Andersson", - "name" : "Tore Andersson" - }, - { - "name" : "Veesh Goldman", - "y" : 1, - "drilldown" : "Veesh Goldman" - }, - { - "drilldown" : "William Gilmore", - "y" : 1, - "name" : "William Gilmore" - }, - { - "name" : "Yet Ebreo", - "y" : 4, - "drilldown" : "Yet Ebreo" - } - ], - "name" : "Perl Weekly Challenge - 001", - "colorByPoint" : 1 - } - ] + } } diff --git a/stats/pwc-challenge-002.json b/stats/pwc-challenge-002.json index 8e89f473ac..f47577db8d 100644 --- a/stats/pwc-challenge-002.json +++ b/stats/pwc-challenge-002.json @@ -1,21 +1,252 @@ { - "tooltip" : { - "headerFormat" : "{series.name}
", - "pointFormat" : "{point.name}: {point.y:f}
", - "followPointer" : 1 - }, - "chart" : { - "type" : "column" + "xAxis" : { + "type" : "category" }, "subtitle" : { - "text" : "[Champions: 45] Last updated at 2019-09-15 17:47:39 GMT" + "text" : "[Champions: 45] Last updated at 2019-09-17 11:25:19 GMT" }, - "legend" : { - "enabled" : 0 + "series" : [ + { + "data" : [ + { + "y" : 3, + "name" : "Adam Russell", + "drilldown" : "Adam Russell" + }, + { + "y" : 2, + "name" : "Ailbhe Tweedie", + "drilldown" : "Ailbhe Tweedie" + }, + { + "y" : 2, + "name" : "Alex Daniel", + "drilldown" : "Alex Daniel" + }, + { + "name" : "Andrezgz", + "y" : 2, + "drilldown" : "Andrezgz" + }, + { + "drilldown" : "Arne Sommer", + "y" : 3, + "name" : "Arne Sommer" + }, + { + "y" : 2, + "name" : "Arpad Toth", + "drilldown" : "Arpad Toth" + }, + { + "y" : 2, + "name" : "Athanasius", + "drilldown" : "Athanasius" + }, + { + "drilldown" : "Bob Kleemann", + "y" : 2, + "name" : "Bob Kleemann" + }, + { + "drilldown" : "Chenyf", + "y" : 2, + "name" : "Chenyf" + }, + { + "drilldown" : "Daniel Mantovani", + "y" : 1, + "name" : "Daniel Mantovani" + }, + { + "drilldown" : "Dave Jacoby", + "name" : "Dave Jacoby", + "y" : 1 + }, + { + "y" : 2, + "name" : "David Kayal", + "drilldown" : "David Kayal" + }, + { + "name" : "Doug Schrag", + "y" : 2, + "drilldown" : "Doug Schrag" + }, + { + "name" : "Dr James A. Smith", + "y" : 4, + "drilldown" : "Dr James A. Smith" + }, + { + "drilldown" : "Fred Zinn", + "name" : "Fred Zinn", + "y" : 1 + }, + { + "drilldown" : "Freddie B", + "y" : 1, + "name" : "Freddie B" + }, + { + "drilldown" : "Gustavo Chaves", + "name" : "Gustavo Chaves", + "y" : 2 + }, + { + "drilldown" : "Jaime Corchado", + "y" : 2, + "name" : "Jaime Corchado" + }, + { + "drilldown" : "Jaldhar H. Vyas", + "y" : 4, + "name" : "Jaldhar H. Vyas" + }, + { + "name" : "Jeremy Carman", + "y" : 1, + "drilldown" : "Jeremy Carman" + }, + { + "name" : "Jo Christian Oterhals", + "y" : 5, + "drilldown" : "Jo Christian Oterhals" + }, + { + "name" : "Joelle Maslak", + "y" : 4, + "drilldown" : "Joelle Maslak" + }, + { + "name" : "John Barrett", + "y" : 2, + "drilldown" : "John Barrett" + }, + { + "name" : "Khalid", + "y" : 1, + "drilldown" : "Khalid" + }, + { + "y" : 3, + "name" : "Kian-Meng Ang", + "drilldown" : "Kian-Meng Ang" + }, + { + "name" : "Lars Balker", + "y" : 4, + "drilldown" : "Lars Balker" + }, + { + "drilldown" : "Laurent Rosenfeld", + "name" : "Laurent Rosenfeld", + "y" : 5 + }, + { + "name" : "Magnus Woldrich", + "y" : 2, + "drilldown" : "Magnus Woldrich" + }, + { + "y" : 2, + "name" : "Mark Senn", + "drilldown" : "Mark Senn" + }, + { + "drilldown" : "Matt Latusek", + "name" : "Matt Latusek", + "y" : 2 + }, + { + "y" : 2, + "name" : "Maxim Kolodyazhny", + "drilldown" : "Maxim Kolodyazhny" + }, + { + "name" : "Neil Bowers", + "y" : 1, + "drilldown" : "Neil Bowers" + }, + { + "drilldown" : "Nick Logan", + "y" : 4, + "name" : "Nick Logan" + }, + { + "drilldown" : "Ozzy", + "name" : "Ozzy", + "y" : 2 + }, + { + "name" : "Pete Houston", + "y" : 1, + "drilldown" : "Pete Houston" + }, + { + "y" : 3, + "name" : "Philippe Bruhat", + "drilldown" : "Philippe Bruhat" + }, + { + "name" : "Prajith P", + "y" : 1, + "drilldown" : "Prajith P" + }, + { + "name" : "Robert Gratza", + "y" : 2, + "drilldown" : "Robert Gratza" + }, + { + "name" : "Ruben Westerberg", + "y" : 4, + "drilldown" : "Ruben Westerberg" + }, + { + "name" : "Sean Meininger", + "y" : 1, + "drilldown" : "Sean Meininger" + }, + { + "y" : 2, + "name" : "Sergio Iglesias", + "drilldown" : "Sergio Iglesias" + }, + { + "drilldown" : "Simon Proctor", + "y" : 4, + "name" : "Simon Proctor" + }, + { + "drilldown" : "Simon Reinhardt", + "y" : 2, + "name" : "Simon Reinhardt" + }, + { + "y" : 2, + "name" : "Steven Wilson", + "drilldown" : "Steven Wilson" + }, + { + "y" : 2, + "name" : "Veesh Goldman", + "drilldown" : "Veesh Goldman" + } + ], + "colorByPoint" : 1, + "name" : "Perl Weekly Challenge - 002" + } + ], + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } }, "drilldown" : { "series" : [ { + "name" : "Adam Russell", "data" : [ [ "Perl 5", @@ -26,37 +257,36 @@ 1 ] ], - "name" : "Adam Russell", "id" : "Adam Russell" }, { + "id" : "Ailbhe Tweedie", + "name" : "Ailbhe Tweedie", "data" : [ [ "Perl 5", 2 ] - ], - "name" : "Ailbhe Tweedie", - "id" : "Ailbhe Tweedie" + ] }, { "id" : "Alex Daniel", + "name" : "Alex Daniel", "data" : [ [ "Perl 6", 2 ] - ], - "name" : "Alex Daniel" + ] }, { - "name" : "Andrezgz", "data" : [ [ "Perl 5", 2 ] ], + "name" : "Andrezgz", "id" : "Andrezgz" }, { @@ -74,34 +304,34 @@ "id" : "Arne Sommer" }, { - "id" : "Arpad Toth", "data" : [ [ "Perl 5", 2 ] ], - "name" : "Arpad Toth" + "name" : "Arpad Toth", + "id" : "Arpad Toth" }, { + "id" : "Athanasius", + "name" : "Athanasius", "data" : [ [ "Perl 5", 2 ] - ], - "name" : "Athanasius", - "id" : "Athanasius" + ] }, { "id" : "Bob Kleemann", - "name" : "Bob Kleemann", "data" : [ [ "Perl 5", 2 ] - ] + ], + "name" : "Bob Kleemann" }, { "id" : "Chenyf", @@ -114,34 +344,34 @@ "name" : "Chenyf" }, { - "id" : "Daniel Mantovani", + "name" : "Daniel Mantovani", "data" : [ [ "Perl 5", 1 ] ], -