From 7bf95509a49cadc9b91fdd092b0642f8bae210dc Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Thu, 28 Apr 2022 02:55:39 +0100 Subject: - Added solutions by Ulrich Rieke. --- challenge-162/ulrich-rieke/cpp/ch-1.cpp | 42 + challenge-162/ulrich-rieke/haskell/ch-1.hs | 29 + challenge-162/ulrich-rieke/haskell/ch-2.hs | 148 ++++ challenge-162/ulrich-rieke/perl/ch-1.pl | 30 + challenge-162/ulrich-rieke/raku/ch-1.raku | 23 + challenge-162/ulrich-rieke/raku/ch-2.raku | 199 +++++ stats/pwc-current.json | 303 ++++---- stats/pwc-language-breakdown-summary.json | 68 +- stats/pwc-language-breakdown.json | 1144 ++++++++++++++-------------- stats/pwc-leaders.json | 738 +++++++++--------- stats/pwc-summary-1-30.json | 54 +- stats/pwc-summary-121-150.json | 108 +-- stats/pwc-summary-151-180.json | 48 +- stats/pwc-summary-181-210.json | 34 +- stats/pwc-summary-211-240.json | 44 +- stats/pwc-summary-241-270.json | 84 +- stats/pwc-summary-31-60.json | 124 +-- stats/pwc-summary-61-90.json | 124 +-- stats/pwc-summary-91-120.json | 48 +- stats/pwc-summary.json | 40 +- 20 files changed, 1961 insertions(+), 1471 deletions(-) create mode 100644 challenge-162/ulrich-rieke/cpp/ch-1.cpp create mode 100644 challenge-162/ulrich-rieke/haskell/ch-1.hs create mode 100644 challenge-162/ulrich-rieke/haskell/ch-2.hs create mode 100644 challenge-162/ulrich-rieke/perl/ch-1.pl create mode 100644 challenge-162/ulrich-rieke/raku/ch-1.raku create mode 100644 challenge-162/ulrich-rieke/raku/ch-2.raku diff --git a/challenge-162/ulrich-rieke/cpp/ch-1.cpp b/challenge-162/ulrich-rieke/cpp/ch-1.cpp new file mode 100644 index 0000000000..c4e833f850 --- /dev/null +++ b/challenge-162/ulrich-rieke/cpp/ch-1.cpp @@ -0,0 +1,42 @@ +#include +#include +#include + +std::vector convert( std::string & numberstring ) { + std::vector numbers ; + for ( int i = 0 ; i < numberstring.size( ) ; i++ ) { + if ( numberstring.substr( i , 1 ) != "-" ) { + numbers.push_back( std::stoi( numberstring.substr( i, 1) ) ) ; + } + } + return numbers ; +} + +int main( ) { + std::cout << "Please enter an ISBN string with only 12 digits!\n" ; + std::string isbn ; + std::cin >> isbn ; + std::string converted ( isbn ) ; + std::vector numbers { convert( converted ) } ; + while ( numbers.size( ) != 12 ) { + std::cout << "Enter an ISBN with only 12 digits, for exercise purposes!\n" ; + std::cin >> isbn ; + converted = isbn ; + numbers = convert( converted ) ; + } + std::cout << std::endl ; + std::vector multipliers ; + for ( int i = 0 ; i < 6 ; i++ ) { + multipliers.push_back( 1 ) ; + multipliers.push_back( 3 ) ; + } + int sum = 0 ; + for ( int i = 0 ; i < 12 ; i++ ) { + sum += *(numbers.begin( ) + i ) * *(multipliers.begin( ) + i) ; + } + int check = 10 - ( sum % 10 ) ; + if ( check == 10 ) + check == 0 ; + std::cout << "The ISBN is " << isbn << std::to_string( check ) << " !\n" ; + return 0 ; +} diff --git a/challenge-162/ulrich-rieke/haskell/ch-1.hs b/challenge-162/ulrich-rieke/haskell/ch-1.hs new file mode 100644 index 0000000000..b69da0ddb8 --- /dev/null +++ b/challenge-162/ulrich-rieke/haskell/ch-1.hs @@ -0,0 +1,29 @@ +module Challenge162 + where +import Data.Char ( digitToInt ) +import Data.List.Split ( splitOn ) + +askForISBN :: IO (String , String) +askForISBN = do + putStrLn "Enter an ISBN string, with 12 digits only!" + isbn <- getLine + let numberstrings = splitOn "-" isbn + totalNumber = foldl1 ( ++ ) numberstrings + if length totalNumber == 12 + then return (isbn , totalNumber) + else do + askForISBN + +multipliers :: [Int] +multipliers = take 12 $ cycle [1 , 3 ] + +findDigitStr :: String -> String +findDigitStr numberstring = if (10 - theSum) /= 0 then show (10 - theSum) else "0" +where + theSum :: Int + theSum = mod (sum $ zipWith ( + ) ( map digitToInt numberstring ) multipliers) 10 + +main :: IO ( ) +main = do + ( isbn , numbers ) <- askForISBN + putStrLn ("The complete ISBN is " ++ isbn ++ ( findDigitStr numbers) ++ " !") diff --git a/challenge-162/ulrich-rieke/haskell/ch-2.hs b/challenge-162/ulrich-rieke/haskell/ch-2.hs new file mode 100644 index 0000000000..f88666e6b8 --- /dev/null +++ b/challenge-162/ulrich-rieke/haskell/ch-2.hs @@ -0,0 +1,148 @@ +module Challenge162_2 + where +import Data.List.Split( chunksOf , splitOn ) +import Data.List ( elemIndex , nub , (!!) , (\\) , group , intercalate ) +import Data.Maybe ( fromJust ) + +makeGrid :: String -> String +makeGrid seedPhrase = phrase ++ ( alphabet \\ phrase ) +where + phrase :: String + phrase = nub $ foldl1 ( ++ ) $ splitOn " " seedPhrase + alphabet :: String + alphabet = ['a' .. 'i'] ++ ['k' .. 'z'] + +--given a position number , in which row of the grid are we ? +findRow :: Int -> Int +findRow n = div ( n - ( mod n 5 )) 5 + +--given a position number , in which column of the grid are we ? +findColumn :: Int -> Int +findColumn n = mod n 5 + +encodeOnSameRow :: String -> Char -> Char +encodeOnSameRow keyphrase letter = if findRow ( pos + 1 ) == findRow pos +then keyphrase !! ( pos + 1 ) else keyphrase !! ( pos - 4 ) +where + pos :: Int + pos = fromJust $ elemIndex letter keyphrase + +encodeOnSameColumn :: String -> Char -> Char +encodeOnSameColumn keyphrase letter + |pos + 5 > 25 = keyphrase !! ( mod pos 5 ) + |otherwise = keyphrase !! ( pos + 5 ) + where + pos :: Int + pos = fromJust $ elemIndex letter keyphrase + +encodeOnRectangle :: String -> String -> String +encodeOnRectangle keyPhrase toBeEncrypted = [keyPhrase !! ( row1 * 5 + col2 ), + keyPhrase !! (row2 * 5 + col1)] + where + pos1 :: Int + pos1 = fromJust $ elemIndex ( head toBeEncrypted ) keyPhrase + pos2 :: Int + pos2 = fromJust $ elemIndex ( last toBeEncrypted ) keyPhrase + row1 :: Int + row1 = findRow pos1 + row2 :: Int + row2 = findRow pos2 + col1 :: Int + col1 = findColumn pos1 + col2 :: Int + col2 = findColumn pos2 + +decodeOnSameRow :: String -> Char -> Char +decodeOnSameRow keyPhrase letter = if findRow ( pos - 1 ) == findRow pos +then keyPhrase !! ( pos - 1 ) else keyPhrase !! ( pos + 4 ) +where + pos :: Int + pos = fromJust $ elemIndex letter keyPhrase + +decodeOnSameColumn :: String -> Char -> Char +decodeOnSameColumn keyPhrase letter + |pos - 5 < 0 = keyPhrase !! ( 20 + findColumn pos ) + |otherwise = keyPhrase !! ( pos - 5 ) + where + pos :: Int + pos = fromJust $ elemIndex letter keyPhrase + +decodeOnRectangle :: String -> String -> String +decodeOnRectangle keyPhrase toBeDecrypted = [keyPhrase !! (row1 * 5 + col2) , +keyPhrase !! (row2 * 5 + col1)] +where + pos1 :: Int + pos1 = fromJust $ elemIndex ( head toBeDecrypted ) keyPhrase + pos2 :: Int + pos2 = fromJust $ elemIndex ( last toBeDecrypted ) keyPhrase + row1 :: Int + row1 = findRow pos1 + row2 :: Int + row2 = findRow pos2 + col1 :: Int + col1 = findColumn pos1 + col2 :: Int + col2 = findColumn pos2 + +substitute :: String -> Char -> Char -> String +substitute word from to = map (\c -> if c == from then to else c ) word + +insertAfterDoubleLetters :: String -> String +insertAfterDoubleLetters str = foldl1 ( ++ ) $ map (\li -> if length li > 1 +then intercalate "x" $ map (\c -> [c]) li else li) $ group str + +hackApart :: String -> [String] +hackApart word + |odd $ length word = map (\li -> if head li == last li then [head li , 'x'] + else li) $ chunksOf 2 ( word ++ ['x'] ) + |otherwise = map (\li -> if head li == last li then [head li , 'x'] else + li) $ chunksOf 2 word + +encrypt :: String -> String -> String +encrypt keyPhrase toBeEncrypted = foldl1 (++) $ map(\li -> encryptPair li ) $ +hackApart toBeEncrypted +where + encryptPair :: String -> String + encryptPair pair + |findColumn pos1 == findColumn pos2 = map (\c -> encodeOnSameColumn keyPhrase c) + pair + |findRow pos1 == findRow pos2 = map (\c -> encodeOnSameRow keyPhrase c) pair + |otherwise = encodeOnRectangle keyPhrase pair + where + pos1 :: Int + pos1 = fromJust $ elemIndex ( head pair ) keyPhrase + pos2 :: Int + pos2 = fromJust $ elemIndex ( last pair ) keyPhrase + +decrypt :: String -> String -> String +decrypt keyPhrase toBeDecrypted = foldl1 (++) $ map (\li -> decryptPair li ) $ +hackApart toBeDecrypted +where + decryptPair :: String -> String + decryptPair pair + |findColumn pos1 == findColumn pos2 = map (\c -> decodeOnSameColumn keyPhrase + c) pair + |findRow pos1 == findRow pos2 = map (\c -> decodeOnSameRow keyPhrase c ) pair + |otherwise = decodeOnRectangle keyPhrase pair + where + pos1 :: Int + pos1 = fromJust $ elemIndex ( head pair ) keyPhrase + pos2 :: Int + pos2 = fromJust $ elemIndex ( last pair ) keyPhrase + +main :: IO ( ) +main = do + putStrLn "Please enter a key phrase from which to construct the grid!" + phrase <- getLine + putStrLn "Which text do you want to encrypt?" + toBeEncrypted <- getLine + let grid = makeGrid phrase + toBeEncryptedRed = insertAfterDoubleLetters $ substitute ( foldl1 ( ++ ) + $ splitOn " " toBeEncrypted) 'j' 'i' + putStrLn toBeEncryptedRed + putStrLn $ encrypt grid toBeEncryptedRed + putStrLn "Enter another key phrase!" + secondPhrase <- getLine + putStrLn "Which text do you want to decrypt?" + toBeDecrypted <- getLine + putStrLn $ decrypt (makeGrid secondPhrase) toBeDecrypted diff --git a/challenge-162/ulrich-rieke/perl/ch-1.pl b/challenge-162/ulrich-rieke/perl/ch-1.pl new file mode 100644 index 0000000000..4156b11cd7 --- /dev/null +++ b/challenge-162/ulrich-rieke/perl/ch-1.pl @@ -0,0 +1,30 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; +use feature 'say' ; + +say "Enter an ISBN with only 12 digits!" ; +my $isbn = ; +chomp $isbn ; +my $converted = $isbn ; +$converted =~ s/\D//g ; +while ( length $converted != 12 ) { + say "For the purposes of this exercise, the ISBN should only have 12 digits!" ; + $isbn = ; + $converted = $isbn ; + $converted =~ s/\D//g ; +} +my @multipliers ; +for (1 .. 6 ) { + push @multipliers , 1 , 3 ; +} +my @numbers = split( // , $converted ) ; +my $sum = 0 ; +for my $i ( 0 .. 11 ) { + $sum += $numbers[ $i ] * $multipliers[ $i ] ; +} +my $check = 10 - ( $sum % 10 ) ; +if ( $check == 10 ) { + $check = 0 ; +} +say "The correct ISBN number is $isbn" . $check . " !" ; diff --git a/challenge-162/ulrich-rieke/raku/ch-1.raku b/challenge-162/ulrich-rieke/raku/ch-1.raku new file mode 100644 index 0000000000..66a23a837f --- /dev/null +++ b/challenge-162/ulrich-rieke/raku/ch-1.raku @@ -0,0 +1,23 @@ +use v6 ; + +say "Enter an ISBN code without the last digit!" ; +my $isbn = $*IN.get ; +my $converted = $isbn ; +$converted ~~ s:g/\D// ; +while ( $converted.chars != 12 ) { + say "The ISBN code should only contain 12 digits for this exercise!" ; + $isbn = $*IN.get ; + $converted = $isbn ; + $converted ~~ s:g/\D// ; +} +my @numbers = $converted.comb.map( {.Int} ) ; +my @multipliers ; +for (1 .. 6 ) { + @multipliers.push( 1 , 3 ) ; +} +my $sum = sum( @numbers Z* @multipliers ) ; +my $check = 10 - ($sum % 10) ; +if ( $check == 10 ) { + $check = 0 ; +} +say "The correct ISBN number is " ~ ($isbn ~ ~$check) ~ " !" ; diff --git a/challenge-162/ulrich-rieke/raku/ch-2.raku b/challenge-162/ulrich-rieke/raku/ch-2.raku new file mode 100644 index 0000000000..63a402914a --- /dev/null +++ b/challenge-162/ulrich-rieke/raku/ch-2.raku @@ -0,0 +1,199 @@ +use v6 ; + +sub createGridWord( Str $seedphrase is copy ) { + my %lettercount ; + my @alphabet = ('a' ..'i').Array ; + my @secondPart = ('k' .. 'z').Array ; + for @secondPart -> $let { + @alphabet.push( $let ) ; + } + for @alphabet -> $let { + %lettercount{ $let } = 0 ; + } + my @gridLetters ; + $seedphrase ~~ s:g/\s// ; + for ( $seedphrase.comb ) -> $let { + if ( %lettercount{ $let } == 0 ) { + @gridLetters.push( $let ) ; + %lettercount{ $let } = 1 ; + } + } + for @alphabet -> $let { + if ( %lettercount{ $let } == 0 ) { + @gridLetters.push( $let ) ; + } + } + return @gridLetters.join( ) ; +} + +#which row in the grid is the number in ? +sub findRow( Int $n is copy --> Int ) { + return ($n - ( $n % 5 )) div 5 ; +} + +#which column in the grid is the number in? +sub findColumn( Int $n --> Int ) { + return $n % 5 ; +} + +#rule if both letters of a pair are on the same row +sub encodeOnSameRow( Str $keyPhrase , Str $letter --> Str ) { + my $pos = $keyPhrase.index( $letter ) ; + if ( findRow( $pos + 1 ) == findRow( $pos ) ) { + return $keyPhrase.substr( $pos + 1 , 1 ) ; + } + else { + return $keyPhrase.substr( $pos - 4 , 1 ) ; + } +} + +#rule if both letters of a pair are on the same column +sub encodeOnSameColumn( Str $keyPhrase , Str $letter --> Str ) { + my $pos = $keyPhrase.index( $letter ) ; + if ( $pos + 5 > 25 ) { + return $keyPhrase.substr( $pos % 5 , 1 ) ; + } + else { + return $keyPhrase.substr( $pos + 5 , 1 ) ; + } +} + +#the rule if a rectangle in the keyword grid is taken into account +sub encodeOnRectangle( Str $keyPhrase , Str $pair --> Str ) { + my Str $encrypted ; + my Int $pos1 = $keyPhrase.index( $pair.substr( 0 , 1 )) ; + my Int $pos2 = $keyPhrase.index( $pair.substr( 1 , 1 )) ; + my Int $row1 = findRow( $pos1 ) ; + my Int $row2 = findRow( $pos2 ) ; + my Int $col1 = findColumn( $pos1 ) ; + my Int $col2 = findColumn( $pos2 ) ; + $encrypted ~= $keyPhrase.substr( $row1 * 5 + $col2 , 1 ) ; + $encrypted ~= $keyPhrase.substr( $row2 * 5 + $col1 , 1 ) ; + return $encrypted ; +} + +#the following functions provide the return way of encoding +sub decodeOnSameRow( Str $keyPhrase , Str $letter --> Str ) { + my Int $pos = $keyPhrase.index( $letter ) ; + my Str $decrypted ; + if ( findRow( $pos - 1 ) == findRow( $pos ) ) { + $decrypted = $keyPhrase.substr( $pos - 1 , 1 ) ; + } + else { + $decrypted = $keyPhrase.substr( $pos + 4 , 1 ) ; + } + return $decrypted ; +} + +sub decodeOnSameColumn( Str $keyPhrase , Str $letter --> Str ) { + my Str $decrypted ; + my Int $pos = $keyPhrase.index( $letter ) ; + if ( $pos - 5 < 0 ) { + $decrypted = $keyPhrase.substr( 20 + findColumn( $pos ) , 1 ) ; + } + else { + $decrypted = $keyPhrase.substr( $pos - 5 , 1 ) ; + } + return $decrypted ; +} + +sub decodeOnRectangle( Str $keyPhrase , Str $encoded --> Str ) { + my Str $decrypted ; + my Int $pos1 = $keyPhrase.index( $encoded.substr( 0 , 1 ) ) ; + my Int $pos2 = $keyPhrase.index( $encoded.substr( 1 , 1 )) ; + my Int $row1 = findRow( $pos1 ) ; + my Int $row2 = findRow( $pos2 ) ; + my Int $col1 = findColumn( $pos1 ) ; + my Int $col2 = findColumn( $pos2 ) ; + $decrypted ~= $keyPhrase.substr( $row1 * 5 + $col2 , 1 ) ; + $decrypted ~= $keyPhrase.substr( $row2 * 5 + $col1 , 1 ) ; + return $decrypted ; +} + +#kind of composition of the above encoding functions +sub encrypt( Str $keyPhrase , Str $toBeEncrypted is copy --> Str ) { + my Str $encrypted ; + my $len = $toBeEncrypted.chars ; + if ( not ( $len %% 2 ) ) { + $toBeEncrypted ~= "x" ; + } + my @pairs = $toBeEncrypted.comb.rotor( 2 ) ; + for @pairs -> $pair { + my Int $pos1 = $keyPhrase.index( $pair[0] ) ; + my Int $pos2 = $keyPhrase.index( $pair[1] ) ; + if ( findRow( $pos1 ) == findRow( $pos2 ) ) { + $encrypted ~= encodeOnSameRow( $keyPhrase , $pair[0] ) ; + $encrypted ~= encodeOnSameRow( $keyPhrase, $pair[1]) ; + } + elsif ( findColumn( $pos1 ) == findColumn( $pos2 ) ) { + $encrypted ~= encodeOnSameColumn( $keyPhrase, $pair[ 0 ] ) ; + $encrypted ~= encodeOnSameColumn( $keyPhrase , $pair[1]) ; + } + else { + $encrypted ~= encodeOnRectangle( $keyPhrase , $pair[0] ~ $pair[1] ) ; + } + } + return $encrypted ; +} + +#composition of the above decoding functions +sub decrypt( Str $keyPhrase, Str $toBeDecrypted --> Str ) { + my Str $decrypted ; + my @pairs = $toBeDecrypted.comb.rotor( 2 ) ; + for @pairs -> $pair { + my Int $pos1 = $keyPhrase.index( $pair[0] ) ; + my Int $pos2 = $keyPhrase.index( $pair[1] ) ; + if ( findColumn( $pos1 ) == findColumn( $pos2 ) ) { + $decrypted ~= decodeOnSameColumn( $keyPhrase , $pair[0] ) ; + $decrypted ~= decodeOnSameColumn( $keyPhrase , $pair[1] ) ; + } + elsif ( findRow( $pos1 ) == findRow( $pos2 )) { + $decrypted ~= decodeOnSameRow( $keyPhrase , $pair[0] ) ; + $decrypted ~= decodeOnSameRow( $keyPhrase , $pair[1] ) ; + } + else { + $decrypted ~= decodeOnRectangle( $keyPhrase , $pair[0] ~ $pair[1] ) ; + } + } + return $decrypted ; +} + +#if two neighbouring letters are the same we intercalate an 'x' +sub intercalate( Str $word is copy --> Str ) { + my @letters = $word.comb ; + my Str $intercalated ; + my $len = $word.chars ; + for (0 .. $len - 2) -> $i { + if ( $word.substr( $i , 1 ) eq $word.substr( $i + 1 , 1 )) { + $intercalated ~= $word.substr( $i , 1 ) ; + $intercalated ~= 'x' ; + } + else { + $intercalated ~= $word.substr( $i , 1 ) ; + } + } + return $intercalated ; +} + +say "Please enter a key phrase:" ; +my Str $keyPhrase = $*IN.get ; +$keyPhrase ~~ s:g/'j'/'i'/ ;#j is taken for an i +my Str $gridWord = createGridWord( $keyPhrase ) ; +say "Please enter a string you want to encode:" ; +my Str $forEncryption = $*IN.get ; +$forEncryption ~~ s:g/'j'/'i'/ ; +$forEncryption ~~ s:g/\s// ; +my Int $len = $forEncryption.chars ; +if ( not ( $len %% 2 ) ) { + $forEncryption ~= "x" ; +} +if ( $forEncryption ~~ /(.)$0/ ) { + $forEncryption = intercalate( $forEncryption ) ; +} +say "The encrypted string is " ~ (encrypt( $gridWord , $forEncryption )) ~ " !" ; +say "Enter another key phrase!" ; +$keyPhrase = $*IN.get ; +$gridWord = createGridWord( $keyPhrase ) ; +say "Please enter a string you want to decode:" ; +my Str $forDecryption = $*IN.get ; +say "The decrypted string is " ~ (decrypt( $gridWord , $forDecryption )) ~ " !" ; diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 889b90f6dd..830a74de95 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,120 +1,9 @@ { - "series" : [ - { - "colorByPoint" : 1, - "name" : "The Weekly Challenge - 162", - "data" : [ - { - "y" : 3, - "drilldown" : "Dave Jacoby", - "name" : "Dave Jacoby" - }, - { - "drilldown" : "E. Choroba", - "name" : "E. Choroba", - "y" : 2 - }, - { - "y" : 3, - "name" : "James Smith", - "drilldown" : "James Smith" - }, - { - "drilldown" : "Julien Fiegehenn", - "name" : "Julien Fiegehenn", - "y" : 2 - }, - { - "y" : 2, - "name" : "Luca Ferrari", - "drilldown" : "Luca Ferrari" - }, - { - "y" : 2, - "name" : "Mark Anderson", - "drilldown" : "Mark Anderson" - }, - { - "y" : 2, - "name" : "Niels van Dijke", - "drilldown" : "Niels van Dijke" - }, - { - "name" : "Paulo Custodio", - "drilldown" : "Paulo Custodio", - "y" : 2 - }, - { - "drilldown" : "Peter Campbell Smith", - "name" : "Peter Campbell Smith", - "y" : 3 - }, - { - "y" : 2, - "name" : "PokGoPun", - "drilldown" : "PokGoPun" - }, - { - "y" : 2, - "name" : "Robert DiCicco", - "drilldown" : "Robert DiCicco" - }, - { - "drilldown" : "Roger Bell_West", - "name" : "Roger Bell_West", - "y" : 4 - }, - { - "y" : 4, - "drilldown" : "Ryan Thompson", - "name" : "Ryan Thompson" - }, - { - "name" : "W. Luis Mochan", - "drilldown" : "W. Luis Mochan", - "y" : 3 - } - ] - } - ], - "title" : { - "text" : "The Weekly Challenge - 162" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "xAxis" : { - "type" : "category" - }, - "legend" : { - "enabled" : 0 - }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - }, - "borderWidth" : 0 - } - }, - "subtitle" : { - "text" : "[Champions: 14] Last updated at 2022-04-27 23:03:18 GMT" - }, - "tooltip" : { - "followPointer" : 1, - "headerFormat" : "{series.name}
", - "pointFormat" : "{point.name}: {point.y:f}
" - }, - "chart" : { - "type" : "column" - }, "drilldown" : { "series" : [ { "id" : "Dave Jacoby", + "name" : "Dave Jacoby", "data" : [ [ "Perl", @@ -124,8 +13,7 @@ "Blog", 1 ] - ], - "name" : "Dave Jacoby" + ] }, { "data" : [ @@ -134,12 +22,10 @@ 2 ] ], - "id" : "E. Choroba", - "name" : "E. Choroba" + "name" : "E. Choroba", + "id" : "E. Choroba" }, { - "name" : "James Smith", - "id" : "James Smith", "data" : [ [ "Perl", @@ -149,7 +35,9 @@ "Blog", 1 ] - ] + ], + "id" : "James Smith", + "name" : "James Smith" }, { "data" : [ @@ -158,8 +46,8 @@ 2 ] ], - "id" : "Julien Fiegehenn", - "name" : "Julien Fiegehenn" + "name" : "Julien Fiegehenn", + "id" : "Julien Fiegehenn" }, { "data" : [ @@ -168,41 +56,42 @@ 2 ] ], - "id" : "Luca Ferrari", - "name" : "Luca Ferrari" + "name" : "Luca Ferrari", + "id" : "Luca Ferrari" }, { - "name" : "Mark Anderson", "data" : [ [ "Raku", 2 ] ], + "name" : "Mark Anderson", "id" : "Mark Anderson" }, { - "name" : "Niels van Dijke", - "id" : "Niels van Dijke", "data" : [ [ "Perl", 2 ] - ] + ], + "id" : "Niels van Dijke", + "name" : "Niels van Dijke" }, { + "id" : "Paulo Custodio", + "name" : "Paulo Custodio", "data" : [ [ "Perl", 2 ] - ], - "id" : "Paulo Custodio", - "name" : "Paulo Custodio" + ] }, { "name" : "Peter Campbell Smith", + "id" : "Peter Campbell Smith", "data" : [ [ "Perl", @@ -212,12 +101,11 @@ "Blog", 1 ] - ], - "id" : "Peter Campbell Smith" + ] }, { - "name" : "PokGoPun", "id" : "PokGoPun", + "name" : "PokGoPun", "data" : [ [ "Perl", @@ -226,8 +114,6 @@ ] }, { - "name" : "Robert DiCicco", - "id" : "Robert DiCicco", "data" : [ [ "Perl", @@ -237,9 +123,12 @@ "Raku", 1 ] - ] + ], + "id" : "Robert DiCicco", + "name" : "Robert DiCicco" }, { + "name" : "Roger Bell_West", "id" : "Roger Bell_West", "data" : [ [ @@ -250,8 +139,7 @@ "Raku", 2 ] - ], - "name" : "Roger Bell_West" + ] }, { "data" : [ @@ -264,11 +152,26 @@ 2 ] ], - "id" : "Ryan Thompson", - "name" : "Ryan Thompson" + "name" : "Ryan Thompson", + "id" : "Ryan Thompson" + }, + { + "data" : [ + [ + "Perl", + 1 + ], + [ + "Raku", + 2 + ] + ], + "name" : "Ulrich Rieke", + "id" : "Ulrich Rieke" }, { "id" : "W. Luis Mochan", + "name" : "W. Luis Mochan", "data" : [ [ "Perl", @@ -278,9 +181,125 @@ "Blog", 1 ] - ], - "name" : "W. Luis Mochan" + ] } ] + }, + "title" : { + "text" : "The Weekly Challenge - 162" + }, + "legend" : { + "enabled" : 0 + }, + "tooltip" : { + "followPointer" : 1, + "headerFormat" : "{series.name}
", + "pointFormat" : "{point.name}: {point.y:f}
" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + } + } + }, + "xAxis" : { + "type" : "category" + }, + "series" : [ + { + "colorByPoint" : 1, + "name" : "The Weekly Challenge - 162", + "data" : [ + { + "y" : 3, + "name" : "Dave Jacoby", + "drilldown" : "Dave Jacoby" + }, + { + "name" : "E. Choroba", + "drilldown" : "E. Choroba", + "y" : 2 + }, + { + "name" : "James Smith", + "drilldown" : "James Smith", + "y" : 3 + }, + { + "y" : 2, + "name" : "Julien Fiegehenn", + "drilldown" : "Julien Fiegehenn" + }, + { + "name" : "Luca Ferrari", + "drilldown" : "Luca Ferrari", + "y" : 2 + }, + { + "y" : 2, + "name" : "Mark Anderson", + "drilldown" : "Mark Anderson" + }, + { + "y" : 2, + "name" : "Niels van Dijke", + "drilldown" : "Niels van Dijke" + }, + { + "y" : 2, + "name" : "Paulo Custodio", + "drilldown" : "Paulo Custodio" + }, + { + "y" : 3, + "name" : "Peter Campbell Smith", + "drilldown" : "Peter Campbell Smith" + }, + { + "name" : "PokGoPun", + "drilldown" : "PokGoPun", + "y" : 2 + }, + { + "y" : 2, + "drilldown" : "Robert DiCicco", + "name" : "Robert DiCicco" + }, + { + "y" : 4, + "name" : "Roger Bell_West", + "drilldown" : "Roger Bell_West" + }, + { + "name" : "Ryan Thompson", + "drilldown" : "Ryan Thompson", + "y" : 4 + }, + { + "name" : "Ulrich Rieke", + "drilldown" : "Ulrich Rieke", + "y" : 3 + }, + { + "y" : 3, + "drilldown" : "W. Luis Mochan", + "name" : "W. Luis Mochan" + } + ] + } + ], + "chart" : { + "type" : "column" + }, + "subtitle" : { + "text" : "[Champions: 15] Last updated at 2022-04-28 01:54:00 GMT" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 600fa3294c..cb047d30c6 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,12 +1,31 @@ { - "yAxis" : { - "title" : { - "text" : null + "xAxis" : { + "labels" : { + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + } }, - "min" : 0 + "type" : "category" + }, + "subtitle" : { + "text" : "Last updated at 2022-04-28 01:54:00 GMT" }, "series" : [ { + "dataLabels" : { + "format" : "{point.y:.0f}", + "align" : "right", + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + }, + "color" : "#FFFFFF", + "rotation" : -90, + "y" : 10, + "enabled" : "true" + }, + "name" : "Contributions", "data" : [ [ "Blog", @@ -14,50 +33,31 @@ ], [ "Perl", - 7899 + 7900 ], [ "Raku", - 4678 + 4680 ] - ], - "dataLabels" : { - "rotation" : -90, - "y" : 10, - "format" : "{point.y:.0f}", - "color" : "#FFFFFF", - "align" : "right", - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - }, - "enabled" : "true" - }, - "name" : "Contributions" + ] } ], + "chart" : { + "type" : "column" + }, "title" : { "text" : "The Weekly Challenge Contributions [2019 - 2022]" }, "tooltip" : { "pointFormat" : "{point.y:.0f}" }, - "chart" : { - "type" : "column" - }, - "subtitle" : { - "text" : "Last updated at 2022-04-27 23:03:18 GMT" + "yAxis" : { + "title" : { + "text" : null + }, + "min" : 0 }, "legend" : { "enabled" : "false" - }, - "xAxis" : { - "type" : "category", - "labels" : { - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - } - } } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 85b0438886..0727e7d019 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,7 +1,25 @@ { + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "tooltip" : { + "pointFormat" : "Challenge {point.name}: {point.y:f}
", + "headerFormat" : "", + "followPointer" : "true" + }, + "legend" : { + "enabled" : "false" + }, + "title" : { + "text" : "The Weekly Challenge Language" + }, "drilldown" : { "series" : [ { + "name" : "001", + "id" : "001", "data" : [ [ "Perl", @@ -15,13 +33,9 @@ "Blog", 11 ] - ], - "id" : "001", - "name" : "001" + ] }, { - "name" : "002", - "id" : "002", "data" : [ [ "Perl", @@ -35,10 +49,11 @@ "Blog", 10 ] - ] + ], + "name" : "002", + "id" : "002" }, { - "id" : "003", "data" : [ [ "Perl", @@ -53,10 +68,10 @@ 9 ] ], + "id" : "003", "name" : "003" }, { - "name" : "004", "data" : [ [ "Perl", @@ -71,11 +86,12 @@ 10 ] ], - "id" : "004" + "id" : "004", + "name" : "004" }, { - "name" : "005", "id" : "005", + "name" : "005", "data" : [ [ "Perl", @@ -110,7 +126,6 @@ ] }, { - "id" : "007", "data" : [ [ "Perl", @@ -125,9 +140,11 @@ 10 ] ], - "name" : "007" + "name" : "007", + "id" : "007" }, { + "name" : "008", "id" : "008", "data" : [ [ @@ -142,12 +159,9 @@ "Blog", 12 ] - ], - "name" : "008" + ] }, { - "name" : "009", - "id" : "009", "data" : [ [ "Perl", @@ -161,7 +175,9 @@ "Blog", 13 ] - ] + ], + "name" : "009", + "id" : "009" }, { "data" : [ @@ -178,12 +194,10 @@ 11 ] ], - "id" : "010", - "name" : "010" + "name" : "010", + "id" : "010" }, { - "name" : "011", - "id" : "011", "data" : [ [ "Perl", @@ -197,10 +211,13 @@ "Blog", 10 ] - ] + ], + "id" : "011", + "name" : "011" }, { "name" : "012", + "id" : "012", "data" : [ [ "Perl", @@ -214,11 +231,11 @@ "Blog", 11 ] - ], - "id" : "012" + ] }, { "name" : "013", + "id" : "013", "data" : [ [ "Perl", @@ -232,12 +249,9 @@ "Blog", 13 ] - ], - "id" : "013" + ] }, { - "name" : "014", - "id" : "014", "data" : [ [ "Perl", @@ -251,11 +265,13 @@ "Blog", 15 ] - ] + ], + "id" : "014", + "name" : "014" }, { - "name" : "015", "id" : "015", + "name" : "015", "data" : [ [ "Perl", @@ -272,8 +288,8 @@ ] }, { - "name" : "016", "id" : "016", + "name" : "016", "data" : [ [ "Perl", @@ -290,6 +306,8 @@ ] }, { + "id" : "017", + "name" : "017", "data" : [ [ "Perl", @@ -303,11 +321,11 @@ "Blog", 12 ] - ], - "id" : "017", - "name" : "017" + ] }, { + "id" : "018", + "name" : "018", "data" : [ [ "Perl", @@ -321,11 +339,11 @@ "Blog", 14 ] - ], - "id" : "018", - "name" : "018" + ] }, { + "id" : "019", + "name" : "019", "data" : [ [ "Perl", @@ -339,12 +357,11 @@ "Blog", 13 ] - ], - "id" : "019", - "name" : "019" + ] }, { "name" : "020", + "id" : "020", "data" : [ [ "Perl", @@ -358,10 +375,11 @@ "Blog", 13 ] - ], - "id" : "020" + ] }, { + "id" : "021", + "name" : "021", "data" : [ [ "Perl", @@ -375,12 +393,9 @@ "Blog", 10 ] - ], - "id" : "021", - "name" : "021" + ] }, { - "id" : "022", "data" : [ [ "Perl", @@ -395,11 +410,10 @@ 10 ] ], - "name" : "022" + "name" : "022", + "id" : "022" }, { - "name" : "023", - "id" : "023", "data" : [ [ "Perl", @@ -413,9 +427,12 @@ "Blog", 12 ] - ] + ], + "name" : "023", + "id" : "023" }, { + "id" : "024", "name" : "024", "data" : [ [ @@ -430,11 +447,9 @@ "Blog", 11 ] - ], - "id" : "024" + ] }, { - "name" : "025", "data" : [ [ "Perl", @@ -449,9 +464,11 @@ 12 ] ], - "id" : "025" + "id" : "025", + "name" : "025" }, { + "id" : "026", "name" : "026", "data" : [ [ @@ -466,11 +483,11 @@ "Blog", 10 ] - ], - "id" : "026" + ] }, { "name" : "027", + "id" : "027", "data" : [ [ "Perl", @@ -484,10 +501,10 @@ "Blog", 9 ] - ], - "id" : "027" + ] }, { + "name" : "028", "id" : "028", "data" : [ [ @@ -502,11 +519,9 @@ "Blog", 9 ] - ], - "name" : "028" + ] }, { - "name" : "029", "data" : [ [ "Perl", @@ -521,10 +536,12 @@ 12 ] ], + "name" : "029", "id" : "029" }, { "name" : "030", + "id" : "030", "data" : [ [ "Perl", @@ -538,11 +555,9 @@ "Blog", 10 ] - ], - "id" : "030" + ] }, { - "id" : "031", "data" : [ [ "Perl", @@ -557,10 +572,12 @@ 9 ] ], + "id" : "031", "name" : "031" }, { "name" : "032", + "id" : "032", "data" : [ [ "Perl", @@ -574,8 +591,7 @@ "Blog", 10 ] - ], - "id" : "032" + ] }, { "data" : [ @@ -596,8 +612,6 @@ "name" : "033" }, { - "name" : "034", - "id" : "034", "data" : [ [ "Perl", @@ -611,9 +625,12 @@ "Blog", 11 ] - ] + ], + "id" : "034", + "name" : "034" }, { + "id" : "035", "name" : "035", "data" : [ [ @@ -628,11 +645,9 @@ "Blog", 9 ] - ], - "id" : "035" + ] }, { - "name" : "036", "data" : [ [ "Perl", @@ -647,10 +662,10 @@ 11 ] ], + "name" : "036", "id" : "036" }, { - "id" : "037", "data" : [ [ "Perl", @@ -665,6 +680,7 @@ 9 ] ], + "id" : "037", "name" : "037" }, { @@ -686,6 +702,8 @@ ] }, { + "name" : "039", + "id" : "039", "data" : [ [ "Perl", @@ -699,12 +717,9 @@ "Blog", 12 ] - ], - "id" : "039", - "name" : "039" + ] }, { - "name" : "040", "data" : [ [ "Perl", @@ -719,10 +734,12 @@ 10 ] ], - "id" : "040" + "id" : "040", + "name" : "040" }, { "id" : "041", + "name" : "041", "data" : [ [ "Perl", @@ -736,8 +753,7 @@ "Blog", 9 ] - ], - "name" : "041" + ] }, { "data" : [ @@ -772,12 +788,12 @@ 11 ] ], - "id" : "043", - "name" : "043" + "name" : "043", + "id" : "043" }, { - "name" : "044", "id" : "044", + "name" : "044", "data" : [ [ "Perl", @@ -794,6 +810,8 @@ ] }, { + "id" : "045", + "name" : "045", "data" : [ [ "Perl", @@ -807,13 +825,9 @@ "Blog", 11 ] - ], - "id" : "045", - "name" : "045" + ] }, { - "name" : "046", - "id" : "046", "data" : [ [ "Perl", @@ -827,9 +841,12 @@ "Blog", 10 ] - ] + ], + "name" : "046", + "id" : "046" }, { + "id" : "047", "name" : "047", "data" : [ [ @@ -844,12 +861,11 @@ "Blog", 10 ] - ], - "id" : "047" + ] }, { - "name" : "048", "id" : "048", + "name" : "048", "data" : [ [ "Perl", @@ -866,8 +882,6 @@ ] }, { - "name" : "049", - "id" : "049", "data" : [ [ "Perl", @@ -881,10 +895,13 @@ "Blog", 12 ] - ] + ], + "name" : "049", + "id" : "049" }, { "name" : "050", + "id" : "050", "data" : [ [ "Perl", @@ -898,12 +915,9 @@ "Blog", 12 ] - ], - "id" : "050" + ] }, { - "name" : "051", - "id" : "051", "data" : [ [ "Perl", @@ -917,10 +931,11 @@ "Blog", 11 ] - ] + ], + "name" : "051", + "id" : "051" }, { - "name" : "052", "data" : [ [ "Perl", @@ -935,11 +950,10 @@ 14 ] ], - "id" : "052" + "id" : "052", + "name" : "052" }, { - "name" : "053", - "id" : "053", "data" : [ [ "Perl", @@ -953,9 +967,13 @@ "Blog", 15 ] - ] + ], + "id" : "053", + "name" : "053" }, { + "name" : "054", + "id" : "054", "data" : [ [ "Perl", @@ -969,11 +987,11 @@ "Blog", 18 ] - ], - "id" : "054", - "name" : "054" + ] }, { + "name" : "055", + "id" : "055", "data" : [ [ "Perl", @@ -987,9 +1005,7 @@ "Blog", 14 ] - ], - "id" : "055", - "name" : "055" + ] }, { "data" : [ @@ -1006,8 +1022,8 @@ 16 ] ], - "id" : "056", - "name" : "056" + "name" : "056", + "id" : "056" }, { "data" : [ @@ -1028,7 +1044,6 @@ "name" : "057" }, { - "id" : "058", "data" : [ [ "Perl", @@ -1043,11 +1058,10 @@ 13 ] ], - "name" : "058" + "name" : "058", + "id" : "058" }, { - "name" : "059", - "id" : "059", "data" : [ [ "Perl", @@ -1061,9 +1075,12 @@ "Blog", 16 ] - ] + ], + "name" : "059", + "id" : "059" }, { + "id" : "060", "name" : "060", "data" : [ [ @@ -1078,11 +1095,9 @@ "Blog", 16 ] - ], - "id" : "060" + ] }, { - "id" : "061", "data" : [ [ "Perl", @@ -1097,11 +1112,12 @@ 14 ] ], - "name" : "061" + "name" : "061", + "id" : "061" }, { - "name" : "062", "id" : "062", + "name" : "062", "data" : [ [ "Perl", @@ -1118,8 +1134,6 @@ ] }, { - "name" : "063", - "id" : "063", "data" : [ [ "Perl", @@ -1133,9 +1147,13 @@ "Blog", 13 ] - ] + ], + "name" : "063", + "id" : "063" }, { + "id" : "064", + "name" : "064", "data" : [ [ "Perl", @@ -1149,9 +1167,7 @@ "Blog", 16 ] - ], - "id" : "064", - "name" : "064" + ] }, { "name" : "065", @@ -1172,6 +1188,7 @@ ] }, { + "name" : "066", "id" : "066", "data" : [ [ @@ -1186,10 +1203,10 @@ "Blog", 14 ] - ], - "name" : "066" + ] }, { + "id" : "067", "name" : "067", "data" : [ [ @@ -1204,10 +1221,10 @@ "Blog", 18 ] - ], - "id" : "067" + ] }, { + "id" : "068", "name" : "068", "data" : [ [ @@ -1222,10 +1239,10 @@ "Blog", 13 ] - ], - "id" : "068" + ] }, { + "id" : "069", "name" : "069", "data" : [ [ @@ -1240,8 +1257,7 @@ "Blog", 16 ] - ], - "id" : "069" + ] }, { "name" : "070", @@ -1262,6 +1278,7 @@ ] }, { + "name" : "071", "id" : "071", "data" : [ [ @@ -1276,10 +1293,10 @@ "Blog", 15 ] - ], - "name" : "071" + ] }, { + "name" : "072", "id" : "072", "data" : [ [ @@ -1294,8 +1311,7 @@ "Blog", 19 ] - ], - "name" : "072" + ] }, { "data" : [ @@ -1312,11 +1328,10 @@ 17 ] ], - "id" : "073", - "name" : "073" + "name" : "073", + "id" : "073" }, { - "name" : "074", "data" : [ [ "Perl", @@ -1331,10 +1346,10 @@ 20 ] ], + "name" : "074", "id" : "074" }, { - "id" : "075", "data" : [ [ "Perl", @@ -1349,6 +1364,7 @@ 20 ] ], + "id" : "075", "name" : "075" }, { @@ -1366,8 +1382,8 @@ 16 ] ], - "id" : "076", - "name" : "076" + "name" : "076", + "id" : "076" }, { "data" : [ @@ -1384,12 +1400,12 @@ 14 ] ], - "id" : "077", - "name" : "077" + "name" : "077", + "id" : "077" }, { - "name" : "078", "id" : "078", + "name" : "078", "data" : [ [ "Perl", @@ -1407,6 +1423,7 @@ }, { "id" : "079", + "name" : "079", "data" : [ [ "Perl", @@ -1420,11 +1437,9 @@ "Blog", 17 ] - ], - "name" : "079" + ] }, { - "id" : "080", "data" : [ [ "Perl", @@ -1439,10 +1454,10 @@ 16 ] ], + "id" : "080", "name" : "080" }, { - "id" : "081", "data" : [ [ "Perl", @@ -1457,11 +1472,10 @@ 15 ] ], + "id" : "081", "name" : "081" }, { - "name" : "082", - "id" : "082", "data" : [ [ "Perl", @@ -1475,10 +1489,11 @@ "Blog", 17 ] - ] + ], + "id" : "082", + "name" : "082" }, { - "name" : "083", "data" : [ [ "Perl", @@ -1493,7 +1508,8 @@ 16 ] ], - "id" : "083" + "id" : "083", + "name" : "083" }, { "name" : "084", @@ -1515,6 +1531,7 @@ }, { "id" : "085", + "name" : "085", "data" : [ [ "Perl", @@ -1528,12 +1545,9 @@ "Blog", 18 ] - ], - "name" : "085" + ] }, { - "name" : "086", - "id" : "086", "data" : [ [ "Perl", @@ -1547,7 +1561,9 @@ "Blog", 15 ] - ] + ], + "name" : "086", + "id" : "086" }, { "data" : [ @@ -1564,11 +1580,12 @@ 14 ] ], - "id" : "087", - "name" : "087" + "name" : "087", + "id" : "087" }, { "id" : "088", + "name" : "088", "data" : [ [ "Perl", @@ -1582,8 +1599,7 @@ "Blog", 20 ] - ], - "name" : "088" + ] }, { "data" : [ @@ -1604,7 +1620,6 @@ "name" : "089" }, { - "name" : "090", "data" : [ [ "Perl", @@ -1619,11 +1634,10 @@ 17 ] ], - "id" : "090" + "id" : "090", + "name" : "090" }, { - "name" : "091", - "id" : "091", "data" : [ [ "Perl", @@ -1637,9 +1651,12 @@ "Blog", 16 ] - ] + ], + "name" : "091", + "id" : "091" }, { + "name" : "092", "id" : "092", "data" : [ [ @@ -1654,10 +1671,11 @@ "Blog", 16 ] - ], - "name" : "092" + ] }, { + "name" : "093", + "id" : "093", "data" : [ [ "Perl", @@ -1671,11 +1689,10 @@ "Blog", 16 ] - ], - "id" : "093", - "name" : "093" + ] }, { + "name" : "094", "id" : "094", "data" : [ [ @@ -1690,10 +1707,11 @@ "Blog", 17 ] - ], - "name" : "094" + ] }, { + "id" : "095", + "name" : "095", "data" : [ [ "Perl", @@ -1707,11 +1725,11 @@ "Blog", 19 ] - ], - "id" : "095", - "name" : "095" + ] }, { + "name" : "096", + "id" : "096", "data" : [ [ "Perl", @@ -1725,11 +1743,10 @@ "Blog", 19 ] - ], - "id" : "096", - "name" : "096" + ] }, { + "id" : "097", "name" : "097", "data" : [ [ @@ -1744,11 +1761,11 @@ "Blog", 19 ] - ], - "id" : "097" + ] }, { "id" : "098", + "name" : "098", "data" : [ [ "Perl", @@ -1762,10 +1779,10 @@ "Blog", 17 ] - ], - "name" : "098" + ] }, { + "id" : "099", "name" : "099", "data" : [ [ @@ -1780,8 +1797,7 @@ "Blog", 14 ] - ], - "id" : "099" + ] }, { "data" : [ @@ -1798,10 +1814,11 @@ 21 ] ], - "id" : "100", - "name" : "100" + "name" : "100", + "id" : "100" }, { + "id" : "101", "name" : "101", "data" : [ [ @@ -1816,8 +1833,7 @@ "Blog", 13 ] - ], - "id" : "101" + ] }, { "data" : [ @@ -1834,8 +1850,8 @@ 15 ] ], - "id" : "102", - "name" : "102" + "name" : "102", + "id" : "102" }, { "data" : [ @@ -1852,11 +1868,10 @@ 15 ] ], - "id" : "103", - "name" : "103" + "name" : "103", + "id" : "103" }, { - "name" : "104", "data" : [ [ "Perl", @@ -1871,9 +1886,12 @@ 14 ] ], - "id" : "104" + "id" : "104", + "name" : "104" }, { + "id" : "105", + "name" : "105", "data" : [ [ "Perl", @@ -1887,13 +1905,11 @@ "Blog", 14 ] - ], - "id" : "105", - "name" : "105" + ] }, { - "name" : "106", "id" : "106", + "name" : "106", "data" : [ [ "Perl", @@ -1911,6 +1927,7 @@ }, { "name" : "107", + "id" : "107", "data" : [ [ "Perl", @@ -1924,12 +1941,9 @@ "Blog", 19 ] - ], - "id" : "107" + ] }, { - "name" : "108", - "id" : "108", "data" : [ [ "Perl", @@ -1943,10 +1957,13 @@ "Blog", 20 ] - ] + ], + "id" : "108", + "name" : "108" }, { "id" : "109", + "name" : "109", "data" : [ [ "Perl", @@ -1960,10 +1977,10 @@ "Blog", 22 ] - ], - "name" : "109" + ] }, { + "name" : "110", "id" : "110", "data" : [ [ @@ -1978,10 +1995,11 @@ "Blog", 25 ] - ], - "name" : "110" + ] }, { + "id" : "111", + "name" : "111", "data" : [ [ "Perl", @@ -1995,12 +2013,9 @@ "Blog", 17 ] - ], - "id" : "111", - "name" : "111" + ] }, { - "id" : "112", "data" : [ [ "Perl", @@ -2015,11 +2030,10 @@ 19 ] ], + "id" : "112", "name" : "112" }, { - "name" : "113", - "id" : "113", "data" : [ [ "Perl", @@ -2033,11 +2047,11 @@ "Blog", 19 ] - ] + ], + "name" : "113", + "id" : "113" }, { - "name" : "114", - "id" : "114", "data" : [ [ "Perl", @@ -2051,11 +2065,11 @@ "Blog", 21 ] - ] + ], + "name" : "114", + "id" : "114" }, { - "name" : "115", - "id" : "115", "data" : [ [ "Perl", @@ -2069,9 +2083,13 @@ "Blog", 20 ] - ] + ], + "name" : "115", + "id" : "115" }, { + "id" : "116", + "name" : "116", "data" : [ [ "Perl", @@ -2085,13 +2103,9 @@ "Blog", 17 ] - ], - "id" : "116", - "name" : "116" + ] }, { - "name" : "117", - "id" : "117", "data" : [ [ "Perl", @@ -2105,10 +2119,11 @@ "Blog", 19 ] - ] + ], + "id" : "117", + "name" : "117" }, { - "id" : "118", "data" : [ [ "Perl", @@ -2123,9 +2138,11 @@ 17 ] ], - "name" : "118" + "name" : "118", + "id" : "118" }, { + "name" : "119", "id" : "119", "data" : [ [ @@ -2140,11 +2157,9 @@ "Blog", 21 ] - ], - "name" : "119" + ] }, { - "id" : "120", "data" : [ [ "Perl", @@ -2159,10 +2174,10 @@ 21 ] ], - "name" : "120" + "name" : "120", + "id" : "120" }, { - "name" : "121", "data" : [ [ "Perl", @@ -2177,7 +2192,8 @@ 17 ] ], - "id" : "121" + "id" : "121", + "name" : "121" }, { "data" : [ @@ -2194,11 +2210,12 @@ 20 ] ], - "id" : "122", - "name" : "122" + "name" : "122", + "id" : "122" }, { "name" : "123", + "id" : "123", "data" : [ [ "Perl", @@ -2212,10 +2229,10 @@ "Blog", 18 ] - ], -