diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-05-07 15:24:49 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-05-07 15:24:49 +0100 |
| commit | 72a7634b2ec6ed242fbf75de7349e2adf2b9eb0a (patch) | |
| tree | 4307c985c8d6cc54db2339d3a90662157e5040b3 | |
| parent | 4ca08b3248d4de0f0992a7d26dc7182911adf048 (diff) | |
| download | perlweeklychallenge-club-72a7634b2ec6ed242fbf75de7349e2adf2b9eb0a.tar.gz perlweeklychallenge-club-72a7634b2ec6ed242fbf75de7349e2adf2b9eb0a.tar.bz2 perlweeklychallenge-club-72a7634b2ec6ed242fbf75de7349e2adf2b9eb0a.zip | |
- Added solutions by Dave Jacoby.
| -rw-r--r-- | challenge-007/dave-jacoby/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-007/dave-jacoby/blog1.txt | 1 | ||||
| -rw-r--r-- | challenge-007/dave-jacoby/perl5/ch-1.pl | 21 | ||||
| -rw-r--r-- | challenge-007/dave-jacoby/perl5/ch-2.pl | 100 | ||||
| -rw-r--r-- | stats/pwc-current.json | 73 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 94 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 822 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 36 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 46 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 82 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 206 |
11 files changed, 810 insertions, 672 deletions
diff --git a/challenge-007/dave-jacoby/blog.txt b/challenge-007/dave-jacoby/blog.txt new file mode 100644 index 0000000000..c74d2b8d26 --- /dev/null +++ b/challenge-007/dave-jacoby/blog.txt @@ -0,0 +1 @@ +https://jacoby.github.io//2019/05/06/niven-numbers-in-perl-and-javascript.html diff --git a/challenge-007/dave-jacoby/blog1.txt b/challenge-007/dave-jacoby/blog1.txt new file mode 100644 index 0000000000..846290d6b7 --- /dev/null +++ b/challenge-007/dave-jacoby/blog1.txt @@ -0,0 +1 @@ +https://jacoby.github.io//2019/05/06/rethinking-my-ladder-puzzle-code.html diff --git a/challenge-007/dave-jacoby/perl5/ch-1.pl b/challenge-007/dave-jacoby/perl5/ch-1.pl new file mode 100644 index 0000000000..4d38d9c307 --- /dev/null +++ b/challenge-007/dave-jacoby/perl5/ch-1.pl @@ -0,0 +1,21 @@ +#!/usr/bin/env perl + +use feature qw{ say }; +use strict; +use warnings; + +use List::Util qw{sum}; + +for my $i ( 1 .. 50 ) { + my @j = split //, $i; # split the number into characters + my $k = sum @j; # Perl doesn't overload operators, + # but overloads types, so if you do + # a math operation on a scalar, it + # finds the most number-like + # interpretation of that scalar + + my $l = $i % $k == 0; # true if it divides evenly. + say $i if $l; # say if true + # we COULD combine these two +} + diff --git a/challenge-007/dave-jacoby/perl5/ch-2.pl b/challenge-007/dave-jacoby/perl5/ch-2.pl new file mode 100644 index 0000000000..2952130a94 --- /dev/null +++ b/challenge-007/dave-jacoby/perl5/ch-2.pl @@ -0,0 +1,100 @@ +#!/usr/bin/env perl + +use feature qw{say} ; +use strict ; +use warnings ; + +use Carp ; +use Data::Dumper ; +use Graph ; +use List::Util qw{min} ; +use Storable ; + +my ( $first, $second ) = map { s/\W//gmix ; $_ } + map { uc $_ } @ARGV ; +my $l = length $first ; + +my $g = get_word_graph($l) ; +croak 'Words have different lengths' if length $first != length $second ; +croak "'$first' not in graph" unless $g->has_vertex($first); +croak "'$second' not in graph" unless $g->has_vertex($second); + +my $r = dijkstra( $g, $first, $second ) ; +my @s = retrieve_solution( $r, $first, $second ) ; + +say join ' > ', @s ; +say '' ; + +exit ; + +# ------------------------------------------------------------------- +# context-specific perl implementation of Dijkstra's Algorithm for +# shortest-path +sub dijkstra { + my ( $graph, $source, $target, ) = @_ ; + my @q ; + my %dist ; + my %prev ; + for my $v ( $graph->unique_vertices ) { + $dist{$v} = 1_000_000_000 ; # per Wikipeia, infinity + push @q, $v ; + } + $dist{$source} = 0 ; +LOOP: while (@q) { + @q = sort { $dist{$a} <=> $dist{$b} } @q ; + my $u = shift @q ; + + # say STDERR join "\t", $u, $dist{$u} ; + last LOOP if $u eq $target ; + for my $e ( + grep { + my @a = @$_ ; + grep {/^${u}$/} @a + } $graph->unique_edges + ) { + my ($v) = grep { $_ ne $u } @$e ; + my $w = 1 ; + my $alt = $dist{$u} + $w ; + if ( $alt < $dist{$v} ) { + $dist{$v} = $alt ; + $prev{$v} = $u ; + } + } + } + my @nodes = $graph->unique_vertices ; + my @edges = $graph->unique_edges ; + return { + distances => \%dist, + previous => \%prev, + nodes => \@nodes, + edges => \@edges, + } ; + } + +# ------------------------------------------------------------------- +sub retrieve_solution { + my $r = shift ; + my $start = shift ; + my $end = shift ; + my %prev = %{ $r->{previous} } ; + + my @words ; + push @words, $end ; + my $next = $end ; + while ( $next ne $start ) { + $next = $prev{$next} ; + push @words, $next ; + } + return wantarray ? @words : \@words ; + } + +# ------------------------------------------------------------------- +sub get_word_graph { + my $length = shift ; + # this is SLIGHTLY more localized + my $file = $ENV{HOME} ."/.word_$length.store" ; + croak 'File not available' unless -f $file ; + my $g = retrieve($file) ; + return $g ; + } + diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 416285344a..5e860a3eac 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,10 +1,4 @@ { - "subtitle" : { - "text" : "[Champions: 2] Last updated at 2019-05-07 12:16:29 GMT" - }, - "legend" : { - "enabled" : 0 - }, "yAxis" : { "title" : { "text" : "Total Solutions" @@ -13,66 +7,87 @@ "title" : { "text" : "Perl Weekly Challenge - 007" }, - "tooltip" : { - "followPointer" : 1, - "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>", - "pointerFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>" + "subtitle" : { + "text" : "[Champions: 3] Last updated at 2019-05-07 14:23:53 GMT" }, "xAxis" : { "type" : "category" }, + "chart" : { + "type" : "column" + }, "drilldown" : { "series" : [ { - "name" : "Ozzy", + "name" : "Dave Jacoby", + "data" : [ + [ + "Perl 5", + 2 + ] + ], + "id" : "Dave Jacoby" + }, + { + "id" : "Ozzy", "data" : [ [ "Perl 6", 1 ] ], - "id" : "Ozzy" + "name" : "Ozzy" }, { - "id" : "Simon Proctor", - "name" : "Simon Proctor", "data" : [ [ "Perl 6", 1 ] - ] + ], + "name" : "Simon Proctor", + "id" : "Simon Proctor" } ] }, - "chart" : { - "type" : "column" + "legend" : { + "enabled" : 0 }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - }, - "borderWidth" : 0 - } + "tooltip" : { + "pointerFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>", + "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>", + "followPointer" : 1 }, "series" : [ { "colorByPoint" : 1, "data" : [ { - "name" : "Ozzy", + "drilldown" : "Dave Jacoby", + "y" : 2, + "name" : "Dave Jacoby" + }, + { "drilldown" : "Ozzy", + "name" : "Ozzy", "y" : 1 }, { - "drilldown" : "Simon Proctor", + "y" : 1, "name" : "Simon Proctor", - "y" : 1 + "drilldown" : "Simon Proctor" } ], "name" : "Champions" } - ] + ], + "plotOptions" : { + "series" : { + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + }, + "borderWidth" : 0 + } + } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index e41c60a1fc..9a399a7d82 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,6 +1,17 @@ { - "title" : { - "text" : "Perl Weekly Challenge Language" + "tooltip" : { + "pointFormat" : "<span style=\"color:{point.color}\">{point.name}</span>: <b>{point.y:f}</b><br/>", + "followPointer" : "true", + "headerFormat" : "<span style=\"font-size:11px\"></span>" + }, + "xAxis" : { + "type" : "category" + }, + "chart" : { + "type" : "column" + }, + "subtitle" : { + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2019-05-07 14:24:14 GMT" }, "series" : [ { @@ -8,72 +19,63 @@ "data" : [ { "y" : 113, - "name" : "#001 [P5=76 P6=37]", - "drilldown" : "001" + "drilldown" : "001", + "name" : "#001 [P5=76 P6=37]" }, { - "drilldown" : "002", "y" : 95, + "drilldown" : "002", "name" : "#002 [P5=63 P6=32]" }, { - "drilldown" : "003", + "y" : 58, "name" : "#003 [P5=32 P6=26]", - "y" : 58 + "drilldown" : "003" }, { - "drilldown" : "004", + "y" : 75, "name" : "#004 [P5=46 P6=29]", - "y" : 75 + "drilldown" : "004" }, { + "y" : 55, "drilldown" : "005", - "name" : "#005 [P5=33 P6=22]", - "y" : 55 + "name" : "#005 [P5=33 P6=22]" }, { - "y" : 41, "name" : "#006 [P5=27 P6=14]", - "drilldown" : "006" + "drilldown" : "006", + "y" : 41 }, { - "name" : "#007 [P5=0 P6=2]", - "y" : 2, - "drilldown" : "007" + "name" : "#007 [P5=2 P6=2]", + "drilldown" : "007", + "y" : 4 } ], "colorByPoint" : "true" } ], + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "legend" : { + "enabled" : "false" + }, "plotOptions" : { "series" : { "borderWidth" : 0, "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 + "enabled" : 1, + "format" : "{point.y}" } } }, - "tooltip" : { - "headerFormat" : "<span style=\"font-size:11px\"></span>", - "followPointer" : "true", - "pointFormat" : "<span style=\"color:{point.color}\">{point.name}</span>: <b>{point.y:f}</b><br/>" - }, - "chart" : { - "type" : "column" - }, - "xAxis" : { - "type" : "category" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, "drilldown" : { "series" : [ { - "name" : "001", "data" : [ [ "Perl 5", @@ -84,10 +86,11 @@ 37 ] ], - "id" : "001" + "id" : "001", + "name" : "001" }, { - "name" : "002", + "id" : "002", "data" : [ [ "Perl 5", @@ -98,10 +101,9 @@ 32 ] ], - "id" : "002" + "name" : "002" }, { - "id" : "003", "data" : [ [ "Perl 5", @@ -112,6 +114,7 @@ 26 ] ], + "id" : "003", "name" : "003" }, { @@ -129,6 +132,7 @@ ] }, { + "name" : "005", "id" : "005", "data" : [ [ @@ -139,8 +143,7 @@ "Perl 6", 22 ] - ], - "name" : "005" + ] }, { "name" : "006", @@ -161,7 +164,7 @@ "data" : [ [ "Perl 5", - 0 + 2 ], [ "Perl 6", @@ -172,10 +175,7 @@ } ] }, - "legend" : { - "enabled" : "false" - }, - "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2019-05-07 12:16:40 GMT" + "title" : { + "text" : "Perl Weekly Challenge Language" } } diff --git a/stats/pwc-leaders.json b/stats/pwc-leaders.json index 92af667106..1063b33fa9 100644 --- a/stats/pwc-leaders.json +++ b/stats/pwc-leaders.json @@ -1,52 +1,333 @@ { + "yAxis" : { + "title" : { + "text" : "Total Score" + } + }, + "plotOptions" : { + "series" : { + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + }, + "borderWidth" : 0 + } + }, "tooltip" : { "headerFormat" : "<span style=\"font-size:11px\"></span>", "followPointer" : "true", "pointFormat" : "<span style=\"color:{point.color}\">{point.name}</span>: <b>{point.y:f}</b><br/>" }, + "xAxis" : { + "type" : "category" + }, + "title" : { + "text" : "Perl Weekly Challenge Leaders (TOP 50)" + }, "subtitle" : { - "text" : "Click the columns to drilldown the score breakdown. Last updated at 2019-05-07 12:16:36 GMT" + "text" : "Click the columns to drilldown the score breakdown. Last updated at 2019-05-07 14:24:07 GMT" + }, + "series" : [ + { + "colorByPoint" : "true", + "data" : [ + { + "drilldown" : "Laurent Rosenfeld", + "name" : "#1: Laurent Rosenfeld", + "y" : 60 + }, + { + "y" : 50, + "drilldown" : "Joelle Maslak", + "name" : "#2: Joelle Maslak" + }, + { + "y" : 48, + "drilldown" : "Jaldhar H. Vyas", + "name" : "#3: Jaldhar H. Vyas" + }, + { + "drilldown" : "Simon Proctor", + "name" : "#4: Simon Proctor", + "y" : 42 + }, + { + "drilldown" : "Ruben Westerberg", + "name" : "#5: Ruben Westerberg", + "y" : 40 + }, + { + "name" : "#6: Adam Russell", + "drilldown" : "Adam Russell", + "y" : 36 + }, + { + "y" : 36, + "drilldown" : "Dr James A. Smith", + "name" : "#7: Dr James A. Smith" + }, + { + "drilldown" : "Jo Christian Oterhals", + "name" : "#8: Jo Christian Oterhals", + "y" : 36 + }, + { + "name" : "#9: Kian-Meng Ang", + "drilldown" : "Kian-Meng Ang", + "y" : 32 + }, + { + "y" : 32, + "name" : "#10: Nick Logan", + "drilldown" : "Nick Logan" + }, + { + "y" : 30, + "drilldown" : "Arne Sommer", + "name" : "#11: Arne Sommer" + }, + { + "name" : "#12: Lars Balker", + "drilldown" : "Lars Balker", + "y" : 28 + }, + { + "y" : 26, + "name" : "#13: Gustavo Chaves", + "drilldown" : "Gustavo Chaves" + }, + { + "y" : 26, + "drilldown" : "Mark Senn", + "name" : "#14: Mark Senn" + }, + { + "y" : 24, + "name" : "#15: Andrezgz", + "drilldown" : "Andrezgz" + }, + { + "y" : 24, + "name" : "#16: Athanasius", + "drilldown" : "Athanasius" + }, + { + "y" : 20, + "drilldown" : "Doug Schrag", + "name" : "#17: Doug Schrag" + }, + { + "name" : "#18: Duncan C. White", + "drilldown" : "Duncan C. White", + "y" : 20 + }, + { + "y" : 18, + "drilldown" : "Francis Whittle", + "name" : "#19: Francis Whittle" + }, + { + "drilldown" : "Robert Gratza", + "name" : "#20: Robert Gratza", + "y" : 16 + }, + { + "y" : 14, + "name" : "#21: Daniel Mantovani", + "drilldown" : "Daniel Mantovani" + }, + { + "y" : 14, + "drilldown" : "Dave Jacoby", + "name" : "#22: Dave Jacoby" + }, + { + "name" : "#23: John Barrett", + "drilldown" : "John Barrett", + "y" : 14 + }, + { + "drilldown" : "E. Choroba", + "name" : "#24: E. Choroba", + "y" : 12 + }, + { + "y" : 12, + "drilldown" : "Maxim Kolodyazhny", + "name" : "#25: Maxim Kolodyazhny" + }, + { + "drilldown" : "Ozzy", + "name" : "#26: Ozzy", + "y" : 12 + }, + { + "name" : "#27: Philippe Bruhat", + "drilldown" : "Philippe Bruhat", + "y" : 12 + }, + { + "name" : "#28: Sergio Iglesias", + "drilldown" : "Sergio Iglesias", + "y" : 12 + }, + { + "drilldown" : "Arpad Toth", + "name" : "#29: Arpad Toth", + "y" : 10 + }, + { + "name" : "#30: Khalid", + "drilldown" : "Khalid", + "y" : 10 + }, + { + "y" : 10, + "name" : "#31: Steve Rogerson", + "drilldown" : "Steve Rogerson" + }, + { + "y" : 10, + "drilldown" : "Veesh Goldman", + "name" : "#32: Veesh Goldman" + }, + { + "y" : 8, + "name" : "#33: Alex Daniel", + "drilldown" : "Alex Daniel" + }, + { + "y" : 8, + "name" : "#34: Bob Kleemann", + "drilldown" : "Bob Kleemann" + }, + { + "drilldown" : "Chenyf", + "name" : "#35: Chenyf", + "y" : 8 + }, + { + "y" : 8, + "name" : "#36: David Kayal", + "drilldown" : "David Kayal" + }, + { + "name" : "#37: Jaime Corchado", + "drilldown" : "Jaime Corchado", + "y" : 8 + }, + { + "drilldown" : "Matt Latusek", + "name" : "#38: Matt Latusek", + "y" : 8 + }, + { + "name" : "#39: Simon Reinhardt", + "drilldown" : "Simon Reinhardt", + "y" : 8 + }, + { + "name" : "#40: Steven Wilson", + "drilldown" : "Steven Wilson", + "y" : 8 + }, + { + "y" : 8, + "name" : "#41: Tim Smith", + "drilldown" : "Tim Smith" + }, + { + "y" : 6, + "name" : "#42: Ailbhe Tweedie", + "drilldown" : "Ailbhe Tweedie" + }, + { + "y" : 6, + "drilldown" : "Alicia Bielsa", + "name" : "#43: Alicia Bielsa" + }, + { + "name" : "#44: Dave Cross", + "drilldown" : "Dave Cross", + "y" : 6 + }, + { + "name" : "#45: Freddie B", + "drilldown" : "Freddie B", + "y" : 6 + }, + { + "y" : 6, + "name" : "#46: Jeremy Carman", + "drilldown" : "Jeremy Carman" + }, + { + "name" : "#47: Kivanc Yazan", + "drilldown" : "Kivanc Yazan", + "y" : 6 + }, + { + "y" : 6, + "name" : "#48: Neil Bowers", + "drilldown" : "Neil Bowers" + }, + { + "y" : 6, + "name" : "#49: Pete Houston", + "drilldown" : "Pete Houston" + }, + { + "name" : "#50: Sean Meininger", + "drilldown" : "Sean Meininger", + "y" : 6 + } + ], + "name" : "Perl Weekly Challenge Leaders" + } + ], + "legend" : { + "enabled" : "false" }, "drilldown" : { "series" : [ { - "name" : "Laurent Rosenfeld", "data" : [ [ "Perl 5", 12 ], [ - "Perl 6", - 11 - ], - [ "Blog", 7 + ], + [ + "Perl 6", + 11 ] ], - "id" : "Laurent Rosenfeld" + "id" : "Laurent Rosenfeld", + "name" : "Laurent Rosenfeld" }, { + "id" : "Joelle Maslak", "data" : [ [ "Blog", 1 ], [ - "Perl 6", + "Perl 5", 12 ], [ - "Perl 5", + "Perl 6", 12 ] ], - "id" : "Joelle Maslak", "name" : "Joelle Maslak" }, { - "name" : "Jaldhar H. Vyas", + "id" : "Jaldhar H. Vyas", "data" : [ [ "Perl 6", @@ -57,20 +338,20 @@ 12 ] ], - "id" : "Jaldhar H. Vyas" + "name" : "Jaldhar H. Vyas" }, { "id" : "Simon Proctor", "data" : [ [ - "Perl 5", - 4 - ], - [ "Blog", 5 ], [ + "Perl 5", + 4 + ], + [ "Perl 6", 12 ] @@ -82,17 +363,17 @@ "id" : "Ruben Westerberg", "data" : [ [ - "Perl 6", + "Perl 5", 10 ], [ - "Perl 5", + "Perl 6", 10 ] ] }, { - "id" : "Adam Russell", + "name" : "Adam Russell", "data" : [ [ "Blog", @@ -103,9 +384,11 @@ 12 ] ], - "name" : "Adam Russell" + "id" : "Adam Russell" }, { + "name" : "Dr James A. Smith", + "id" : "Dr James A. Smith", "data" : [ [ "Perl 6", @@ -115,57 +398,56 @@ "Perl 5", 10 ] - ], - "id" : "Dr James A. Smith", - "name" : "Dr James A. Smith" + ] }, { - "id" : "Jo Christian Oterhals", + "name" : "Jo Christian Oterhals", "data" : [ [ - "Perl 5", - 6 - ], - [ "Perl 6", 8 ], [ + "Perl 5", + 6 + ], + [ "Blog", 4 ] ], - "name" : "Jo Christian Oterhals" + "id" : "Jo Christian Oterhals" }, { - "name" : "Kian-Meng Ang", "id" : "Kian-Meng Ang", "data" : [ [ - "Blog", - 5 - ], - [ "Perl 5", 11 + ], + [ + "Blog", + 5 ] - ] + ], + "name" : "Kian-Meng Ang" }, { - "name" : "Nick Logan", "data" : [ [ - "Perl 5", + "Perl 6", 8 ], [ - "Perl 6", + "Perl 5", 8 ] ], - "id" : "Nick Logan" + "id" : "Nick Logan", + "name" : "Nick Logan" }, { + "name" : "Arne Sommer", "id" : "Arne Sommer", "data" : [ [ @@ -176,18 +458,17 @@ "Blog", 5 ] - ], - "name" : "Arne Sommer" + ] }, { "data" : [ [ - "Perl 5", - 10 - ], - [ "Perl 6", 4 + ], + [ + "Perl 5", + 10 ] ], "id" : "Lars Balker", @@ -208,7 +489,7 @@ "name" : "Gustavo Chaves" }, { - "name" : "Mark Senn", + "id" : "Mark Senn", "data" : [ [ "Perl 6", @@ -219,64 +500,63 @@ 3 ] ], - "id" : "Mark Senn" + "name" : "Mark Senn" }, { "name" : "Andrezgz", + "id" : "Andrezgz", "data" : [ [ "Perl 5", 12 ] - ], - "id" : "Andrezgz" + ] }, { + "name" : "Athanasius", "data" : [ [ "Perl 5", 12 ] ], - "id" : "Athanasius", - "name" : "Athanasius" + "id" : "Athanasius" }, { + "name" : "Doug Schrag", + "id" : "Doug Schrag", "data" : [ [ "Perl 6", 10 ] - ], - "id" : "Doug Schrag", - "name" : "Doug Schrag" + ] }, { - "id" : "Duncan C. White", + "name" : "Duncan C. White", "data" : [ [ "Perl 5", 10 ] ], - "name" : "Duncan C. White" + "id" : "Duncan C. White" }, { "name" : "Francis Whittle", "id" : "Francis Whittle", "data" : [ [ - "Blog", - 3 - ], - [ "Perl 6", 6 + ], + [ + "Blog", + 3 ] ] }, { - "name" : "Robert Gratza", "data" : [ [ "Perl 5", @@ -287,17 +567,32 @@ 6 ] ], - "id" : "Robert Gratza" + "id" : "Robert Gratza", + "name" : "Robert Gratza" }, { + "name" : "Daniel Mantovani", "id" : "Daniel Mantovani", "data" : [ [ "Perl 5", 7 ] - ], - "name" : "Daniel Mantovani" + ] + }, + { + "name" : "Dave Jacoby", + "id" : "Dave Jacoby", + "data" : [ + [ + "Blog", + 4 + ], + [ + "Perl 5", + 3 + ] + ] }, |
