diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-07-23 15:14:56 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-07-23 15:14:56 +0100 |
| commit | 0bcaecb707c2f9ebe12a1666d616b896ac5a11dd (patch) | |
| tree | 08489fa526faf21a35744443dd906402489b6895 | |
| parent | ab4e4b62795b7dd40e9d0e9ff8e350aa70b6c69d (diff) | |
| download | perlweeklychallenge-club-0bcaecb707c2f9ebe12a1666d616b896ac5a11dd.tar.gz perlweeklychallenge-club-0bcaecb707c2f9ebe12a1666d616b896ac5a11dd.tar.bz2 perlweeklychallenge-club-0bcaecb707c2f9ebe12a1666d616b896ac5a11dd.zip | |
- Added solutions by Duane Powell.
| -rw-r--r-- | challenge-018/duane-powell/perl5/ch-1.pl | 123 | ||||
| -rw-r--r-- | challenge-018/duane-powell/perl5/ch-2.pl | 203 | ||||
| -rw-r--r-- | stats/pwc-current.json | 91 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 48 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 180 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 910 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 118 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 36 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 32 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 46 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 244 |
11 files changed, 1186 insertions, 845 deletions
diff --git a/challenge-018/duane-powell/perl5/ch-1.pl b/challenge-018/duane-powell/perl5/ch-1.pl new file mode 100644 index 0000000000..ed4443dd1b --- /dev/null +++ b/challenge-018/duane-powell/perl5/ch-1.pl @@ -0,0 +1,123 @@ +#!/usr/bin/perl +use Modern::Perl; + +# Write a script that takes 2 or more strings as command line parameters and print the longest common substring. +# For example, the longest common substring of the strings “ABABC”, “BABCA” and “ABCBA” is string “ABC” of length 3. +# Other common substrings are “A”, “AB”, “B”, “BA”, “BC” and “C” + +sub common_substr_find { + my @str = @_; + # The plan is to chunk our strings from largest to smallest + # for example: hello,hell,ello,hel,ell,llo,he,el,ll,lo,h,e,l,l,o + # Then use the chunks as hash keys to count occurances. + # We stop looking at smaller chunks if a bigger match is found. + + my $out = ""; + my %count; + my %chunk; + my $longest_match = 0; + foreach my $str (@str) { + my $i = 0; + my $len = length($str); + my $offset = $len; + while ($offset > 0) { + while (($i + $offset) <= $len and ($i + $offset) >= $longest_match) { + my $chunk = substr($str,$i,$offset); + unless (defined $chunk{$str}{$chunk}) { + # don't match chunks within the same str + $chunk{$str}{$chunk} = 1; + $count{$chunk}++; + } + $longest_match = length($chunk) if ($count{$chunk} > 1 and length($chunk) > $longest_match); + $i++; + } + $i = 0; + $offset--; + } + } + + foreach (keys %count) { + if ($count{$_} > 1) { + $out .= "$_\n" if (length($_) == $longest_match); + } + } + + say "strings are: " . join(",",@str); + if ($out) { + $out = "longest matching substrings are:\n" . $out; + } else { + $out = "no substrings match\n"; + } + say $out; +} + +if (@ARGV) { + common_substr_find(@ARGV); + exit; +} + +my %testdata = ( + 1 => "hello world", + 2 => "polar bears love snow", + 3 => "goodbye goodyear goody", + 4 => "abc xzy", + 5 => "duane powell xxxxduanexxxpowellxxx", + 6 => "abba bbaa aaaa bbbb baba abab", + 7 => "ALL ENGLISH WORDS ... words.txt", +); + +foreach my $data (sort(keys %testdata)) { + my @str; + if ($data < 7) { + @str = split(" ",$testdata{$data}); + common_substr_find(@str); + } else { + open(my $fh, "<", "words.txt") or die "Can't open < words.txt: $!"; + while (my $word = <$fh>) { + chomp $word; + push @str, $word; + } + common_substr_find(@str); + } +} + +__END__ + +./ch1.pl foo bar fubar +strings are: foo,bar,fubar +longest matching substrings are: +bar + +./ch1.pl +strings are: hello,world +longest matching substrings are: +o +l + +strings are: polar,bears,love,snow +longest matching substrings are: +ar + +strings are: goodbye,goodyear,goody +longest matching substrings are: +goody + +strings are: abc,xzy +no substrings match + +strings are: duane,powell,xxxxduanexxxpowellxxx +longest matching substrings are: +powell + +strings are: abba,bbaa,aaaa,bbbb,baba,abab +longest matching substrings are: +bba +aba +bab + +strings are: ... ALL ENGLISH WORDS ... +longest matching substrings are: +electroencephalographical +antidisestablishmentarian +microspectrophotometrical + diff --git a/challenge-018/duane-powell/perl5/ch-2.pl b/challenge-018/duane-powell/perl5/ch-2.pl new file mode 100644 index 0000000000..9eb7d0cf3f --- /dev/null +++ b/challenge-018/duane-powell/perl5/ch-2.pl @@ -0,0 +1,203 @@ +#!/usr/bin/perl +use Modern::Perl; + +# Write a script to implement Priority Queue. It is like regular queue except each element has a priority associated with it. +# In a priority queue, an element with high priority is served before an element with low priority. + +my $p = PriorityQueue->new(); +$p->pull_highest_priority_element(); +$p->insert_with_priority(200,"milkshake!"); +$p->insert_with_priority(300,"pizza?"); +$p->insert_with_priority(500,"cheeseburgers!"); +sleep 1; # sleep a second so nodes have different date values +$p->insert_with_priority(250,"steak and eggs!"); +$p->queue_print(); +$p->pull_highest_priority_element(); +$p->insert_with_priority(350,"hotdogs?"); +$p->insert_with_priority(550,"pancakces and syrup!"); +$p->insert_with_priority(650,"donuts!"); +$p->insert_with_priority(600,"cookies!"); +$p->queue_print(); +$p->pull_highest_priority_element(); +$p->queue_print(); +$p->pull_highest_priority_element(); +$p->pull_highest_priority_element(); +sleep 1; # sleep a second so nodes have different date values +$p->insert_with_priority(200,"dr peppers!"); +$p->insert_with_priority(300,"pizza?"); +$p->insert_with_priority(500,"cheeseburgers!"); +$p->insert_with_priority(250,"steak and eggs!"); +$p->insert_with_priority(350,"hotdogs?"); +$p->insert_with_priority(550,"pancakces and syrup!"); +$p->queue_print(); +$p->pull_highest_priority_element(); +$p->pull_highest_priority_element(); +$p->pull_highest_priority_element(); +$p->pull_highest_priority_element(); +$p->pull_highest_priority_element(); +$p->pull_highest_priority_element(); +$p->pull_highest_priority_element(); +$p->pull_highest_priority_element(); +$p->queue_print(); +sleep 1; # sleep a second so nodes have different date values +$p->insert_with_priority(350,"hotdogs?"); +$p->insert_with_priority(550,"pancakces and syrup!"); +$p->queue_print(); +$p->pull_highest_priority_element(); +$p->pull_highest_priority_element(); +$p->pull_highest_priority_element(); +$p->pull_highest_priority_element(); +$p->pull_highest_priority_element(); +$p->queue_print(); +exit; + +package PriorityQueue; +sub new { + my $class = shift; + # Simple class to represent a priority queue. + # The queue is made of nested hash refs, linked by _next + # _next=>{ ..., _next=>{ ..., _next=>undef}} + my $self = { + _next => undef, # undef signals empty queue + }; + return bless $self, $class; +} + +sub is_empty { + my $self = shift; + return not defined $self->{_next}; +} + +sub insert_with_priority { + my $self = shift; + + # init new node + my $priority = shift; + my $data = shift; + my $i = { + priority => $priority || 100, + data => $data, + date => time, + _next => undef, # undef signals end of queue + }; + + # empty queue, insert first node and return + if ($self->is_empty()) { + $self->{_next} = $i; + return; + } + + # iterate over queue nodes and insert $i where it belongs + my $here = $self; + my $n = $self->{_next}; + while ($n) { + if ($n->{priority} >= $i->{priority}) { + if (defined $n->{_next}) { + # iterate + $here = $n; + $n = $n->{_next}; + } else { + # we're at the end of queue + $n->{_next} = $i; + return; + } + } else { + # insert $i here + $i->{_next} = $here->{_next}; + $here->{_next} = $i; + return; + } + } +} + +sub pull_highest_priority_element { + my $self = shift; + if ($self->is_empty()) { + say "nothing to pop, queue is empty."; + return; + } else { + my $n = $self->{_next}; + $self->{_next} = $n->{_next}; + say "popping $n->{priority} $n->{date} $n->{data}"; + return $n; + } +} + +sub queue_print { + my $self = shift; + my $n = $self->{_next}; + my $depth = 0; + say "queue print:"; + while ($n) { + my $space = (' ' x $depth); + say "$space $n->{priority} $n->{date} $n->{data}"; + $n = $n->{_next}; + $depth++; + } +} + + +1; + +__END__ + +./ch2.pl +nothing to pop, queue is empty. +queue print: + 500 1563884736 cheeseburgers! + 300 1563884736 pizza? + 250 1563884737 steak and eggs! + 200 1563884736 milkshake! +popping 500 1563884736 cheeseburgers! +queue print: + 650 1563884737 donuts! + 600 1563884737 cookies! + 550 1563884737 pancakces and syrup! + 350 1563884737 hotdogs? + 300 1563884736 pizza? + 250 1563884737 steak and eggs! + 200 1563884736 milkshake! +popping 650 1563884737 donuts! +queue print: + 600 1563884737 cookies! + 550 1563884737 pancakces and syrup! + 350 1563884737 hotdogs? + 300 1563884736 pizza? + 250 1563884737 steak and eggs! + 200 1563884736 milkshake! +popping 600 1563884737 cookies! +popping 550 1563884737 pancakces and syrup! +queue print: + 550 1563884738 pancakces and syrup! + 500 1563884738 cheeseburgers! + 350 1563884737 hotdogs? + 350 1563884738 hotdogs? + 300 1563884736 pizza? + 300 1563884738 pizza? + 250 1563884737 steak and eggs! + 250 1563884738 steak and eggs! + 200 1563884736 milkshake! + 200 1563884738 dr peppers! +popping 550 1563884738 pancakces and syrup! +popping 500 1563884738 cheeseburgers! +popping 350 1563884737 hotdogs? +popping 350 1563884738 hotdogs? +popping 300 1563884736 pizza? +popping 300 1563884738 pizza? +popping 250 1563884737 steak and eggs! +popping 250 1563884738 steak and eggs! +queue print: + 200 1563884736 milkshake! + 200 1563884738 dr peppers! +queue print: + 550 1563884739 pancakces and syrup! + 350 1563884739 hotdogs? + 200 1563884736 milkshake! + 200 1563884738 dr peppers! +popping 550 1563884739 pancakces and syrup! +popping 350 1563884739 hotdogs? +popping 200 1563884736 milkshake! +popping 200 1563884738 dr peppers! +nothing to pop, queue is empty. +queue print: + diff --git a/stats/pwc-current.json b/stats/pwc-current.json index e685e1b13f..a3389555b3 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,34 +1,15 @@ { - "plotOptions" : { - "series" : { - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - }, - "borderWidth" : 0 - } + "chart" : { + "type" : "column" }, "legend" : { "enabled" : 0 }, - "tooltip" : { - "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/>", - "followPointer" : 1 - }, - "title" : { - "text" : "Perl Weekly Challenge - 018" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, "drilldown" : { "series" : [ { - "id" : "Roger Bell West", - "name" : "Roger Bell West", + "id" : "Duane Powell", + "name" : "Duane Powell", "data" : [ [ "Perl 5", @@ -37,42 +18,76 @@ ] }, { + "name" : "Roger Bell West", "data" : [ [ - "Perl 6", + "Perl 5", 2 ] ], + "id" : "Roger Bell West" + }, + { "id" : "Simon Proctor", - "name" : "Simon Proctor" + "name" : "Simon Proctor", + "data" : [ + [ + "Perl 6", + 2 + ] + ] } ] }, + "xAxis" : { + "type" : "category" + }, + "tooltip" : { + "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>", + "followPointer" : 1, + "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "plotOptions" : { + "series" : { + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + }, + "borderWidth" : 0 + } + }, + "title" : { + "text" : "Perl Weekly Challenge - 018" + }, "subtitle" : { - "text" : "[Champions: 2] Last updated at 2019-07-22 13:57:16 GMT" + "text" : "[Champions: 3] Last updated at 2019-07-23 14:14:43 GMT" }, "series" : [ { - "colorByPoint" : 1, - "name" : "Perl Weekly Challenge - 018", "data" : [ { - "drilldown" : "Roger Bell West", + "name" : "Duane Powell", "y" : 2, - "name" : "Roger Bell West" + "drilldown" : "Duane Powell" }, { "y" : 2, + "drilldown" : "Roger Bell West", + "name" : "Roger Bell West" + }, + { "name" : "Simon Proctor", + "y" : 2, "drilldown" : "Simon Proctor" } - ] + ], + "name" : "Perl Weekly Challenge - 018", + "colorByPoint" : 1 } - ], - "chart" : { - "type" : "column" - }, - "xAxis" : { - "type" : "category" - } + ] } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 0ed26dab93..252f513082 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,12 +1,10 @@ { "subtitle" : { - "text" : "Last updated at 2019-07-22 13:57:23 GMT" - }, - "chart" : { - "type" : "column" + "text" : "Last updated at 2019-07-23 14:14:51 GMT" }, "series" : [ { + "name" : "Contributions", "data" : [ [ "Blog", @@ -14,33 +12,44 @@ ], [ "Perl 5", - 719 + 721 ], [ "Perl 6", 413 ] ], - "name" : "Contributions", "dataLabels" : { - "rotation" : -90, - "color" : "#FFFFFF", - "align" : "right", - "y" : 10, + "enabled" : "true", "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" }, - "enabled" : "true", - "format" : "{point.y:.0f}" + "y" : 10, + "color" : "#FFFFFF", + "format" : "{point.y:.0f}", + "align" : "right", + "rotation" : -90 } } ], "yAxis" : { + "min" : 0, "title" : { "text" : null + } + }, + "chart" : { + "type" : "column" + }, + "xAxis" : { + "labels" : { + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + } }, - "min" : 0 + "type" : "category" }, "tooltip" : { "pointFormat" : "<b>{point.y:.0f}</b>" @@ -48,15 +57,6 @@ "legend" : { "enabled" : "false" }, - "xAxis" : { - "type" : "category", - "labels" : { - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - } - } - }, "title" : { "text" : "Perl Weekly Challenge Contributions - 2019" } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 22d804b35d..dfc1bd4b0a 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,17 +1,10 @@ { - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "chart" : { - "type" : "column" - }, "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2019-07-22 13:57:23 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2019-07-23 14:14:51 GMT" }, "series" : [ { + "name" : "Perl Weekly Challenge Languages", "data" : [ { "drilldown" : "001", @@ -20,48 +13,48 @@ }, { "name" : "#002", - "y" : 104, - "drilldown" : "002" + "drilldown" : "002", + "y" : 104 }, { + "y" : 66, "drilldown" : "003", - "name" : "#003", - "y" : 66 + "name" : "#003" }, { - "name" : "#004", "y" : 84, - "drilldown" : "004" + "drilldown" : "004", + "name" : "#004" }, { - "name" : "#005", "y" : 66, + "name" : "#005", "drilldown" : "005" }, { + "drilldown" : "006", "name" : "#006", - "y" : 47, - "drilldown" : "006" + "y" : 47 }, { + "name" : "#007", "drilldown" : "007", - "y" : 54, - "name" : "#007" + "y" : 54 }, { "name" : "#008", - "y" : 67, - "drilldown" : "008" + "drilldown" : "008", + "y" : 67 }, { - "y" : 65, "name" : "#009", - "drilldown" : "009" + "drilldown" : "009", + "y" : 65 }, { - "y" : 58, + "drilldown" : "010", "name" : "#010", - "drilldown" : "010" + "y" : 58 }, { "y" : 77, @@ -69,9 +62,9 @@ "drilldown" : "011" }, { - "y" : 81, "name" : "#012", - "drilldown" : "012" + "drilldown" : "012", + "y" : 81 }, { "y" : 74, @@ -79,39 +72,65 @@ "drilldown" : "013" }, { - "drilldown" : "014", "y" : 94, - "name" : "#014" + "name" : "#014", + "drilldown" : "014" }, { - "drilldown" : "015", "y" : 90, - "name" : "#015" + "name" : "#015", + "drilldown" : "015" }, { - "name" : "#016", "y" : 64, + "name" : "#016", "drilldown" : "016" }, { - "y" : 77, "name" : "#017", - "drilldown" : "017" + "drilldown" : "017", + "y" : 77 }, { - "y" : 4, + "y" : 6, "name" : "#018", "drilldown" : "018" } ], - "name" : "Perl Weekly Challenge Languages", "colorByPoint" : "true" } ], + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "chart" : { + "type" : "column" + }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + } + } + }, + "legend" : { + "enabled" : "false" + }, + "xAxis" : { + "type" : "category" + }, + "tooltip" : { + "headerFormat" : "<span style=\"font-size:11px\"></span>", + "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>", + "followPointer" : "true" + }, "drilldown" : { "series" : [ { - "id" : "001", "name" : "001", "data" : [ [ @@ -126,7 +145,8 @@ "Blog", 10 ] - ] + ], + "id" : "001" }, { "id" : "002", @@ -148,7 +168,6 @@ }, { "name" : "003", - "id" : "003", "data" : [ [ "Perl 5", @@ -162,9 +181,11 @@ "Blog", 8 ] - ] + ], + "id" : "003" }, { + "id" : "004", "data" : [ [ "Perl 5", @@ -179,10 +200,10 @@ 9 ] ], - "name" : "004", - "id" : "004" + "name" : "004" }, { + "name" : "005", "data" : [ [ "Perl 5", @@ -197,10 +218,10 @@ 11 ] ], - "name" : "005", "id" : "005" }, { + "id" : "006", "data" : [ [ "Perl 5", @@ -215,12 +236,9 @@ 6 ] ], - "id" : "006", "name" : "006" }, { - "name" : "007", - "id" : "007", "data" : [ [ "Perl 5", @@ -234,7 +252,9 @@ "Blog", 8 ] - ] + ], + "name" : "007", + "id" : "007" }, { "data" : [ @@ -255,6 +275,8 @@ "id" : "008" }, { + "id" : "009", + "name" : "009", "data" : [ [ "Perl 5", @@ -268,12 +290,9 @@ "Blog", 11 ] - ], - "name" : "009", - "id" : "009" + ] }, { - "name" : "010", "id" : "010", "data" : [ [ @@ -288,9 +307,11 @@ "Blog", 9 ] - ] + ], + "name" : "010" }, { + "id" : "011", "data" : [ [ "Perl 5", @@ -305,12 +326,10 @@ 8 ] ], - "id" : "011", "name" : "011" }, { "name" : "012", - "id" : "012", "data" : [ [ "Perl 5", @@ -324,9 +343,12 @@ "Blog", 9 ] - ] + ], + "id" : "012" }, { + "id" : "013", + "name" : "013", "data" : [ [ "Perl 5", @@ -340,13 +362,10 @@ "Blog", 11 ] - ], - "id" : "013", - "name" : "013" + ] }, { "id" : "014", - "name" : "014", "data" : [ [ "Perl 5", @@ -360,7 +379,8 @@ "Blog", 13 ] - ] + ], + "name" : "014" }, { "data" : [ @@ -377,10 +397,11 @@ 12 ] ], - "id" : "015", - "name" : "015" + "name" : "015", + "id" : "015" }, { + "name" : "016", "data" : [ [ "Perl 5", @@ -395,11 +416,9 @@ 10 ] ], - "id" : "016", - "name" : "016" + "id" : "016" }, { - "id" : "017", "name" : "017", "data" : [ [ @@ -414,13 +433,14 @@ "Blog", 10 ] - ] + ], + "id" : "017" }, { "data" : [ [ "Perl 5", - 2 + 4 ], [ "Perl 6", @@ -431,32 +451,12 @@ 0 ] ], - "id" : "018", - "name" : "018" + "name" : "018", + "id" : "018" } ] }, - "tooltip" : { - "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>", - "followPointer" : "true", - "headerFormat" : "<span style=\"font-size:11px\"></span>" - }, - "legend" : { - "enabled" : "false" - }, "title" : { "text" : "Perl Weekly Challenge Language" - }, - "plotOptions" : { - "series" : { - "borderWidth" : 0, - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - } - } - }, - "xAxis" : { - "type" : "category" } } diff --git a/stats/pwc-leaders.json b/stats/pwc-leaders.json index 19006df726..96c63cf6ab 100644 --- a/stats/pwc-leaders.json +++ b/stats/pwc-leaders.json @@ -1,371 +1,124 @@ { - "series" : [ - { - "data" : [ - { - "name" : "#1: Joelle Maslak", - "y" : 180, - "drilldown" : "Joelle Maslak" - }, - { - "name" : "#2: Laurent Rosenfeld", - "y" : 176, - "drilldown" : "Laurent Rosenfeld" - }, - { - "drilldown" : "Jaldhar H. Vyas", - "y" : 142, - "name" : "#3: Jaldhar H. Vyas" - }, - { - "drilldown" : "Ruben Westerberg", - "y" : 124, - "name" : "#4: Ruben Westerberg" - }, - { - "name" : "#5: Athanasius", - "y" : 106, - "drilldown" : "Athanasius" - }, - { - "y" : 104, - "name" : "#6: Adam Russell", - "drilldown" : "Adam Russell" - }, - { - "name" : "#7: Arne Sommer", - "y" : 94, - "drilldown" : "Arne Sommer" - }, - { - "y" : 80, - "name" : "#8: Simon Proctor", - "drilldown" : "Simon Proctor" - }, - { - "name" : "#9: E. Choroba", - "y" : 78, - "drilldown" : "E. Choroba" - }, - { - "drilldown" : "Francis Whittle", - "name" : "#10: Francis Whittle", - "y" : 78 - }, - { - "name" : "#11: Kian-Meng Ang", - "y" : 78, - "drilldown" : "Kian-Meng Ang" - }, - { - "y" : 74, - "name" : "#12: Dave Jacoby", - "drilldown" : "Dave Jacoby" - }, - { - "drilldown" : "Andrezgz", - "name" : "#13: Andrezgz", - "y" : 64 - }, - { - "name" : "#14: Gustavo Chaves", - "y" : 64, - "drilldown" : "Gustavo Chaves" - }, - { - "y" : 64, - "name" : "#15: Yozen Hernandez", - "drilldown" : "Yozen Hernandez" - }, - { - "drilldown" : "Feng Chang", - "y" : 60, - "name" : "#16: Feng Chang" - }, - { - "drilldown" : "Daniel Mantovani", - "name" : "#17: Daniel Mantovani", - "y" : 56 - }, - { - "y" : 56, - "name" : "#18: Duncan C. White", - "drilldown" : "Duncan C. White" - }, - { - "drilldown" : "Steven Wilson", - "y" : 54, - "name" : "#19: Steven Wilson" - }, - { - "name" : "#20: Jo Christian Oterhals", - "y" : 48, - "drilldown" : "Jo Christian Oterhals" - }, - { - "y" : 44, - "name" : "#21: Dr James A. Smith", - "drilldown" : "Dr James A. Smith" - }, - { - "y" : 34, - "name" : "#22: Guillermo Ramos", - "drilldown" : "Guillermo Ramos" - }, - { - "drilldown" : "Ozzy", - |
