diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2022-11-26 09:51:57 +0000 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2022-11-26 09:51:57 +0000 |
| commit | db886d6c81c3c7bdab16f236ebb2d7bf60de23c6 (patch) | |
| tree | 07ba9d70bd4aaec526dc53bb90587292f6ff91e6 | |
| parent | 574a738969374d430eead6b2255161ed9fdd24da (diff) | |
| download | perlweeklychallenge-club-db886d6c81c3c7bdab16f236ebb2d7bf60de23c6.tar.gz perlweeklychallenge-club-db886d6c81c3c7bdab16f236ebb2d7bf60de23c6.tar.bz2 perlweeklychallenge-club-db886d6c81c3c7bdab16f236ebb2d7bf60de23c6.zip | |
- Added solutions by Ulrich Rieke.
25 files changed, 2462 insertions, 1994 deletions
diff --git a/challenge-192/ulrich-rieke/cpp/ch-1.cpp b/challenge-192/ulrich-rieke/cpp/ch-1.cpp new file mode 100644 index 0000000000..f4ca6ba3bb --- /dev/null +++ b/challenge-192/ulrich-rieke/cpp/ch-1.cpp @@ -0,0 +1,33 @@ +#include <iostream> +#include <cstdlib> +#include <algorithm> +#include <vector> + +int main( int argc , char * argv[] ) { + if ( argc != 2 ) { + std::cerr << "usage : <programname> <positive integer>\n" ; + return 1 ; + } + int number = std::atoi( argv[ 1 ] ) ; + std::vector<int> binaryDigits ; + while ( number != 0 ) { + binaryDigits.push_back( number % 2 ) ; + number /= 2 ; + } + std::reverse( binaryDigits.begin( ) , binaryDigits.end( ) ) ; + for ( int i = 0 ; i < binaryDigits.size( ) ; i++ ) { + if ( binaryDigits[ i ] == 0 ) + binaryDigits[ i ] = 1 ; + else + binaryDigits[ i ] = 0 ; + } + std::reverse( binaryDigits.begin( ) , binaryDigits.end( ) ) ; + int sum = 0 ; + int multiplier = 1 ; + for ( int n : binaryDigits ) { + sum += n * multiplier ; + multiplier *= 2 ; + } + std::cout << sum << std::endl ; + return 0 ; +} diff --git a/challenge-192/ulrich-rieke/cpp/ch-2.cpp b/challenge-192/ulrich-rieke/cpp/ch-2.cpp new file mode 100644 index 0000000000..2ad3f2ec97 --- /dev/null +++ b/challenge-192/ulrich-rieke/cpp/ch-2.cpp @@ -0,0 +1,83 @@ +#include <vector> +#include <algorithm> +#include <numeric> +#include <iostream> +#include <string> +#include <iterator> + +std::vector<std::string> split( const std::string & startline , const std::string & sep ) { + std::vector<std::string> separated ; + std::string::size_type start { 0 } ; + std::string::size_type pos ; + do { + pos = startline.find_first_of( sep , start ) ; + separated.push_back( startline.substr(start , pos - start )) ; + start = pos + 1 ; + } while ( pos != std::string::npos ) ; + return separated ; +} + +int main( ) { + std::cout << "Enter some numbers greater than or equal to 0!\n" ; + std::string line ; + std::getline( std::cin , line ) ; + std::vector<std::string> numberstrings( split( line , " ")) ; + std::vector<int> numbers ; + for ( auto s : numberstrings ) + numbers.push_back( std::stoi( s ) ) ; + if ( std::accumulate( numbers.begin( ) , numbers.end( ) , 0 ) % + static_cast<int>( numbers.size( ) ) != 0 ) + std::cout << -1 << std::endl ; + else {//all elements are equal + int first_element = *numbers.begin( ) ; + if ( std::all_of( numbers.begin( ) , numbers.end( ) , [first_element] + ( const int i ) { return i == first_element ; } )) { + std::cout << 0 << std::endl ; + } + else {//elements are not equal + int count = 0 ; + int start = *numbers.begin( ) ; + while ( ! std::all_of( numbers.begin( ) , numbers.end( ) , [start] + ( int i ) { return i == start ; })) { + int maximum = *std::max_element( numbers.begin( ) , numbers.end( ) ) ; + auto maxPos = std::find( numbers.begin( ) , numbers.end( ) , maximum ) ; + int thePos = static_cast<int>( std::distance( numbers.begin( ), + maxPos)) ; + numbers[ thePos ]-- ; + if ( thePos == 0 ) { + numbers[ 1 ]++ ; + } + else { + if ( thePos == static_cast<int>(numbers.size( ) - 1 )) { + numbers[ numbers.size( ) - 2]++ ; + } + else { + if ( numbers[ thePos - 1 ] < numbers[ thePos + 1] ) { + numbers[ thePos - 1 ]++ ; + } + else { + if ( numbers[ thePos - 1 ] > numbers[ thePos + 1 ] ) { + numbers[ thePos + 1 ]++ ; + } + else {//neighbouring elements are equal + int minimum = *std::max_element( numbers.begin( ) , + numbers.end( ), []( int a , int b) + { return a < b ;} ) ; + auto minPos = std::find( numbers.begin( ) , numbers.end( ) , + minimum ) ; + if ( minPos > maxPos ) + numbers[ thePos + 1 ]++ ; + else + numbers[ thePos - 1 ]++ ; + } + } + } + } + count++ ; + start = *numbers.begin( ) ; + } + std::cout << count << std::endl ; + } + } + return 0 ; +} diff --git a/challenge-192/ulrich-rieke/haskell/ch-1.hs b/challenge-192/ulrich-rieke/haskell/ch-1.hs new file mode 100644 index 0000000000..d4553ff6c5 --- /dev/null +++ b/challenge-192/ulrich-rieke/haskell/ch-1.hs @@ -0,0 +1,18 @@ +module Challenge192 + where + +toBinaries :: Int -> [ Int ] +toBinaries n = snd $ until ( ( == 0 ) . fst ) step ( n , [] ) +where + step :: ( Int , [Int] ) -> ( Int , [Int] ) + step ( d , li ) = ( div d 2 , mod d 2 : li ) + +myFlip :: [Int] -> [Int] +myFlip list = map (\i -> if i == 1 then 0 else 1 ) list + +toDecimal :: [Int] -> Int +toDecimal list = sum $ map (\p -> fst p * snd p ) $ zip ( iterate ( * 2 ) 1 ) +( reverse list ) + +solution :: Int -> Int +solution = toDecimal . myFlip . toBinaries diff --git a/challenge-192/ulrich-rieke/haskell/ch-2.hs b/challenge-192/ulrich-rieke/haskell/ch-2.hs new file mode 100644 index 0000000000..2fa4de367d --- /dev/null +++ b/challenge-192/ulrich-rieke/haskell/ch-2.hs @@ -0,0 +1,52 @@ +module Challenge192_2 + where +import Data.List ( findIndex , (!!) ) +import Data.Maybe ( fromJust ) + +solution :: [Int] -> Int +solution list + |mod ( sum list ) ( length list ) /= 0 = -1 + |all (\i -> i == head list ) list = 0 + |otherwise = fst $ until ( myCondition . snd ) step ( 0 , list ) + where + myCondition :: [Int] -> Bool + myCondition li = all (\n -> n == head li ) li + step :: ( Int , [Int] ) -> ( Int , [Int] ) + step (d , l ) = ( d + 1 , transform l ) + +compareNeighbours :: Int -> Int -> [Int] -> [Int] +compareNeighbours maxIndex minIndex list + |list !! ( maxIndex - 1 ) < list !! ( maxIndex + 1 ) = take ( maxIndex + - 1 ) list ++ [ list !! ( maxIndex - 1 ) + 1 ] ++ [list !! maxIndex - 1] + ++ drop ( maxIndex + 1 ) list + |list !! ( maxIndex - 1 ) > list !! ( maxIndex + 1 ) = take maxIndex list + ++ [ list !! maxIndex - 1 ] ++ [ list !! ( maxIndex + 1 ) + 1 ] ++ + drop ( maxIndex + 2 ) list + |otherwise = if minIndex < maxIndex then take ( maxIndex - 1 ) list ++ + [ list !! ( maxIndex - 1 ) + 1 ] ++ [ list !! maxIndex - 1 ] ++ drop + ( maxIndex + 1 ) list else take maxIndex list ++ [ list !! maxIndex - 1 ] + ++ [ list !! ( maxIndex + 1 ) + 1 ] ++ drop ( maxIndex + 2 ) list + +transform :: [Int] -> [Int] +transform list + |maxIndex == 0 = [head list - 1 ] ++ [list !! 1 + 1 ] ++ drop 2 list + |maxIndex == l - 1 = take ( l - 2 ) list ++ [ list !! ( l - 2 ) + 1 ] ++ + [last list - 1] + |otherwise = compareNeighbours maxIndex minIndex list + where + l :: Int + l = length list + maxi :: Int + maxi = maximum list + maxIndex :: Int + maxIndex = fromJust $ findIndex ( == maxi ) list + mini :: Int + mini = minimum list + minIndex :: Int + minIndex = fromJust $ findIndex ( == mini ) list + +main :: IO ( ) +main = do + putStrLn "Enter some integers greater than or equal to 0!" + numberline <- getLine + print $ solution $ map read $ words numberline diff --git a/challenge-192/ulrich-rieke/perl/ch-1.pl b/challenge-192/ulrich-rieke/perl/ch-1.pl new file mode 100644 index 0000000000..0e0d866e07 --- /dev/null +++ b/challenge-192/ulrich-rieke/perl/ch-1.pl @@ -0,0 +1,30 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; +use feature 'say' ; + +say "Enter a positive integer!" ; +my $number = <STDIN> ; +chomp $number ; +my @binaryDigits ; +while ( $number != 0 ) { + push @binaryDigits , $number % 2 ; + $number = int( $number / 2 ) ; +} +my @reversed = reverse @binaryDigits ; +for my $pos ( 0..scalar( @reversed ) - 1 ) { + if ( $reversed[ $pos ] == 0 ) { + $reversed[ $pos ] = 1 ; + } + else { + $reversed[ $pos ] = 0 ; + } +} +my @afterFlip = reverse @reversed ; +my $sum = 0 ; +my $multiplier = 1 ; +for my $n( @afterFlip ) { + $sum += $n * $multiplier ; + $multiplier *= 2 ; +} +say $sum ; diff --git a/challenge-192/ulrich-rieke/perl/ch-2.pl b/challenge-192/ulrich-rieke/perl/ch-2.pl new file mode 100644 index 0000000000..4599f82a6d --- /dev/null +++ b/challenge-192/ulrich-rieke/perl/ch-2.pl @@ -0,0 +1,63 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; +use feature 'say' ; +use List::Util qw ( max min sum all) ; + +#find a number in an array +sub findIn { + my $array = shift ; + my $element = shift ; + my $pos = 0 ; + while ( $array->[ $pos ] != $element ) { + $pos++ ; + } + return $pos ; +} + +say "Enter a list of integers greater than or equal to 0!" ; +my $line = <STDIN> ; +chomp $line ; +my @numbers = split( /\s/ , $line ) ; +#the sum of the array must be evenly divided by the number of elements +if ( sum( @numbers ) % ( scalar( @numbers )) != 0 ) { + say -1 ; +} +elsif ( all { $_ == $numbers[0] } @numbers ) { + say 0 ; +} +else { + my $count = 0 ; + do { + my $maximum = max( @numbers ) ; + my $maxPos = findIn( \@numbers , $maximum ) ; + $numbers[ $maxPos ]-- ; #decrease the maximum element by one + if ( $maxPos == 0 ) { #maximum element is at the left edge + $numbers[1]++ ; + } + elsif ( $maxPos == (scalar( @numbers ) - 1 ) ) { #at the right edge + $numbers[-2]++ ; + } + else {#increase the smaller of the 2 neighbouring elements + if ( $numbers[ $maxPos - 1 ] < $numbers[ $maxPos + 1 ] ) { + $numbers[ $maxPos - 1 ]++ ; + } + elsif ( $numbers[ $maxPos - 1 ] > $numbers[ $maxPos + 1 ] ) { + $numbers[ $maxPos + 1 ]++ ; + } + else {#both neighbours are equal ; then increase the element to + #the side of the smallest element to avoid endless loops + my $minimum = min( @numbers ) ; + my $minPos = findIn( \@numbers , $minimum ) ; + if ( $minPos < $maxPos ) { + $numbers[ $maxPos - 1 ]++ ; + } + else { + $numbers[ $maxPos + 1 ]++ ; + } + } + } + $count++ ; + } while ( not ( all { $_ == $numbers[ 0 ] } @numbers ) ) ; + say $count ; +} diff --git a/challenge-192/ulrich-rieke/raku/ch-1.raku b/challenge-192/ulrich-rieke/raku/ch-1.raku new file mode 100644 index 0000000000..be8899fa72 --- /dev/null +++ b/challenge-192/ulrich-rieke/raku/ch-1.raku @@ -0,0 +1,19 @@ +use v6 ; + +say "Enter a positive integer!" ; +my $line = $*IN.get ; +while ( $line !~~ /^\d+$/ ) { + say "Enter a positive integer, re-enter!" ; + $line = $*IN.get ; +} +my $binaryStr = $line.Int.base( 2 ) ; +my @digits = $binaryStr.comb ; +for @digits <-> $digit { + if ( $digit == 0 ) { + $digit = 1 ; + } + else { + $digit = 0 ; + } +} +say @digits.join.parse-base( 2 ) ; diff --git a/challenge-192/ulrich-rieke/raku/ch-2.raku b/challenge-192/ulrich-rieke/raku/ch-2.raku new file mode 100644 index 0000000000..361da07d0d --- /dev/null +++ b/challenge-192/ulrich-rieke/raku/ch-2.raku @@ -0,0 +1,62 @@ +use v6 ; + +sub findIn( @haystack , $needle ) { + my $pos = 0 ; + while ( @haystack[ $pos ] != $needle ) { + $pos++ ; + } + return $pos ; +} + +say "Please enter some numbers greater than or equal to zero!" ; +my $line = $*IN.get ; +my @numbers = $line.split( /\s/ ).map( {.Int} ) ; +#if the sum of numbers cannot be evenly divided by the number of elements +#there is no solution +#otherwise: find the maximum of the numbers. Add 1 to the smaller of the +#two neighbours if there are 2 , otherwise to the next cell to the left +#or to the right if the maximum is at the end or the beginning of the list +#if there are 2 neighbours and they are both equal find the minimum of the +#list and subtract 1 from the neighbour on the side of the minimum; otherwise +#one might incur endless loops +if ( not (@numbers.sum %% @numbers.elems) ) { + say -1 ; +} +else { + if ( @numbers.grep( { $_ == @numbers[0] } ).elems == @numbers.elems ) { + say 0 ; + } + else { + my $count = 0 ; + my $len = @numbers.elems ; + repeat { + my $maximum = @numbers.max ; + my $maxIndex = findIn( @numbers, $maximum ) ; + @numbers[ $maxIndex ]-- ; + given $maxIndex { + when 0 { @numbers[1]++ } + when ($len - 1) { @numbers[ * -2 ]++ } + default { + if ( @numbers[ $maxIndex - 1 ] < @numbers[ $maxIndex + 1 ] ) { + @numbers[ $maxIndex - 1]++ ; + } + elsif ( @numbers[ $maxIndex - 1 ] > @numbers[ $maxIndex + 1 ] ) { + @numbers[ $maxIndex + 1 ]++ ; + } + else { + my $minimum = @numbers.min ; + my $minIndex = findIn( @numbers , $minimum ) ; + if ( $minIndex < $maxIndex ) { + @numbers[ $maxIndex - 1 ]++ ; + } + else { + @numbers[ $maxIndex + 1 ]++ ; + } + } + } + } + $count++ ; + } until ( @numbers.grep( { $_ == @numbers[ 0 ] } ).elems == $len ) ; + say $count ; + } +} diff --git a/challenge-192/ulrich-rieke/rust/ch-1.rs b/challenge-192/ulrich-rieke/rust/ch-1.rs new file mode 100644 index 0000000000..690af16abf --- /dev/null +++ b/challenge-192/ulrich-rieke/rust/ch-1.rs @@ -0,0 +1,32 @@ +use std::io ; + +fn main() { + println!("Enter a positive integer!") ; + let mut inline : String = String::new( ) ; + io::stdin( ).read_line( &mut inline ).unwrap( ) ; + let entered_line : &str = &*inline ; + let mut number : i32 = entered_line.trim( ).parse::<i32>( ).unwrap( ) ; + let mut binary_digits : Vec<i32> = Vec::new( ) ; + while number != 0 { + binary_digits.push( number % 2 ) ; + number /= 2 ; + } + let mut reversed : Vec<i32> = Vec::new( ) ; + binary_digits.iter( ).rev( ).for_each( | i | reversed.push( *i ) ) ; + for pos in 0..reversed.len( ) { + if reversed[ pos ] == 0 { + reversed[ pos ] = 1 ; + } + else { + reversed[ pos ] = 0 ; + } + } + let mut sum : i32 = 0 ; + let mut multiplier : i32 = 1 ; + let mut iter = reversed.iter( ) ; + while let Some( n ) = iter.next_back( ) { + sum += *n * multiplier ; + multiplier *= 2 ; + } + println!("{}" , sum ) ; +} diff --git a/challenge-192/ulrich-rieke/rust/ch-2.rs b/challenge-192/ulrich-rieke/rust/ch-2.rs new file mode 100644 index 0000000000..b21d81e624 --- /dev/null +++ b/challenge-192/ulrich-rieke/rust/ch-2.rs @@ -0,0 +1,57 @@ +use std::io ; + +fn main() { + let mut inline : String = String::new( ) ; + println!("Please enter some integers, separated by blanks!") ; + io::stdin( ).read_line( &mut inline ).unwrap( ) ; + let entered_line : &str = &*inline ; + let mut numbers : Vec<i32> = entered_line.split_whitespace( ) + .map( | s | s.trim( ).parse::<i32>().unwrap( )).collect( ) ; + if numbers.iter( ).sum::<i32>( ) % (numbers.len( ) as i32 ) != 0 { + println!("-1") ; + } + //find the maximum number, add 1 to the smaller of the 2 neighbours, + //, subtract 1 from the maximum! if there is only one neighbour increment + //it! If there are 2 equal neighbours, look for the minimum and increment + //the neighbour at the "minimum side" to avoid possible endless loops! + else { + if numbers.iter( ).all( | s | *s == numbers[ 0 ] ) { + println!("0") ; + } + else { + let mut count : i32 = 0 ; + while ! numbers.iter( ).all( | i | *i == numbers[0] ) { + let maximum : i32 = *numbers.iter( ).max( ).unwrap( ) ; + let max_index : usize = numbers.iter( ).position( | &i | i == + maximum ).unwrap( ) ; + numbers[max_index] -= 1 ; + match max_index { + 0 => { numbers[ 1 ] += 1 } , + the_position if the_position == numbers.len( ) - 1 => + { numbers[ the_position - 1 ] += 1 } , + _ => { + match numbers[ max_index - 1 ] - numbers[max_index + 1] { + difference if difference < 0 => { numbers[ max_index - 1 ] + += 1 } , + difference if difference > 0 => { numbers[ max_index + 1 ] + += 1 } , + _ => { + let minimum : i32 = *numbers.iter( ).min( ).unwrap( ) ; + let min_index : usize = numbers.iter( ).position( | &i | + i == minimum ).unwrap( ) ; + if min_index > max_index { + numbers[ max_index + 1 ] += 1 ; + } + else { + numbers[ max_index - 1 ] += 1 ; + } + } + } + } + } ; + count += 1 ; + } + println!("{}" , count ) ; + } + } +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 2bbec04ece..4e6e2a0ae3 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,7 +1,4 @@ { - "legend" : { - "enabled" : 0 - }, "plotOptions" : { "series" : { "dataLabels" : { @@ -11,18 +8,162 @@ "borderWidth" : 0 } }, + "chart" : { + "type" : "column" + }, + "title" : { + "text" : "The Weekly Challenge - 192" + }, "subtitle" : { - "text" : "[Champions: 23] Last updated at 2022-11-26 09:18:30 GMT" + "text" : "[Champions: 24] Last updated at 2022-11-26 09:45:56 GMT" + }, + "series" : [ + { + "data" : [ + { + "y" : 4, + "drilldown" : "Alexander Pankoff", + "name" : "Alexander Pankoff" + }, + { + "drilldown" : "Ali Moradi", + "name" : "Ali Moradi", + "y" : 4 + }, + { + "y" : 1, + "drilldown" : "Dario Mazzeo", + "name" : "Dario Mazzeo" + }, + { + "name" : "E. Choroba", + "drilldown" : "E. Choroba", + "y" : 2 + }, + { + "drilldown" : "Humberto Massa", + "name" : "Humberto Massa", + "y" : 2 + }, + { + "drilldown" : "James Smith", + "name" : "James Smith", + "y" : 3 + }, + { + "name" : "Jorg Sommrey", + "drilldown" : "Jorg Sommrey", + "y" : 3 + }, + { + "name" : "Laurent Rosenfeld", + "drilldown" : "Laurent Rosenfeld", + "y" : 5 + }, + { + "drilldown" : "Luca Ferrari", + "name" : "Luca Ferrari", + "y" : 8 + }, + { + "y" : 2, + "drilldown" : "Mark Anderson", + "name" : "Mark Anderson" + }, + { + "drilldown" : "Marton Polgar", + "name" : "Marton Polgar", + "y" : 2 + }, + { + "drilldown" : "Mohammad S Anwar", + "name" : "Mohammad S Anwar", + "y" : 2 + }, + { + "name" : "Niels van Dijke", + "drilldown" : "Niels van Dijke", + "y" : 2 + }, + { + "y" : 1, + "drilldown" : "Olivier Delouya", + "name" : "Olivier Delouya" + }, + { + "y" : 3, + "drilldown" : "Peter Campbell Smith", + "name" : "Peter Campbell Smith" + }, + { + "drilldown" : "Robbie Hatley", + "name" : "Robbie Hatley", + "y" : 2 + }, + { + "drilldown" : "Robert DiCicco", + "name" : "Robert DiCicco", + "y" : 4 + }, + { + "y" : 4, + "name" : "Roger Bell_West", + "drilldown" : "Roger Bell_West" + }, + { + "drilldown" : "Simon Proctor", + "name" : "Simon Proctor", + "y" : 2 + }, + { + "y" : 5, + "name" : "Stephen G. Lynn", + "drilldown" : "Stephen G. Lynn" + }, + { + "drilldown" : "Tim Potapov", + "name" : "Tim Potapov", + "y" : 2 + }, + { + "drilldown" : "Ulrich Rieke", + "name" : "Ulrich Rieke", + "y" : 4 + }, + { + "y" : 2, + "name" : "Vamsi Meenavilli", + "drilldown" : "Vamsi Meenavilli" + }, + { + "y" : 3, + "name" : "W. Luis Mochan", + "drilldown" : "W. Luis Mochan" + } + ], + "colorByPoint" : 1, + "name" : "The Weekly Challenge - 192" + } + ], + "legend" : { + "enabled" : 0 + }, + "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/>" + "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>", + "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } }, "drilldown" : { "series" : [ { - "id" : "Alexander Pankoff", "data" : [ [ "Perl", @@ -33,9 +174,12 @@ 2 ] ], - "name" : "Alexander Pankoff" + "name" : "Alexander Pankoff", + "id" : "Alexander Pankoff" }, { + "id" : "Ali Moradi", + "name" : "Ali Moradi", "data" : [ [ "Perl", @@ -45,19 +189,17 @@ "Raku", 2 ] - ], - "name" : "Ali Moradi", - "id" : "Ali Moradi" + ] }, { + "id" : "Dario Mazzeo", "name" : "Dario Mazzeo", "data" : [ [ "Perl", 1 ] - ], - "id" : "Dario Mazzeo" + ] }, { "id" : "E. Choroba", @@ -70,16 +212,17 @@ ] }, { + "id" : "Humberto Massa", "name" : "Humberto Massa", "data" : [ [ "Raku", 2 ] - ], - "id" : "Humberto Massa" + ] }, { + "name" : "James Smith", "id" : "James Smith", "data" : [ [ @@ -90,11 +233,9 @@ "Blog", 1 ] - ], - "name" : "James Smith" + ] }, { - "id" : "Jorg Sommrey", "data" : [ [ "Perl", @@ -105,6 +246,7 @@ 1 ] ], + "id" : "Jorg Sommrey", "name" : "Jorg Sommrey" }, { @@ -127,6 +269,7 @@ }, { "id" : "Luca Ferrari", + "name" : "Luca Ferrari", "data" : [ [ "Raku", @@ -136,30 +279,31 @@ "Blog", 6 ] - ], - "name" : "Luca Ferrari" + ] }, { - "id" : "Mark Anderson", "data" : [ [ "Raku", 2 ] ], + "id" : "Mark Anderson", "name" : "Mark Anderson" }, { "name" : "Marton Polgar", + "id" : "Marton Polgar", "data" : [ [ "Raku", 2 ] - ], - "id" : "Marton Polgar" + ] }, { + "id" : "Mohammad S Anwar", + "name" : "Mohammad S Anwar", "data" : [ [ "Perl", @@ -169,32 +313,29 @@ "Raku", 1 ] - ], - "name" : "Mohammad S Anwar", - "id" : "Mohammad S Anwar" + ] }, { + "id" : "Niels van Dijke", + "name" : "Niels van Dijke", "data" : [ [ "Perl", 2 ] - ], - "name" : "Niels van Dijke", - "id" : "Niels van Dijke" + ] }, { - "id" : "Olivier Delouya", - "name" : "Olivier Delouya", "data" : [ [ "Perl", 1 ] - ] + ], + "name" : "Olivier Delouya", + "id" : "Olivier Delouya" }, { - "id" : "Peter Campbell Smith", "data" : [ [ "Perl", @@ -205,11 +346,12 @@ 1 ] ], + "id" : "Peter Campbell Smith", "name" : "Peter Campbell Smith" }, { - "id" : "Robbie Hatley", "name" : "Robbie Hatley", + "id" : "Robbie Hatley", "data" : [ [ "Perl", @@ -232,6 +374,7 @@ ] }, { + "name" : "Roger Bell_West", "id" : "Roger Bell_West", "data" : [ [ @@ -242,22 +385,19 @@ "Raku", 2 ] - ], - "name" : "Roger Bell_West" + ] }, { + "name" : "Simon Proctor", + "id" : "Simon Proctor", "data" : [ [ "Raku", 2 ] - ], - "name" : "Simon Proctor", - "id" : "Simon Proctor" + ] }, { - "id" : "Stephen G. Lynn", - "name" : "Stephen G. Lynn", "data" : [ [ |
