aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2022-05-02 04:32:05 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2022-05-02 04:32:05 +0100
commitbec032f9ed6184666bcc342527fbdc0933d463a4 (patch)
tree3f1cafb73248702a4b60c745611ebf1bd5ce5edc
parenta2b36921818173701d96a96c35ee96fbf96b7d42 (diff)
downloadperlweeklychallenge-club-bec032f9ed6184666bcc342527fbdc0933d463a4.tar.gz
perlweeklychallenge-club-bec032f9ed6184666bcc342527fbdc0933d463a4.tar.bz2
perlweeklychallenge-club-bec032f9ed6184666bcc342527fbdc0933d463a4.zip
- Added solutions by Flavio Poletti.
-rw-r--r--challenge-162/polettix/blog.txt1
-rw-r--r--challenge-162/polettix/blog1.txt1
-rw-r--r--challenge-162/polettix/perl/ch-1.pl16
-rw-r--r--challenge-162/polettix/perl/ch-2.pl54
-rw-r--r--challenge-162/polettix/raku/ch-1.raku11
-rw-r--r--challenge-162/polettix/raku/ch-2.raku43
-rw-r--r--stats/pwc-current.json221
-rw-r--r--stats/pwc-language-breakdown-summary.json56
-rw-r--r--stats/pwc-language-breakdown.json972
-rw-r--r--stats/pwc-leaders.json750
-rw-r--r--stats/pwc-summary-1-30.json104
-rw-r--r--stats/pwc-summary-121-150.json94
-rw-r--r--stats/pwc-summary-151-180.json120
-rw-r--r--stats/pwc-summary-181-210.json98
-rw-r--r--stats/pwc-summary-211-240.json94
-rw-r--r--stats/pwc-summary-241-270.json26
-rw-r--r--stats/pwc-summary-31-60.json92
-rw-r--r--stats/pwc-summary-61-90.json44
-rw-r--r--stats/pwc-summary-91-120.json34
-rw-r--r--stats/pwc-summary.json558
20 files changed, 1769 insertions, 1620 deletions
diff --git a/challenge-162/polettix/blog.txt b/challenge-162/polettix/blog.txt
new file mode 100644
index 0000000000..386fd7d5b9
--- /dev/null
+++ b/challenge-162/polettix/blog.txt
@@ -0,0 +1 @@
+https://github.polettix.it/ETOOBUSY/2022/04/26/pwc162-isbn-13/
diff --git a/challenge-162/polettix/blog1.txt b/challenge-162/polettix/blog1.txt
new file mode 100644
index 0000000000..8c6476eb94
--- /dev/null
+++ b/challenge-162/polettix/blog1.txt
@@ -0,0 +1 @@
+https://github.polettix.it/ETOOBUSY/2022/04/27/pwc162-wheatstone-playfair/
diff --git a/challenge-162/polettix/perl/ch-1.pl b/challenge-162/polettix/perl/ch-1.pl
new file mode 100644
index 0000000000..edd3efb32a
--- /dev/null
+++ b/challenge-162/polettix/perl/ch-1.pl
@@ -0,0 +1,16 @@
+#!/usr/bin/env perl
+use v5.24;
+use warnings;
+use experimental 'signatures';
+no warnings 'experimental::signatures';
+use List::Util qw< pairmap sum >;
+
+my $input = shift // '978-0-306-40615-7';
+say "ISBN-13 check digit for '$input' is @{[isbn_13($input)]}.";
+
+sub isbn_13 ($input) {
+ sum(
+ pairmap { -$a - 3* $b }
+ ($input =~ m{(\d)}gmxs)[0 .. 11]
+ ) % 10;
+}
diff --git a/challenge-162/polettix/perl/ch-2.pl b/challenge-162/polettix/perl/ch-2.pl
new file mode 100644
index 0000000000..0313de531a
--- /dev/null
+++ b/challenge-162/polettix/perl/ch-2.pl
@@ -0,0 +1,54 @@
+#!/usr/bin/env perl
+use v5.24;
+use warnings;
+use experimental 'signatures';
+no warnings 'experimental::signatures';
+
+say encrypt('playfair example', 'hide the gold in the tree stump');
+say decrypt('perl and raku', 'siderwrdulfipaarkcrw');
+
+sub encrypt ($key, $message) { wheatstone_playfair($key, $message, 1) }
+sub decrypt ($key, $message) { wheatstone_playfair($key, $message, 5 - 1) }
+The main workhorse is then the following function, I hope the comments are sufficient!
+
+sub wheatstone_playfair ($key, $message, $off) {
+
+ # pre-massage the input, go uppercase and remove all j:s
+ $_ = lc($_) =~ s{j}{i}rgmxs for $key, $message;
+
+ # we don't need no stinkin' matrix, a bijection in two arrays is OK
+ my %flag;
+ my @letter_at = grep { $flag{$_}++ == 0 }
+ split(m{[^a-z]?}imxs, $key), 'a' .. 'i', 'k' .. 'z', 'j';
+
+ # the "go back" might be a hash but we are C nostalgic
+ my $oA = ord('a'); # used to turn lc letters into array indexes
+ my @pos_of = map { $_->[0] } # get indexes
+ sort { $a->[1] cmp $b->[1] } # sorted by letter position
+ map { [$_, $letter_at[$_]] } 0 .. $#letter_at;
+
+ # take only letters into consideration, split on everything else
+ my @message = split m{[^a-z]?}imxs, $message;
+ my @output;
+ while (@message) {
+
+ # first letter is whatever, second letter might be an X
+ my $A = shift @message;
+ my $B = @message && $message[0] ne $A ? shift @message : 'x';
+
+ # get positions, $A and $B are spoiled on the way but it's OK
+ my ($Ax, $Ay, $Bx, $By) = map {
+ my $v = $pos_of[ord($_) - $oA];
+ ($v % 5, int($v / 5))
+ } ($A, $B);
+
+ # apply Wheatstone-Playfair mapping
+ ($Ax, $Ay, $Bx, $By) =
+ $Ax == $Bx ? ($Ax, ($Ay + $off) % 5, $Bx, ($By + $off) % 5)
+ : $Ay == $By ? (($Ax + $off) % 5, $Ay, ($Bx + $off) % 5, $By)
+ : ($Bx, $Ay, $Ax, $By);
+
+ push @output, @letter_at[$Ax + 5 * $Ay, $Bx + 5 * $By];
+ } ## end while (@message)
+ return join '', @output;
+} ## end sub wheatstone_playfair
diff --git a/challenge-162/polettix/raku/ch-1.raku b/challenge-162/polettix/raku/ch-1.raku
new file mode 100644
index 0000000000..3da9a8f806
--- /dev/null
+++ b/challenge-162/polettix/raku/ch-1.raku
@@ -0,0 +1,11 @@
+#!/usr/bin/env raku
+use v6;
+sub MAIN (Str:D $input = '978-0-306-40615-7') {
+ put "ISBN-13 check digit for '$input' is {isbn_13($input)}.";
+}
+
+sub isbn_13 ($input) {
+ $input.comb(/\d/)[0..11] # focus on first 12 digits
+ .map({-$^a - 3 * $^b}) # apply equivalent weights
+ .sum % 10; # sum and take remainder
+}
diff --git a/challenge-162/polettix/raku/ch-2.raku b/challenge-162/polettix/raku/ch-2.raku
new file mode 100644
index 0000000000..eff3949277
--- /dev/null
+++ b/challenge-162/polettix/raku/ch-2.raku
@@ -0,0 +1,43 @@
+#!/usr/bin/env raku
+use v6;
+
+put encrypt('playfair example', 'hide the gold in the tree stump');
+put decrypt('perl and raku', 'siderwrdulfipaarkcrw');
+
+sub encrypt ($key, $message) { wheatstone-playfair($key, $message, 1) }
+sub decrypt ($key, $message) { wheatstone-playfair($key, $message, 5 - 1) }
+
+sub wheatstone-playfair ($key is copy, $message is copy, $off) {
+ for $key, $message { $_ = $_.lc; s:g/j/i/ }
+
+ # we don't need no stinkin' matrix, a bijection in two arrays is OK
+ my %flag;
+ my @letter-at = ($key.comb(/<[a .. z]>/), 'a' .. 'i', 'k' .. 'z', 'j')
+ .flat.grep({ %flag{$_}++ == 0 });
+
+ # in Raku we're not C nostalgic any more
+ my %pos-of = (0..25).map({ @letter-at[$_] => $_ });
+
+ # take only letters into consideration, split on everything else
+ my @message = $message.comb(/<[ a ..z ]>/);
+ my @output;
+ while @message {
+
+ # first letter is whatever, second letter might be an X
+ my $A = shift @message;
+ my $B = @message && @message[0] ne $A ?? @message.shift !! 'x';
+
+ # get positions, $A and $B are spoiled on the way but it's OK
+ my ($Ax, $Ay, $Bx, $By) =
+ ($A, $B).map({ my $v = %pos-of{$_}; ($v % 5, ($v / 5).Int) }).flat;
+
+ # apply Wheatstone-Playfair mapping
+ ($Ax, $Ay, $Bx, $By) =
+ $Ax == $Bx ?? ($Ax, ($Ay + $off) % 5, $Bx, ($By + $off) % 5)
+ !! $Ay == $By ?? (($Ax + $off) % 5, $Ay, ($Bx + $off) % 5, $By)
+ !! ($Bx, $Ay, $Ax, $By);
+
+ @output.push: @letter-at[$Ax + 5 * $Ay, $Bx + 5 * $By].Slip;
+ } ## end while (@message)
+ return join '', @output;
+}
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index e2e56b2d81..8e08580bf7 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -2,21 +2,9 @@
"chart" : {
"type" : "column"
},
- "xAxis" : {
- "type" : "category"
- },
- "title" : {
- "text" : "The Weekly Challenge - 162"
- },
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
- },
"drilldown" : {
"series" : [
{
- "name" : "Adam Russell",
"data" : [
[
"Perl",
@@ -27,7 +15,8 @@
2
]
],
- "id" : "Adam Russell"
+ "id" : "Adam Russell",
+ "name" : "Adam Russell"
},
{
"id" : "Alexander Pankoff",
@@ -40,6 +29,7 @@
"name" : "Alexander Pankoff"
},
{
+ "name" : "Arne Sommer",
"data" : [
[
"Raku",
@@ -50,11 +40,9 @@
1
]
],
- "id" : "Arne Sommer",
- "name" : "Arne Sommer"
+ "id" : "Arne Sommer"
},
{
- "id" : "Athanasius",
"data" : [
[
"Perl",
@@ -65,9 +53,11 @@
2
]
],
+ "id" : "Athanasius",
"name" : "Athanasius"
},
{
+ "id" : "Cheok-Yin Fung",
"data" : [
[
"Perl",
@@ -78,11 +68,9 @@
1
]
],
- "id" : "Cheok-Yin Fung",
"name" : "Cheok-Yin Fung"
},
{
- "name" : "Colin Crain",
"id" : "Colin Crain",
"data" : [
[
@@ -93,11 +81,11 @@
"Blog",
2
]
- ]
+ ],
+ "name" : "Colin Crain"
},
{
"name" : "Dave Jacoby",
- "id" : "Dave Jacoby",
"data" : [
[
"Perl",
@@ -107,17 +95,18 @@
"Blog",
1
]
- ]
+ ],
+ "id" : "Dave Jacoby"
},
{
"name" : "Duncan C. White",
- "id" : "Duncan C. White",
"data" : [
[
"Perl",
2
]
- ]
+ ],
+ "id" : "Duncan C. White"
},
{
"name" : "E. Choroba",
@@ -130,7 +119,25 @@
]
},
{
- "name" : "James Smith",
+ "name" : "Flavio Poletti",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Raku",
+ 2
+ ],
+ [
+ "Blog",
+ 2
+ ]
+ ],
+ "id" : "Flavio Poletti"
+ },
+ {
+ "id" : "James Smith",
"data" : [
[
"Perl",
@@ -141,39 +148,40 @@
1
]
],
- "id" : "James Smith"
+ "name" : "James Smith"
},
{
- "name" : "Jan Krnavek",
- "id" : "Jan Krnavek",
"data" : [
[
"Raku",
1
]
- ]
+ ],
+ "id" : "Jan Krnavek",
+ "name" : "Jan Krnavek"
},
{
- "name" : "Jorg Sommrey",
"id" : "Jorg Sommrey",
"data" : [
[
"Perl",
2
]
- ]
+ ],
+ "name" : "Jorg Sommrey"
},
{
+ "id" : "Julien Fiegehenn",
"data" : [
[
"Perl",
2
]
],
- "id" : "Julien Fiegehenn",
"name" : "Julien Fiegehenn"
},
{
+ "id" : "Laurent Rosenfeld",
"data" : [
[
"Perl",
@@ -188,28 +196,27 @@
1
]
],
- "id" : "Laurent Rosenfeld",
"name" : "Laurent Rosenfeld"
},
{
- "id" : "Lubos Kolouch",
"data" : [
[
"Perl",
1
]
],
+ "id" : "Lubos Kolouch",
"name" : "Lubos Kolouch"
},
{
- "name" : "Luca Ferrari",
"id" : "Luca Ferrari",
"data" : [
[
"Raku",
2
]
- ]
+ ],
+ "name" : "Luca Ferrari"
},
{
"name" : "Mark Anderson",
@@ -252,27 +259,27 @@
"name" : "Mohammad S Anwar"
},
{
- "name" : "Niels van Dijke",
- "id" : "Niels van Dijke",
"data" : [
[
"Perl",
2
]
- ]
+ ],
+ "id" : "Niels van Dijke",
+ "name" : "Niels van Dijke"
},
{
+ "id" : "Paulo Custodio",
"data" : [
[
"Perl",
2
]
],
- "id" : "Paulo Custodio",
"name" : "Paulo Custodio"
},
{
- "id" : "Peter Campbell Smith",
+ "name" : "Peter Campbell Smith",
"data" : [
[
"Perl",
@@ -283,7 +290,7 @@
1
]
],
- "name" : "Peter Campbell Smith"
+ "id" : "Peter Campbell Smith"
},
{
"name" : "PokGoPun",
@@ -296,18 +303,17 @@
]
},
{
- "name" : "Rick Bychowski",
+ "id" : "Rick Bychowski",
"data" : [
[
"Raku",
2
]
],
- "id" : "Rick Bychowski"
+ "name" : "Rick Bychowski"
},
{
"name" : "Robert DiCicco",
- "id" : "Robert DiCicco",
"data" : [
[
"Perl",
@@ -317,7 +323,8 @@
"Raku",
1
]
- ]
+ ],
+ "id" : "Robert DiCicco"
},
{
"id" : "Robert Ransbottom",
@@ -349,6 +356,7 @@
},
{
"name" : "Ryan Thompson",
+ "id" : "Ryan Thompson",
"data" : [
[
"Perl",
@@ -358,11 +366,10 @@
"Blog",
2
]
- ],
- "id" : "Ryan Thompson"
+ ]
},
{
- "name" : "Ulrich Rieke",
+ "id" : "Ulrich Rieke",
"data" : [
[
"Perl",
@@ -373,11 +380,10 @@
2
]
],
- "id" : "Ulrich Rieke"
+ "name" : "Ulrich Rieke"
},
{
"name" : "W. Luis Mochan",
- "id" : "W. Luis Mochan",
"data" : [
[
"Perl",
@@ -387,48 +393,50 @@
"Blog",
1
]
- ]
+ ],
+ "id" : "W. Luis Mochan"
}
]
},
- "subtitle" : {
- "text" : "[Champions: 31] Last updated at 2022-05-01 23:41:38 GMT"
+ "legend" : {
+ "enabled" : 0
+ },
+ "xAxis" : {
+ "type" : "category"
+ },
+ "title" : {
+ "text" : "The Weekly Challenge - 162"
},
"plotOptions" : {
"series" : {
+ "borderWidth" : 0,
"dataLabels" : {
"enabled" : 1,
"format" : "{point.y}"
- },
- "borderWidth" : 0
+ }
}
},
"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,
- "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>"
- },
- "legend" : {
- "enabled" : 0
+ "followPointer" : 1
},
"series" : [
{
- "name" : "The Weekly Challenge - 162",
- "colorByPoint" : 1,
"data" : [
{
- "y" : 3,
"name" : "Adam Russell",
+ "y" : 3,
"drilldown" : "Adam Russell"
},
{
- "drilldown" : "Alexander Pankoff",
+ "y" : 2,
"name" : "Alexander Pankoff",
- "y" : 2
+ "drilldown" : "Alexander Pankoff"
},
{
- "y" : 3,
"name" : "Arne Sommer",
+ "y" : 3,
"drilldown" : "Arne Sommer"
},
{
@@ -452,9 +460,9 @@
"y" : 3
},
{
- "drilldown" : "Duncan C. White",
+ "name" : "Duncan C. White",
"y" : 2,
- "name" : "Duncan C. White"
+ "drilldown" : "Duncan C. White"
},
{
"y" : 2,
@@ -462,9 +470,14 @@
"drilldown" : "E. Choroba"
},
{
- "drilldown" : "James Smith",
+ "y" : 6,
+ "name" : "Flavio Poletti",
+ "drilldown" : "Flavio Poletti"
+ },
+ {
"y" : 3,
- "name" : "James Smith"
+ "name" : "James Smith",
+ "drilldown" : "James Smith"
},
{
"drilldown" : "Jan Krnavek",
@@ -477,39 +490,39 @@
"y" : 2
},
{
- "y" : 2,
"name" : "Julien Fiegehenn",
+ "y" : 2,
"drilldown" : "Julien Fiegehenn"
},
{
- "drilldown" : "Laurent Rosenfeld",
"y" : 5,
- "name" : "Laurent Rosenfeld"
+ "name" : "Laurent Rosenfeld",
+ "drilldown" : "Laurent Rosenfeld"
},
{
+ "drilldown" : "Lubos Kolouch",
"y" : 1,
- "name" : "Lubos Kolouch",
- "drilldown" : "Lubos Kolouch"
+ "name" : "Lubos Kolouch"
},
{
- "drilldown" : "Luca Ferrari",
+ "y" : 2,
"name" : "Luca Ferrari",
- "y" : 2
+ "drilldown" : "Luca Ferrari"
},
{
"drilldown" : "Mark Anderson",
- "name" : "Mark Anderson",
- "y" : 2
+ "y" : 2,
+ "name" : "Mark Anderson"
},
{
+ "drilldown" : "Marton Polgar",
"y" : 2,
- "name" : "Marton Polgar",
- "drilldown" : "Marton Polgar"
+ "name" : "Marton Polgar"
},
{
- "name" : "Matthew Neleigh",
+ "drilldown" : "Matthew Neleigh",
"y" : 2,
- "drilldown" : "Matthew Neleigh"
+ "name" : "Matthew Neleigh"
},
{
"drilldown" : "Mohammad S Anwar",
@@ -517,29 +530,29 @@
"y" : 1
},
{
- "drilldown" : "Niels van Dijke",
+ "y" : 2,
"name" : "Niels van Dijke",
- "y" : 2
+ "drilldown" : "Niels van Dijke"
},
{
- "y" : 2,
"name" : "Paulo Custodio",
+ "y" : 2,
"drilldown" : "Paulo Custodio"
},
{
- "drilldown" : "Peter Campbell Smith",
"name" : "Peter Campbell Smith",
- "y" : 3
+ "y" : 3,
+ "drilldown" : "Peter Campbell Smith"
},
{
- "y" : 2,
"name" : "PokGoPun",
+ "y" : 2,
"drilldown" : "PokGoPun"
},
{
- "drilldown" : "Rick Bychowski",
+ "y" : 2,
"name" : "Rick Bychowski",
- "y" : 2
+ "drilldown" : "Rick Bychowski"
},
{
"name" : "Robert DiCicco",
@@ -557,21 +570,31 @@
"y" : 5
},
{
- "name" : "Ryan Thompson",
+ "drilldown" : "Ryan Thompson",
"y" : 4,
- "drilldown" : "Ryan Thompson"
+ "name" : "Ryan Thompson"
},
{
- "name" : "Ulrich Rieke",
+ "drilldown" : "Ulrich Rieke",
"y" : 3,
- "drilldown" : "Ulrich Rieke"
+ "name" : "Ulrich Rieke"
},
{
"drilldown" : "W. Luis Mochan",
- "y" : 3,
- "name" : "W. Luis Mochan"
+ "name" : "W. Luis Mochan",
+ "y" : 3
}
- ]
+ ],
+ "colorByPoint" : 1,
+ "name" : "The Weekly Challenge - 162"
}
- ]
+ ],
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
+ },
+ "subtitle" : {
+ "text" : "[Champions: 32] Last updated at 2022-05-02 03:30:20 GMT"
+ }
}
diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json
index a696ca667f..b67cca2acb 100644
--- a/stats/pwc-language-breakdown-summary.json
+++ b/stats/pwc-language-breakdown-summary.json
@@ -1,62 +1,62 @@
{
- "yAxis" : {
- "min" : 0,
- "title" : {
- "text" : null
- }
- },
"title" : {
"text" : "The Weekly Challenge Contributions [2019 - 2022]"
},
- "xAxis" : {
- "type" : "category",
- "labels" : {
- "style" : {
- "fontFamily" : "Verdana, sans-serif",
- "fontSize" : "13px"
- }
- }
- },
- "chart" : {
- "type" : "column"
- },
"tooltip" : {
"pointFormat" : "<b>{point.y:.0f}</b>"
},
- "subtitle" : {
- "text" : "Last updated at 2022-05-01 23:41:37 GMT"
+ "yAxis" : {
+ "min" : 0,
+ "title" : {
+ "text" : null
+ }
},
"series" : [
{
"dataLabels" : {
+ "rotation" : -90,
+ "y" : 10,
"style" : {
- "fontSize" : "13px",
- "fontFamily" : "Verdana, sans-serif"
+ "fontFamily" : "Verdana, sans-serif",
+ "fontSize" : "13px"
},
- "rotation" : -90,
"align" : "right",
"format" : "{point.y:.0f}",
- "enabled" : "true",
"color" : "#FFFFFF",
- "y" : 10
+ "enabled" : "true"
},
"name" : "Contributions",
"data" : [
[
"Blog",
- 2485
+ 2487
],
[
"Perl",
- 7920
+ 7922
],
[
"Raku",
- 4693
+ 4695
]
]
}
],
+ "subtitle" : {
+ "text" : "Last updated at 2022-05-02 03:30:20 GMT"
+ },
+ "chart" : {
+ "type" : "column"
+ },
+ "xAxis" : {
+ "labels" : {
+ "style" : {
+ "fontFamily" : "Verdana, sans-serif",
+ "fontSize" : "13px"
+ }
+ },
+ "type" : "category"
+ },
"legend" : {
"enabled" : "false"
}
diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json
index 748926ae98..62a08b85ad 100644
--- a/stats/pwc-language-breakdown.json
+++ b/stats/pwc-language-breakdown.json
@@ -1,18 +1,7 @@
{
- "xAxis" : {
- "type" : "category"
- },
"chart" : {
"type" : "column"
},
- "title" : {
- "text" : "The Weekly Challenge Language"
- },
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
- },
"drilldown" : {
"series" : [
{
@@ -52,8 +41,6 @@
"name" : "002"
},
{
- "name" : "003",
- "id" : "003",
"data" : [
[
"Perl",
@@ -67,10 +54,11 @@
"Blog",
9
]
- ]
+ ],
+ "id" : "003",
+ "name" : "003"
},
{
- "name" : "004",
"id" : "004",
"data" : [
[
@@ -85,10 +73,10 @@
"Blog",
10
]
- ]
+ ],
+ "name" : "004"
},
{
- "name" : "005",
"id" : "005",
"data" : [
[
@@ -103,7 +91,8 @@
"Blog",
12
]
- ]
+ ],
+ "name" : "005"
},
{
"name" : "006",
@@ -124,6 +113,7 @@
"id" : "006"
},
{
+ "id" : "007",
"data" : [
[
"Perl",
@@ -138,11 +128,10 @@
10
]
],
- "id" : "007",
"name" : "007"
},
{
- "name" : "008",
+ "id" : "008",
"data" : [
[
"Perl",
@@ -157,10 +146,10 @@
12
]
],
- "id" : "008"
+ "name" : "008"
},
{
- "id" : "009",
+ "name" : "009",
"data" : [
[
"Perl",
@@ -175,10 +164,10 @@
13
]
],
- "name" : "009"
+ "id" : "009"
},
{
- "name" : "010",
+ "id" : "010",
"data" : [
[
"Perl",
@@ -193,10 +182,9 @@
11
]
],
- "id" : "010"
+ "name" : "010"
},
{
- "name" : "011",
"id" : "011",
"data" : [
[
@@ -211,11 +199,10 @@
"Blog",
10
]
- ]
+ ],
+ "name" : "011"
},
{
- "name" : "012",
- "id" : "012",
"data" : [
[
"Perl",
@@ -229,9 +216,12 @@
"Blog",
11
]
- ]
+ ],
+ "id" : "012",
+ "name" : "012"
},
{
+ "name" : "013",
"id" : "013",
"data" : [
[
@@ -246,11 +236,11 @@
"Blog",
13
]
- ],
- "name" : "013"
+ ]
},
{
"name" : "014",
+ "id" : "014",
"data" : [
[
"Perl",
@@ -264,11 +254,9 @@
"Blog",
15
]
- ],
- "id" : "014"
+ ]
},
{
- "id" : "015",
"data" : [
[
"Perl",
@@ -283,6 +271,7 @@
15
]
],
+ "id" : "015",
"name" : "015"
},
{
@@ -304,6 +293,7 @@
"name" : "016"
},
{
+ "id" : "017",
"data" : [
[
"Perl",