diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2022-12-05 03:13:10 +0000 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2022-12-05 03:13:10 +0000 |
| commit | 24fc98c57a9dafd7d7a7c54d82907d95963be86d (patch) | |
| tree | d7823b081fc2ce6c0bd0dbf363bcc06a327b5cfc | |
| parent | 51d330cf675b7b3f3f2fcc6b73ceff399d3a9994 (diff) | |
| download | perlweeklychallenge-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.txt | 1 | ||||
| -rwxr-xr-x | challenge-193/colin-crain/perl/ch-1.pl | 89 | ||||
| -rwxr-xr-x | challenge-193/colin-crain/perl/ch-2.pl | 244 | ||||
| -rw-r--r-- | stats/pwc-current.json | 349 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 50 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 1348 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 404 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 88 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 46 | ||||
| -rw-r--r-- | stats/pwc-summary-151-180.json | 96 | ||||
| -rw-r--r-- | stats/pwc-summary-181-210.json | 50 | ||||
| -rw-r--r-- | stats/pwc-summary-211-240.json | 48 | ||||
| -rw-r--r-- | stats/pwc-summary-241-270.json | 104 | ||||
| -rw-r--r-- | stats/pwc-summary-271-300.json | 30 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 106 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 26 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 104 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 600 |
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 |
