aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2022-12-05 03:13:10 +0000
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2022-12-05 03:13:10 +0000
commit24fc98c57a9dafd7d7a7c54d82907d95963be86d (patch)
treed7823b081fc2ce6c0bd0dbf363bcc06a327b5cfc
parent51d330cf675b7b3f3f2fcc6b73ceff399d3a9994 (diff)
downloadperlweeklychallenge-club-24fc98c57a9dafd7d7a7c54d82907d95963be86d.tar.gz
perlweeklychallenge-club-24fc98c57a9dafd7d7a7c54d82907d95963be86d.tar.bz2
perlweeklychallenge-club-24fc98c57a9dafd7d7a7c54d82907d95963be86d.zip
- Added solutions by Colin Crain.
-rw-r--r--challenge-193/colin-crain/blog.txt1
-rwxr-xr-xchallenge-193/colin-crain/perl/ch-1.pl89
-rwxr-xr-xchallenge-193/colin-crain/perl/ch-2.pl244
-rw-r--r--stats/pwc-current.json349
-rw-r--r--stats/pwc-language-breakdown-summary.json50
-rw-r--r--stats/pwc-language-breakdown.json1348
-rw-r--r--stats/pwc-leaders.json404
-rw-r--r--stats/pwc-summary-1-30.json88
-rw-r--r--stats/pwc-summary-121-150.json46
-rw-r--r--stats/pwc-summary-151-180.json96
-rw-r--r--stats/pwc-summary-181-210.json50
-rw-r--r--stats/pwc-summary-211-240.json48
-rw-r--r--stats/pwc-summary-241-270.json104
-rw-r--r--stats/pwc-summary-271-300.json30
-rw-r--r--stats/pwc-summary-31-60.json106
-rw-r--r--stats/pwc-summary-61-90.json26
-rw-r--r--stats/pwc-summary-91-120.json104
-rw-r--r--stats/pwc-summary.json600
18 files changed, 2068 insertions, 1715 deletions
diff --git a/challenge-193/colin-crain/blog.txt b/challenge-193/colin-crain/blog.txt
new file mode 100644
index 0000000000..516611f64f
--- /dev/null
+++ b/challenge-193/colin-crain/blog.txt
@@ -0,0 +1 @@
+https://colincrain.com/2022/12/04/what-an-unusual-string-you-have-there-or-are-you-just-glad-to-meet-me
diff --git a/challenge-193/colin-crain/perl/ch-1.pl b/challenge-193/colin-crain/perl/ch-1.pl
new file mode 100755
index 0000000000..41ccc96123
--- /dev/null
+++ b/challenge-193/colin-crain/perl/ch-1.pl
@@ -0,0 +1,89 @@
+#!/Users/colincrain/perl5/perlbrew/perls/perl-5.32.0/bin/perl
+#
+# binstr.pl
+#
+# "like napster with binary strings. Or tumblr... with binary strings"
+#
+# Binary String
+# Submitted by: Mohammad S Anwar
+# You are given an integer, $n > 0.
+#
+# Write a script to find all possible binary numbers of size $n.
+#
+# Example 1
+# Input: $n = 2
+# Output: 00, 11, 01, 10
+#
+# Example 2
+# Input: $n = 3
+# Output: 000, 001, 010, 100, 111, 110, 101, 011
+#
+# method:
+#
+# Three ways of going about this come immediately to mind:
+#
+# 1. we could generate fixed-digit binary representations of
+# all numbers within a given range, defined by powers of two.
+# This is mathematically elegant by nature, and can be
+# performed simply using the format "%0${n}b" with sprintf.
+#
+# 2. we could, starting with a null string, create a
+# bifrucating tree of possibilities by affixing both possible
+# characters 0 and 1 to each existing sting in the set until
+# the correct length is achieve. This is elegantly wise in
+# string use, as it creates the correct respones with no
+# knowledge of either binary numbers or mathematics at all.
+#
+# 3. perhaps one of the most perlish ways to do this would be
+# to use wildcard filename expansion using glob. This is
+# elegantly perlish
+#
+# © 2022 colin crain
+## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
+
+
+
+use warnings;
+use strict;
+use utf8;
+use feature ":5.26";
+use feature qw(signatures);
+no warnings 'experimental::signatures';
+
+
+
+
+
+my $n = shift @ARGV // 5;
+
+## THREE TECHNIQUES
+
+## 1. using math to find all numbers up to a string of 1s of length $n
+## - this upper limit is is 2^n-1
+## - zero padding on the left means the lower limit is simply 0
+say sprintf "%0${n}b", $_ for (0..2**$n-1);
+
+
+
+say '';
+
+## 2. constructing a tree of strings one digit at a time
+## - each string position can ba a 1 or a 0, so for every existing
+## string make 2 new ones appending one of these two options,
+## repeat until enough positions are generated (strings are long enough)
+say for bindigit( $n );
+
+sub bindigit ( $target ) {
+ my @arr = ( 0, 1 );
+ @arr = map { $_ . 0, $_ . 1 } @arr for ( 1..$n-1 );
+ return @arr;
+}
+
+
+
+say '';
+
+## 3. using a hack of filename expansion
+## - dark perl magic
+say for glob '{0,1}' x $n;
+
diff --git a/challenge-193/colin-crain/perl/ch-2.pl b/challenge-193/colin-crain/perl/ch-2.pl
new file mode 100755
index 0000000000..91bddaf48b
--- /dev/null
+++ b/challenge-193/colin-crain/perl/ch-2.pl
@@ -0,0 +1,244 @@
+#!/Users/colincrain/perl5/perlbrew/perls/perl-5.32.0/bin/perl
+#
+# odd-one-out.pl
+#
+# Odd String
+# Submitted by: Mohammad S Anwar
+# You are given a list of strings of same length, @s.
+#
+# Write a script to find the odd string in the given list. Use
+# positional value of alphabet starting with 0, i.e. a = 0, b = 1,
+# ... z = 25.
+#
+# Find the difference array for each string as shown in the
+# example. Then pick the odd one out.
+#
+# Example 1:
+# Input: @s = ("adc", "wzy", "abc")
+# Output: "abc"
+#
+# Difference array for "adc" => [ d - a, c - d ]
+# => [ 3 - 0, 2 - 3 ]
+# => [ 3, -1 ]
+#
+# Difference array for "wzy" => [ z - w, y - z ]
+# => [ 25 - 22, 24 - 25 ]
+# => [ 3, -1 ]
+#
+# Difference array for "abc" => [ b - a, c - b ]
+# => [ 1 - 0, 2 - 1 ]
+# => [ 1, 1 ]
+#
+# The difference array for "abc" is the odd one.
+#
+# Example 2:
+# Input: @s = ("aaa", "bob", "ccc", "ddd")
+# Output: "bob"
+#
+# Difference array for "aaa" => [ a - a, a - a ]
+# => [ 0 - 0, 0 - 0 ]
+# => [ 0, 0 ]
+#
+# Difference array for "bob" => [ o - b, b - o ]
+# => [ 14 - 1, 1 - 14 ]
+# => [ 13, -13 ]
+#
+# Difference array for "ccc" => [ c - c, c - c ]
+# => [ 2 - 2, 2 - 2 ]
+# => [ 0, 0 ]
+#
+# Difference array for "ddd" => [ d - d, d - d ]
+# => [ 3 - 3, 3 - 3 ]
+# => [ 0, 0 ]
+#
+# The difference array for "bob" is the odd one.
+#
+#
+# analysis:
+#
+# There are three distinct parts of this puzzle. In order of
+# appearance, firstly we have an two-part encoding scheme, where we
+# take a string as an array of characters, and then convert the
+# letters to a numeric equivalent using a fixed mapping.
+#
+# In the second phase we take one of these encoded arrays and
+# calculate what is known as a "difference array", where we note
+# the net change between successive elements, using the
+# numeric encoding we came up with previously.
+#
+# Lastly we need a way to compare and categorize these difference
+# arrays corresponding to the input strings and find "the odd one
+# out". Exactly what this last determination means is left without
+# further definition.
+#
+# We will note, though, that being the odd element out is generally
+# in reference to not being part of any group. It's my
+# understanding this definition is based in ancient belief systems.
+#
+# The idea of oddness is very old, going back to Pythagorian mystic
+# mathemeticians, who decided numbers divisible by two were good,
+# and those not were bad. Parity was born. In any collection of
+# items, each element in the set can be paired (good) with another
+# (also good). However with an odd number of elements in the set,
+# one item will be left over (bad). This, then, the unpairable one,
+# would be the odd item. Alone in the world, it is caught driftless,
+# without a moral compass, unable to couple, mate or create more
+# items.
+#
+# I believe that is the crux of the matter.
+#
+# Also, apparently the Pythogorian mystics were unaware of
+# parthenogenetic mitosis.
+#
+# Before continuing I will mention that most of what I just wrote
+# is highly speculative as to the origins of even numbers being
+# good and odd bad, a topic I have written about before with
+# varying degrees of seriousness. I find the subject very
+# interesting, albeit odd. See what I did there? The English word
+# "odd" comes from the Old Norse *oddi*, which curiously refers a
+# triangular point of land, and from that pointy things, and
+# suddenly in a more general way to the part in excess of a sum.
+# This was extended to "odda-maðr", meaning the third man in the
+# context of casting a tiebreaker vote. This last semantic twist is
+# limited amongst similar Germanic variants to Old Norse, which is
+# interesting. Norse traditions had a lot of practical democracy,
+# relatively speaking, in the management of social balance. So the
+# creation of a unique term supporting these actions is not
+# surprising. I think it stands to reason you will find similar
+# patterns surrounding the concept of oddness evolving
+# spontaneously back with the creation of numbers themselves, as a
+# natural extension of grouping objects. But the time-frame
+# of that origin is lost in prehistory.
+#
+# Ancient numero-analytical mysticism aside, however, we do have a
+# real, immediate problem in front of us now with vagaries as to
+# the specifics of this concept of displaced oddness. We will need
+# to address that. The numerological rabbit-hole will be there
+# waiting for us later.
+#
+# I think the eseential quality here is not not-evenness but rather
+# the ungrouped aspect. It thus doesn't matter what the makeup is
+# of any larger groupings our candidate is not a part of — these
+# may be of any size greater than one. The only criterium is that
+# within the set of all such objects the one under inspection
+# remains unique.
+#
+# Another question is what if there is more than one unique
+# element? Yea, well who knows? Seriously, there is no explicit
+# statement that there can and will be only one. We only have the
+# inference we can gather from the tense of the directive to "pick
+# the odd one out".
+
+# In fact, choosing random equal length words as input will be more
+# suited to a task of finding words with equal difference sets than a single
+# odd one out. We will have to assume the input comes structured in
+# a specific way, but we have no idea where these lists come from.
+#
+# The last part we need to finish the challenge is a method of
+# performing a deep numeric analysis of arrays to test for
+# equality, disallowing any found from further consideration. In
+# short, we need some sort of a unique filter for arrays, only
+# allowing things there are only one of. Limiting the values to
+# integers as we have done will make this a little easier.
+#
+# method:
+#
+# Breaking the task down as we have done will require three
+# routines and some sort of framework to call them.
+#
+# The initial encoding is pretty straightforward, and
+# possibly could be rolled up inline with the later processing, but
+# for clrity we will keep it separate. This whole process is in
+# danger of becoming compliated enough already without making the
+# code unnecessarily dense.
+#
+# Likewise the function for creating an array of deltas from a and
+# encoded array.
+#
+# As we're looking for *strings* without matching *difference
+# arrays*, these ideas are linked in a hash table. We can then
+# iterate through these pairs and count the frequencies of the
+# difference arrays by constructing a unique stringified key from
+# the data. This is accomplished by separating the integers with
+# the colon character. At the same time we'll construct another
+# hash using these keys to point back to their original string
+# antecedents.
+#
+# "But wait!" You might say. Those stringified keys aren't unique!
+# You'll overwrite the strings! This is a very good point. But the
+# thing is: we don't care. Any overwritten values will never be
+# used anyway as they will refer to non-unique differences. So
+# please settle down. Everything is going to be all right.
+#
+# A consequence of doing things this way is it becomes
+# straightforward to allow for multiple unique strings, which are
+# returned as an array.
+
+
+
+
+
+
+# © 2022 colin crain
+## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
+
+
+
+use warnings;
+use strict;
+use utf8;
+use feature ":5.26";
+use feature qw(signatures);
+no warnings 'experimental::signatures';
+
+
+
+
+my @s = @ARGV;
+@s == 0 and @s = ("aaa", "bob", "ccc", "ddd", 'ray');
+
+
+say for odd_man_out( @s );
+
+
+sub odd_man_out ( @strings ) {
+## a procedural wrapper for find_unique_strings(), setting up the correct input
+ my %input_hash;
+ $input_hash{$_} = difference_array( encode($_) ) for @strings;
+
+ return find_unique_strings( %input_hash );
+}
+
+sub find_unique_strings( %string_hash ) {
+## given a hash of strings to their difference arrays,
+## finds all strings with a difference map frequency of 1 and returns them
+ my %freq;
+ my %rev_lookup; ## %freq keys to original strings
+ while ( my ($str, $arr) = each %string_hash ) {
+ my $key = join ':', $arr->@*;
+ $freq{$key}++;
+ $rev_lookup{$key} = $str;
+ }
+
+ my @singles = grep { $freq{$_} == 1 } keys %freq;
+ return map { $rev_lookup{$_} } @singles;
+}
+
+sub difference_array ( $aref ) {
+## given an array of numeric elements, compute and return the
+## array of differences between successive elements
+ my @out;
+ push @out, $aref->[$_] - $aref->[$_-1] for 1..$aref->$#*;
+ return \@out;
+}
+
+sub encode ( $str ) {
+## convert a string into an array of digits, mapped to the
+## lowercase alphabet starting at 0.
+## a => 0, b => 1, ... z => 25
+ return [ map { ord($_)-97 } split '', lc($str) ]
+}
+
+
+
+
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index bc8ca5ec20..398bc81a9f 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,56 +1,87 @@
{
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
+ },
+ "subtitle" : {
+ "text" : "[Champions: 36] Last updated at 2022-12-05 02:56:52 GMT"
+ },
+ "chart" : {
+ "type" : "column"
+ },
+ "plotOptions" : {
+ "series" : {
+ "borderWidth" : 0,
+ "dataLabels" : {
+ "enabled" : 1,
+ "format" : "{point.y}"
+ }
+ }
+ },
+ "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/>"
+ },
+ "title" : {
+ "text" : "The Weekly Challenge - 193"
+ },
"xAxis" : {
"type" : "category"
},
"series" : [
{
- "colorByPoint" : 1,
- "name" : "The Weekly Challenge - 193",
"data" : [
{
+ "drilldown" : "Adam Russell",
"name" : "Adam Russell",
- "y" : 4,
- "drilldown" : "Adam Russell"
+ "y" : 4
},
{
- "name" : "Arne Sommer",
"drilldown" : "Arne Sommer",
+ "name" : "Arne Sommer",
"y" : 3
},
{
"name" : "Athanasius",
- "y" : 4,
- "drilldown" : "Athanasius"
+ "drilldown" : "Athanasius",
+ "y" : 4
},
{
- "drilldown" : "Bruce Gray",
"y" : 5,
+ "drilldown" : "Bruce Gray",
"name" : "Bruce Gray"
},
{
- "name" : "Dario Mazzeo",
+ "y" : 3,
+ "name" : "Colin Crain",
+ "drilldown" : "Colin Crain"
+ },
+ {
+ "y" : 1,
"drilldown" : "Dario Mazzeo",
- "y" : 1
+ "name" : "Dario Mazzeo"
},
{
- "drilldown" : "Dave Jacoby",
"y" : 2,
- "name" : "Dave Jacoby"
+ "name" : "Dave Jacoby",
+ "drilldown" : "Dave Jacoby"
},
{
- "y" : 2,
"drilldown" : "David Ferrone",
- "name" : "David Ferrone"
+ "name" : "David Ferrone",
+ "y" : 2
},
{
- "name" : "Duncan C. White",
"drilldown" : "Duncan C. White",
+ "name" : "Duncan C. White",
"y" : 2
},
{
+ "name" : "E. Choroba",
"drilldown" : "E. Choroba",
- "y" : 2,
- "name" : "E. Choroba"
+ "y" : 2
},
{
"y" : 2,
@@ -58,94 +89,94 @@
"name" : "Feng Chang"
},
{
+ "y" : 6,
"name" : "Flavio Poletti",
- "drilldown" : "Flavio Poletti",
- "y" : 6
+ "drilldown" : "Flavio Poletti"
},
{
"name" : "James Smith",
- "y" : 3,
- "drilldown" : "James Smith"
+ "drilldown" : "James Smith",
+ "y" : 3
},
{
- "drilldown" : "Jan Krnavek",
"y" : 2,
- "name" : "Jan Krnavek"
+ "name" : "Jan Krnavek",
+ "drilldown" : "Jan Krnavek"
},
{
- "drilldown" : "Jen Guerra",
"y" : 1,
- "name" : "Jen Guerra"
+ "name" : "Jen Guerra",
+ "drilldown" : "Jen Guerra"
},
{
- "name" : "Jorg Sommrey",
"y" : 2,
+ "name" : "Jorg Sommrey",
"drilldown" : "Jorg Sommrey"
},
{
- "name" : "Kueppo Wesley",
"y" : 2,
+ "name" : "Kueppo Wesley",
"drilldown" : "Kueppo Wesley"
},
{
+ "y" : 5,
"name" : "Laurent Rosenfeld",
- "drilldown" : "Laurent Rosenfeld",
- "y" : 5
+ "drilldown" : "Laurent Rosenfeld"
},
{
+ "y" : 8,
"name" : "Luca Ferrari",
- "drilldown" : "Luca Ferrari",
- "y" : 8
+ "drilldown" : "Luca Ferrari"
},
{
+ "name" : "Mark Anderson",
"drilldown" : "Mark Anderson",
- "y" : 2,
- "name" : "Mark Anderson"
+ "y" : 2
},
{
- "name" : "Mohammad S Anwar",
"y" : 1,
- "drilldown" : "Mohammad S Anwar"
+ "drilldown" : "Mohammad S Anwar",
+ "name" : "Mohammad S Anwar"
},
{
"drilldown" : "Niels van Dijke",
- "y" : 2,
- "name" : "Niels van Dijke"
+ "name" : "Niels van Dijke",
+ "y" : 2
},
{
- "y" : 1,
"drilldown" : "Olivier Delouya",
- "name" : "Olivier Delouya"
+ "name" : "Olivier Delouya",
+ "y" : 1
},
{
+ "y" : 3,
"name" : "Peter Campbell Smith",
- "drilldown" : "Peter Campbell Smith",
- "y" : 3
+ "drilldown" : "Peter Campbell Smith"
},
{
+ "drilldown" : "Robbie Hatley",
"name" : "Robbie Hatley",
- "y" : 2,
- "drilldown" : "Robbie Hatley"
+ "y" : 2
},
{
+ "name" : "Robert DiCicco",
"drilldown" : "Robert DiCicco",
- "y" : 3,
- "name" : "Robert DiCicco"
+ "y" : 3
},
{
+ "drilldown" : "Robert Ransbottom",
"name" : "Robert Ransbottom",
- "y" : 2,
- "drilldown" : "Robert Ransbottom"
+ "y" : 2
},
{
- "name" : "Roger Bell_West",
+ "y" : 5,
"drilldown" : "Roger Bell_West",
- "y" : 5
+ "name" : "Roger Bell_West"
},
{
- "y" : 3,
"drilldown" : "Simon Green",
- "name" : "Simon Green"
+ "name" : "Simon Green",
+ "y" : 3
},
{
"name" : "Simon Proctor",
@@ -153,62 +184,46 @@
"y" : 1
},
{
- "y" : 2,
"drilldown" : "Solathian",
- "name" : "Solathian"
+ "name" : "Solathian",
+ "y" : 2
},
{
"drilldown" : "Stephen G. Lynn",
- "y" : 5,
- "name" : "Stephen G. Lynn"
+ "name" : "Stephen G. Lynn",
+ "y" : 5
},
{
- "y" : 2,
"drilldown" : "Thomas Kohler",
- "name" : "Thomas Kohler"
+ "name" : "Thomas Kohler",
+ "y" : 2
},
{
- "y" : 4,
"drilldown" : "Ulrich Rieke",
- "name" : "Ulrich Rieke"
+ "name" : "Ulrich Rieke",
+ "y" : 4
},
{
- "name" : "Vamsi Meenavilli",
"y" : 2,
- "drilldown" : "Vamsi Meenavilli"
+ "drilldown" : "Vamsi Meenavilli",
+ "name" : "Vamsi Meenavilli"
},
{
"y" : 3,
- "drilldown" : "W. Luis Mochan",
- "name" : "W. Luis Mochan"
+ "name" : "W. Luis Mochan",
+ "drilldown" : "W. Luis Mochan"
}
- ]
+ ],
+ "name" : "The Weekly Challenge - 193",
+ "colorByPoint" : 1
}
],
- "subtitle" : {
- "text" : "[Champions: 35] Last updated at 2022-12-05 01:52:04 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/>"
- },
- "plotOptions" : {
- "series" : {
- "dataLabels" : {
- "format" : "{point.y}",
- "enabled" : 1
- },
- "borderWidth" : 0
- }
- },
- "chart" : {
- "type" : "column"
+ "legend" : {
+ "enabled" : 0
},
"drilldown" : {
"series" : [
{
- "id" : "Adam Russell",
"data" : [
[
"Perl",
@@ -219,10 +234,10 @@
2
]
],
+ "id" : "Adam Russell",
"name" : "Adam Russell"
},
{
- "name" : "Arne Sommer",
"data" : [
[
"Raku",
@@ -233,9 +248,12 @@
1
]
],
- "id" : "Arne Sommer"
+ "id" : "Arne Sommer",
+ "name" : "Arne Sommer"
},
{
+ "name" : "Athanasius",
+ "id" : "Athanasius",
"data" : [
[
"Perl",
@@ -245,9 +263,7 @@
"Raku",
2
]
- ],
- "id" : "Athanasius",
- "name" : "Athanasius"
+ ]
},
{
"data" : [
@@ -271,11 +287,25 @@
"data" : [
[
"Perl",
+ 2
+ ],
+ [
+ "Blog",
1
]
],
+ "name" : "Colin Crain",
+ "id" : "Colin Crain"
+ },
+ {
+ "name" : "Dario Mazzeo",
"id" : "Dario Mazzeo",
- "name" : "Dario Mazzeo"
+ "data" : [
+ [
+ "Perl",
+ 1
+ ]
+ ]
},
{
"name" : "Dave Jacoby",
@@ -288,48 +318,46 @@
]
},
{
- "id" : "David Ferrone",
"data" : [
[
"Perl",
2
]
],
- "name" : "David Ferrone"
+ "name" : "David Ferrone",
+ "id" : "David Ferrone"
},
{
+ "id" : "Duncan C. White",
"name" : "Duncan C. White",
"data" : [
[
"Perl",
2
]
- ],
- "id" : "Duncan C. White"
+ ]
},
{
+ "name" : "E. Choroba",
"id" : "E. Choroba",
"data" : [
[
"Perl",
2
]
- ],
- "name" : "E. Choroba"
+ ]
},
{
- "name" : "Feng Chang",
"data" : [
[
"Raku",
2
]
],
- "id" : "Feng Chang"
+ "id" : "Feng Chang",
+ "name" : "Feng Chang"
},
{
- "name" : "Flavio Poletti",
- "id" : "Flavio Poletti",
"data" : [
[
"Perl",
@@ -343,9 +371,12 @@
"Blog",
2
]
- ]
+ ],
+ "name" : "Flavio Poletti",
+ "id" : "Flavio Poletti"
},
{
+ "name" : "James Smith",
"id" : "James Smith",
"data" : [
[
@@ -356,48 +387,47 @@
"Blog",
1
]
- ],
- "name" : "James Smith"
+ ]
},
{
"name" : "Jan Krnavek",
+ "id" : "Jan Krnavek",
"data" : [
[
"Raku",
2
]
- ],
- "id" : "Jan Krnavek"
+ ]
},
{
+ "name" : "Jen Guerra",
"id" : "Jen Guerra",
"data" : [
[
"Perl",
1
]
- ],
- "name" : "Jen Guerra"
+ ]
},
{
+ "name" : "Jorg Sommrey",
+ "id" : "Jorg Sommrey",
"data" : [
[
"Perl",
2
]
- ],
- "id" : "Jorg Sommrey",
- "name" : "Jorg Sommrey"
+ ]
},
{
- "id" : "Kueppo Wesley",
"data" : [
[
"Perl",
2
]
],
- "name" : "Kueppo Wesley"
+ "name" : "Kueppo Wesley",
+ "id" : "Kueppo Wesley"
},
{
"data" : [
@@ -414,10 +444,11 @@
1
]
],
- "id" : "Laurent Rosenfeld",
- "name" : "Laurent Rosenfeld"
+ "name" : "Laurent Rosenfeld",
+ "id" : "Laurent Rosenfeld"
},
{
+ "id" : "Luca Ferrari",
"name" : "Luca Ferrari",
"data" : [
[
@@ -428,37 +459,36 @@
"Blog",
6
]
- ],
- "id" : "Luca Ferrari"
+ ]
},
{
- "name" : "Mark Anderson",
- "id" : "Mark Anderson",
"data" : [
[
"Raku",
2
]
- ]
+ ],
+ "id" : "Mark Anderson",
+ "name" : "Mark Anderson"
},
{
- "name" : "Mohammad S Anwar",
"data" : [
[
"Perl",
1
]
],
- "id" : "Mohammad S Anwar"
+ "id" : "Mohammad S Anwar",
+ "name" : "Mohammad S Anwar"
},
{
- "name" : "Niels van Dijke",
"data" : [
[
"Perl",
2
]
],
+ "name" : "Niels van Dijke",
"id" : "Niels van Dijke"
},
{
@@ -468,11 +498,12 @@
1
]
],
- "id" : "Olivier Delouya",
- "name" : "Olivier Delouya"
+ "name" : "Olivier Delouya",
+ "id" : "Olivier Delouya"
},
{
"id" : "Peter Campbell Smith",
+ "name" : "Pete