diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-10-21 01:52:23 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-10-21 01:52:23 +0100 |
| commit | eee451d6388bd09876dc254316b05376d94a0176 (patch) | |
| tree | be802d523121dd6d56e89399e87305075cce3e5f | |
| parent | 483a052b68d2e62f1d497706c28b3711ba06d7d6 (diff) | |
| download | perlweeklychallenge-club-eee451d6388bd09876dc254316b05376d94a0176.tar.gz perlweeklychallenge-club-eee451d6388bd09876dc254316b05376d94a0176.tar.bz2 perlweeklychallenge-club-eee451d6388bd09876dc254316b05376d94a0176.zip | |
- Added solutions by Colin Crain.
| -rw-r--r-- | challenge-030/colin-crain/perl5/ch-1.pl | 157 | ||||
| -rw-r--r-- | challenge-030/colin-crain/perl5/ch-2.pl | 138 | ||||
| -rw-r--r-- | stats/pwc-current.json | 641 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 66 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 468 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 548 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 124 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 76 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 102 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 28 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 30 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 308 |
12 files changed, 1498 insertions, 1188 deletions
diff --git a/challenge-030/colin-crain/perl5/ch-1.pl b/challenge-030/colin-crain/perl5/ch-1.pl new file mode 100644 index 0000000000..c980b29dd9 --- /dev/null +++ b/challenge-030/colin-crain/perl5/ch-1.pl @@ -0,0 +1,157 @@ +#! /opt/local/bin/perl +# +# sunday_xmas.pl +# +# Task #1 +# Write a script to list dates for Sunday Christmas between 2019 and 2100. For +# example, 25 Dec 2022 is Sunday. +# +# methods: +# The creation of algorithms to calculate the day of the week as a mathematical excursion +# long predates any computer science. As such, there had been much work to draw on for this task. +# In the simplest way, there are numerous date/time modules available that when given a date will simply spit out the +# day of the week if asked. My preferred goto here is Date::Manip::Date and we start with that, looping through the years +# 2019-2100 and checking December 25 to see whether it's a Sunday and noting if it is. +# +# A core strength of perl is that no matter what you may want to do, odd are someone somewhere has likely wished at some time +# to do something similar, and that code is available on CPAN. Such reuse should never be considered "cheating" and +# by all rights we have solved the task and should move on. But that's a bit boring and it's still only Monday. +# +# Instead we'll avoid letting a module do the work for us and look at the algorithms themselves +# +# I implement three algoritms, that basically work the same way, differing in how they create a series of monthly +# offsets. I liked Tomohiko Sakamoto encoding the series in a character string the best, which makes a lot more sense +# to do in C than Perl, but a map serves us well here. +# +# each method is annotated in the subroutine. +# +# results: +# Xmas day 2024 is a Sunday +# Xmas day 2029 is a Sunday +# Xmas day 2035 is a Sunday +# Xmas day 2046 is a Sunday +# Xmas day 2052 is a Sunday +# Xmas day 2057 is a Sunday +# Xmas day 2063 is a Sunday +# Xmas day 2074 is a Sunday +# Xmas day 2080 is a Sunday +# Xmas day 2085 is a Sunday +# Xmas day 2091 is a Sunday +# +# colin crain +## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## + +use Date::Manip::Date; + + +use warnings; +use strict; +use feature ":5.26"; + +use POSIX qw( floor ); ## to translate Gauss as exactly as possible + +## ## ## ## ## MAIN + +my %decode = (0 => 'Sunday', + 1 => 'Monday', + 2 => 'Tuesday', + 3 => 'Wednesday', + 4 => 'Thursday', + 5 => 'Friday', + 6 => 'Saturday' ) ; +my $day = 25; +my $month = 2; + +for my $year ( 2019..2100 ) { + + ## these all work and produce the same result + my $dm_dow = date_manip($year, $month, $day); + my $nl_dow = gauss_nolookup($year, $month, $day); + my $sa_dow = sakamoto($year, $month, $day); + my $kc_dow = keith_craver($year, $month, $day); + + if ($sa_dow == 0) { + say "Xmas day $year is a Sunday"; + } + +} + +## METHOD 1: +## using Date::Manip +## Date::Manip returns a numeric value 1 = Monday .. 7 = Sunday so we mod 7 to make it 0..6 +## just to make our methods consistant + +sub date_manip { + my ($year, $month, $day) = @_; + my $date = new Date::Manip::Date; + $date->parse("$year/$month/$day"); + return ($date->printf("%w")) % 7; +} + + +## METHOD 2: +## variant of Gauss's algorithm, +## using an algebraic function to create a series of monthly offsets: +## [2 5 0 3 5 1 4 6 2 4 0 3] +## instead of a lookup table, for the formula: +## w = ( d + floor(2.6m-0.2) + yy + floor(yy/4) + floor(c/4) - 2c) % 7 +## +## returns a numeric value 0 = Sunday .. 6 = Saturday + +sub gauss_nolookup { + my ($year, $month, $day) = @_; + $year -= 1 if ($month < 3); + my $m = ( ($month + 9) % 12 ) + 1; ## shifted month, jan = 11, feb = 12, mar = 1 .. dec = 10 + ## we need to first subtract and then later add 1 again to get it + ## to count from 1..12 instead of 0.11 + my $yy = $year % 100; ## two digit year + my $century = floor( $year / 100 ); + return ( $day + floor((2.6 * $m) - 0.2) + $yy + floor($yy/4) + floor($century/4) - (2 * $century) ) % 7; +} + + +## METHOD 3: +## a function posted by +## Tomohiko Sakamoto on the usenet newsgroup comp.lang.c 12/14/92: + + # Please try this: + # /* + # * 1 <= m <= 12, y > 1752 (in the U.K.) + # */ + # dayofweek(y, m, d) + # { + # y -= m < 3; + # return (y + y/4 - y/100 + y/400 + "-bed=pen+mad."[m] + d) % 7; + # } + # + # -- + # T. Sakamoto + +## note that "-bed=pen+mad."[m] indexes the char* to pull out a char as an ascii int, mod 7 this creates the series of monthly offsets +## [ 3 0 3 2 5 0 3 5 1 4 6 2 4 ] +## in perl this would be: +## map {ord($_)%7} (split //, "-bed=pen+mad.") +## which makes the array +## [ 3, 0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4 ] +## which you may notice has 13 indices! But that was his algorithm as written. +## To stay with Sakamoto we leave the modulo operation until the end. +## +## returns a numeric value 0 = Sunday .. 6 = Saturday + +sub sakamoto { + my ($year, $month, $day) = @_; + $year -= 1 if ($month < 3); + return ($year + int($year/4) - int($year/100) + int($year/400) + ( map {ord($_)} (split //, "-bed=pen+mad.") )[$month] + $day) % 7; +} + +## Method #4: +## Michael Keith and Tom Craver (1990) +# (d+=m<3?y--:y-2,23*m/9+d+4+y/4-y/100+y/400)%7 +## +## returns a numeric value 0 = Sunday .. 6 = Saturday + +sub keith_craver { + my ($year, $month, $day) = @_; + $day += ($month < 3) ? $year-- : $year - 2; + return ( int( 23*$month/9 ) + $day + 4 + int( $year/4 ) - int( $year/100 ) + int( $year/400 ) ) % 7; +} diff --git a/challenge-030/colin-crain/perl5/ch-2.pl b/challenge-030/colin-crain/perl5/ch-2.pl new file mode 100644 index 0000000000..540d3b6451 --- /dev/null +++ b/challenge-030/colin-crain/perl5/ch-2.pl @@ -0,0 +1,138 @@ +#! /opt/local/bin/perl +# +# series_triplets.pl +# +# Task #2 +# Write a script to print all possible series of 3 numbers, where in each series +# at least one of the number is even and sum of the three numbers is always 12. +# For example, 3,4,5. +# +# method: ok, first of all as written, literally, there are, trivially, an +# infinite number of triples: +# [ 3-n, 4, 5+n] for n subset Z, n = ( 0 --> infinity) +# and an infinite set of variations on this basic generator where the +# series sums to 12 and one item is even. If we allow Real numbers, which are of course numbers +# too, things really begin to blow up. So on the face of it, this +# challenge cannot be completed, because an infinite number of generative +# combinations of infinite sets of triples cannot be printed. +# +# So if we want to solve a problem that can in fact be solved, or more +# specifically can be printed, one way out would be to include the +# specifier 'Natural' in the question, limiting us to the set of Natural +# numbers. Allowing Z, the integers, and with it the negative numbers, in +# turn allows one to add +1 and -1 to a pair in any valid set of triples +# and we have an infinite set of answers again. So it must be Naturals. +# Thus we get "...print all possible series of 3 Natural numbers..." and +# the challenge is once again manageable. We'll go with that, with N(0) +# rather than N(1), that is to say the set of cardinal numbers starting at +# 0, rather than 1. Because why not, 0 is quite even, and it allows a few +# more possibilities. +# +# With this change, the problem is reduced to one of combinatorics, and the usual +# related conditional questions then arise: +# - Do we allow repeat elements? +# - Do we count permutations of the same elements, or, does ordering matter? +# +# The challenge requested 'series' of numbers, which is normally +# considered the sum of a sequence, which in turn is not the same as a +# set. So the sequence [3, 4, 5] is not the same as [5, 4, 3] and thus +# these would be two distinct series that each sum to 12 and satisfy the +# conditions. It's not clear whether this was the intent of the author. +# It's also a little repetitive in the data produced, as each valid triple +# adds all permutations of those values to the result. However basic set +# theory only maintains the concept of inclusivity rather than ordering in +# a set, so the set [3,3,6] is the same as the set [3,6] and the set +# [6,6,3] and any concepts of ordering the elements is an extension of +# this basic theory. If we consider a series a progressive sequence, with +# a delta between values drawn from N(0), we end up allowing repetition +# (d=0) and ascending order, so any valid triplet is only presented once. +# This may or may not be the data requested, but is quite a bit simpler. +# +# In the end perhaps it is best to provide all these results, while +# acknowledging there are still additional ways to interpret the question. +# +# As a further note, in a given set of 3 numbers [a,b,c], either ordered +# or unordered, the only case where no number a, b or c is even, as +# specified, is where all a, b and c are odd. It is then strightforward to +# prove that the sum of any three odd numbers is also itself odd, because +# the sum of two odd numbers is even, and the sum of one even and one odd +# number is odd. The number 12 is not odd, thus the criteion "at least one +# of the number is even" is superfluous and need not be tested. +# +# Our final specification(s) can be, possibly: +# - all possible sequences of 3 Natural numbers where the sum of the three numbers is 12. (91 combinations) +# or, +# - all possible sets of 3 Natural numbers where the sum of the three numbers is 12. (72 combinations) +# or maybe, +# - all possible ascending ordered sets of 3 Natural numbers where the sum of the three numbers is 12. (19 combinations) +# +# +# +# 2019 colin crain +## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## + + + +use warnings; +use strict; +use feature ":5.26"; + +## ## ## ## ## MAIN + + +## it's only maximally 13^3 combinations, and we can just look at them all +my ($a, $b, $c); +my $count; + +## here we calculate every valid sequence, including permutations +say "sequences (allowing repetition): "; +$count = 0; +for $a ( 0..12 ) { + for $b ( 0..12 ) { + next if ($a + $b > 12); + for $c ( 0..12 ) { + next unless ($a + $b + $c == 12); + say "[ $a, $b, $c ]"; + $count++; + } + } +} +say "total $count combinations\n\n"; + +say "-" x 12; + +## here we calculate the triples without allowing repetition +say "sets (no repetition): "; +$count = 0; +for $a ( 0..12 ) { + for $b ( 0..12 ) { + next if ($a + $b > 12); + next if ($a == $b); + for $c ( 0..12 ) { + next unless ($a + $b + $c == 12); + next if ( $c == $a || $c == $b); + my @s = sort ($a, $b, $c); + say "[ $a, $b, $c ]"; + $count++; + } + } +} +say "total $count combinations\n\n"; + +say "-" x 12; + +## and again allowing repetitions but no permutation by enforcing an ascending order. +say "ascending ordered sets (no additional permutations): "; +$count = 0; +for $a ( 0..12 ) { + for $b ( $a..12 ) { + next if ($a + $b > 12); + for $c ( $b..12 ) { + next unless ($a + $b + $c == 12); + say "[ $a, $b, $c ]"; + $count++; + } + } +} +say "total $count combinations\n\n"; + diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 7dbeeda998..1f8d643578 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,25 +1,262 @@ { + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + } + } + }, + "series" : [ + { + "colorByPoint" : 1, + "name" : "Perl Weekly Challenge - 030", + "data" : [ + { + "name" : "Adam Russell", + "drilldown" : "Adam Russell", + "y" : 3 + }, + { + "drilldown" : "Andrezgz", + "y" : 2, + "name" : "Andrezgz" + }, + { + "name" : "Anton Fedotov", + "drilldown" : "Anton Fedotov", + "y" : 2 + }, + { + "y" : 3, + "drilldown" : "Arne Sommer", + "name" : "Arne Sommer" + }, + { + "name" : "Athanasius", + "drilldown" : "Athanasius", + "y" : 4 + }, + { + "drilldown" : "Burkhard Nickels", + "y" : 2, + "name" : "Burkhard Nickels" + }, + { + "name" : "Colin Crain", + "y" : 2, + "drilldown" : "Colin Crain" + }, + { + "name" : "Creewick", + "drilldown" : "Creewick", + "y" : 2 + }, + { + "y" : 4, + "drilldown" : "Daniel Mita", + "name" : "Daniel Mita" + }, + { + "name" : "Darren Bottin", + "drilldown" : "Darren Bottin", + "y" : 2 + }, + { + "name" : "Dave Cross", + "y" : 2, + "drilldown" : "Dave Cross" + }, + { + "name" : "Dave Jacoby", + "drilldown" : "Dave Jacoby", + "y" : 3 + }, + { + "y" : 2, + "drilldown" : "Dr James A. Smith", + "name" : "Dr James A. Smith" + }, + { + "name" : "Duane Powell", + "drilldown" : "Duane Powell", + "y" : 2 + }, + { + "y" : 2, + "drilldown" : "Duncan C. White", + "name" : "Duncan C. White" + }, + { + "name" : "E. Choroba", + "drilldown" : "E. Choroba", + "y" : 3 + }, + { + "name" : "Izifresh", + "drilldown" : "Izifresh", + "y" : 2 + }, + { + "y" : 5, + "drilldown" : "Jaldhar H. Vyas", + "name" : "Jaldhar H. Vyas" + }, + { + "name" : "Joelle Maslak", + "y" : 4, + "drilldown" : "Joelle Maslak" + }, + { + "y" : 2, + "drilldown" : "Kevin Colyer", + "name" : "Kevin Colyer" + }, + { + "name" : "Kivanc Yazan", + "drilldown" : "Kivanc Yazan", + "y" : 2 + }, + { + "name" : "Lars Thegler", + "drilldown" : "Lars Thegler", + "y" : 2 + }, + { + "drilldown" : "Laurent Rosenfeld", + "y" : 5, + "name" : "Laurent Rosenfeld" + }, + { + "name" : "Leoltron", + "y" : 2, + "drilldown" : "Leoltron" + }, + { + "drilldown" : "Lubos Kolouch", + "y" : 2, + "name" : "Lubos Kolouch" + }, + { + "name" : "Mark Senn", + "y" : 2, + "drilldown" : "Mark Senn" + }, + { + "name" : "Markus Holzer", + "drilldown" : "Markus Holzer", + "y" : 2 + }, + { + "name" : "Maxim Kolodyazhny", + "y" : 2, + "drilldown" : "Maxim Kolodyazhny" + }, + { + "name" : "Nazareno Delucca", + "y" : 2, + "drilldown" : "Nazareno Delucca" + }, + { + "name" : "Noud", + "y" : 2, + "drilldown" : "Noud" + }, + { + "y" : 1, + "drilldown" : "Ozzy", + "name" : "Ozzy" + }, + { + "drilldown" : "Pete Houston", + "y" : 2, + "name" : "Pete Houston" + }, + { + "drilldown" : "Rage311", + "y" : 2, + "name" : "Rage311" + }, + { + "y" : 5, + "drilldown" : "Roger Bell West", + "name" : "Roger Bell West" + }, + { + "name" : "Ruben Westerberg", + "drilldown" : "Ruben Westerberg", + "y" : 4 + }, + { + "y" : 2, + "drilldown" : "Simon Proctor", + "name" : "Simon Proctor" + }, + { + "name" : "Steven Wilson", + "y" : 2, + "drilldown" : "Steven Wilson" + }, + { + "name" : "Svetlana Nesterova", + "drilldown" : "Svetlana Nesterova", + "y" : 2 + }, + { + "name" : "Tester R59", + "drilldown" : "Tester R59", + "y" : 2 + }, + { + "y" : 2, + "drilldown" : "Trenton Langer", + "name" : "Trenton Langer" + }, + { + "drilldown" : "Ulrich Rieke", + "y" : 3, + "name" : "Ulrich Rieke" + }, + { + "drilldown" : "Vyacheslav Volgarev", + "y" : 2, + "name" : "Vyacheslav Volgarev" + }, + { + "name" : "Yet Ebreo", + "y" : 4, + "drilldown" : "Yet Ebreo" + } + ] + } + ], "chart" : { "type" : "column" }, - "xAxis" : { - "type" : "category" - }, "title" : { "text" : "Perl Weekly Challenge - 030" }, - "plotOptions" : { - "series" : { - "borderWidth" : 0, - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - } + "yAxis" : { + "title" : { + "text" : "Total Solutions" } }, + "subtitle" : { + "text" : "[Champions: 43] Last updated at 2019-10-21 00:51:59 GMT" + }, + "tooltip" : { + "followPointer" : 1, + "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/>" + }, + "legend" : { + "enabled" : 0 + }, "drilldown" : { "series" : [ { + "name" : "Adam Russell", "id" : "Adam Russell", "data" : [ [ @@ -30,28 +267,27 @@ "Blog", 1 ] - ], - "name" : "Adam Russell" + ] }, { - "name" : "Andrezgz", - "id" : "Andrezgz", "data" : [ [ "Perl 5", 2 ] - ] + ], + "id" : "Andrezgz", + "name" : "Andrezgz" }, { - "name" : "Anton Fedotov", - "id" : "Anton Fedotov", "data" : [ [ "Perl 5", 2 ] - ] + ], + "id" : "Anton Fedotov", + "name" : "Anton Fedotov" }, { "name" : "Arne Sommer", @@ -68,6 +304,7 @@ ] }, { + "id" : "Athanasius", "data" : [ [ "Perl 5", @@ -78,32 +315,39 @@ 2 ] ], - "id" : "Athanasius", "name" : "Athanasius" }, { + "name" : "Burkhard Nickels", "id" : "Burkhard Nickels", "data" : [ [ "Perl 5", 2 ] - ], - "name" : "Burkhard Nickels" + ] }, { + "name" : "Colin Crain", + "id" : "Colin Crain", "data" : [ [ "Perl 5", 2 ] - ], + ] + }, + { + "name" : "Creewick", "id" : "Creewick", - "name" : "Creewick" + "data" : [ + [ + "Perl 5", + 2 + ] + ] }, { - "name" : "Daniel Mita", - "id" : "Daniel Mita", "data" : [ [ "Perl 5", @@ -113,31 +357,31 @@ "Perl 6", 2 ] - ] + ], + "id" : "Daniel Mita", + "name" : "Daniel Mita" }, { - "id" : "Darren Bottin", "data" : [ [ "Perl 5", 2 ] ], + "id" : "Darren Bottin", "name" : "Darren Bottin" }, { + "name" : "Dave Cross", "id" : "Dave Cross", "data" : [ [ "Perl 5", 2 ] - ], - "name" : "Dave Cross" + ] }, { - "name" : "Dave Jacoby", - "id" : "Dave Jacoby", "data" : [ [ "Perl 5", @@ -147,27 +391,29 @@ "Blog", 1 ] - ] + ], + "id" : "Dave Jacoby", + "name" : "Dave Jacoby" }, { + "id" : "Dr James A. Smith", "data" : [ [ "Perl 5", 2 ] ], - "id" : "Dr James A. Smith", "name" : "Dr James A. Smith" }, { - "name" : "Duane Powell", "id" : "Duane Powell", "data" : [ [ "Perl 5", 2 ] - ] + ], + "name" : "Duane Powell" }, { "name" : "Duncan C. White", @@ -180,8 +426,6 @@ ] }, { - "name" : "E. Choroba", - "id" : "E. Choroba", "data" : [ [ "Perl 5", @@ -191,19 +435,22 @@ "Blog", 1 ] - ] + ], + "id" : "E. Choroba", + "name" : "E. Choroba" }, { - "name" : "Izifresh", + "id" : "Izifresh", "data" : [ [ "Perl 5", 2 ] ], - "id" : "Izifresh" + "name" : "Izifresh" }, { + "name" : "Jaldhar H. Vyas", "data" : [ [ "Perl 5", @@ -218,11 +465,10 @@ 1 ] ], - "id" : "Jaldhar H. Vyas", - "name" : "Jaldhar H. Vyas" + "id" : "Jaldhar H. Vyas" }, { - "name" : "Joelle Maslak", + "id" : "Joelle Maslak", "data" : [ [ "Perl 5", @@ -233,26 +479,26 @@ 2 ] ], - "id" : "Joelle Maslak" + "name" : "Joelle Maslak" }, { - "name" : "Kevin Colyer", + "id" : "Kevin Colyer", "data" : [ [ "Perl 6", 2 ] ], - "id" : "Kevin Colyer" + "name" : "Kevin Colyer" }, { + "id" : "Kivanc Yazan", "data" : [ [ "Perl 5", 2 ] ], - "id" : "Kivanc Yazan", "name" : "Kivanc Yazan" }, { @@ -266,7 +512,7 @@ "id" : "Lars Thegler" }, { - "id" : "Laurent Rosenfeld", + "name" : "Laurent Rosenfeld", "data" : [ [ "Perl 5", @@ -281,17 +527,17 @@ 1 ] ], - "name" : "Laurent Rosenfeld" + "id" : "Laurent Rosenfeld" }, { + "name" : "Leoltron", "data" : [ [ "Perl 5", 2 ] ], - "id" : "Leoltron", - "name" : "Leoltron" + "id" : "Leoltron" }, { "name" : "Lubos Kolouch", @@ -314,14 +560,14 @@ "name" : "Mark Senn" }, { + "name" : "Markus Holzer", + "id" : "Markus Holzer", "data" : [ [ "Perl 6", 2 ] - ], - "id" : "Markus Holzer", - "name" : "Markus Holzer" + ] }, { "id" : "Maxim Kolodyazhny", @@ -334,14 +580,14 @@ "name" : "Maxim Kolodyazhny" }, { - "name" : "Nazareno Delucca", - "id" : "Nazareno Delucca", "data" : [ [ "Perl 5", 2 ] - ] + ], + "id" : "Nazareno Delucca", + "name" : "Nazareno Delucca" }, { "name" : "Noud", @@ -355,36 +601,35 @@ }, { "name" : "Ozzy", - "id" : "Ozzy", "data" : [ [ "Perl 6", 1 ] - ] + ], + "id" : "Ozzy" }, { - "name" : "Pete Houston", + "id" : "Pete Houston", "data" : [ [ "Perl 5", 2 ] ], - "id" : "Pete Houston" + "name" : "Pete Houston" }, { + "name" : "Rage311", "id" : "Rage311", "data" : [ [ "Perl 5", 2 ] - ], - "name" : "Rage311" + ] }, { - "name" : "Roger Bell West", "id" : "Roger Bell West", "data" : [ [ @@ -399,9 +644,12 @@ "Blog", 1 ] - ] + ], + "name" : "Roger Bell West" }, { + "name" : "Ruben Westerberg", + "id" : "Ruben Westerberg", "data" : [ [ "Perl 5", @@ -411,9 +659,7 @@ "Perl 6", 2 ] - ], - "id" : "Ruben Westerberg", - "name" : "Ruben Westerberg" + ] }, { "data" : [ @@ -426,47 +672,46 @@ "name" : "Simon Proctor" }, { + "name" : "Steven Wilson", + "id" : "Steven Wilson", "data" : [ [ "Perl 5", 2 ] - ], - "id" : "Steven Wilson", - "name" : "Steven Wilson" + ] }, { - "name" : "Svetlana Nesterova", "id" : "Svetlana Nesterova", "data" : [ [ "Perl 5", 2 ] - ] + ], + "name" : "Svetlana Nesterova" }, { + "id" : "Tester R59", "data" : [ [ "Perl 5", 2 ] ], - "id" : "Tester R59", "name" : "Tester R59" }, { "name" : "Trenton Langer", + "id" : "Trenton Langer", "data" : [ [ "Perl 5", 2 ] - ], - "id" : "Trenton Langer" + ] }, { - "id" : "Ulrich Rieke", "data" : [ [ "Perl 5", @@ -477,19 +722,21 @@ 2 ] ], + "id" : "Ulrich Rieke", "name" : "Ulrich Rieke" }, { + "name" : "Vyacheslav Volgarev", "data" : [ [ "Perl 5", 2 ] ], |
