diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-01-26 17:36:17 +0000 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-01-26 17:36:17 +0000 |
| commit | c34bb5d7bd7fce08e8311a0f527ce7fbd69e4dae (patch) | |
| tree | c2b39c685cca7cc2ed3b4ab4e91e75f5b9a71fdd | |
| parent | 68b6fdf9ab7e8e972816db52ebecc220b7c2c8df (diff) | |
| download | perlweeklychallenge-club-c34bb5d7bd7fce08e8311a0f527ce7fbd69e4dae.tar.gz perlweeklychallenge-club-c34bb5d7bd7fce08e8311a0f527ce7fbd69e4dae.tar.bz2 perlweeklychallenge-club-c34bb5d7bd7fce08e8311a0f527ce7fbd69e4dae.zip | |
- Added solutions by Ulrich Rieke.
| -rw-r--r-- | challenge-097/ulrich-rieke/cpp/ch-1.cpp | 35 | ||||
| -rw-r--r-- | challenge-097/ulrich-rieke/cpp/ch-2.cpp | 64 | ||||
| -rw-r--r-- | challenge-097/ulrich-rieke/haskell/ch-1.hs | 17 | ||||
| -rw-r--r-- | challenge-097/ulrich-rieke/haskell/ch-2.hs | 27 | ||||
| -rw-r--r-- | challenge-097/ulrich-rieke/perl/ch-1.pl | 25 | ||||
| -rw-r--r-- | challenge-097/ulrich-rieke/perl/ch-2.pl | 43 | ||||
| -rw-r--r-- | challenge-097/ulrich-rieke/raku/ch-1.raku | 12 | ||||
| -rw-r--r-- | challenge-097/ulrich-rieke/raku/ch-2.raku | 52 | ||||
| -rw-r--r-- | stats/pwc-current.json | 277 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 52 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 718 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 734 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 126 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 40 | ||||
| -rw-r--r-- | stats/pwc-summary-151-180.json | 42 | ||||
| -rw-r--r-- | stats/pwc-summary-181-210.json | 54 | ||||
| -rw-r--r-- | stats/pwc-summary-211-240.json | 48 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 110 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 46 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 34 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 478 |
21 files changed, 1664 insertions, 1370 deletions
diff --git a/challenge-097/ulrich-rieke/cpp/ch-1.cpp b/challenge-097/ulrich-rieke/cpp/ch-1.cpp new file mode 100644 index 0000000000..d69135b4cc --- /dev/null +++ b/challenge-097/ulrich-rieke/cpp/ch-1.cpp @@ -0,0 +1,35 @@ +#include <iostream> +#include <cstdlib> +#include <string> +#include <algorithm> +#include <iterator> + +char findCipher( char c, int shift ) { + static const std::string alphabet {"ABCDEFGHIJKLMNOPQRSTUVWXYZ"} ; + std::string mapped { alphabet.substr(26 - shift) } ; + std::reverse ( mapped.begin( ) , mapped.end( ) ) ; + mapped.append( alphabet.substr(0 , 26 - shift ) ) ; + if ( c == ' ' ) + return ' ' ; + else { + auto found = std::find( alphabet.begin( ) , alphabet.end( ) , c ); + return mapped[ static_cast<int>(std::distance(alphabet.begin( ), found))] ; + } +} + +int main( int i , char* argv[ ] ) { + if ( i != 3 ) { + std::cerr << "usage: challenge097 <capital letter string> <leftshift>!\n" ; + return 1 ; + } + int leftshift = std::atoi( argv[ 2 ] ) ; + int realshift = leftshift % 26 ; + std::string plaintext( argv[ 1 ] ) ; + int len = plaintext.length( ) ; + std::string ciphertext ; + for ( char letter : plaintext ) { + ciphertext.push_back( findCipher ( letter , realshift ) ) ; + } + std::cout << ciphertext << std::endl ; + return 0 ; +} diff --git a/challenge-097/ulrich-rieke/cpp/ch-2.cpp b/challenge-097/ulrich-rieke/cpp/ch-2.cpp new file mode 100644 index 0000000000..7fa22ce546 --- /dev/null +++ b/challenge-097/ulrich-rieke/cpp/ch-2.cpp @@ -0,0 +1,64 @@ +#include <iostream> +#include <string> +#include <vector> +#include <map> +#include <cstdlib> +#include <algorithm> +#include <numeric> + +bool isInputValid( const std::string & input , int n ) { + return input.length( ) % n == 0 ; +} + +//how many digits must be changed to make them all equal +int countToMakeAllEqual( const std::string & input ) { + std::map<std::string , int> frequencies ; + frequencies["0"] = 0 ; + frequencies["1"] = 0 ; + int len = input.length( ) ; + for ( int i = 0 ; i < len ; i++ ) { + frequencies[ input.substr( i , 1 )]++ ; + } + if ( frequencies[ "0" ] == len || frequencies[ "1" ] == len ) + return 0 ; + int bigger = std::max( frequencies["0"] , frequencies[ "1" ] ) ; + return len - bigger ; +} + +int main( int argc, char * argv[ ] ) { + if ( argc != 3 ) { + std::cerr << "There should be 2 arguments, call <challenge097_2> <string> <number>!" ; + return 1 ; + } + std::string input( argv[ 1 ] ) ; + int blocks { std::atoi( argv[ 2 ] ) } ; + if ( ! isInputValid( input , blocks ) ) { + std::cerr << "the number of digits in the binary string should be a multiple of " ; + std::cerr << blocks << " !" << std::endl ; + return 2 ; + } + int len = input.length( ) ; + int chunknumber = len / blocks ; + int chunklength { len / chunknumber } ; + std::vector<std::string> words ; + //for all blocks to be equal we transpose the blocks, that is the first letters + //of every block form a word, the second letters and so on + //we then see how many digits have to be flipped to make all digits equal + std::string transposed ; + for ( int i = 0 ; i < chunklength ; i++ ) { + for ( int j = 0 ; j < chunknumber ; j++ ) { + transposed.append( input.substr( i + j * chunklength , 1 ) ) ; + if ( transposed.length( ) == chunknumber ) { + words.push_back( transposed ) ; + transposed.clear( ) ; + } + } + } + std::vector<int> alterations ; + for ( std::string & word : words ) { + alterations.push_back( countToMakeAllEqual( word ) ) ; + } + std::cout << std::accumulate( alterations.begin( ) , alterations.end( ) , 0 ) + << std::endl ; + return 0 ; +} diff --git a/challenge-097/ulrich-rieke/haskell/ch-1.hs b/challenge-097/ulrich-rieke/haskell/ch-1.hs new file mode 100644 index 0000000000..a47e593861 --- /dev/null +++ b/challenge-097/ulrich-rieke/haskell/ch-1.hs @@ -0,0 +1,17 @@ +module Challenge097 + where +import Data.Maybe( fromJust ) + +caesarencode :: String -> Int -> String +caesarencode plain leftshift = map (\c -> if c /= ' ' then fromJust $ lookup c +mappedPairs else ' ') plain +where + alfabet :: [Char] + alfabet = ['A' .. 'Z'] + realshift :: Int + realshift = mod leftshift ( length alfabet ) + leftRotated :: [Char] + leftRotated = (take realshift $ reverse alfabet) ++ take ( length alfabet - + realshift ) alfabet + mappedPairs :: [(Char , Char)] + mappedPairs = zip alfabet leftRotated diff --git a/challenge-097/ulrich-rieke/haskell/ch-2.hs b/challenge-097/ulrich-rieke/haskell/ch-2.hs new file mode 100644 index 0000000000..95adceaa76 --- /dev/null +++ b/challenge-097/ulrich-rieke/haskell/ch-2.hs @@ -0,0 +1,27 @@ +module Challenge097_2 + where +import Data.List ( transpose ) +import qualified Data.Text as T + +solution :: String -> Int -> Int +solution binarystring blocks = + let strlen = length binarystring + chunknumber = div strlen blocks + chunksize = div strlen chunknumber + chunks = map T.unpack $ T.chunksOf chunksize $ T.pack binarystring + myWords = transpose chunks + toBeFlipped = map findFlips myWords + in sum toBeFlipped + +count :: Char -> String -> Int +count c str = length $ filter ( c == ) str + +findFlips :: String -> Int +findFlips str + |zeroes >= ones = length str - zeroes + |otherwise = length str - ones + where + zeroes :: Int + zeroes = count '0' str + ones :: Int + ones = count '1' str diff --git a/challenge-097/ulrich-rieke/perl/ch-1.pl b/challenge-097/ulrich-rieke/perl/ch-1.pl new file mode 100644 index 0000000000..52cf4e6646 --- /dev/null +++ b/challenge-097/ulrich-rieke/perl/ch-1.pl @@ -0,0 +1,25 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; +use feature 'say' ; + +sub findMapped { + my $letter = shift ; + my $n = shift ; + if ( $letter eq ' ' ) { + return ' ' ; + } + else { + my $num = ord( $letter ) - $n ; + if ( $num < 65 ) { #this is A, we must wrap to the end of the alphabet + $num = 90 - ( 65 - $num ) + 1 ; + } + return chr $num ; + } +} + +my $S = $ARGV[ 0 ] ; +my $N = $ARGV[ 1 ] ; +my $num = $N % 26 ; #if a number greater than the number of letters is ent. +die "String $S should only consist of capital letters" unless ($S =~ /^[A-Z ]+$/) ; +say join( '' , map { findMapped( $_ , $num ) } split( // , $S ) ) ; diff --git a/challenge-097/ulrich-rieke/perl/ch-2.pl b/challenge-097/ulrich-rieke/perl/ch-2.pl new file mode 100644 index 0000000000..68f94621cb --- /dev/null +++ b/challenge-097/ulrich-rieke/perl/ch-2.pl @@ -0,0 +1,43 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; +use feature 'say' ; +use List::Util qw( sum ) ; + +sub countToMakeAllEqual { + my $str = shift ; + my %frequencies ; + $frequencies{ '0' } = '0' ; + $frequencies{ '1' } = '0' ; + my $len = length( $str ) ; + for my $i ( '0' .. $len - '1' ) { + $frequencies{ substr( $str , $i , '1' ) }++ ; + } + if ( $frequencies{ '0' } == $len or $frequencies{ '1' } == $len ) { + return '0' ; + } + elsif ( $frequencies{ '0' } >= $frequencies{ '1' } ) { + return $len - $frequencies{ '0' } ; + } + else { + return $len - $frequencies{ '1' } ; + } +} + +my $B = $ARGV[ 0 ] ; +my $S = $ARGV[ 1 ] ; +die "The length of $B should be a multiple of $S" unless ( (length $B) % $S == 0 ) ; +my $len = length( $B ) ; +my $chunknumber = $len / $S ; +my $chunklength = $len / $chunknumber ; +my @chunks ; +for my $i ( 0 .. $chunknumber - 1 ) { + push (@chunks , substr( $B, $i * $chunklength , $chunklength ) ) ; +} +my @words ; +for my $i ( 0 .. $chunklength - 1 ) { + for my $j ( 0 .. $chunknumber - 1 ) { + $words[ $i ] .= substr( $chunks[ $j ] , $i , 1 ) ; + } +} +say sum map { countToMakeAllEqual( $_ ) } @words ; diff --git a/challenge-097/ulrich-rieke/raku/ch-1.raku b/challenge-097/ulrich-rieke/raku/ch-1.raku new file mode 100644 index 0000000000..b8aaaf027d --- /dev/null +++ b/challenge-097/ulrich-rieke/raku/ch-1.raku @@ -0,0 +1,12 @@ +use v6 ; + +sub MAIN( Str $S, Int $N ) { + my @alphabet = ('A' .. 'Z') ; + my @ciphers = @alphabet.rotate( -($N mod 26)) ; + my %correlations ; + %correlations{ ' ' } = ' ' ; + for (0 .. 25 ) -> $i { + %correlations{ @alphabet[ $i ] } = @ciphers[ $i ] ; + } + say $S.comb.map( { %correlations{ $_ } } ).join ; +} diff --git a/challenge-097/ulrich-rieke/raku/ch-2.raku b/challenge-097/ulrich-rieke/raku/ch-2.raku new file mode 100644 index 0000000000..3504352f18 --- /dev/null +++ b/challenge-097/ulrich-rieke/raku/ch-2.raku @@ -0,0 +1,52 @@ +use v6 ; + +sub isInputValid( Str $str , Int $n --> Bool ) { + return $str.chars %% $n ; +} + +#how many fields must be flipped to make all digits equal ? +#we zip the forward and reverse string and count how many pairs +#have different digits +sub countToMakeAllEqual( Str $str is copy --> Int ) { + my %frequencies ; + %frequencies<0> = 0 ; + %frequencies<1> = 0 ; + my $len = $str.chars ; + for ( 0 .. $len - 1 ) -> $i { + %frequencies{ $str.substr( $i , 1 ) }++ ; + } + if ( %frequencies<0> == $len or %frequencies<1> == $len ) { + return 0 ; + } + elsif ( %frequencies<0> >= %frequencies<1> ) { + return $len - %frequencies<0> ; + } + else { + return $len - %frequencies<1> ; + } +} + +sub MAIN( Str $B is copy, Int $S ) { + die "the length of $B should be a multiple of $S!" unless + isInputValid( $B , $S ) ; + my $len = $B.chars ; + my $chunknumber = $len div $S ; + my $chunklength = $len div $chunknumber ; +#we now transpose the chunks, that is the first letters of all chunks +#go into one word, the second letters into another and so on +#these transposed chunks should all consist of the same digits in the end +#word by word we sum up the flips that are necessary to make all digits +#equal +#first, we transpose + my @chunks ; + for (0 .. $chunknumber - 1 ) -> $i { + @chunks.push( $B.substr( $i * $chunklength , $chunklength ) ) ; + } + my @words ; + for (0 .. $chunklength - 1 ) -> $i { + for (0 .. $chunknumber - 1 ) -> $j { + @words[ $i ] ~= @chunks[ $j ].substr( $i , 1 ) ; + } + } + say @words.map( { countToMakeAllEqual( $_ ) } ).sum ; +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index ccdd783dbf..c97733603e 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,15 +1,122 @@ { + "series" : [ + { + "data" : [ + { + "name" : "E. Choroba", + "y" : 2, + "drilldown" : "E. Choroba" + }, + { + "y" : 2, + "drilldown" : "Gustavo Chaves", + "name" : "Gustavo Chaves" + }, + { + "name" : "James Smith", + "drilldown" : "James Smith", + "y" : 2 + }, + { + "drilldown" : "Jan Hoogenraad", + "y" : 2, + "name" : "Jan Hoogenraad" + }, + { + "name" : "Luca Ferrari", + "y" : 4, + "drilldown" : "Luca Ferrari" + }, + { + "y" : 2, + "drilldown" : "Mark Anderson", + "name" : "Mark Anderson" + }, + { + "name" : "Niels van Dijke", + "drilldown" : "Niels van Dijke", + "y" : 2 + }, + { + "drilldown" : "Paulo Custodio", + "y" : 2, + "name" : "Paulo Custodio" + }, + { + "drilldown" : "Roger Bell_West", + "y" : 4, + "name" : "Roger Bell_West" + }, + { + "drilldown" : "Simon Proctor", + "y" : 1, + "name" : "Simon Proctor" + }, + { + "y" : 4, + "drilldown" : "Stuart Little", + "name" : "Stuart Little" + }, + { + "drilldown" : "Ulrich Rieke", + "y" : 4, + "name" : "Ulrich Rieke" + }, + { + "drilldown" : "W. Luis Mochan", + "y" : 3, + "name" : "W. Luis Mochan" + } + ], + "colorByPoint" : 1, + "name" : "Perl Weekly Challenge - 097" + } + ], + "xAxis" : { + "type" : "category" + }, + "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 + } + }, + "title" : { + "text" : "Perl Weekly Challenge - 097" + }, + "subtitle" : { + "text" : "[Champions: 13] Last updated at 2021-01-26 17:35:54 GMT" + }, + "legend" : { + "enabled" : 0 + }, + "chart" : { + "type" : "column" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, "drilldown" : { "series" : [ { + "id" : "E. Choroba", + "name" : "E. Choroba", "data" : [ [ "Perl", 2 ] - ], - "id" : "E. Choroba", - "name" : "E. Choroba" + ] }, { "id" : "Gustavo Chaves", @@ -22,14 +129,14 @@ ] }, { + "id" : "James Smith", + "name" : "James Smith", "data" : [ [ "Perl", 2 ] - ], - "id" : "James Smith", - "name" : "James Smith" + ] }, { "id" : "Jan Hoogenraad", @@ -42,6 +149,8 @@ ] }, { + "name" : "Luca Ferrari", + "id" : "Luca Ferrari", "data" : [ [ "Raku", @@ -51,43 +160,39 @@ "Blog", 2 ] - ], - "name" : "Luca Ferrari", - "id" : "Luca Ferrari" + ] }, { + "name" : "Mark Anderson", + "id" : "Mark Anderson", "data" : [ [ "Raku", 2 ] - ], - "id" : "Mark Anderson", - "name" : "Mark Anderson" + ] }, { - "id" : "Niels van Dijke", - "name" : "Niels van Dijke", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Niels van Dijke", + "id" : "Niels van Dijke" }, { + "name" : "Paulo Custodio", + "id" : "Paulo Custodio", "data" : [ [ "Perl", 2 ] - ], - "name" : "Paulo Custodio", - "id" : "Paulo Custodio" + ] }, { - "id" : "Roger Bell_West", - "name" : "Roger Bell_West", "data" : [ [ "Perl", @@ -97,17 +202,19 @@ "Raku", 2 ] - ] + ], + "id" : "Roger Bell_West", + "name" : "Roger Bell_West" }, { + "name" : "Simon Proctor", + "id" : "Simon Proctor", "data" : [ [ "Raku", 1 ] - ], - "id" : "Simon Proctor", - "name" : "Simon Proctor" + ] }, { "id" : "Stuart Little", @@ -130,115 +237,27 @@ 2 ], [ - "Blog", - 1 + "Raku", + 2 ] ], + "name" : "Ulrich Rieke", + "id" : "Ulrich Rieke" + }, + { + "name" : "W. Luis Mochan", "id" : "W. Luis Mochan", - "name" : "W. Luis Mochan" + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ] } ] - }, - "series" : [ - { - "colorByPoint" : 1, - "data" : [ - { - "y" : 2, - "drilldown" : "E. Choroba", - "name" : "E. Choroba" - }, - { - "name" : "Gustavo Chaves", - "y" : 2, - "drilldown" : "Gustavo Chaves" - }, - { - "name" : "James Smith", - "y" : 2, - "drilldown" : "James Smith" - }, - { - "drilldown" : "Jan Hoogenraad", - "y" : 2, - "name" : "Jan Hoogenraad" - }, - { - "drilldown" : "Luca Ferrari", - "y" : 4, - "name" : "Luca Ferrari" - }, - { - "y" : 2, - "drilldown" : "Mark Anderson", - "name" : "Mark Anderson" - }, - { - "name" : "Niels van Dijke", - "y" : 2, - "drilldown" : "Niels van Dijke" - }, - { - "name" : "Paulo Custodio", - "drilldown" : "Paulo Custodio", - "y" : 2 - }, - { - "name" : "Roger Bell_West", - "drilldown" : "Roger Bell_West", - "y" : 4 - }, - { - "name" : "Simon Proctor", - "drilldown" : "Simon Proctor", - "y" : 1 - }, - { - "drilldown" : "Stuart Little", - "y" : 4, - "name" : "Stuart Little" - }, - { - "name" : "W. Luis Mochan", - "drilldown" : "W. Luis Mochan", - "y" : 3 - } - ], - "name" : "Perl Weekly Challenge - 097" - } - ], - "chart" : { - "type" : "column" - }, - "xAxis" : { - "type" : "category" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "legend" : { - "enabled" : 0 - }, - "tooltip" : { - "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/>" - }, - "plotOptions" : { - "series" : { - "borderWidth" : 0, - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - } - } - }, - "title" : { - "text" : "Perl Weekly Challenge - 097" - }, - "subtitle" : { - "text" : "[Champions: 12] Last updated at 2021-01-26 16:17:30 GMT" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index a59a0d2752..a5a16d04ae 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,4 +1,13 @@ { + "xAxis" : { + "labels" : { + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + } + }, + "type" : "category" + }, "series" : [ { "data" : [ @@ -8,39 +17,33 @@ ], [ "Perl", - 4484 + 4486 ], [ "Raku", - 2918 + 2920 ] ], "name" : "Contributions", "dataLabels" : { - "enabled" : "true", - "format" : "{point.y:.0f}", "color" : "#FFFFFF", - "rotation" : -90, + "y" : 10, + "format" : "{point.y:.0f}", "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" }, + "rotation" : -90, "align" : "right", - "y" : 10 + "enabled" : "true" } } ], - "xAxis" : { - "type" : "category", - "labels" : { - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - } - } + "tooltip" : { + "pointFormat" : "<b>{point.y:.0f}</b>" }, - "chart" : { - "type" : "column" + "legend" : { + "enabled" : "false" }, "yAxis" : { "min" : 0, @@ -48,16 +51,13 @@ "text" : null } }, - "tooltip" : { - "pointFormat" : "<b>{point.y:.0f}</b>" - }, - "legend" : { - "enabled" : "false" - }, - "subtitle" : { - "text" : "Last updated at 2021-01-26 16:17:30 GMT" + "chart" : { + "type" : "column" }, "title" : { "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" + }, + "subtitle" : { + "text" : "Last updated at 2021-01-26 17:35:54 GMT" } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index e025a6ea3d..d09befea6f 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,15 +1,4 @@ { - "xAxis" : { - "type" : "category" - }, - "chart" : { - "type" : "column" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, "drilldown" : { "series" : [ { @@ -45,12 +34,10 @@ 10 ] ], - "id" : "002", - "name" : "002" + "name" : "002", + "id" : "002" }, { - "name" : "003", - "id" : "003", "data" : [ [ "Perl", @@ -64,7 +51,9 @@ "Blog", 9 ] - ] + ], + "name" : "003", + "id" : "003" }, { "data" : [ @@ -85,6 +74,8 @@ "name" : "004" }, { + "name" : "005", + "id" : "005", "data" : [ [ "Perl", @@ -98,13 +89,9 @@ "Blog", 12 ] - ], - "id" : "005", - "name" : "005" + ] }, { - "id" : "006", - "name" : "006", "data" : [ [ "Perl", @@ -118,11 +105,11 @@ "Blog", 7 ] - ] + ], + "name" : "006", + "id" : "006" }, { - "id" : "007", - "name" : "007", "data" : [ [ "Perl", @@ -136,7 +123,9 @@ "Blog", 10 ] - ] + ], + "id" : "007", + "name" : "007" }, { "data" : [ @@ -153,12 +142,12 @@ 12 ] ], - "name" : "008", - "id" : "008" + "id" : "008", + "name" : "008" }, { - "name" : "009", "id" : "009", + "name" : "009", "data" : [ [ "Perl", @@ -175,6 +164,8 @@ ] }, { + "id" : "010", + "name" : "010", "data" : [ [ "Perl", @@ -188,11 +179,11 @@ "Blog", 11 ] - ], - "name" : "010", - "id" : "010" + ] }, { + "name" : "011", + "id" : "011", "data" : [ [ "Perl", @@ -206,9 +197,7 @@ "Blog", 10 ] - ], - "id" : "011", - "name" : "011" + ] }, { "data" : [ @@ -225,8 +214,8 @@ 11 ] ], - "name" : "012", - "id" : "012" + "id" : "012", + "name" : "012" }, { "data" : [ @@ -243,10 +232,12 @@ 13 ] ], - "id" : "013", - "name" : "013" + "name" : "013", + "id" : "013" }, { + "id" : "014", + "name" : "014", "data" : [ [ "Perl", @@ -260,9 +251,7 @@ "Blog", 15 ] - ], - "id" : "014", - "name" : "014" + ] }, { "data" : [ @@ -297,10 +286,12 @@ 12 ] ], - "id" : "016", - "name" : "016" + "name" : "016", + "id" : "016" }, { + "id" : "017", + "name" : "017", "data" : [ [ "Perl", @@ -314,9 +305,7 @@ "Blog", 12 ] - ], - "id" : "017", - "name" : "017" |
