diff options
| -rwxr-xr-x | challenge-019/e-choroba/perl5/ch-1.pl | 18 | ||||
| -rwxr-xr-x | challenge-019/e-choroba/perl5/ch-2.pl | 74 | ||||
| -rwxr-xr-x | challenge-019/gustavo-chaves/perl5/ch-1.pl | 34 | ||||
| -rwxr-xr-x | challenge-019/gustavo-chaves/perl5/ch-2.pl | 33 | ||||
| -rw-r--r-- | challenge-019/steven-wilson/perl5/ch-1.pl | 30 | ||||
| -rw-r--r-- | challenge-019/steven-wilson/perl5/ch-2.pl | 38 | ||||
| -rw-r--r-- | challenge-019/walt-mankowski/perl5/ch-1.pl | 41 | ||||
| -rw-r--r-- | challenge-019/walt-mankowski/perl5/ch-2.pl | 52 | ||||
| -rw-r--r-- | stats/pwc-current.json | 198 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 64 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 170 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 604 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 112 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 108 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 112 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 54 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 266 |
17 files changed, 1194 insertions, 814 deletions
diff --git a/challenge-019/e-choroba/perl5/ch-1.pl b/challenge-019/e-choroba/perl5/ch-1.pl new file mode 100755 index 0000000000..f6b0f73fa4 --- /dev/null +++ b/challenge-019/e-choroba/perl5/ch-1.pl @@ -0,0 +1,18 @@ +#!/usr/bin/perl +use warnings; +use strict; +use feature qw{ say }; + +use Time::Piece; +use Time::Seconds; + +my $date = 'Time::Piece'->strptime( + '1900-01-01 12:00:00', '%Y-%m-%d %H:%M:%S'); + +while ($date->year < 2020) { + $date += ONE_DAY until $date->day eq 'Fri'; + if ($date->mday == 1 && $date->month_last_day == 31) { + say $date->strftime('%Y-%m'); + } + $date += ($date->month_last_day - $date->mday + 1) * ONE_DAY; +} diff --git a/challenge-019/e-choroba/perl5/ch-2.pl b/challenge-019/e-choroba/perl5/ch-2.pl new file mode 100755 index 0000000000..d6705639d3 --- /dev/null +++ b/challenge-019/e-choroba/perl5/ch-2.pl @@ -0,0 +1,74 @@ +#!/usr/bin/perl +use warnings; +use strict; + +sub wrap_paragraph { + my ($paragraph, $width) = @_; + $paragraph =~ s/ *\n */ /g; + my $out = ""; + while (length $paragraph) { + my $pos; + if (length $paragraph <= $width) { + $pos = length $paragraph; + } else { + $pos = $width; + --$pos until ' ' eq substr $paragraph, $pos, 1 + or $pos < 0; + $pos = $width if $pos < 0; + } + $out .= substr $paragraph, 0, $pos, ""; + $paragraph =~ s/^ +//; + $out .= "\n" if length $paragraph; + } + return $out +} + +use Test::More; + +my %expected = ( + 'a' => "a", + 'bcdef' => "bcdef", + 'ghijkl' => "ghijk\nl", + 'm no pq' => "m no\npq", + 'rs tu vw' => "rs tu\nvw", + 'xyz ab cd' => "xyz\nab cd", + 'efgh ij kl' => "efgh\nij kl", + 'mnopq rs tu' => "mnopq\nrs tu", + 'vwxyza bc de' => "vwxyz\na bc\nde", + 'fghijkl mn op' => "fghij\nkl mn\nop", + 'qrstuvwx yz ab' => "qrstu\nvwx\nyz ab", + 'cdefghijk lm no' => "cdefg\nhijk\nlm no", + 'pqrstuvwxy za bc' => "pqrst\nuvwxy\nza bc", + 'defghijklmn op qr' => "defgh\nijklm\nn op\nqr", + "s\nt" => "s t", + "u\nv\n w" => "u v w", + << '__PAR__', << '__EXPECTED__' =~ s/\n$//r); +ABCDE +AABBCC +A BB CC +AA BB CC +AAA BB CC +AAAA BB CC +AAAAA BB CC +__PAR__ +ABCDE +AABBC +C A +BB CC +AA BB +CC +AAA +BB CC +AAAA +BB CC +AAAAA +BB CC +__EXPECTED__ + +for my $in (keys %expected) { + is wrap_paragraph($in, 5), $expected{$in}, $in; + is wrap_paragraph($expected{$in}, 5), $expected{$in}, + "idempotent $expected{$in}"; +} + +done_testing(); diff --git a/challenge-019/gustavo-chaves/perl5/ch-1.pl b/challenge-019/gustavo-chaves/perl5/ch-1.pl new file mode 100755 index 0000000000..2cb43ca2c9 --- /dev/null +++ b/challenge-019/gustavo-chaves/perl5/ch-1.pl @@ -0,0 +1,34 @@ +#!/usr/bin/env perl + +# Write a script to display months from the year 1900 to 2019 where you find 5 +# weekends i.e. 5 Friday, 5 Saturday and 5 Sunday. + +use 5.026; +use strict; +use warnings; +use DateTime; + +=pod + +First, let's realize that in order to have 5 Fridays, Saturdays, and Sundays a +month must have 31 days B<and> it's first day must be a Friday. If its first day +is a Friday, the fifth Friday is day 29 and its fifth Sunday is day 31. There is +no other choice. + +So, we need only find which months have 31 days and start in a Friday. +=cut + +my @months_with_31_days = (1, 3, 5, 7, 8, 10, 12); + +for my $year (1900 .. 2019) { + for my $month (@months_with_31_days) { + my $first_day_of_month = DateTime->new( + year => $year, + month => $month, + day => 1, + ); + if ($first_day_of_month->day_of_week() == 5) { + printf "%04d-%02d\n", $year, $month; + } + } +} diff --git a/challenge-019/gustavo-chaves/perl5/ch-2.pl b/challenge-019/gustavo-chaves/perl5/ch-2.pl new file mode 100755 index 0000000000..90a6847d9f --- /dev/null +++ b/challenge-019/gustavo-chaves/perl5/ch-2.pl @@ -0,0 +1,33 @@ +#!/usr/bin/env perl + +# Write a script that can wrap the given paragraph at a specified column using +# the greedy algorithm: +# https://en.wikipedia.org/wiki/Line_wrap_and_word_wrap#Minimum_number_of_lines + +use 5.026; +use strict; +use warnings; + +my $width = shift + or die "usage: $0 WIDTH\n"; + +$width =~ /^\d+$/ + or die "The WIDTH argument must be a number, not '$width'\n"; + +# Read by paragraphs +local $/ = ''; + +while (<>) { + chomp; + my ($line, @words) = split; + foreach my $word (@words) { + if (length($line) + 1 + length($word) <= $width) { + $line .= " $word"; + } else { + say $line; + $line = $word; + } + } + say $line if length($line); + say "\n"; +} diff --git a/challenge-019/steven-wilson/perl5/ch-1.pl b/challenge-019/steven-wilson/perl5/ch-1.pl new file mode 100644 index 0000000000..1433da3bd7 --- /dev/null +++ b/challenge-019/steven-wilson/perl5/ch-1.pl @@ -0,0 +1,30 @@ +#!/usr/bin/env perl +# Author: Steven Wilson +# Date: 2019-07-30 +# Week: 019 +# +# Task #1 +# Write a script to display months from the year 1900 to 2019 where you +# find 5 weekends i.e. 5 Friday, 5 Saturday and 5 Sunday. + +use strict; +use warnings; +use DateTime; +use feature qw/ say /; + +# If there are 31 days in a month and the first day of the month is a Friday +# then there are 5 weekends in a month. + +my $dt = DateTime->new( + year => 1900, + month => 1, + day => 1, +); + +while ( $dt->year() < 2020 ) { + if ( $dt->month_length() == 31 && $dt->dow() == 5 ) { + say $dt->year() . " " . $dt->month_name(); + } + $dt->add( months => 1 ); +} + diff --git a/challenge-019/steven-wilson/perl5/ch-2.pl b/challenge-019/steven-wilson/perl5/ch-2.pl new file mode 100644 index 0000000000..78785b9fa3 --- /dev/null +++ b/challenge-019/steven-wilson/perl5/ch-2.pl @@ -0,0 +1,38 @@ +#!/usr/bin/env perl +# Author: Steven Wilson +# Date: 2019-07-30 +# Week: 019 +# +# Task #2 +# Write a script that can wrap the given paragraph at a specified column +# using the greedy algorithm. + +use strict; +use warnings; + +my $text = "I saw the best minds of my generation destroyed by madness, +starving hysterical naked, dragging themselves through the negro streets +at dawn looking for an angry fix, Angel-headed hipsters burning for the +ancient heavenly connection to the starry dynamo in the machinery of +night,"; + +$text =~ s/\R/ /g; + +print "specify a column width: "; +chomp( my $line_width = <> ); + +my @words = split / /, $text; + +my $space_left = $line_width; + +for my $word (@words) { + if ( ( ( length $word ) + 1 ) > $space_left ) { + print "\n$word "; + $space_left = $line_width - length $word; + } + else { + print "$word "; + $space_left -= ( ( length $word ) + 1 ); + } +} +print "\n"; diff --git a/challenge-019/walt-mankowski/perl5/ch-1.pl b/challenge-019/walt-mankowski/perl5/ch-1.pl new file mode 100644 index 0000000000..0509d81b26 --- /dev/null +++ b/challenge-019/walt-mankowski/perl5/ch-1.pl @@ -0,0 +1,41 @@ +#!/usr/bin/env perl + +# Perl Weekly Challenge 019-1 +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-019/ +# +# Write a script to display months from the year 1900 to 2019 where +# you find 5 weekends i.e. 5 Friday, 5 Saturday and 5 Sunday. + +use strict; +use warnings; +use feature qw(:5.30); +use experimental qw(signatures); +use Time::Local; + +# Looking at March 2019 it's clear that this can only happen if the +# month has 31 days and starts on a Friday: +# +# March 2019 +# Su Mo Tu We Th Fr Sa +# 1 2 +# 3 4 5 6 7 8 9 +# 10 11 12 13 14 15 16 +# 17 18 19 20 21 22 23 +# 24 25 26 27 28 29 30 +# 31 + +my @months = (0, 2, 4, 6, 7, 9, 11); + +for my $year (1900..2019) { + for my $month (@months) { + if (starts_on_friday($year, $month)) { + printf "%d/%02d\n", $year, $month+1; + } + } +} + +# does the month starts with a Friday? +sub starts_on_friday($year, $month) { + my $time = timelocal(undef, undef, undef, 1, $month, $year); + return (localtime($time))[6] == 5; +} diff --git a/challenge-019/walt-mankowski/perl5/ch-2.pl b/challenge-019/walt-mankowski/perl5/ch-2.pl new file mode 100644 index 0000000000..590ebe5a1f --- /dev/null +++ b/challenge-019/walt-mankowski/perl5/ch-2.pl @@ -0,0 +1,52 @@ +#!/usr/bin/env perl + +# Perl Weekly Challenge 019-2 +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-019/ +# +# Write a script that can wrap the given paragraph at a specified +# column using the greedy algorithm specifed at +# https://en.wikipedia.org/wiki/Line_wrap_and_word_wrap#Minimum_number_of_lines + +use strict; +use warnings; +use feature qw(:5.30); +use experimental qw(signatures); + +my $txt = <<EOT; +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do +eiusmod tempor incididunt ut labore et dolore magna aliqua. Dolor sed +viverra ipsum nunc aliquet bibendum enim. In massa tempor nec +feugiat. Nunc aliquet bibendum enim facilisis gravida. Nisl nunc mi +ipsum faucibus vitae aliquet nec ullamcorper. Amet luctus venenatis +lectus magna fringilla. Volutpat maecenas volutpat blandit aliquam +etiam erat velit scelerisque in. Egestas egestas fringilla phasellus +faucibus scelerisque eleifend. Sagittis orci a scelerisque purus +semper eget duis. Nulla pharetra diam sit amet nisl suscipit. Sed +adipiscing diam donec adipiscing tristique risus nec feugiat in. Fusce +ut placerat orci nulla. Pharetra vel turpis nunc eget lorem +dolor. Tristique senectus et netus et malesuada. +EOT + +my $width = 80; + +say greedy_wrap($txt, $width); + +sub greedy_wrap($txt, $width) { + my @words = split /\s+/, $txt; + my $para = shift @words; + my $space_width = 1; + + my $left = $width - length($para); + for my $word (@words) { + if (length($word) + $space_width > $left) { + $para .= "\n$word"; + $left = $width - length($word); + } else { + $para .= " " x $space_width; + $para .= $word; + $left -= $space_width + length($word); + } + } + + return $para; +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index f5cfa2f931..4ad0ba84eb 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,74 +1,34 @@ { - "tooltip" : { - "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>", - "followPointer" : 1, - "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, "legend" : { "enabled" : 0 }, + "subtitle" : { + "text" : "[Champions: 11] Last updated at 2019-07-30 18:04:13 GMT" + }, "plotOptions" : { "series" : { + "borderWidth" : 0, "dataLabels" : { "format" : "{point.y}", "enabled" : 1 - }, - "borderWidth" : 0 + } } }, - "series" : [ - { - "name" : "Perl Weekly Challenge - 019", - "colorByPoint" : 1, - "data" : [ - { - "drilldown" : "Dave Cross", - "y" : 1, - "name" : "Dave Cross" - }, - { - "name" : "Dave Jacoby", - "y" : 2, - "drilldown" : "Dave Jacoby" - }, - { - "drilldown" : "Lubos Kolouch", - "y" : 2, - "name" : "Lubos Kolouch" - }, - { - "y" : 1, - "drilldown" : "Mark Anderson", - "name" : "Mark Anderson" - }, - { - "y" : 2, - "drilldown" : "Pete Houston", - "name" : "Pete Houston" - }, - { - "name" : "Roger Bell West", - "drilldown" : "Roger Bell West", - "y" : 2 - }, - { - "drilldown" : "Simon Proctor", - "y" : 2, - "name" : "Simon Proctor" - } - ] + "yAxis" : { + "title" : { + "text" : "Total Solutions" } - ], + }, + "tooltip" : { + "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/>", + "followPointer" : 1 + }, "chart" : { "type" : "column" }, - "subtitle" : { - "text" : "[Champions: 7] Last updated at 2019-07-29 16:45:13 GMT" + "xAxis" : { + "type" : "category" }, "drilldown" : { "series" : [ @@ -93,34 +53,44 @@ "id" : "Dave Jacoby" }, { + "name" : "E. Choroba", "data" : [ [ "Perl 5", 2 ] ], - "id" : "Lubos Kolouch", - "name" : "Lubos Kolouch" + "id" : "E. Choroba" }, { - "name" : "Mark Anderson", - "id" : "Mark Anderson", + "id" : "Gustavo Chaves", "data" : [ [ "Perl 5", - 1 + 2 ] - ] + ], + "name" : "Gustavo Chaves" }, { - "name" : "Pete Houston", + "name" : "Lubos Kolouch", "data" : [ [ "Perl 5", 2 ] ], - "id" : "Pete Houston" + "id" : "Lubos Kolouch" + }, + { + "data" : [ + [ + "Perl 5", + 1 + ] + ], + "name" : "Mark Anderson", + "id" : "Mark Anderson" }, { "data" : [ @@ -129,8 +99,18 @@ 2 ] ], + "name" : "Pete Houston", + "id" : "Pete Houston" + }, + { "id" : "Roger Bell West", - "name" : "Roger Bell West" + "name" : "Roger Bell West", + "data" : [ + [ + "Perl 5", + 2 + ] + ] }, { "id" : "Simon Proctor", @@ -141,13 +121,93 @@ ] ], "name" : "Simon Proctor" + }, + { + "id" : "Steven Wilson", + "name" : "Steven Wilson", + "data" : [ + [ + "Perl 5", + 2 + ] + ] + }, + { + "data" : [ + [ + "Perl 5", + 2 + ] + ], + "name" : "Walt Mankowski", + "id" : "Walt Mankowski" } ] }, - "xAxis" : { - "type" : "category" - }, "title" : { "text" : "Perl Weekly Challenge - 019" - } + }, + "series" : [ + { + "name" : "Perl Weekly Challenge - 019", + "data" : [ + { + "drilldown" : "Dave Cross", + "name" : "Dave Cross", + "y" : 1 + }, + { + "drilldown" : "Dave Jacoby", + "name" : "Dave Jacoby", + "y" : 2 + }, + { + "name" : "E. Choroba", + "drilldown" : "E. Choroba", + "y" : 2 + }, + { + "y" : 2, + "name" : "Gustavo Chaves", + "drilldown" : "Gustavo Chaves" + }, + { + "y" : 2, + "name" : "Lubos Kolouch", + "drilldown" : "Lubos Kolouch" + }, + { + "y" : 1, + "name" : "Mark Anderson", + "drilldown" : "Mark Anderson" + }, + { + "name" : "Pete Houston", + "drilldown" : "Pete Houston", + "y" : 2 + }, + { + "y" : 2, + "drilldown" : "Roger Bell West", + "name" : "Roger Bell West" + }, + { + "y" : 2, + "drilldown" : "Simon Proctor", + "name" : "Simon Proctor" + }, + { + "y" : 2, + "drilldown" : "Steven Wilson", + "name" : "Steven Wilson" + }, + { + "y" : 2, + "name" : "Walt Mankowski", + "drilldown" : "Walt Mankowski" + } + ], + "colorByPoint" : 1 + } + ] } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 2028e6759f..89d7c0d569 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,15 +1,37 @@ { + "yAxis" : { + "title" : { + "text" : null + }, + "min" : 0 + }, + "title" : { + "text" : "Perl Weekly Challenge Contributions - 2019" + }, "xAxis" : { "labels" : { "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" } }, "type" : "category" }, + "chart" : { + "type" : "column" + }, + "subtitle" : { + "text" : "Last updated at 2019-07-30 18:04:21 GMT" + }, + "tooltip" : { + "pointFormat" : "<b>{point.y:.0f}</b>" + }, + "legend" : { + "enabled" : "false" + }, "series" : [ { + "name" : "Contributions", "data" : [ [ "Blog", @@ -17,47 +39,25 @@ ], [ "Perl 5", - 759 + 767 ], [ "Perl 6", 441 ] ], - "name" : "Contributions", "dataLabels" : { "format" : "{point.y:.0f}", - "align" : "right", - "color" : "#FFFFFF", "enabled" : "true", - "rotation" : -90, + "color" : "#FFFFFF", "y" : 10, + "align" : "right", "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - } + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + }, + "rotation" : -90 } } - ], - "subtitle" : { - "text" : "Last updated at 2019-07-29 16:45:20 GMT" - }, - "legend" : { - "enabled" : "false" - }, - "title" : { - "text" : "Perl Weekly Challenge Contributions - 2019" - }, - "chart" : { - "type" : "column" - }, - "tooltip" : { - "pointFormat" : "<b>{point.y:.0f}</b>" - }, - "yAxis" : { - "title" : { - "text" : null - }, - "min" : 0 - } + ] } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index a8bdd8f81f..afb562d286 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -2,28 +2,40 @@ "chart" : { "type" : "column" }, - "tooltip" : { - "headerFormat" : "<span style=\"font-size:11px\"></span>", - "followPointer" : "true", - "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>" + "subtitle" : { + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2019-07-30 18:04:21 GMT" }, "title" : { "text" : "Perl Weekly Challenge Language" }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + } + } + }, "yAxis" : { "title" : { "text" : "Total Solutions" } }, + "xAxis" : { + "type" : "category" + }, + "legend" : { + "enabled" : "false" + }, "series" : [ { - "colorByPoint" : "true", "name" : "Perl Weekly Challenge Languages", "data" : [ { "name" : "#001", - "drilldown" : "001", - "y" : 123 + "y" : 123, + "drilldown" : "001" }, { "y" : 104, @@ -31,24 +43,24 @@ "drilldown" : "002" }, { - "name" : "#003", "drilldown" : "003", + "name" : "#003", "y" : 66 }, { - "name" : "#004", "drilldown" : "004", + "name" : "#004", "y" : 84 }, { - "y" : 66, "drilldown" : "005", + "y" : 66, "name" : "#005" }, { - "name" : "#006", "drilldown" : "006", - "y" : 47 + "y" : 47, + "name" : "#006" }, { "y" : 54, @@ -57,12 +69,12 @@ }, { "name" : "#008", - "drilldown" : "008", - "y" : 67 + "y" : 67, + "drilldown" : "008" }, { - "name" : "#009", "drilldown" : "009", + "name" : "#009", "y" : 65 }, { @@ -71,68 +83,54 @@ "drilldown" : "010" }, { - "y" : 77, "drilldown" : "011", - "name" : "#011" + "name" : "#011", + "y" : 77 }, { + "drilldown" : "012", "y" : 81, - "name" : "#012", - "drilldown" : "012" + "name" : "#012" }, { - "name" : "#013", "drilldown" : "013", + "name" : "#013", "y" : 74 }, { "name" : "#014", - "drilldown" : "014", - "y" : 94 + "y" : 94, + "drilldown" : "014" }, { - "drilldown" : "015", "name" : "#015", - "y" : 90 + "y" : 90, + "drilldown" : "015" }, { - "name" : "#016", "drilldown" : "016", + "name" : "#016", "y" : 64 }, { - "y" : 77, "name" : "#017", + "y" : 77, "drilldown" : "017" }, { + "drilldown" : "018", "y" : 70, - "name" : "#018", - "drilldown" : "018" + "name" : "#018" }, { - "y" : 12, - "drilldown" : "019", - "name" : "#019" + "y" : 20, + "name" : "#019", + "drilldown" : "019" } - ] + ], + "colorByPoint" : "true" } ], - "xAxis" : { - "type" : "category" - }, - "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2019-07-29 16:45:20 GMT" - }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - }, - "borderWidth" : 0 - } - }, "drilldown" : { "series" : [ { @@ -168,10 +166,12 @@ 9 ] ], - "name" : "002", - "id" : "002" + "id" : "002", + "name" : "002" }, { + "id" : "003", + "name" : "003", "data" : [ [ "Perl 5", @@ -185,9 +185,7 @@ "Blog", 8 ] - ], - "id" : "003", - "name" : "003" + ] }, { "name" : "004", @@ -222,8 +220,8 @@ 11 ] ], - "name" : "005", - "id" : "005" + "id" : "005", + "name" : "005" }, { "data" : [ @@ -240,12 +238,10 @@ 6 ] ], - "name" : "006", - "id" : "006" + "id" : "006", + "name" : "006" }, { - "name" : "007", - "id" : "007", "data" : [ [ "Perl 5", @@ -259,9 +255,13 @@ "Blog", 8 ] - ] + ], + "name" : "007", + "id" : "007" }, { + "name" : "008", + "id" : "008", "data" : [ [ "Perl 5", @@ -275,13 +275,9 @@ "Blog", 9 ] - ], - "id" : "008", - "name" : "008" + ] }, { - "name" : "009", - "id" : "009", "data" : [ [ "Perl 5", @@ -295,11 +291,13 @@ "Blog", 11 ] - ] + ], + "name" : "009", + "id" : "009" }, { - "id" : "010", "name" : "010", + "id" : "010", "data" : [ [ "Perl 5", @@ -316,8 +314,8 @@ ] }, { - "name" : "011", "id" : "011", + "name" : "011", "data" : [ [ "Perl 5", @@ -334,6 +332,8 @@ ] }, { + "id" : "012", + "name" : "012", "data" : [ [ "Perl 5", @@ -347,9 +347,7 @@ "Blog", 9 ] - ], - "id" : "012", - "name" : "012" + ] }, { "name" : "013", @@ -370,6 +368,8 @@ ] }, { + "id" : "014", + "name" : "014", "data" : [ [ "Perl 5", @@ -383,9 +383,7 @@ "Blog", 13 ] |
