From 3e3453d23c7de1c054de694f4a3dbe86599d038b Mon Sep 17 00:00:00 2001 From: Mohammad Sajid Anwar Date: Mon, 4 Nov 2024 22:01:52 +0000 Subject: - Added solutions by Ulrich Rieke. - Added solutions by Eric Cheung. - Added solutions by Conor Hoekstra. - Added solutions by E. Choroba. - Added solutions by Mark Anderson. - Added solutions by W. Luis Mochan. --- challenge-294/eric-cheung/python/ch-1.py | 27 ++ challenge-294/eric-cheung/python/ch-2.py | 12 + challenge-294/ulrich-rieke/cpp/ch-1.cpp | 49 ++ challenge-294/ulrich-rieke/cpp/ch-2.cpp | 50 ++ challenge-294/ulrich-rieke/haskell/ch-1.hs | 30 ++ challenge-294/ulrich-rieke/haskell/ch-2.hs | 23 + challenge-294/ulrich-rieke/perl/ch-1.pl | 32 ++ challenge-294/ulrich-rieke/perl/ch-2.pl | 48 ++ challenge-294/ulrich-rieke/raku/ch-1.raku | 28 ++ challenge-294/ulrich-rieke/raku/ch-2.raku | 21 + challenge-294/ulrich-rieke/rust/ch-1.rs | 33 ++ challenge-294/ulrich-rieke/rust/ch-2.rs | 24 + stats/pwc-challenge-293.json | 653 +++++++++++++++++++++++++ stats/pwc-current.json | 607 ++--------------------- stats/pwc-language-breakdown-2019.json | 306 ++++++------ stats/pwc-language-breakdown-2020.json | 748 ++++++++++++++--------------- stats/pwc-language-breakdown-2021.json | 718 +++++++++++++-------------- stats/pwc-language-breakdown-2022.json | 364 +++++++------- stats/pwc-language-breakdown-2023.json | 352 +++++++------- stats/pwc-language-breakdown-2024.json | 649 +++++++++++++------------ stats/pwc-language-breakdown-summary.json | 78 +-- stats/pwc-leaders.json | 700 +++++++++++++-------------- stats/pwc-summary-1-30.json | 34 +- stats/pwc-summary-121-150.json | 100 ++-- stats/pwc-summary-151-180.json | 110 ++--- stats/pwc-summary-181-210.json | 44 +- stats/pwc-summary-211-240.json | 106 ++-- stats/pwc-summary-241-270.json | 122 ++--- stats/pwc-summary-271-300.json | 104 ++-- stats/pwc-summary-301-330.json | 86 ++-- stats/pwc-summary-31-60.json | 100 ++-- stats/pwc-summary-61-90.json | 92 ++-- stats/pwc-summary-91-120.json | 28 +- stats/pwc-summary.json | 64 +-- stats/pwc-yearly-language-summary.json | 88 ++-- 35 files changed, 3573 insertions(+), 3057 deletions(-) create mode 100755 challenge-294/eric-cheung/python/ch-1.py create mode 100755 challenge-294/eric-cheung/python/ch-2.py create mode 100755 challenge-294/ulrich-rieke/cpp/ch-1.cpp create mode 100755 challenge-294/ulrich-rieke/cpp/ch-2.cpp create mode 100755 challenge-294/ulrich-rieke/haskell/ch-1.hs create mode 100755 challenge-294/ulrich-rieke/haskell/ch-2.hs create mode 100755 challenge-294/ulrich-rieke/perl/ch-1.pl create mode 100755 challenge-294/ulrich-rieke/perl/ch-2.pl create mode 100755 challenge-294/ulrich-rieke/raku/ch-1.raku create mode 100755 challenge-294/ulrich-rieke/raku/ch-2.raku create mode 100755 challenge-294/ulrich-rieke/rust/ch-1.rs create mode 100755 challenge-294/ulrich-rieke/rust/ch-2.rs create mode 100644 stats/pwc-challenge-293.json diff --git a/challenge-294/eric-cheung/python/ch-1.py b/challenge-294/eric-cheung/python/ch-1.py new file mode 100755 index 0000000000..8dc9dbb2ef --- /dev/null +++ b/challenge-294/eric-cheung/python/ch-1.py @@ -0,0 +1,27 @@ + +arrInts = [10, 4, 20, 1, 3, 2] ## Example 1 +## arrInts = [0, 6, 1, 8, 5, 2, 4, 3, 0, 7] ## Example 2 +## arrInts = [10, 30, 20] ## Example 3 + +arrInts = sorted(arrInts) + +## print (arrInts) + +arrOutput = [] + +arrSubOutput = [arrInts[0]] + +for nIndxLoop in range(1, len(arrInts)): + if arrInts[nIndxLoop] - arrInts[nIndxLoop - 1] != 1: + arrOutput.append(arrSubOutput) + arrSubOutput = [] + + arrSubOutput.append(arrInts[nIndxLoop]) + +arrOutput.append(arrSubOutput) + +## print (arrOutput) + +nMaxLen = max([len(arrLoop) for arrLoop in arrOutput]) + +print (-1 if nMaxLen == 1 else nMaxLen) diff --git a/challenge-294/eric-cheung/python/ch-2.py b/challenge-294/eric-cheung/python/ch-2.py new file mode 100755 index 0000000000..19ba9bdc1b --- /dev/null +++ b/challenge-294/eric-cheung/python/ch-2.py @@ -0,0 +1,12 @@ + +from itertools import permutations + +## arrInput = [1, 2, 3] ## Example 1 +## arrInput = [2, 1, 3] ## Example 2 +arrInput = [3, 1, 2] ## Example 3 + +arrPermList = [list(arrSet) for arrSet in list(permutations(arrInput))] + +## print (arrPermList) + +print (arrPermList[arrPermList.index(arrInput) + 1]) diff --git a/challenge-294/ulrich-rieke/cpp/ch-1.cpp b/challenge-294/ulrich-rieke/cpp/ch-1.cpp new file mode 100755 index 0000000000..b1cf653829 --- /dev/null +++ b/challenge-294/ulrich-rieke/cpp/ch-1.cpp @@ -0,0 +1,49 @@ +#include +#include +#include +#include +#include + +std::vector split( const std::string & text , char delim ) { + std::istringstream istr { text } ; + std::vector tokens ; + std::string word ; + while ( std::getline( istr , word , delim ) ) { + tokens.push_back( word ) ; + } + return tokens ; +} + +int main( ) { + std::cout << "Enter some integers separated by blanks!\n" ; + std::string line ; + std::getline( std::cin , line ) ; + auto numberstrings { split( line , ' ' ) } ; + std::vector numbers , lengths ; + for ( auto s : numberstrings ) + numbers.push_back( std::stoi( s ) ) ; + std::sort( numbers.begin( ) , numbers.end( ) ) ; + int len = numbers.size( ) ; + int run { 1 } ; + int i = 1 ; + while ( i < len ) { + if ( numbers[i] - numbers[i - 1] == 1 ) { + run++ ; + } + else { + lengths.push_back( run ) ; + run = 1 ; + } + i++ ; + } + lengths.push_back( run ) ; + int maximum = *std::max_element( lengths.begin( ) , lengths.end( ) ) ; + if ( maximum == 1 ) + std::cout << -1 ; + else + std::cout << maximum ; + std::cout << '\n' ; + return 0 ; +} + + diff --git a/challenge-294/ulrich-rieke/cpp/ch-2.cpp b/challenge-294/ulrich-rieke/cpp/ch-2.cpp new file mode 100755 index 0000000000..c60bf76cdb --- /dev/null +++ b/challenge-294/ulrich-rieke/cpp/ch-2.cpp @@ -0,0 +1,50 @@ +#include +#include +#include +#include +#include + +std::vector split( const std::string & text , char delim ) { + std::istringstream istr { text } ; + std::vector tokens ; + std::string word ; + while ( std::getline( istr , word , delim ) ) { + tokens.push_back( word ) ; + } + return tokens ; +} + +void printVector( const std::vector & selected ) { + std::cout << "( "; + for ( int i : selected ) { + std::cout << i << ' ' ; + } + std::cout << ')' ; +} + +int main( ) { + std::cout << "Enter some integers, separated by blanks!\n" ; + std::string line ; + std::getline( std::cin , line ) ; + std::vector numbers ; + auto numberstrings { split( line , ' ' ) } ; + for ( auto s : numberstrings ) + numbers.push_back( std::stoi( s ) ) ; + std::vector myCopy( numbers ) ; + std::sort( myCopy.begin( ) , myCopy.end( ) ) ; + std::vector> allPermus ; + allPermus.push_back( myCopy ) ; + while ( std::next_permutation( myCopy.begin( ) , myCopy.end( ) ) ) { + allPermus.push_back( myCopy ) ; + } + auto pos = std::find( allPermus.begin( ) , allPermus.end( ) , + numbers ) ; + if ( *pos == allPermus.back( ) ) { + printVector( allPermus.front( ) ) ; + } + else { + printVector( *(pos + 1 ) ) ; + } + std::cout << '\n' ; + return 0 ; +} diff --git a/challenge-294/ulrich-rieke/haskell/ch-1.hs b/challenge-294/ulrich-rieke/haskell/ch-1.hs new file mode 100755 index 0000000000..c2cd46c096 --- /dev/null +++ b/challenge-294/ulrich-rieke/haskell/ch-1.hs @@ -0,0 +1,30 @@ +module Challenge294 + where +import Data.List.Split ( divvy ) +import Data.List ( (!! ) , maximumBy , sort ) + +isContiguous :: [Int] -> Bool +isContiguous list = all (\v -> last v - head v == 1 ) $ divvy 2 1 list + +cutFromList :: [Int] -> Int -> Int -> [Int] +cutFromList list from to = take ( to - from + 1 ) $ drop from list + +findSublists :: [Int] -> [[Int]] +findSublists list = [ cutFromList sorted i j | i <- [0..l - 2] , + j <- [i + 1 .. l - 1]] + where + l = length list + sorted = sort list + +solution :: [Int] -> Int +solution list = + let sublists = findSublists list + selected = filter isContiguous sublists + in if null selected then -1 else length $ maximumBy(\a b -> compare ( length a ) + (length b) ) selected + +main :: IO ( ) +main = do + putStrLn "Enter some integers separated by blanks!" + numberstrings <- getLine + print $ solution $ map read $ words numberstrings diff --git a/challenge-294/ulrich-rieke/haskell/ch-2.hs b/challenge-294/ulrich-rieke/haskell/ch-2.hs new file mode 100755 index 0000000000..b945542032 --- /dev/null +++ b/challenge-294/ulrich-rieke/haskell/ch-2.hs @@ -0,0 +1,23 @@ +module Challenge294_2 + where +import Data.List ( sortBy , (!!) , permutations , sort , findIndices ) + +lexi_compare :: [Int] -> [Int] -> Ordering +lexi_compare firstList secondList = compare firstString secondString + where + firstString = foldl1 ( ++ ) $ map show firstList + secondString = foldl1 (++) $ map show secondList + +solution :: [Int] -> [Int] +solution numbers = + let sorted = sort numbers + permus = sortBy lexi_compare $ permutations sorted + index = head $ findIndices ( == numbers ) permus + in if index == (length permus - 1) then head permus else + permus !! ( index + 1 ) + +main :: IO ( ) +main = do + putStrLn "Enter some integers, separated by blanks!" + numbers <- getLine + print $ solution $ map read $ words numbers diff --git a/challenge-294/ulrich-rieke/perl/ch-1.pl b/challenge-294/ulrich-rieke/perl/ch-1.pl new file mode 100755 index 0000000000..adfed5e7f2 --- /dev/null +++ b/challenge-294/ulrich-rieke/perl/ch-1.pl @@ -0,0 +1,32 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; +use feature 'say' ; +use List::Util qw ( max ) ; +say "Enter some integers, separated by blanks!" ; +my $line = ; +chomp $line ; +my @numbers = split( /\s/ , $line ) ; +my @sorted = sort { $a <=> $b } @numbers ; +my $len = scalar( @sorted ) ; +my $run = 1 ; +my @lengths ; +my $i = 1 ; +while ( $i < $len ) { + if ( $sorted[ $i ] - $sorted[ $i - 1 ] == 1 ) { + $run++ ; + } + else { + push( @lengths , $run ) ; + $run = 1 ; + } + $i++ ; +} +push( @lengths , $run ) ; +my $maximum = max( @lengths ) ; +if ( $maximum == 1 ) { + say -1 ; +} +else { + say $maximum ; +} diff --git a/challenge-294/ulrich-rieke/perl/ch-2.pl b/challenge-294/ulrich-rieke/perl/ch-2.pl new file mode 100755 index 0000000000..d2936170b2 --- /dev/null +++ b/challenge-294/ulrich-rieke/perl/ch-2.pl @@ -0,0 +1,48 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; +use feature 'say' ; +use Algorithm::Combinatorics qw ( permutations ) ; + +#when working on this task I unfortunately realized that Perl is +#unable to compare the contents of two arrays as Raku can do +#@a == @b means : as many elements in @a as in @b!! It's a bit of +#a shame, although, of course, there are modules for it!! +sub areEqual { + my $firstArray = shift ; + my $secondArray = shift ; + if ( scalar( @{$firstArray}) != scalar( @{$secondArray} ) ) { + return 0 ; + } + else { + for my $i ( 0..scalar( @{$firstArray} ) - 1 ) { + if ( $firstArray->[$i] != $secondArray->[$i] ) { + return 0 ; + } + } + return 1 ; + } +} + +say "Enter some integers, separated by blanks!" ; +my $line = ; +chomp $line ; +my @numbers = split( /\s/ , $line ) ; +my @for_sorting = @numbers ; +my @sorted = sort {$a <=> $b} @for_sorting ; +my @permus ; +my $iter = permutations( \@sorted ) ; +while ( my $c = $iter->next ) { + push( @permus , $c ) ; +} +my $len = scalar( @permus ) ; +my $i = 0 ; +while ( not ( areEqual( $permus[$i] , \@numbers ))) { + $i++ ; +} +if ( $i == $len - 1 ) { + say '(' . join( ',' , @{$permus[0]} ) . ')' ; +} +else { + say '(' . join( ',' , @{$permus[$i + 1] } ) .')' ; +} diff --git a/challenge-294/ulrich-rieke/raku/ch-1.raku b/challenge-294/ulrich-rieke/raku/ch-1.raku new file mode 100755 index 0000000000..64b305ccd5 --- /dev/null +++ b/challenge-294/ulrich-rieke/raku/ch-1.raku @@ -0,0 +1,28 @@ +use v6 ; + +say "Enter some integers separated by blanks!" ; +my $line = $*IN.get ; +my @numbers = $line.words.map( {.Int} ) ; +my @sorted = @numbers.sort( {$^a <=> $^b} ) ; +my $len = @numbers.elems ; +my @lengths ; +my $run = 1 ; +my $i = 1 ; +while ( $i < $len ) { + if ( @sorted[$i] - @sorted[$i - 1] == 1 ) { + $run++ ; + } + else { + @lengths.push( $run ) ; + $run = 1 ; + } + $i++ ; +} +@lengths.push( $run ) ; +my $maximum = @lengths.max ; +if ( $maximum == 1 ) { + say -1 ; +} +else { + $maximum.say ; +} diff --git a/challenge-294/ulrich-rieke/raku/ch-2.raku b/challenge-294/ulrich-rieke/raku/ch-2.raku new file mode 100755 index 0000000000..8cf0a8c1f1 --- /dev/null +++ b/challenge-294/ulrich-rieke/raku/ch-2.raku @@ -0,0 +1,21 @@ +use v6 ; + +say "Enter some integers separated by blanks!" ; +my $line = $*IN.get ; +my @numbers = $line.words.map( {.Int} ) ; +my @for_sorting = @numbers ; +@for_sorting.sort( {$^a <=> $^b} ) ; +my $permus = permutations( @for_sorting ) ; +my $len = $permus.elems ; +my $i = 0 ; +while ( $permus[$i].Array != @numbers ) { + $i++ ; +} +#the original number sequence corresponds to the last permutation of the +#sorted numbers , then go back to the first permutation! +if ( $i == $len - 1 ) { + say $permus[0] ; +} +else { + say $permus[$i + 1] ; +} diff --git a/challenge-294/ulrich-rieke/rust/ch-1.rs b/challenge-294/ulrich-rieke/rust/ch-1.rs new file mode 100755 index 0000000000..34d4451616 --- /dev/null +++ b/challenge-294/ulrich-rieke/rust/ch-1.rs @@ -0,0 +1,33 @@ +use std::io ; + +fn main() { + println!("Enter some integers, separated by blanks!"); + let mut inline : String = String::new( ) ; + io::stdin( ).read_line( &mut inline ).unwrap( ) ; + let mut numbers : Vec = inline.trim( ).split_whitespace( ).map( + |s| s.parse::( ).unwrap( ) ).collect( ) ; + numbers.sort( ) ; + let len = numbers.len( ) ; + let mut lengths : Vec = Vec::new( ) ; + let mut i : usize = 1 ; + let mut run : usize = 1 ; + while i < len { + if numbers[i] - numbers[i - 1] == 1 { + run += 1 ; + } + else { + lengths.push( run ) ; + run = 1 ; + } + i += 1 ; + } + lengths.push( run ) ; + let maxlen : usize = lengths.into_iter( ).max( ).unwrap( ) ; + if maxlen == 1 { + println!("-1") ; + } + else { + println!("{maxlen}") ; + } +} + diff --git a/challenge-294/ulrich-rieke/rust/ch-2.rs b/challenge-294/ulrich-rieke/rust/ch-2.rs new file mode 100755 index 0000000000..33e31d6337 --- /dev/null +++ b/challenge-294/ulrich-rieke/rust/ch-2.rs @@ -0,0 +1,24 @@ +use std::io ; +use itertools::Itertools ; + +fn main() { + println!("Enter some integers separated by blanks!"); + let mut inline : String = String::new( ) ; + io::stdin( ).read_line( &mut inline ).unwrap( ) ; + let numbers : Vec = inline.trim( ).split_whitespace( ).map( |s| + s.parse::( ).unwrap( ) ).collect( ) ; + let mut for_comparison : Vec = numbers.clone( ) ; + for_comparison.sort( ) ; + let perms : Vec> = for_comparison.into_iter( ) + .permutations( numbers.len( ) ).collect() ; + let len = perms.len( ) ; + let original : usize = perms.binary_search( &numbers ).unwrap( ) ; + //if the original number sequence happens to be the last in + //lexicographical compare take the first in the list of permutations + if original == len - 1 { + println!("{:?}" , perms[0] ) ; + } + else { + println!("{:?}" , perms[original + 1]) ; + } +} diff --git a/stats/pwc-challenge-293.json b/stats/pwc-challenge-293.json new file mode 100644 index 0000000000..92da22f26f --- /dev/null +++ b/stats/pwc-challenge-293.json @@ -0,0 +1,653 @@ +{ + "drilldown" : { + "series" : [ + { + "id" : "Ali Moradi", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ], + "name" : "Ali Moradi" + }, + { + "id" : "Arne Sommer", + "data" : [ + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ], + "name" : "Arne Sommer" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ] + ], + "id" : "Athanasius", + "name" : "Athanasius" + }, + { + "name" : "BarrOff", + "data" : [ + [ + "Raku", + 2 + ] + ], + "id" : "BarrOff" + }, + { + "name" : "Bob Lied", + "id" : "Bob Lied", + "data" : [ + [ + "Perl", + 2 + ] + ] + }, + { + "name" : "Cheok-Yin Fung", + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Cheok-Yin Fung" + }, + { + "name" : "Clifton Wood", + "data" : [ + [ + "Raku", + 1 + ] + ], + "id" : "Clifton Wood" + }, + { + "name" : "Dave Jacoby", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Dave Jacoby" + }, + { + "id" : "David Ferrone", + "data" : [ + [ + "Perl", + 2 + ] + ], + "name" : "David Ferrone" + }, + { + "id" : "E. Choroba", + "data" : [ + [ + "Perl", + 2 + ] + ], + "name" : "E. Choroba" + }, + { + "name" : "Feng Chang", + "data" : [ + [ + "Raku", + 2 + ] + ], + "id" : "Feng Chang" + }, + { + "name" : "Jaldhar H. Vyas", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Jaldhar H. Vyas" + }, + { + "name" : "Jan Krnavek", + "data" : [ + [ + "Raku", + 2 + ] + ], + "id" : "Jan Krnavek" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Kjetil Skotheim", + "name" : "Kjetil Skotheim" + }, + { + "id" : "Laurent Rosenfeld", + "data" : [ + [ + "Perl", + 1 + ], + [ + "Raku", + 1 + ], + [ + "Blog", + 1 + ] + ], + "name" : "Laurent Rosenfeld" + }, + { + "name" : "Lubos Kolouch", + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Lubos Kolouch" + }, + { + "name" : "Mariano Ortega", + "id" : "Mariano Ortega", + "data" : [ + [ + "Perl", + 2 + ] + ] + }, + { + "name" : "Mark Anderson", + "data" : [ + [ + "Raku", + 2 + ] + ], + "id" : "Mark Anderson" + }, + { + "name" : "Matthew Neleigh", + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Matthew Neleigh" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Matthias Muth", + "name" : "Matthias Muth" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Niels van Dijke", + "name" : "Niels van Dijke" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Packy Anderson", + "name" : "Packy Anderson" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Pawel Kuciel", + "name" : "Pawel Kuciel" + }, + { + "name" : "Peter Campbell Smith", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Peter Campbell Smith" + }, + { + "id" : "Peter Meszaros", + "data" : [ + [ + "Perl", + 2 + ] + ], + "name" : "Peter Meszaros" + }, + { + "id" : "Robbie Hatley", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "name" : "Robbie Hatley" + }, + { + "id" : "Robert Ransbottom", + "data" : [ + [ + "Raku", + 2 + ] + ], + "name" : "Robert Ransbottom" + }, + { + "name" : "Roger Bell_West", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Roger Bell_West" + }, + { + "name" : "Santiago Leyva", + "id" : "Santiago Leyva", + "data" : [ + [ + "Perl", + 2 + ] + ] + }, + { + "name" : "Simon Green", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Simon Green" + }, + { + "name" : "Thomas Kohler", + "id" : "Thomas Kohler", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 2 + ] + ] + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Tomasz Mucha", + "name" : "Tomasz Mucha" + }, + { + "id" : "Ulrich Rieke", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ] + ], + "name" : "Ulrich Rieke" + }, + { + "name" : "W. Luis Mochan", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "W. Luis Mochan" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Wanderdoc", + "name" : "Wanderdoc" + } + ] + }, + "legend" : { + "enabled" : 0 + }, + "plotOptions" : { + "series" : { + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + }, + "borderWidth" : 0 + } + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "subtitle" : { + "text" : "[Champions: 35] Last updated at 2024-11-04 22:01:36 GMT" + }, + "chart" : { + "type" : "column" + }, + "xAxis" : { + "type" : "category" + }, + "series" : [ + { + "data" : [ + { + "drilldown" : "Ali Moradi", + "y" : 5, + "name" : "Ali Moradi" + }, + { + "name" : "Arne Sommer", + "y" : 3, + "drilldown" : "Arne Sommer" + }, + { + "drilldown" : "Athanasius", + "y" : 4, + "name" : "Athanasius" + }, + { + "drilldown" : "BarrOff", + "y" : 2, + "name" : "BarrOff" + }, + { + "drilldown" : "Bob Lied", + "y" : 2, + "name" : "Bob Lied" + }, + { + "name" : "Cheok-Yin Fung", + "y" : 2, + "drilldown" : "Cheok-Yin Fung" + }, + { + "name" : "Clifton Wood", + "drilldown" : "Clifton Wood", + "y" : 1 + }, + { + "drilldown" : "Dave Jacoby", + "y" : 3, + "name" : "Dave Jacoby" + }, + { + "name" : "David Ferrone", + "y" : 2, + "drilldown" : "David Ferrone" + }, + { + "name" : "E. Choroba", + "drilldown" : "E. Choroba", + "y" : 2 + }, + { + "drilldown" : "Feng Chang", + "y" : 2, + "name" : "Feng Chang" + }, + { + "drilldown" : "Jaldhar H. Vyas", + "y" : 5, + "name" : "Jaldhar H. Vyas" + }, + { + "name" : "Jan Krnavek", + "y" : 2, + "drilldown" : "Jan Krnavek" + }, + { + "name" : "Kjetil Skotheim", + "drilldown" : "Kjetil Skotheim", + "y" : 2 + }, + { + "name" : "Laurent Rosenfeld", + "drilldown" : "Laurent Rosenfeld", + "y" : 3 + }, + { + "name" : "Lubos Kolouch", + "y" : 2, + "drilldown" : "Lubos Kolouch" + }, + { + "y" : 2, + "drilldown" : "Mariano Ortega", + "name" : "Mariano Ortega" + }, + { + "y" : 2, + "drilldown" : "Mark Anderson", + "name" : "Mark Anderson" + }, + { + "name" : "Matthew Neleigh", + "y" : 2, + "drilldown" : "Matthew Neleigh" + }, + { + "y" : 3, + "drilldown" : "Matthias Muth", + "name" : "Matthias Muth" + }, + { + "y" : 2, + "drilldown" : "Niels van Dijke", + "name" : "Niels van Dijke" + }, + { + "y" : 5, + "drilldown" : "Packy Anderson", + "name" : "Packy Anderson" + }, + { + "y" : 2, + "drilldown" : "Pawel Kuciel", + "name" : "Pawel Kuciel" + }, + { + "name" : "Peter Campbell Smith", + "drilldown" : "Peter Campbell Smith", + "y" : 3 + }, + { + "name" : "Peter Meszaros", + "drilldown" : "Peter Meszaros", + "y" : 2 + }, + { + "drilldown" : "Robbie Hatley", + "y" : 3, + "name" : "Robbie Hatley" + }, + { + "y" : 2, + "drilldown" : "Robert Ransbottom", + "name" : "Robert Ransbottom" + }, + { + "y" : 5, + "drilldown" : "Roger Bell_West", + "name" : "Roger Bell_West" + }, + { + "y" : 2, + "drilldown" : "Santiago Leyva", + "name" : "Santiago Leyva" + }, + { + "name" : "Simon Green", + "y" : 3, + "drilldown" : "Simon Green" + }, + { + "y" : 4, + "drilldown" : "Thomas Kohler", + "name" : "Thomas Kohler" + }, + { + "drilldown" : "Tomasz Mucha", + "y" : 2, + "name" : "Tomasz Mucha" + }, + { + "y" : 4, + "drilldown" : "Ulrich Rieke", + "name" : "Ulrich Rieke" + }, + { + "drilldown" : "W. Luis Mochan", + "y" : 3, + "name" : "W. Luis Mochan" + }, + { + "y" : 2, + "drilldown" : "Wanderdoc", + "name" : "Wanderdoc" + } + ], + "colorByPoint" : 1, + "name" : "The Weekly Challenge - 293" + } + ], + "tooltip" : { + "pointFormat" : "{point.name}: {point.y:f}
", + "followPointer" : 1, + "headerFormat" : "{series.name}
" + }, + "title" : { + "text" : "The Weekly Challenge - 293" + } +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index a12716d96d..c9ccf62f49 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,107 +1,24 @@ { - "plotOptions" : { - "series" : { - "borderWidth" : 0, - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - } - } + "title" : { + "text" : "The Weekly Challenge - 294" }, - "xAxis" : { - "type" : "category" + "subtitle" : { + "text" : "[Champions: 4] Last updated at 2024-11-04 22:01:43 GMT" }, "legend" : { "enabled" : 0 }, + "xAxis" : { + "type" : "category" + }, "series" : [ { - "name" : "The Weekly Challenge - 293", + "name" : "The Weekly Challenge - 294", "data" : [ { - "drilldown" : "Ali Moradi", - "name" : "Ali Moradi", - "y" : 5 - }, - { - "drilldown" : "Arne Sommer", - "name" : "Arne Sommer", - "y" : 3 - }, - { - "drilldown" : "Athanasius", - "name" : "Athanasius", - "y" : 4 - }, - { - "y" : 2, - "name" : "BarrOff", - "drilldown" : "BarrOff" - }, - { - "drilldown" : "Bob Lied", - "y" : 2, - "name" : "Bob Lied" - }, - { - "name" : "Cheok-Yin Fung", - "y" : 2, - "drilldown" : "Cheok-Yin Fung" - }, - { - "drilldown" : "Clifton Wood", - "name" : "Clifton Wood", - "y" : 1 - }, - { - "drilldown" : "Dave Jacoby", - "y" : 3, - "name" : "Dave Jacoby" - }, - { - "name" : "David Ferrone", - "y" : 2, - "drilldown" : "David Ferrone" - }, - { - "y" : 2, "name" : "E. Choroba", - "drilldown" : "E. Choroba" - }, - { - "name" : "Feng Chang", - "y" : 2, - "drilldown" : "Feng Chang" - }, - { - "drilldown" : "Jaldhar H. Vyas", - "y" : 5, - "name" : "Jaldhar H. Vyas" - }, - { - "y" : 2, - "name" : "Jan Krnavek", - "drilldown" : "Jan Krnavek" - }, - { - "name" : "Kjetil Skotheim", - "y" : 2, - "drilldown" : "Kjetil Skotheim" - }, - { - "y" : 3, - "name" : "Laurent Rosenfeld", - "drilldown" : "Laurent Rosenfeld" - }, - { - "name" : "Lubos Kolouch", "y" : 2, - "drilldown" : "Lubos Kolouch" - }, - { - "drilldown" : "Mariano Ortega", - "name" : "Mariano Ortega", - "y" : 2 + "drilldown" : "E. Choroba" }, { "name" : "Mark Anderson", @@ -109,300 +26,38 @@ "drilldown" : "Mark Anderson" }, { - "y" : 2, - "name" : "Matthew Neleigh", - "drilldown" : "Matthew Neleigh" - }, - { - "drilldown" : "Matthias Muth", - "y" : 3, - "name" : "Matthias Muth" - }, - { - "drilldown" : "Niels van Dijke", - "name" : "Niels van Dijke", - "y" : 2 - }, - { - "drilldown" : "Packy Anderson", - "name" : "Packy Anderson", - "y" : 5 - }, - { - "name" : "Pawel Kuciel", - "y" : 2, - "drilldown" : "Pawel Kuciel" - }, - { - "drilldown" : "Peter Campbell Smith", - "y" : 3, - "name" : "Peter Campbell Smith" - }, - { - "name" : "Peter Meszaros", - "y" : 2, - "drilldown" : "Peter Meszaros" - }, - { - "name" : "Robbie Hatley", - "y" : 3, - "drilldown" : "Robbie Hatley" - }, - { - "drilldown" : "Robert Ransbottom", - "name" : "Robert Ransbottom", - "y" : 2 - }, - { - "drilldown" : "Roger Bell_West", - "y" : 5, - "name" : "Roger Bell_West" - }, - { - "name" : "Santiago Leyva", - "y" : 2, - "drilldown" : "Santiago Leyva" - }, - { - "y" : 3, - "name" : "Simon Green", - "drilldown" : "Simon Green" - }, - { - "drilldown" : "Thomas Kohler", - "y" : 4, - "name" : "Thomas Kohler" - }, - { - "drilldown" : "Tomasz Mucha", - "name" : "Tomasz Mucha", - "y" : 2 - }, - { - "name" : "Ulrich Rieke", + "drilldown" : "Ulrich Rieke", "y" : 4, - "drilldown" : "Ulrich Rieke" + "name" : "Ulrich Rieke" }, { - "drilldown" : "W. Luis Mochan", + "name" : "W. Luis Mochan", "y" : 3, - "name" : "W. Luis Mochan" - }, - { - "name" : "Wanderdoc", - "y" : 2, - "drilldown" : "Wanderdoc" + "drilldown" : "W. Luis Mochan" } ], "colorByPoint" : 1 } ], - "tooltip" : { - "headerFormat" : "{series.name}
", - "pointFormat" : "{point.name}: {point.y:f}
", - "followPointer" : 1 + "plotOptions" : { + "series" : { + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + }, + "borderWidth" : 0 + } + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } }, "drilldown" : { "series" : [ { - "name" : "Ali Moradi", - "data" : [ - [ - "Perl", - 2 - ], - [ - "Raku", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Ali Moradi" - }, - { - "name" : "Arne Sommer", - "data" : [ - [ - "Raku", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Arne Sommer" - }, - { - "name" : "Athanasius", - "data" : [ - [ - "Perl", - 2 - ], - [ - "Raku", - 2 - ] - ], - "id" : "Athanasius" - }, - { - "name" : "BarrOff", - "data" : [ - [ - "Raku", - 2 - ] - ], - "id" : "BarrOff" - }, - { - "name" : "Bob Lied", - "data" : [ - [ - "Perl", - 2 - ] - ], - "id" : "Bob Lied" - }, - { - "name" : "Cheok-Yin Fung", - "data" : [ - [ - "Perl", - 2 - ] - ], - "id" : "Cheok-Yin Fung" - }, - { - "id" : "Clifton Wood", - "data" : [ - [ - "Raku", - 1 - ] - ], - "name" : "Clifton Wood" - }, - { - "name" : "Dave Jacoby", - "data" : [ - [ - "Perl", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Dave Jacoby" - }, - { - "data" : [ - [ - "Perl", - 2 - ] - ], - "name" : "David Ferrone", - "id" : "David Ferrone" - }, - { - "data" : [ - [ - "Perl", - 2 - ] - ], + "id" : "E. Choroba", "name" : "E. Choroba", - "id" : "E. Choroba" - }, - { - "id" : "Feng Chang", - "data" : [ - [ - "Raku", - 2 - ] - ], - "name" : "Feng Chang" - }, - { - "id" : "Jaldhar H. Vyas", - "data" : [ - [ - "Perl", - 2 - ], - [ - "Raku", - 2 - ], - [ - "Blog", - 1 - ] - ], - "name" : "Jaldhar H. Vyas" - }, - { - "name" : "Jan Krnavek", - "data" : [ - [ - "Raku", - 2 - ] - ], - "id" : "Jan Krnavek" - }, - { - "id" : "Kjetil Skotheim", - "name" : "Kjetil Skotheim", - "data" : [ - [ - "Perl", - 2 - ] - ] - }, - { - "id" : "Laurent Rosenfeld", - "name" : "Laurent Rosenfeld", - "data" : [ - [ - "Perl", - 1 - ], - [ - "Raku", - 1 - ], - [ - "Blog", - 1 - ] - ] - }, - { - "name" : "Lubos Kolouch", - "data" : [ - [ - "Perl", - 2 - ] - ], - "id" : "Lubos Kolouch" - }, - { - "id" : "Mariano Ortega", - "name" : "Mariano Ortega", "data" : [ [ "Perl", @@ -411,191 +66,15 @@ ] }, { + "id" : "Mark Anderson", "name" : "Mark Anderson", "data" : [ [ "Raku", 2 ] - ], - "id" : "Mark Anderson" - }, - { - "data" : [ - [ - "Perl", - 2 - ] - ], - "name" : "Matthew Neleigh", - "id" : "Matthew Neleigh" - }, - { - "id" : "Matthias Muth", - "data" : [ - [ - "Perl", - 2 - ], - [ - "Blog", - 1 - ] - ], - "name" : "Matthias Muth" - }, - { - "id" : "Niels van Dijke", - "data" : [ - [ - "Perl", - 2 - ] - ], - "name" : "Niels van Dijke" - }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Raku", - 2 - ], - [ - "Blog", - 1 - ] - ], - "name" : "Packy Anderson", - "id" : "Packy Anderson" - }, - { - "id" : "Pawel Kuciel", - "data" : [ - [ - "Perl", - 2 - ] - ], - "name" : "Pawel Kuciel" - }, - { - "id" : "Peter Campbell Smith", - "name" : "Peter Campbell Smith", - "data" : [ - [ - "Perl", - 2 - ], - [ - "Blog", - 1 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 2 - ] - ], - "name" : "Peter Meszaros", - "id" : "Peter Meszaros" - }, - { - "id" : "Robbie Hatley", - "name" : "Robbie Hatley", - "data" : [ - [ - "Perl", - 2 - ], - [ - "Blog", - 1 - ] - ] - }, - { - "id" : "Robert Ransbottom", - "data" : [ - [ - "Raku", - 2 - ] - ], - "name" : "Robert Ransbottom" - }, - { - "name" : "Roger Bell_West", - "data" : [ - [ - "Perl", - 2 - ], - [ - "Raku", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Roger Bell_West" - }, - { - "id" : "Santiago Leyva", - "data" : [ - [ - "Perl", - 2 - ] - ], - "name" : "Santiago Leyva" - }, - { - "id" : "Simon Green", - "name" : "Simon Green", - "data" : [ - [ - "Perl", - 2 - ], - [ - "Blog", - 1 - ] - ] - }, - { - "id" : "Thomas Kohler", - "name" : "Thomas Kohler", - "data" : [ - [ - "Perl", - 2 - ], - [ - "Blog", - 2 - ] ] }, - { - "id" : "Tomasz Mucha", - "data" : [ - [ - "Perl", - 2 - ] - ], - "name" : "Tomasz Mucha" - }, { "id" : "Ulrich Rieke", "name" : "Ulrich Rieke", @@ -611,6 +90,8 @@ ] }, { + "id" : "W. Luis Mochan", + "name" : "W. Luis Mochan", "data" : [ [ "Perl", @@ -620,34 +101,16 @@ "Blog", 1 ] - ], - "name" : "W. Luis Mochan", - "id" : "W. Luis Mochan" - }, - { - "id" : "Wanderdoc", - "name" : "Wanderdoc", - "data" : [ - [ - "Perl", - 2 - ] ] } ] }, - "subtitle" : { - "text" : "[Champions: 35] Last updated at 2024-11-04 02:10:11 GMT" - }, - "title" : { - "text" : "The Weekly Challenge - 293" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, "chart" : { "type" : "column" + }, + "tooltip" : { + "headerFormat" : "{series.name}
", + "pointFormat" : "{point.name}: {point.y:f}
", + "followPointer" : 1 } } diff --git a/stats/pwc-language-breakdown-2019.json b/stats/pwc-language-breakdown-2019.json index f856401516..cc78d75b9e 100644 --- a/stats/pwc-language-breakdown-2019.json +++ b/stats/pwc-language-breakdown-2019.json @@ -1,27 +1,10 @@ { - "chart" : { - "type" : "column" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2024-11-04 02:10:11 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2024-11-04 22:01:43 GMT" }, "title" : { "text" : "The Weekly Challenge Language" }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - }, - "borderWidth" : 0 - } - }, "xAxis" : { "type" : "category" }, @@ -30,22 +13,23 @@ }, "series" : [ { + "colorByPoint" : "true", "name" : "The Weekly Challenge Languages", "data" : [ { "y" : 80, - "name" : "041", - "drilldown" : "041" + "drilldown" : "041", + "name" : "041" }, { + "drilldown" : "040", "y" : 77, - "name" : "040", - "drilldown" : "040" + "name" : "040" }, { - "name" : "039", + "drilldown" : "039", "y" : 68, - "drilldown" : "039" + "name" : "039" }, { "drilldown" : "038", @@ -53,39 +37,39 @@ "name" : "038" }, { - "name" : "037", + "drilldown" : "037", "y" : 70, - "drilldown" : "037" + "name" : "037" }, { "drilldown" : "036", - "name" : "036", - "y" : 70 + "y" : 70, + "name" : "036" }, { - "drilldown" : "035", + "name" : "035", "y" : 68, - "name" : "035" + "drilldown" : "035" }, { - "y" : 70, "name" : "034", - "drilldown" : "034" + "drilldown" : "034", + "y" : 70 }, { - "drilldown" : "033", "name" : "033", + "drilldown" : "033", "y" : 113 }, { + "y" : 97, "drilldown" : "032", - "name" : "032", - "y" : 97 + "name" : "032" }, { - "drilldown" : "031", "name" : "031", - "y" : 93 + "y" : 93, + "drilldown" : "031" }, { "drilldown" : "030", @@ -93,39 +77,39 @@ "name" : "030" }, { - "drilldown" : "029", "name" : "029", + "drilldown" : "029", "y" : 83 }, { - "y" : 82, "name" : "028", + "y" : 82, "drilldown" : "028" }, { + "y" : 64, "drilldown" : "027", - "name" : "027", - "y" : 64 + "name" : "027" }, { - "name" : "026", + "drilldown" : "026", "y" : 75, - "drilldown" : "026" + "name" : "026" }, { "y" : 62, - "name" : "025", - "drilldown" : "025" + "drilldown" : "025", + "name" : "025" }, { + "name" : "024", "drilldown" : "024", - "y" : 77, - "name" : "024" + "y" : 77 }, { - "name" : "023", "y" : 88, - "drilldown" : "023" + "drilldown" : "023", + "name" : "023" }, { "drilldown" : "022", @@ -133,74 +117,74 @@ "name" : "022" }, { - "y" : 72, "name" : "021", - "drilldown" : "021" + "drilldown" : "021", + "y" : 72 }, { - "y" : 100, "name" : "020", - "drilldown" : "020" + "drilldown" : "020", + "y" : 100 }, { - "y" : 101, "name" : "019", - "drilldown" : "019" + "drilldown" : "019", + "y" : 101 }, { "name" : "018", - "y" : 82, - "drilldown" : "018" + "drilldown" : "018", + "y" : 82 }, { + "drilldown" : "017", "y" : 83, - "name" : "017", - "drilldown" : "017" + "name" : "017" }, { "drilldown" : "016", - "name" : "016", - "y" : 75 + "y" : 75, + "name" : "016" }, { + "y" : 95, "drilldown" : "015", - "name" : "015", - "y" : 95 + "name" : "015" }, { - "drilldown" : "014", "name" : "014", - "y" : 98 + "y" : 98, + "drilldown" : "014" }, { - "drilldown" : "013", "y" : 85, + "drilldown" : "013", "name" : "013" }, { "name" : "012", - "y" : 90, - "drilldown" : "012" + "drilldown" : "012", + "y" : 90 }, { + "name" : "011", "drilldown" : "011", - "y" : 86, - "name" : "011" + "y" : 86 }, { - "drilldown" : "010", + "name" : "010", "y" : 69, - "name" : "010" + "drilldown" : "010" }, { + "drilldown" : "009", "y" : 79, - "name" : "009", - "drilldown" : "009" + "name" : "009" }, { + "y" : 82, "drilldown" : "008", - "name" : "008", - "y" : 82 + "name" : "008" }, { "name" : "007", @@ -208,47 +192,42 @@ "drilldown" : "007" }, { - "y" : 63, "name" : "006", - "drilldown" : "006" + "drilldown" : "006", + "y" : 63 }, { "name" : "005", - "y" : 82, - "drilldown" : "005" + "drilldown" : "005", + "y" : 82 }, { - "drilldown" : "004", + "name" : "004", "y" : 106, - "name" : "004" + "drilldown" : "004" }, { "name" : "003", - "y" : 91, - "drilldown" : "003" + "drilldown" : "003", + "y" : 91 }, { "y" : 133, - "name" : "002", - "drilldown" : "002" + "drilldown" : "002", + "name" : "002" }, { "name" : "001", - "y" : 165, - "drilldown" : "001" + "drilldown" : "001", + "y" : 165 } - ], - "colorByPoint" : "true" + ] } ], - "tooltip" : { - "pointFormat" : "Challenge {point.name}: {point.y:f}
", - "headerFormat" : "", - "followPointer" : "true" - }, "drilldown" : { "series" : [ { + "id" : "041", "name" : "041", "data" : [ [ @@ -263,10 +242,10 @@ "Blog", 9 ] - ], - "id" : "041" + ] }, { + "id" : "040", "data" : [ [ "Perl", @@ -281,10 +260,10 @@ 10 ] ], - "name" : "040", - "id" : "040" + "name" : "040" }, { + "id" : "039", "data" : [ [ "Perl", @@ -299,10 +278,10 @@ 12 ] ], - "name" : "039", - "id" : "039" + "name" : "039" }, { + "name" : "038", "data" : [ [ "Perl", @@ -317,7 +296,6 @@ 12 ] ], - "name" : "038", "id" : "038" }, { @@ -339,6 +317,8 @@ ] }, { + "id" : "036", + "name" : "036", "data" : [ [ "Perl", @@ -352,12 +332,10 @@ "Blog", 11 ] - ], - "name" : "036", - "id" : "036" + ] }, { - "name" : "035", + "id" : "035", "data" : [ [ "Perl", @@ -372,10 +350,9 @@ 9 ] ], - "id" : "035" + "name" : "035" }, { - "id" : "034", "data" : [ [ "Perl", @@ -390,7 +367,8 @@ 11 ] ], - "name" : "034" + "name" : "034", + "id" : "034" }, { "name" : "033", @@ -429,7 +407,6 @@ ] }, { - "name" : "031", "data" : [ [ "Perl", @@ -444,6 +421,7 @@ 9 ] ], + "name" : "031", "id" : "031" }, { @@ -466,6 +444,7 @@ }, { "id" : "029", + "name" : "029", "data" : [ [ "Perl", @@ -479,11 +458,9 @@ "Blog", 12 ] - ], - "name" : "029" + ] }, { - "id" : "028", "name" : "028", "data" : [ [ @@ -498,11 +475,10 @@ "Blog", 9 ] - ] + ], + "id" : "028" }, { - "id" : "027", - "name" : "027", "data" : [ [ "Perl", @@ -516,10 +492,12 @@ "Blog", 9 ] - ] + ], + "name" : "027", + "id" : "027" }, { - "name" : "026", + "id" : "026", "data" : [ [ "Perl", @@ -534,10 +512,9 @@ 10 ] ], - "id" : "026" + "name" : "026" }, { - "name" : "025", "data" : [ [ "Perl", @@ -552,6 +529,7 @@ 12 ] ], + "name" : "025", "id" : "025" }, { @@ -609,7 +587,7 @@ "id" : "022" }, { - "id" : "021", + "name" : "021", "data" : [ [ "Perl", @@ -624,10 +602,10 @@ 10 ] ], - "name" : "021" + "id" : "021" }, { - "id" : "020", + "name" : "020", "data" : [ [ "Perl", @@ -642,11 +620,10 @@ 13 ] ], - "name" : "020" + "id" : "020" }, { "id" : "019", - "name" : "019", "data" : [ [ "Perl", @@ -660,10 +637,10 @@ "Blog", 13 ] - ] + ], + "name" : "019" }, { - "name" : "018", "data" : [ [ "Perl", @@ -678,10 +655,10 @@ 14 ] ], + "name" : "018", "id" : "018" }, { - "id" : "017", "data" : [ [ "Perl", @@ -696,7 +673,8 @@ 12 ] ], - "name" : "017" + "name" : "017", + "id" : "017" }, { "id" : "016", @@ -754,7 +732,6 @@ }, { "id" : "013", - "name" : "013", "data" : [ [ "Perl", @@ -768,10 +745,11 @@ "Blog", 13 ] - ] + ], + "name" : "013" }, { - "id" : "012", + "name" : "012", "data" : [ [ "Perl", @@ -786,9 +764,10 @@ 11 ] ], - "name" : "012" + "id" : "012" }, { + "id" : "011", "name" : "011", "data" : [ [ @@ -803,12 +782,10 @@ "Blog", 10 ] - ], - "id" : "011" + ] }, { "id" : "010", - "name" : "010", "data" : [ [ "Perl", @@ -822,7 +799,8 @@ "Blog", 11 ] - ] + ], + "name" : "010" }, { "id" : "009", @@ -843,7 +821,6 @@ ] }, { - "id" : "008", "data" : [ [ "Perl", @@ -858,10 +835,10 @@ 12 ] ], - "name" : "008" + "name" : "008", + "id" : "008" }, { - "id" : "007", "name" : "007", "data" : [ [ @@ -876,9 +853,11 @@ "Blog", 10 ] - ] + ], + "id" : "007" }, { + "id" : "006", "name" : "006", "data" : [ [ @@ -893,10 +872,11 @@ "Blog", 7 ] - ], - "id" : "006" + ] }, { + "id" : "005", +