diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-02-23 21:14:30 +0000 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-02-23 21:14:30 +0000 |
| commit | 89d243142e35f87f8293178516f076e4ece3fe87 (patch) | |
| tree | d82baeee3829aa44cf11342f27c54c774a78bedc | |
| parent | f58e7982f84d76d0b1356bd3393b7af4d4c595da (diff) | |
| download | perlweeklychallenge-club-89d243142e35f87f8293178516f076e4ece3fe87.tar.gz perlweeklychallenge-club-89d243142e35f87f8293178516f076e4ece3fe87.tar.bz2 perlweeklychallenge-club-89d243142e35f87f8293178516f076e4ece3fe87.zip | |
- Added solutions by Colin Crain.
| -rw-r--r-- | challenge-048/colin-crain/perl/ch-1.pl | 130 | ||||
| -rw-r--r-- | challenge-048/colin-crain/perl/ch-2.pl | 64 | ||||
| -rw-r--r-- | challenge-048/colin-crain/raku/ch-1.p6 | 127 | ||||
| -rw-r--r-- | challenge-048/colin-crain/raku/ch-2.p6 | 56 | ||||
| -rw-r--r-- | stats/pwc-current.json | 277 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 58 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 366 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 744 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 46 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 44 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 92 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 32 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 24 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 348 |
14 files changed, 1402 insertions, 1006 deletions
diff --git a/challenge-048/colin-crain/perl/ch-1.pl b/challenge-048/colin-crain/perl/ch-1.pl new file mode 100644 index 0000000000..e7e68883e1 --- /dev/null +++ b/challenge-048/colin-crain/perl/ch-1.pl @@ -0,0 +1,130 @@ +#! /opt/local/bin/perl +# +# ugandan_firing_squad.pl +# +# TASK #1 Survivor +# There are 50 people standing in a circle in position 1 to 50. The +# person standing at position 1 has a shovel. He kills the next +# person i.e. standing at position 2 and pass on the shovel to the +# immediate next i.e. person standing at position 3. Now the person +# at position 3 does the same and it goes on until only one +# survives. +# +# Write a script to find out the survivor. +# +# comments: this is much like PWC 46-2, "Is the Room Open?" albeit with +# a shockingly un-healthy dose of inhumanity and horror. In +# keeping with that spirit, I've changed the title and the supplied weapon +# from sword to shovel. I'm sure there are other options of +# historical precedence to choose from, but for some reason I went +# with Idi Amin. We will not speak to that sordid reference again. +# +# In the Hotel challenge, the second employee merely closes every +# second door, which is tidy and well mannered. In this version we +# have two changes to that alternating pattern, the first that +# "closing" the element removes it from play, the second that the +# process is circular, so that once the last person is reached the +# slaughter continues unabated as the last person is still adjacent +# to the first. As such the processing, the elimination of the +# person to one's immediate side*, continues until there's no one +# remaining for the sole survivor to murder. +# +# * left or rightward implementation of the death-dealing is neither +# specified, nor does it matter. Feel free to infer a political +# metaphor here if you wish. +# +# method: We will create a list of people and number them 0-49. The +# actual naming convention does not matter, we only need a unique +# label to keep track of the individuals as the winnowing +# progresses. Indexing on 0, though, instead of 1 will help us +# later, to reveal patterns in the process. So the result, position +# 36, according to the original spec is postion 37. As stated, we're +# going to go head and keep this change, as it makes the pattern +# easier to see. +# +# When we step through the process defined, the person at a given +# index kills the next person, at index + 1. That person is +# eliminated, and the person beyond moves into the empty slot. The +# shovel is then handed to that person, now at slot index + 1, who +# eyes the person at index + 2. The circular aspect is modeled by +# applying a modulus equal to the number of remaining people in the +# circle at a given moment. That number is always one more than the +# array index, so when we are at the end of the array, index + 1 is +# equal to the size of the array, the index is reset to position 0, +# who becomes the next unlucky target, and the horror continues +# unabated. No rest for the wicked. +# +# In a post-analysis, a loop construct over a range of inputs +# reveals a simple underlying progression based around powers of 2, +# resulting in a practical survival plan: +# +# conclusion: if one ever has the misfortune to be in this terrible +# situation, quickly count the size of the group. Subtract the +# largest smaller power of two from that number and double the +# remainder. Counting from zero, make sure you are in that position +# in line and you will live. (Assuming you wish to survive, of +# course. That ethical morass is beyond the scope of the current +# discussion.) For example, if you have 57 people in the group, +# subtract 32, yielding 25, doubled to 50. Counting from 0, insert +# yourself at position 50. Easy peasy. Now all you have to do is +# kill 5 people. Sorry. +# +# Or at the bare minimum, (remember you are counting from 0!) make +# sure you are in an even-numbered position (that's position, not +# count). Then at least you have a chance, as all the odds are +# always killed. +# +# In a more sobering note, if you are unable to control your +# position in the circle and conclude you are lost, the best play +# may be to strip naked and try and beguile the guards. If +# successfully distracted, or perhaps confused, grab a pistol and +# start shooting. The outcome will likely be the same, however you +# may at least have the satifaction of taking a few of the bastards +# with you. May the odds be in your favor. +# +# 2020 colin crain +## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## + + + +use warnings; +use strict; +use feature ":5.26"; + +## ## ## ## ## MAIN +my $victims = 50; ## I think the last person standing still qualifies as a victim in this + ## psychopath's fever-dream battle royal +my @circle = (0..$victims-1); +say join ", ", @circle; +my $next = 0; + +while ( scalar @circle > 1 ) { + $next = ++$next % scalar @circle; ## find the next target position + splice @circle, $next, 1; ## do the dirty deed and the next person slide into that spot + say join " ", @circle; ## not necessary but makes the progression visible +} + +say "survivor: ", $circle[0], "\n"; + + + +## ## ## ## ## + +## now let's take a moment to look at an overview of the positional standing of +## the last survivor as we vary the starting number of victims in the circle: + +for (2..100) { + printf "%2d --> %d\n", $_, survivor($_); +} + +sub survivor { + my @circle = (0..shift(@_)-1); + my $next = 0; + + while ( scalar @circle > 1 ) { + $next = ++$next % scalar @circle; + splice @circle, $next, 1; + } + + return $circle[0]; +} diff --git a/challenge-048/colin-crain/perl/ch-2.pl b/challenge-048/colin-crain/perl/ch-2.pl new file mode 100644 index 0000000000..035dc615c5 --- /dev/null +++ b/challenge-048/colin-crain/perl/ch-2.pl @@ -0,0 +1,64 @@ +#! /opt/local/bin/perl +# +# palindrome_dates.pl +# +# PWC 48 - TASK #2 +# Palindrome Dates +# Write a script to print all Palindrome Dates between 2000 and 2999. +# The format of date is mmddyyyy. For example, the first one was on +# October 2, 2001 as it is represented as 10022001. +# +# method: constructing a list of palindrome candidates is in itself +# little problem, merely reverse the year as a string and prepend +# it. The primary challenge is evaluating whether this candidate can +# be viewed as a valid mmddyyyy date. This is ascertained by +# limiting 0 < m < 13 and that the day falls within the span of a +# given month, determined by a lookup. +# +# Leap years need not be considered as the date 02-29 reverses to +# 9220, which when considered as a year is outside the 2000-2999 +# range specified. We can see the largest possible day in our given +# span will be the 22nd of any month, as any year past 2299 will +# produce a date of the 32nd of the month and be invalid. In fact, +# the only valid days in the range are the 2nd, the 12th, and the +# 22nd, corresponding to the century components 20xx, 21xx and 22xx. +# All 12 months can be formed by the years after the centuries; +# combining 12 months and 3 possible days = 36 results, which is +# what is observed. +# +# 2020 colin crain +## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## + + + +use warnings; +use strict; +use feature ":5.26"; + +## ## ## ## ## MAIN + + +## palindrome date format is m1m2d1d2y1y2y3y4 <-/-> y4y3y2y1d2d1m2m1 +for ( 2000..2999 ) { + my $pal = (reverse $_) . $_; + if ( validate($pal) ) { + substr($pal, $_, 0, "-") for (2,5); + say $pal; + } +} + +## ## ## ## ## SUBS + +sub validate { +## returns true is the given string represents a valid mmddyyyy date +## does not consider leap years, code checks removed + my $test = shift; + my @mlen = ( 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); + + my ($m, $d) = map {substr($test, $_, 2)} (0, 2); + + return 0 if ( $m > 12 || $m == 0 ); + return 0 if ( $d > $mlen[$m-1] || $d == 0 ); + return 1; + +} diff --git a/challenge-048/colin-crain/raku/ch-1.p6 b/challenge-048/colin-crain/raku/ch-1.p6 new file mode 100644 index 0000000000..7f35e8d276 --- /dev/null +++ b/challenge-048/colin-crain/raku/ch-1.p6 @@ -0,0 +1,127 @@ +use v6.d; + +# +# 48-1-ugandan_firing_squad.raku +# +# TASK #1 Survivor +# There are 50 people standing in a circle in position 1 to 50. The +# person standing at position 1 has a shovel. He kills the next +# person i.e. standing at position 2 and pass on the shovel to the +# immediate next i.e. person standing at position 3. Now the person +# at position 3 does the same and it goes on until only one +# survives. +# +# Write a script to find out the survivor. +# +# comments: this is much like PWC 46-2, "Is the Room Open?" albeit with +# a shockingly un-healthy dose of inhumanity and horror. In +# keeping with that spirit, I've changed the title and the supplied weapon +# from sword to shovel. I'm sure there are other options of +# historical precedence to choose from, but for some reason I went +# with Idi Amin. We will not speak to that sordid reference again. +# +# In the Hotel challenge, the second employee merely closes every +# second door, which is tidy and well mannered. In this version we +# have two changes to that alternating pattern, the first that +# "closing" the element removes it from play, the second that the +# process is circular, so that once the last person is reached the +# slaughter continues unabated as the last person is still adjacent +# to the first. As such the processing, the elimination of the +# person to one's immediate side*, continues until there's no one +# remaining for the sole survivor to murder. +# +# * left or rightward implementation of the death-dealing is neither +# specified, nor does it matter. Feel free to infer a political +# metaphor here if you wish. +# +# method: We will create a list of people and number them 0-49. The +# actual naming convention does not matter, we only need a unique +# label to keep track of the individuals as the winnowing +# progresses. Indexing on 0, though, instead of 1 will help us +# later, to reveal patterns in the process. So the result, position +# 36, according to the original spec is postion 37. As stated, we're +# going to go head and keep this change, as it makes the pattern +# easier to see. +# +# When we step through the process defined, the person at a given +# index kills the next person, at index + 1. That person is +# eliminated, and the person beyond moves into the empty slot. The +# shovel is then handed to that person, now at slot index + 1, who +# eyes the person at index + 2. The circular aspect is modeled by +# applying a modulus equal to the number of remaining people in the +# circle at a given moment. That number is always one more than the +# array index, so when we are at the end of the array, index + 1 is +# equal to the size of the array, the index is reset to position 0, +# who becomes the next unlucky target, and the horror continues +# unabated. No rest for the wicked. +# +# In the post-analysis, a loop construct over a range +# of inputs reveals a simple underlying progression based around +# powers of 2, resulting in a practical survival plan: +# +# conclusion: if one ever has the misfortune to be in this terrible +# situation, quickly count the size of the group. Subtract the +# largest smaller power of two from that number and double the +# remainder. Counting from zero, make sure you are in that position +# in line and you will live. (Assuming you wish to survive, of +# course. That ethical morass is beyond the scope of the current +# discussion.) For example, if you have 57 people in the group, +# subtract 32, yielding 25, doubled to 50. Counting from 0, insert +# yourself at position 50. Easy peasy. Now all you have to do is +# kill 5 people. Sorry. +# +# Or at the bare minimum, (remember you are counting from 0!) make +# sure you are in an even-numbered position (that's position, not +# count). Then at least you have a chance, as all the odds are +# always killed. +# +# In a more sobering note, if you are unable to control your +# position in the circle and conclude you are lost, the best play +# may be to strip naked and try and beguile the guards. If +# successfully distracted, or perhaps confused, grab a pistol and +# start shooting. The outcome will likely be the same, however you +# may at least have the satifaction of taking a few of the bastards +# with you. May the odds be in your favor. +# +# 2020 colin crain +## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## + +sub MAIN (Int:D $victims where {$victims > 0} = 50) { + + my @circle = 0 .. $victims - 1; + @circle.join(" ").say; ## just a look at the starting state + my $next = 0; + + while ( @circle.elems > 1 ) { + $next = ++$next % @circle.elems; ## advance the targeting + @circle.splice($next, 1); ## remove the unlucky victim nd move in the next + @circle.join( " " ).say; ## not strictly necessary but allows us to observe the winnowing + } + + say "survivor: " ~ @circle[0] ~ "\n"; ## the sole survivor is the only remaining element in the array + + say "meta-analysis by size of stating circle:\n"; + say "size | survivor"; + say "-----+----------"; + printf "%3d --> %d\n", $_, survivor($_) for (2..100); + +} + +## ## ## ## ## + +## now let's take a moment to look at an overview of the positional standing of +## the last survivor as we vary the starting number of victims in the circle: + +sub survivor (Int:D $size where {$size > 0}){ + my @circle = (0..$size-1); + my $next = 0; + + while ( @circle.elems > 1 ) { + $next = ++$next % @circle.elems; + @circle.splice($next, 1); + } + + return @circle[0]; +} + + diff --git a/challenge-048/colin-crain/raku/ch-2.p6 b/challenge-048/colin-crain/raku/ch-2.p6 new file mode 100644 index 0000000000..2efea273dd --- /dev/null +++ b/challenge-048/colin-crain/raku/ch-2.p6 @@ -0,0 +1,56 @@ +use v6.d; + +# +# 48-2-palindrome_dates.raku +# +# PWC 48 - TASK #2 +# Palindrome Dates +# Write a script to print all Palindrome Dates between 2000 and 2999. +# The format of date is mmddyyyy. For example, the first one was on +# October 2, 2001 as it is represented as 10022001. + +# method: constructing a list of palindrome candidates is in itself +# little problem, merely reverse the year as a string and prepend +# it. The primary challenge is evaluating whether this candidate can +# be viewed as a valid mmddyyyy date. This is ascertained by +# limiting 0 < m < 13 and that the day falls within the span of a +# given month, determined by a lookup. +# +# Leap years need not be considered as the date 02-29 reverses to +# 9220, which when considered as a year is outside the 2000-2999 +# range specified. We can see the largest possible day in our given +# span will be the 22nd of any month, as any year past 2299 will +# produce a date of the 32nd of the month and be invalid. In fact, +# the only valid days in the range are the 2nd, the 12th, and the +# 22nd, corresponding to the century components 20xx, 21xx and 22xx. +# All 12 months can be formed by the years after the centuries; +# combining 12 months and 3 possible days = 36 results, which is +# what is observed. +# +# +# 2020 colin crain +## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## + +sub MAIN () { + + ## make a list of valid candidates + my @candidates = (2000..2999).map({$_.flip ~ $_}).grep({validate($_)}); + + ## a little prettification and output + .map({S/^(..)(..)/$0-$1-/}).put for @candidates; + +} + +sub validate ($candidate) { +## returns true is the given string represents a valid mmddyyyy date +## does not consider leap years, in this case they are logically irrelevant + my @mlen = 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31; + my ($m, $d ) = $candidate.comb(2); + + return $m > 12 + || $m == 0 + || $d > @mlen[$m-1] + || $d == 0 ?? 0 !! 1; +} + + diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 8fb76a6ee3..2cf0ced136 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,4 +1,30 @@ { + "chart" : { + "type" : "column" + }, + "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 + }, + "plotOptions" : { + "series" : { + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + }, + "borderWidth" : 0 + } + }, + "legend" : { + "enabled" : 0 + }, + "title" : { + "text" : "Perl Weekly Challenge - 048" + }, + "xAxis" : { + "type" : "category" + }, "drilldown" : { "series" : [ { @@ -22,8 +48,8 @@ 2 ] ], - "name" : "Alicia Bielsa", - "id" : "Alicia Bielsa" + "id" : "Alicia Bielsa", + "name" : "Alicia Bielsa" }, { "name" : "Andrezgz", @@ -46,32 +72,36 @@ 1 ] ], - "name" : "Arne Sommer", - "id" : "Arne Sommer" + "id" : "Arne Sommer", + "name" : "Arne Sommer" }, { "id" : "Cheok-Yin Fung", - "name" : "Cheok-Yin Fung", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Cheok-Yin Fung" }, { - "id" : "Dave Cross", + "name" : "Colin Crain", "data" : [ [ "Perl", 2 + ], + [ + "Raku", + 2 ] ], - "name" : "Dave Cross" + "id" : "Colin Crain" }, { - "id" : "Dave Jacoby", - "name" : "Dave Jacoby", + "name" : "Dave Cross", + "id" : "Dave Cross", "data" : [ [ "Perl", @@ -80,17 +110,26 @@ ] }, { + "id" : "Dave Jacoby", "data" : [ [ "Perl", 2 ] ], - "name" : "Duane Powell", - "id" : "Duane Powell" + "name" : "Dave Jacoby" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Duane Powell", + "name" : "Duane Powell" }, { - "id" : "E. Choroba", "name" : "E. Choroba", "data" : [ [ @@ -101,17 +140,18 @@ "Blog", 1 ] - ] + ], + "id" : "E. Choroba" }, { + "name" : "Ian Rifkin", "id" : "Ian Rifkin", "data" : [ [ "Perl", 2 ] - ], - "name" : "Ian Rifkin" + ] }, { "name" : "Javier Luque", @@ -132,14 +172,14 @@ "id" : "Javier Luque" }, { - "name" : "Jen Guerra", "data" : [ [ "Perl", 2 ] ], - "id" : "Jen Guerra" + "id" : "Jen Guerra", + "name" : "Jen Guerra" }, { "id" : "Jonas Berlin", @@ -152,17 +192,18 @@ "name" : "Jonas Berlin" }, { + "name" : "Kevin Colyer", + "id" : "Kevin Colyer", "data" : [ [ "Raku", 2 ] - ], - "name" : "Kevin Colyer", - "id" : "Kevin Colyer" + ] }, { "name" : "Laurent Rosenfeld", + "id" : "Laurent Rosenfeld", "data" : [ [ "Perl", @@ -176,8 +217,7 @@ "Blog", 1 ] - ], - "id" : "Laurent Rosenfeld" + ] }, { "data" : [ @@ -186,12 +226,11 @@ 2 ] ], - "name" : "Lubos Kolouch", - "id" : "Lubos Kolouch" + "id" : "Lubos Kolouch", + "name" : "Lubos Kolouch" }, { "id" : "Luca Ferrari", - "name" : "Luca Ferrari", "data" : [ [ "Raku", @@ -201,11 +240,12 @@ "Blog", 2 ] - ] + ], + "name" : "Luca Ferrari" }, { - "id" : "Mark Anderson", "name" : "Mark Anderson", + "id" : "Mark Anderson", "data" : [ [ "Raku", @@ -214,8 +254,8 @@ ] }, { - "id" : "Markus Holzer", "name" : "Markus Holzer", + "id" : "Markus Holzer", "data" : [ [ "Perl", @@ -228,6 +268,7 @@ ] }, { + "name" : "Mohammad S Anwar", "id" : "Mohammad S Anwar", "data" : [ [ @@ -242,8 +283,7 @@ "Blog", 1 ] - ], - "name" : "Mohammad S Anwar" + ] }, { "id" : "Noud Aldenhoven", @@ -256,26 +296,27 @@ "name" : "Noud Aldenhoven" }, { - "name" : "Peter Scott", "data" : [ [ "Perl", 1 ] ], - "id" : "Peter Scott" + "id" : "Peter Scott", + "name" : "Peter Scott" }, { + "name" : "Phillip Harris", + "id" : "Phillip Harris", "data" : [ [ "Perl", 2 ] - ], - "name" : "Phillip Harris", - "id" : "Phillip Harris" + ] }, { + "name" : "Roger Bell West", "id" : "Roger Bell West", "data" : [ [ @@ -286,10 +327,10 @@ "Raku", 2 ] - ], - "name" : "Roger Bell West" + ] }, { + "name" : "Ruben Westerberg", "data" : [ [ "Perl", @@ -300,7 +341,6 @@ 2 ] ], - "name" : "Ruben Westerberg", "id" : "Ruben Westerberg" }, { @@ -318,21 +358,22 @@ 2 ] ], - "name" : "Ryan Thompson", - "id" : "Ryan Thompson" + "id" : "Ryan Thompson", + "name" : "Ryan Thompson" }, { - "id" : "Saif Ahmed", "data" : [ [ "Perl", 2 ] ], + "id" : "Saif Ahmed", "name" : "Saif Ahmed" }, { "name" : "Simon Proctor", + "id" : "Simon Proctor", "data" : [ [ "Raku", @@ -342,21 +383,19 @@ "Blog", 1 ] - ], - "id" : "Simon Proctor" + ] }, { + "name" : "Steven Wilson", "id" : "Steven Wilson", "data" : [ [ "Perl", 2 ] - ], - "name" : "Steven Wilson" + ] }, { - "id" : "Ulrich Rieke", "name" : "Ulrich Rieke", "data" : [ [ @@ -367,77 +406,88 @@ "Raku", 1 ] - ] + ], + "id" : "Ulrich Rieke" }, { - "id" : "User Person", + "name" : "User Person", "data" : [ [ "Perl", 2 ] ], - "name" : "User Person" + "id" : "User Person" }, { - "id" : "Walt Mankowski", "name" : "Walt Mankowski", "data" : [ [ "Perl", 2 ] - ] + ], + "id" : "Walt Mankowski" }, { - "id" : "Wanderdoc", "name" : "Wanderdoc", "data" : [ [ "Perl", 2 ] - ] + ], + "id" : "Wanderdoc" } ] }, + "subtitle" : { + "text" : "[Champions: 34] Last updated at 2020-02-23 21:14:00 GMT" + }, "series" : [ { + "name" : "Perl Weekly Challenge - 048", + "colorByPoint" : 1, "data" : [ { - "drilldown" : "Alexander Karelas", "y" : 2, + "drilldown" : "Alexander Karelas", "name" : "Alexander Karelas" }, { - "drilldown" : "Alicia Bielsa", "name" : "Alicia Bielsa", + "drilldown" : "Alicia Bielsa", "y" : 4 }, { "y" : 2, - "name" : "Andrezgz", - "drilldown" : "Andrezgz" + "drilldown" : "Andrezgz", + "name" : "Andrezgz" }, { - "drilldown" : "Arne Sommer", "y" : 3, + "drilldown" : "Arne Sommer", "name" : "Arne Sommer" }, { - "drilldown" : "Cheok-Yin Fung", "y" : 2, + "drilldown" : "Cheok-Yin Fung", "name" : "Cheok-Yin Fung" }, { - "y" : 2, + "name" : "Colin Crain", + "drilldown" : "Colin Crain", + "y" : 4 + }, + { "name" : "Dave Cross", + "y" : 2, "drilldown" : "Dave Cross" }, { - "name" : "Dave Jacoby", "y" : 2, - "drilldown" : "Dave Jacoby" + "drilldown" : "Dave Jacoby", + "name" : "Dave Jacoby" }, { "drilldown" : "Duane Powell", @@ -451,18 +501,18 @@ }, { "name" : "Ian Rifkin", - "y" : 2, - "drilldown" : "Ian Rifkin" + "drilldown" : "Ian Rifkin", + "y" : 2 }, { - "name" : "Javier Luque", + "drilldown" : "Javier Luque", "y" : 5, - "drilldown" : "Javier Luque" + "name" : "Javier Luque" }, { + "name" : "Jen Guerra", "drilldown" : "Jen Guerra", - "y" : 2, - "name" : "Jen Guerra" + "y" : 2 }, { "drilldown" : "Jonas Berlin", @@ -475,8 +525,8 @@ "name" : "Kevin Colyer" }, { - "y" : 5, "name" : "Laurent Rosenfeld", + "y" : 5, "drilldown" : "Laurent Rosenfeld" }, { @@ -485,54 +535,54 @@ "name" : "Lubos Kolouch" }, { + "y" : 4, "drilldown" : "Luca Ferrari", - "name" : "Luca Ferrari", - "y" : 4 + "name" : "Luca Ferrari" }, { - "drilldown" : "Mark Anderson", "y" : 2, + "drilldown" : "Mark Anderson", "name" : "Mark Anderson" }, { - "drilldown" : "Markus Holzer", + "name" : "Markus Holzer", "y" : 3, - "name" : "Markus Holzer" + "drilldown" : "Markus Holzer" }, { - "drilldown" : "Mohammad S Anwar", + "name" : "Mohammad S Anwar", "y" : 5, - "name" : "Mohammad S Anwar" + "drilldown" : "Mohammad S Anwar" }, { - "drilldown" : "Noud Aldenhoven", + "name" : "Noud Aldenhoven", "y" : 2, - "name" : "Noud Aldenhoven" + "drilldown" : "Noud Aldenhoven" |
