aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2019-11-11 17:25:42 +0000
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2019-11-11 17:25:42 +0000
commit7c7aa787fa7c346e63ef41238acc7e923e6c60ee (patch)
tree50066d49d2f6a9b34776b8a6f8397cfd3008ee16
parente04b476874865735812bf25a91751474d53769fb (diff)
downloadperlweeklychallenge-club-7c7aa787fa7c346e63ef41238acc7e923e6c60ee.tar.gz
perlweeklychallenge-club-7c7aa787fa7c346e63ef41238acc7e923e6c60ee.tar.bz2
perlweeklychallenge-club-7c7aa787fa7c346e63ef41238acc7e923e6c60ee.zip
- Added solutions by Duane Powell.
-rwxr-xr-xchallenge-034/duane-powell/perl5/ch-1.pl141
-rwxr-xr-xchallenge-034/duane-powell/perl5/ch-2.pl141
-rw-r--r--stats/pwc-current.json99
-rw-r--r--stats/pwc-language-breakdown-summary.json54
-rw-r--r--stats/pwc-language-breakdown.json518
-rw-r--r--stats/pwc-leaders.json526
-rw-r--r--stats/pwc-summary-1-30.json110
-rw-r--r--stats/pwc-summary-121-150.json44
-rw-r--r--stats/pwc-summary-31-60.json98
-rw-r--r--stats/pwc-summary-61-90.json30
-rw-r--r--stats/pwc-summary-91-120.json44
-rw-r--r--stats/pwc-summary.json56
12 files changed, 1079 insertions, 782 deletions
diff --git a/challenge-034/duane-powell/perl5/ch-1.pl b/challenge-034/duane-powell/perl5/ch-1.pl
new file mode 100755
index 0000000000..8328a4a3b9
--- /dev/null
+++ b/challenge-034/duane-powell/perl5/ch-1.pl
@@ -0,0 +1,141 @@
+#!/usr/bin/perl
+use warnings;
+use strict;
+use feature qw( say );
+
+# Write a program that demonstrates using hash slices and/or array slices.
+# Write a program that demonstrates a dispatch table.
+
+my @CARD; # Global deck of 52 playing cards
+sub new_deck {
+ @CARD = ();
+ foreach my $suite ('H','S','C','D') {
+ foreach my $rank ('2'..'9','T','J','Q','K','A') {
+ my $card = $rank.$suite;
+ push @CARD, $card;
+ }
+ }
+ return "\nNew deck generated.";
+}
+
+sub shuffle_riffle {
+ # riffle shuffe deck random between 100 and 500 times
+ cut();
+ my $loop = int(rand(501-100)+100);
+ foreach (1 .. $loop) {
+ # split deck into left and right hand using array slices
+ my @left = @CARD[0 .. 25];
+ my @right = @CARD[26 .. 51];
+ my @temp;
+ foreach (1..26) {
+ push @temp, shift @left;
+ push @temp, shift @right;
+ }
+ @CARD = @temp;
+ }
+ return "Cards riffle shuffled $loop times.";
+}
+
+sub shuffle_reverse_cut {
+ # Reverse cut shuffle using array slices between 1 and 10 times
+ foreach (1 .. int(rand(10))+1) {
+ cut();
+ @CARD = (@CARD[40..51],@CARD[30..39],@CARD[20..29],@CARD[10..19],@CARD[0..9]);
+ }
+ return "Cards reverse cut shuffled.";
+}
+
+sub cut {
+ # Don't cut deck perfectly, generated random number near middle of deck between 32 and 20
+ my $rand = int(rand(33-20)+20);
+ # Split deck into left and right hands using array slices
+ my @left = @CARD[0 .. $rand];
+ my @right = @CARD[$rand+1 .. 51];
+ @CARD = (@right, @left);
+ return "Cards cut.";
+}
+
+sub deal {
+ my ($cards, $hands) = @_;
+ foreach (1 .. $cards) {
+ foreach (1 .. $hands) {
+ my $card = shift @CARD;
+ print "\t$card";
+ }
+ say "";
+ }
+ return "$hands hands of $cards cards dealt.";
+}
+
+sub deck_list {
+ return "Remaining cards are: ". join(',',@CARD);
+}
+
+# Dispatch table
+my %dispatcher = (
+ 'new_deck' => \&new_deck,
+ 'shuffle_riffle' => \&shuffle_riffle,
+ 'shuffle_reverse_cut' => \&shuffle_reverse_cut,
+ 'cut' => \&cut,
+ 'deal' => \&deal,
+ 'deck_list' => \&deck_list,
+);
+
+# Call subs via dispatcher
+say $dispatcher{'new_deck'}->();
+foreach (1 .. int(rand(11-3)+3)) { # randomly call shuffle methods 3 to 10 times
+ my $shuffle = (rand() < 0.5) ? "shuffle_riffle" :"shuffle_reverse_cut";
+ say $dispatcher{$shuffle}->();
+}
+say $dispatcher{'cut'}->();
+say $dispatcher{'deal'}->(5,5);
+say $dispatcher{'deck_list'}->();
+
+say $dispatcher{'new_deck'}->();
+foreach (1 .. int(rand(11-3)+3)) { # randomly call shuffle methods 3 to 10 times
+ my $shuffle = (rand() < 0.5) ? "shuffle_riffle" :"shuffle_reverse_cut";
+ say $dispatcher{$shuffle}->();
+}
+say $dispatcher{'cut'}->();
+say $dispatcher{'deal'}->(7,4);
+say $dispatcher{'deck_list'}->();
+
+__END__
+
+./ch-1-and-2.pl
+
+New deck generated.
+Cards riffle shuffled 435 times.
+Cards reverse cut shuffled.
+Cards reverse cut shuffled.
+Cards riffle shuffled 260 times.
+Cards cut.
+ JC 7C 6C 4D KD
+ QD TD 9D 8C 3H
+ AS KS 9H 9C 7H
+ KC 2D KH 3S 6D
+ 7D TC TS 3C 3D
+5 hands of 5 cards dealt.
+Remaining cards are: AH,8H,8S,7S,JS,2S,4C,5C,JD,6S,QS,4H,4S,2C,TH,9S,5S,AC,QC,AD,5H,8D,5D,JH,QH,2H,6H
+
+New deck generated.
+Cards riffle shuffled 207 times.
+Cards reverse cut shuffled.
+Cards riffle shuffled 300 times.
+Cards reverse cut shuffled.
+Cards reverse cut shuffled.
+Cards riffle shuffled 480 times.
+Cards riffle shuffled 303 times.
+Cards reverse cut shuffled.
+Cards riffle shuffled 488 times.
+Cards cut.
+ 4D 7S 3S 5D
+ JH 9H 4H 6H
+ KC AS 8C KS
+ 3C 5H 2D TC
+ 3H 2H 6D 5S
+ 8S AC 5C KD
+ 8D AH 9S 6S
+4 hands of 7 cards dealt.
+Remaining cards are: 2S,6C,TD,8H,7D,QD,7C,4C,AD,JS,9D,QH,TH,JD,JC,4S,QC,2C,QS,9C,3D,7H,KH,TS
+
diff --git a/challenge-034/duane-powell/perl5/ch-2.pl b/challenge-034/duane-powell/perl5/ch-2.pl
new file mode 100755
index 0000000000..8328a4a3b9
--- /dev/null
+++ b/challenge-034/duane-powell/perl5/ch-2.pl
@@ -0,0 +1,141 @@
+#!/usr/bin/perl
+use warnings;
+use strict;
+use feature qw( say );
+
+# Write a program that demonstrates using hash slices and/or array slices.
+# Write a program that demonstrates a dispatch table.
+
+my @CARD; # Global deck of 52 playing cards
+sub new_deck {
+ @CARD = ();
+ foreach my $suite ('H','S','C','D') {
+ foreach my $rank ('2'..'9','T','J','Q','K','A') {
+ my $card = $rank.$suite;
+ push @CARD, $card;
+ }
+ }
+ return "\nNew deck generated.";
+}
+
+sub shuffle_riffle {
+ # riffle shuffe deck random between 100 and 500 times
+ cut();
+ my $loop = int(rand(501-100)+100);
+ foreach (1 .. $loop) {
+ # split deck into left and right hand using array slices
+ my @left = @CARD[0 .. 25];
+ my @right = @CARD[26 .. 51];
+ my @temp;
+ foreach (1..26) {
+ push @temp, shift @left;
+ push @temp, shift @right;
+ }
+ @CARD = @temp;
+ }
+ return "Cards riffle shuffled $loop times.";
+}
+
+sub shuffle_reverse_cut {
+ # Reverse cut shuffle using array slices between 1 and 10 times
+ foreach (1 .. int(rand(10))+1) {
+ cut();
+ @CARD = (@CARD[40..51],@CARD[30..39],@CARD[20..29],@CARD[10..19],@CARD[0..9]);
+ }
+ return "Cards reverse cut shuffled.";
+}
+
+sub cut {
+ # Don't cut deck perfectly, generated random number near middle of deck between 32 and 20
+ my $rand = int(rand(33-20)+20);
+ # Split deck into left and right hands using array slices
+ my @left = @CARD[0 .. $rand];
+ my @right = @CARD[$rand+1 .. 51];
+ @CARD = (@right, @left);
+ return "Cards cut.";
+}
+
+sub deal {
+ my ($cards, $hands) = @_;
+ foreach (1 .. $cards) {
+ foreach (1 .. $hands) {
+ my $card = shift @CARD;
+ print "\t$card";
+ }
+ say "";
+ }
+ return "$hands hands of $cards cards dealt.";
+}
+
+sub deck_list {
+ return "Remaining cards are: ". join(',',@CARD);
+}
+
+# Dispatch table
+my %dispatcher = (
+ 'new_deck' => \&new_deck,
+ 'shuffle_riffle' => \&shuffle_riffle,
+ 'shuffle_reverse_cut' => \&shuffle_reverse_cut,
+ 'cut' => \&cut,
+ 'deal' => \&deal,
+ 'deck_list' => \&deck_list,
+);
+
+# Call subs via dispatcher
+say $dispatcher{'new_deck'}->();
+foreach (1 .. int(rand(11-3)+3)) { # randomly call shuffle methods 3 to 10 times
+ my $shuffle = (rand() < 0.5) ? "shuffle_riffle" :"shuffle_reverse_cut";
+ say $dispatcher{$shuffle}->();
+}
+say $dispatcher{'cut'}->();
+say $dispatcher{'deal'}->(5,5);
+say $dispatcher{'deck_list'}->();
+
+say $dispatcher{'new_deck'}->();
+foreach (1 .. int(rand(11-3)+3)) { # randomly call shuffle methods 3 to 10 times
+ my $shuffle = (rand() < 0.5) ? "shuffle_riffle" :"shuffle_reverse_cut";
+ say $dispatcher{$shuffle}->();
+}
+say $dispatcher{'cut'}->();
+say $dispatcher{'deal'}->(7,4);
+say $dispatcher{'deck_list'}->();
+
+__END__
+
+./ch-1-and-2.pl
+
+New deck generated.
+Cards riffle shuffled 435 times.
+Cards reverse cut shuffled.
+Cards reverse cut shuffled.
+Cards riffle shuffled 260 times.
+Cards cut.
+ JC 7C 6C 4D KD
+ QD TD 9D 8C 3H
+ AS KS 9H 9C 7H
+ KC 2D KH 3S 6D
+ 7D TC TS 3C 3D
+5 hands of 5 cards dealt.
+Remaining cards are: AH,8H,8S,7S,JS,2S,4C,5C,JD,6S,QS,4H,4S,2C,TH,9S,5S,AC,QC,AD,5H,8D,5D,JH,QH,2H,6H
+
+New deck generated.
+Cards riffle shuffled 207 times.
+Cards reverse cut shuffled.
+Cards riffle shuffled 300 times.
+Cards reverse cut shuffled.
+Cards reverse cut shuffled.
+Cards riffle shuffled 480 times.
+Cards riffle shuffled 303 times.
+Cards reverse cut shuffled.
+Cards riffle shuffled 488 times.
+Cards cut.
+ 4D 7S 3S 5D
+ JH 9H 4H 6H
+ KC AS 8C KS
+ 3C 5H 2D TC
+ 3H 2H 6D 5S
+ 8S AC 5C KD
+ 8D AH 9S 6S
+4 hands of 7 cards dealt.
+Remaining cards are: 2S,6C,TD,8H,7D,QD,7C,4C,AD,JS,9D,QH,TH,JD,JC,4S,QC,2C,QS,9C,3D,7H,KH,TS
+
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index a274d890b4..2d54749933 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,61 +1,63 @@
{
- "title" : {
- "text" : "Perl Weekly Challenge - 034"
+ "subtitle" : {
+ "text" : "[Champions: 4] Last updated at 2019-11-11 17:25:31 GMT"
},
"plotOptions" : {
"series" : {
- "borderWidth" : 0,
"dataLabels" : {
- "format" : "{point.y}",
- "enabled" : 1
- }
+ "enabled" : 1,
+ "format" : "{point.y}"
+ },
+ "borderWidth" : 0
+ }
+ },
+ "tooltip" : {
+ "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>",
+ "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>",
+ "followPointer" : 1
+ },
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
}
},
+ "xAxis" : {
+ "type" : "category"
+ },
+ "legend" : {
+ "enabled" : 0
+ },
+ "title" : {
+ "text" : "Perl Weekly Challenge - 034"
+ },
"series" : [
{
+ "name" : "Perl Weekly Challenge - 034",
"data" : [
{
+ "name" : "Duane Powell",
+ "y" : 2,
+ "drilldown" : "Duane Powell"
+ },
+ {
+ "name" : "Javier Luque",
"y" : 5,
- "drilldown" : "Javier Luque",
- "name" : "Javier Luque"
+ "drilldown" : "Javier Luque"
},
{
+ "name" : "Mark Anderson",
"y" : 1,
- "drilldown" : "Mark Anderson",
- "name" : "Mark Anderson"
+ "drilldown" : "Mark Anderson"
},
{
- "name" : "Simon Proctor",
"drilldown" : "Simon Proctor",
- "y" : 2
+ "y" : 2,
+ "name" : "Simon Proctor"
}
],
- "colorByPoint" : 1,
- "name" : "Perl Weekly Challenge - 034"
+ "colorByPoint" : 1
}
],
- "legend" : {
- "enabled" : 0
- },
- "chart" : {
- "type" : "column"
- },
- "subtitle" : {
- "text" : "[Champions: 3] Last updated at 2019-11-11 11:44:47 GMT"
- },
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
- },
- "xAxis" : {
- "type" : "category"
- },
- "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
- },
"drilldown" : {
"series" : [
{
@@ -63,6 +65,16 @@
[
"Perl 5",
2
+ ]
+ ],
+ "name" : "Duane Powell",
+ "id" : "Duane Powell"
+ },
+ {
+ "data" : [
+ [
+ "Perl 5",
+ 2
],
[
"Perl 6",
@@ -73,29 +85,32 @@
1
]
],
- "id" : "Javier Luque",
- "name" : "Javier Luque"
+ "name" : "Javier Luque",
+ "id" : "Javier Luque"
},
{
- "name" : "Mark Anderson",
"id" : "Mark Anderson",
"data" : [
[
"Perl 5",
1
]
- ]
+ ],
+ "name" : "Mark Anderson"
},
{
"id" : "Simon Proctor",
+ "name" : "Simon Proctor",
"data" : [
[
"Perl 6",
2
]
- ],
- "name" : "Simon Proctor"
+ ]
}
]
+ },
+ "chart" : {
+ "type" : "column"
}
}
diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json
index 0a1e2234dc..2c7802e8b6 100644
--- a/stats/pwc-language-breakdown-summary.json
+++ b/stats/pwc-language-breakdown-summary.json
@@ -1,40 +1,49 @@
{
+ "chart" : {
+ "type" : "column"
+ },
+ "legend" : {
+ "enabled" : "false"
+ },
+ "subtitle" : {
+ "text" : "Last updated at 2019-11-11 17:25:37 GMT"
+ },
"tooltip" : {
"pointFormat" : "<b>{point.y:.0f}</b>"
},
- "title" : {
- "text" : "Perl Weekly Challenge Contributions - 2019"
- },
"xAxis" : {
+ "type" : "category",
"labels" : {
"style" : {
- "fontSize" : "13px",
- "fontFamily" : "Verdana, sans-serif"
+ "fontFamily" : "Verdana, sans-serif",
+ "fontSize" : "13px"
}
- },
- "type" : "category"
+ }
},
- "legend" : {
- "enabled" : "false"
+ "yAxis" : {
+ "min" : 0,
+ "title" : {
+ "text" : null
+ }
},
- "chart" : {
- "type" : "column"
+ "title" : {
+ "text" : "Perl Weekly Challenge Contributions - 2019"
},
"series" : [
{
+ "name" : "Contributions",
"dataLabels" : {
"format" : "{point.y:.0f}",
- "color" : "#FFFFFF",
- "align" : "right",
- "enabled" : "true",
- "y" : 10,
"style" : {
"fontFamily" : "Verdana, sans-serif",
"fontSize" : "13px"
},
+ "y" : 10,
+ "color" : "#FFFFFF",
+ "align" : "right",
+ "enabled" : "true",
"rotation" : -90
},
- "name" : "Contributions",
"data" : [
[
"Blog",
@@ -42,7 +51,7 @@
],
[
"Perl 5",
- 1426
+ 1428
],
[
"Perl 6",
@@ -50,14 +59,5 @@
]
]
}
- ],
- "subtitle" : {
- "text" : "Last updated at 2019-11-11 11:44:55 GMT"
- },
- "yAxis" : {
- "min" : 0,
- "title" : {
- "text" : null
- }
- }
+ ]
}
diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json
index fee5c95d2a..aa4eb212ad 100644
--- a/stats/pwc-language-breakdown.json
+++ b/stats/pwc-language-breakdown.json
@@ -1,220 +1,12 @@
{
- "xAxis" : {
- "type" : "category"
- },
- "legend" : {
- "enabled" : "false"
- },
"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/>"
- },
- "plotOptions" : {
- "series" : {
- "borderWidth" : 0,
- "dataLabels" : {
- "enabled" : 1,
- "format" : "{point.y}"
- }
- }
- },
- "title" : {
- "text" : "Perl Weekly Challenge Language"
- },
- "subtitle" : {
- "text" : "Click the columns to drilldown the language breakdown. Last updated at 2019-11-11 11:44:55 GMT"
- },
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
- },
- "series" : [
- {
- "name" : "Perl Weekly Challenge Languages",
- "colorByPoint" : "true",
- "data" : [
- {
- "y" : 132,
- "drilldown" : "001",
- "name" : "#001"
- },
- {
- "name" : "#002",
- "y" : 104,
- "drilldown" : "002"
- },
- {
- "y" : 67,
- "drilldown" : "003",
- "name" : "#003"
- },
- {
- "name" : "#004",
- "y" : 87,
- "drilldown" : "004"
- },
- {
- "drilldown" : "005",
- "y" : 66,
- "name" : "#005"
- },
- {
- "y" : 48,
- "drilldown" : "006",
- "name" : "#006"
- },
- {
- "drilldown" : "007",
- "y" : 56,
- "name" : "#007"
- },
- {
- "name" : "#008",
- "drilldown" : "008",
- "y" : 70
- },
- {
- "drilldown" : "009",
- "y" : 68,
- "name" : "#009"
- },
- {
- "y" : 60,
- "drilldown" : "010",
- "name" : "#010"
- },
- {
- "y" : 78,
- "drilldown" : "011",
- "name" : "#011"
- },
- {
- "drilldown" : "012",
- "y" : 83,
- "name" : "#012"
- },
- {
- "name" : "#013",
- "y" : 76,
- "drilldown" : "013"
- },
- {
- "name" : "#014",
- "drilldown" : "014",
- "y" : 96
- },
- {
- "name" : "#015",
- "drilldown" : "015",
- "y" : 93
- },
- {
- "y" : 66,
- "drilldown" : "016",
- "name" : "#016"
- },
- {
- "name" : "#017",
- "y" : 79,
- "drilldown" : "017"
- },
- {
- "name" : "#018",
- "y" : 76,
- "drilldown" : "018"
- },
- {
- "name" : "#019",
- "y" : 95,
- "drilldown" : "019"
- },
- {
- "name" : "#020",
- "y" : 95,
- "drilldown" : "020"
- },
- {
- "name" : "#021",
- "y" : 67,
- "drilldown" : "021"
- },
- {
- "name" : "#022",
- "y" : 63,
- "drilldown" : "022"
- },
- {
- "drilldown" : "023",
- "y" : 91,
- "name" : "#023"
- },
- {
- "y" : 70,
- "drilldown" : "024",
- "name" : "#024"
- },
- {
- "name" : "#025",
- "y" : 55,
- "drilldown" : "025"
- },
- {
- "name" : "#026",
- "drilldown" : "026",
- "y" : 70
- },
- {
- "name" : "#027",
- "drilldown" : "027",
- "y" : 58
- },
- {
- "name" : "#028",
- "y" : 78,
- "drilldown" : "028"
- },
- {
- "drilldown" : "029",
- "y" : 77,
- "name" : "#029"
- },
- {
- "name" : "#030",
- "y" : 115,
- "drilldown" : "030"
- },
- {
- "name" : "#031",
- "drilldown" : "031",
- "y" : 87
- },
- {
- "name" : "#032",
- "drilldown" : "032",
- "y" : 92
- },
- {
- "y" : 106,
- "drilldown" : "033",
- "name" : "#033"
- },
- {
- "y" : 8,
- "drilldown" : "034",
- "name" : "#034"
- }
- ]
- }
- ],
"drilldown" : {
"series" : [
{
"name" : "001",
+ "id" : "001",
"data" : [
[
"Perl 5",
@@ -228,11 +20,9 @@
"Blog",
11
]
- ],
- "id" : "001"
+ ]
},
{
- "id" : "002",
"data" : [
[
"Perl 5",
@@ -247,10 +37,10 @@
9
]
],
+ "id" : "002",
"name" : "002"
},
{
- "name" : "003",
"id" : "003",
"data" : [
[
@@ -265,7 +55,8 @@
"Blog",
9
]
- ]
+ ],
+ "name" : "003"
},
{
"name" : "004",
@@ -286,7 +77,7 @@
]
},
{
- "id" : "005",
+ "name" : "005",
"data" : [
[
"Perl 5",
@@ -301,9 +92,10 @@
11
]
],
- "name" : "005"
+ "id" : "005"
},
{
+ "id" : "006",
"data" : [
[
"Perl 5",
@@ -318,11 +110,9 @@
7
]
],
- "id" : "006",
"name" : "006"
},
{
- "id" : "007",
"data" : [
[
"Perl 5",
@@ -337,6 +127,7 @@
10
]
],
+ "id" : "007",
"name" : "007"
},
{
@@ -358,6 +149,7 @@
]
},
{
+ "id" : "009",
"data" : [
[
"Perl 5",
@@ -372,7 +164,6 @@
13
]
],
- "id" : "009",
"name" : "009"
},
{
@@ -412,7 +203,7 @@
"id" : "011"
},
{
- "id" : "012",
+ "name" : "012",
"data" : [
[
"Perl 5",
@@ -427,9 +218,10 @@
11
]
],
- "name" : "012"
+ "id" : "012"
},
{
+ "name" : "013",
"data" : [
[
"Perl 5",
@@ -444,8 +236,7 @@
13
]
],
- "id" : "013",
- "name" : "013"
+ "id" : "013"
},
{
"name" : "014",
@@ -466,6 +257,7 @@
]
},
{
+ "name" : "015",
"data" : [
[
"Perl 5",
@@ -480,11 +272,10 @@
15
]
],
- "id" : "015",
- "name" : "015"
+ "id" : "015"
},
{
- "id" : "016",
+ "name" : "016",
"data" : [
[
"Perl 5",
@@ -499,9 +290,10 @@
12
]
],
- "name" : "016"
+ "id" : "016"
},
{
+ "name" : "017",
"data" : [
[
"Perl 5",
@@ -516,11 +308,9 @@
12
]
],
- "id" : "017",
- "name" : "017"
+ "id" : "017"
},
{
- "name" : "018",
"data" : [
[
"Perl 5",
@@ -535,10 +325,11 @@
14
]
],
- "id" : "018"
+ "id" : "018",
+ "name" : "018"
},
{
- "name" : "019",
+ "id" : "019",
"data" : [
[
"Perl 5",
@@ -553,7 +344,7 @@
13
]
],
- "id" : "019"
+ "name" : "019"
},
{
"name" : "020",
@@ -574,6 +365,7 @@
]
},
{
+ "name" : "021",
"data" : [
[
"Perl 5",
@@ -588,11 +380,11 @@
10
]
],
- "id" : "021",
- "name" : "021"
+ "id" : "021"
},
{
"name" : "022",
+ "id" : "022",
"data" : [
[
"Perl 5",
@@ -606,11 +398,9 @@
"Blog",
10
]
- ],
- "id" : "022"
+ ]
},
{
- "name" : "023",
"id" : "023",
"data" : [
[
@@ -625,7 +415,8 @@
"Blog",
12
]
- ]
+ ],
+ "name" : "023"
},
{
"id" : "024",
@@ -646,6 +437,7 @@
"name" : "024"
},
{
+ "name" : "025",
"id" : "025",
"data" : [
[
@@ -660,11 +452,10 @@
"Blog",
12
]
- ],
- "name" : "025"
+ ]
},
{
- "id" : "026",
+ "name" : "026",
"data" : [
[
"Perl 5",
@@ -679,10 +470,9 @@
10
]
],
- "name" : "026"
+ "id" : "026"
},
{
- "id" : "027",
"data" : [
[
"Perl 5",
@@ -697,10 +487,11 @@
9
]
],
+ "id" : "027",
"name" : "027"
},
{
- "name" : "028",
+ "id" : "028",
"data" : [
[
"Perl 5",
@@ -715,9 +506,10 @@
9
]
],
- "id" : "028"
+ "name" : "028"
},
{
+ "name" : "029",
"data" : [
[
"Perl 5",
@@ -732,11 +524,9 @@
12
]
],
- "id" : "029",
- "name" : "029"
+ "id" : "029"
},
{
- "name" : "030",
"id" : "030",
"data" : [
[
@@ -751,10 +541,10 @@
"Blog",
10
]
- ]
+ ],
+ "name" : "030"
},
{
- "id" : "031",
"data" : [
[
"Perl 5",
@@ -769,10 +559,12 @@
9
]
],
+ "id" : "031",
"name" : "031"
},
{
"name" : "032",
+ "id" : "032",
"data" : [
[
"Perl 5",
@@ -786,12 +578,9 @@
"Blog",
10
]
- ],
- "id" : "032"
+ ]
},
{
- "name" : "033",
- "id" : "033",
"data" : [
[
"Perl 5",
@@ -805,14 +594,17 @@
"Blo