aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <mohammad.anwar@yahoo.com>2024-07-29 11:46:29 +0100
committerMohammad Sajid Anwar <mohammad.anwar@yahoo.com>2024-07-29 11:46:29 +0100
commit7d6e5a9e7646e9254fdbaf7f3a3cac47c567f44f (patch)
treeca8617a29d925b53219b818ada7534e89cb2786d
parent5eca255ddb9d8edbf062392e471d92273e412d7d (diff)
downloadperlweeklychallenge-club-7d6e5a9e7646e9254fdbaf7f3a3cac47c567f44f.tar.gz
perlweeklychallenge-club-7d6e5a9e7646e9254fdbaf7f3a3cac47c567f44f.tar.bz2
perlweeklychallenge-club-7d6e5a9e7646e9254fdbaf7f3a3cac47c567f44f.zip
- Added solutions by Eric Cheung.
- Added solutions by Thomas Kohler. - Added solutions by PokGoPun. - Added solutions by Mark Anderson. - Added solutions by Feng Chang. - Added solutions by E. Choroba.
-rw-r--r--challenge-277/luca-ferrari/pljava/pom.xml6
-rw-r--r--challenge-277/luca-ferrari/pljava/src/main/java/Task1.java27
-rw-r--r--challenge-277/luca-ferrari/pljava/src/main/java/Task2.java15
-rw-r--r--challenge-277/luca-ferrari/plperl/ch-1.plperl28
-rw-r--r--challenge-277/luca-ferrari/plperl/ch-2.plperl30
-rw-r--r--challenge-277/luca-ferrari/plpgsql/ch-1.sql25
-rw-r--r--challenge-277/luca-ferrari/plpgsql/ch-2.sql28
-rw-r--r--challenge-277/luca-ferrari/python/ch-1.py41
-rw-r--r--challenge-277/luca-ferrari/python/ch-2.py21
-rw-r--r--challenge-277/luca-ferrari/raku/ch-1.raku12
-rw-r--r--challenge-277/luca-ferrari/raku/ch-2.raku11
-rwxr-xr-xchallenge-280/eric-cheung/python/ch-1.py19
-rwxr-xr-xchallenge-280/eric-cheung/python/ch-2.py14
-rw-r--r--stats/pwc-challenge-279.json627
-rw-r--r--stats/pwc-current.json613
-rw-r--r--stats/pwc-language-breakdown-2019.json298
-rw-r--r--stats/pwc-language-breakdown-2020.json424
-rw-r--r--stats/pwc-language-breakdown-2021.json414
-rw-r--r--stats/pwc-language-breakdown-2022.json396
-rw-r--r--stats/pwc-language-breakdown-2023.json396
-rw-r--r--stats/pwc-language-breakdown-2024.json505
-rw-r--r--stats/pwc-language-breakdown-summary.json72
-rw-r--r--stats/pwc-leaders.json786
-rw-r--r--stats/pwc-summary-1-30.json118
-rw-r--r--stats/pwc-summary-121-150.json92
-rw-r--r--stats/pwc-summary-151-180.json108
-rw-r--r--stats/pwc-summary-181-210.json108
-rw-r--r--stats/pwc-summary-211-240.json44
-rw-r--r--stats/pwc-summary-241-270.json96
-rw-r--r--stats/pwc-summary-271-300.json108
-rw-r--r--stats/pwc-summary-301-330.json86
-rw-r--r--stats/pwc-summary-31-60.json104
-rw-r--r--stats/pwc-summary-61-90.json110
-rw-r--r--stats/pwc-summary-91-120.json48
-rw-r--r--stats/pwc-summary.json694
-rw-r--r--stats/pwc-yearly-language-summary.json108
36 files changed, 3519 insertions, 3113 deletions
diff --git a/challenge-277/luca-ferrari/pljava/pom.xml b/challenge-277/luca-ferrari/pljava/pom.xml
index ab36c0045b..1ed95c5978 100644
--- a/challenge-277/luca-ferrari/pljava/pom.xml
+++ b/challenge-277/luca-ferrari/pljava/pom.xml
@@ -7,14 +7,14 @@
<groupId>PWC</groupId>
<artifactId>
- PWC276
+ PWC277
</artifactId>
<version>
1
</version>
- <name>Perl Weekly Challenge 276 with package PWC276</name>
- <description>Implementation of the tasks in PL/Java for PWC 276</description>
+ <name>Perl Weekly Challenge 277 with package PWC277</name>
+ <description>Implementation of the tasks in PL/Java for PWC 277</description>
<properties>
<project.build.sourceEncoding>US-ASCII</project.build.sourceEncoding>
diff --git a/challenge-277/luca-ferrari/pljava/src/main/java/Task1.java b/challenge-277/luca-ferrari/pljava/src/main/java/Task1.java
new file mode 100644
index 0000000000..157decedd7
--- /dev/null
+++ b/challenge-277/luca-ferrari/pljava/src/main/java/Task1.java
@@ -0,0 +1,27 @@
+public static int task1_pljava( String[] words1, String[] words2 ) throws SQLException {
+ logger.log( Level.INFO, "Entering pwc277.task1_pljava" );
+
+ final Map<String, Integer[]> counting = new HashMap<String, Integer[]>();
+
+ Stream.of( words1 ).forEach( current -> {
+ Integer[] count = { 0, 0 };
+ counting.putIfAbsent( current, count );
+ count = counting.get( current );
+ count[ 0 ]++;
+ counting.put( current, count );
+ } );
+
+
+ Stream.of( words2 ).forEach( current -> {
+ Integer[] count = { 0, 0 };
+ counting.putIfAbsent( current, count );
+ count = counting.get( current );
+ count[ 1 ]++;
+ counting.put( current, count );
+ } );
+
+ return (int) counting.entrySet().stream().filter( current -> {
+ Integer[] count = current.getValue();
+ return count[ 0 ] == count[ 1 ] && count[ 0 ] == 1;
+ } ).count();
+}
diff --git a/challenge-277/luca-ferrari/pljava/src/main/java/Task2.java b/challenge-277/luca-ferrari/pljava/src/main/java/Task2.java
new file mode 100644
index 0000000000..87c0dde2d0
--- /dev/null
+++ b/challenge-277/luca-ferrari/pljava/src/main/java/Task2.java
@@ -0,0 +1,15 @@
+public static final int task2_pljava( int[] numbers ) throws SQLException {
+ logger.log( Level.INFO, "Entering pwc277.task2_pljava" );
+
+ final int[] c = new int[]{ 0 };
+ IntStream.range( 0, numbers.length - 1 )
+ .forEach( i -> {
+ c[ 0 ] += IntStream.range( i + 1, numbers.length )
+ .filter( j -> {
+ return numbers[ i ] != numbers[ j ]
+ && Math.abs( numbers[ i ] - numbers[ j ] ) < Math.min( numbers[ i ], numbers[ j ] );
+ } ).count();
+ } );
+
+ return c[ 0 ];
+}
diff --git a/challenge-277/luca-ferrari/plperl/ch-1.plperl b/challenge-277/luca-ferrari/plperl/ch-1.plperl
new file mode 100644
index 0000000000..b3e94089f6
--- /dev/null
+++ b/challenge-277/luca-ferrari/plperl/ch-1.plperl
@@ -0,0 +1,28 @@
+CREATE OR REPLACE FUNCTION
+pwc277.task1_plperl( text[], text[] )
+RETURNS int
+AS $CODE$
+
+ my ( $left, $right ) = @_;
+
+ my @single_left;
+ my @single_right;
+
+ for my $word ( $left->@* ) {
+ push @single_left, $word if ( scalar( grep { $_ eq $word } $left->@* ) == 1 );
+ }
+
+ for my $word ( $right->@* ) {
+ push @single_right, $word if ( scalar( grep { $_ eq $word } $right->@* ) == 1 );
+ }
+
+ my $counter = 0;
+ for my $word ( @single_left ) {
+ $counter++ if ( grep { $_ eq $word } @single_right );
+ }
+
+ return $counter;
+
+$CODE$
+LANGUAGE plperl;
+
diff --git a/challenge-277/luca-ferrari/plperl/ch-2.plperl b/challenge-277/luca-ferrari/plperl/ch-2.plperl
new file mode 100644
index 0000000000..b483cec8b0
--- /dev/null
+++ b/challenge-277/luca-ferrari/plperl/ch-2.plperl
@@ -0,0 +1,30 @@
+CREATE OR REPLACE FUNCTION
+pwc277.task2_plperl( int[] )
+RETURNS int
+AS $CODE$
+
+ my ( $nums ) = @_;
+ my @strong;
+
+ my $abs = sub {
+ return $_[ 0 ] * - 1 if ( $_[ 0 ] < 0 );
+ return $_[ 0 ];
+ };
+
+ my $min = sub {
+ return $_[ 0 ] if ( $_[ 0 ] < $_[ 1 ] );
+ return $_[ 1 ];
+ };
+
+ for my $i ( 0 .. $nums->@* - 2 ) {
+ for my $j ( $i + 1 .. $nums->@* - 1 ) {
+ my ( $left, $right ) = ( $nums->@[ $i ], $nums->@[ $j ] );
+ push @strong, [ $left, $right ] if ( $abs->( $left - $rigth ) > 0 && $abs->( $left - $right ) < $min->( $left, $right ) );
+ }
+ }
+
+ return scalar( @strong );
+
+$CODE$
+LANGUAGE plperl;
+
diff --git a/challenge-277/luca-ferrari/plpgsql/ch-1.sql b/challenge-277/luca-ferrari/plpgsql/ch-1.sql
new file mode 100644
index 0000000000..70bfb4aab7
--- /dev/null
+++ b/challenge-277/luca-ferrari/plpgsql/ch-1.sql
@@ -0,0 +1,25 @@
+CREATE OR REPLACE FUNCTION
+pwc277.task1_plpgsql( words1 text[], words2 text[] )
+RETURNS int
+AS $CODE$
+
+ WITH w1 AS (
+ SELECT w::text
+ FROM unnest( words1 ) w
+ GROUP BY w
+ HAVING count(*) = 1
+ ),
+ w2 AS (
+ SELECT w::text
+ FROM unnest( words2 ) w
+ GROUP BY w
+ HAVING count(*) = 1
+ )
+ SELECT count( l.w )
+ FROM w1 l, w2 r
+ WHERE l.w = r.w
+
+$CODE$
+LANGUAGE sql;
+
+
diff --git a/challenge-277/luca-ferrari/plpgsql/ch-2.sql b/challenge-277/luca-ferrari/plpgsql/ch-2.sql
new file mode 100644
index 0000000000..84f99da312
--- /dev/null
+++ b/challenge-277/luca-ferrari/plpgsql/ch-2.sql
@@ -0,0 +1,28 @@
+CREATE OR REPLACE FUNCTION
+pwc277.task2_plpgsql( nums int[] )
+RETURNS int
+AS $CODE$
+DECLARE
+ strong_counter int := 0;
+ current int := 0;
+BEGIN
+
+ FOR i IN 1 .. array_length( nums, 1 ) - 1 LOOP
+ FOR j in ( i + 1 ) .. array_length( nums, 1 ) LOOP
+ SELECT min( x )
+ INTO current
+ FROM unnest( array[ nums[ i ], nums[ j ] ] ) x;
+
+ IF current > abs( nums[ i ] - nums[ j ] ) AND nums[ i ] <> nums[ j ] THEN
+ strong_counter := strong_counter + 1;
+ END IF;
+ END LOOP;
+ END LOOP;
+
+ RETURN strong_counter;
+
+END
+$CODE$
+LANGUAGE plpgsql;
+
+
diff --git a/challenge-277/luca-ferrari/python/ch-1.py b/challenge-277/luca-ferrari/python/ch-1.py
new file mode 100644
index 0000000000..2634d9c077
--- /dev/null
+++ b/challenge-277/luca-ferrari/python/ch-1.py
@@ -0,0 +1,41 @@
+import sys
+
+# task implementation
+# the return value will be printed
+def task_1( args ):
+ words1 = []
+ words2 = []
+ first = True
+ for w in args:
+ if w == '|':
+ first = False
+ if first:
+ words1.append( w )
+ else:
+ words2.append( w )
+
+ single1 = []
+ single2 = []
+ for w in words1:
+ if len( list( filter( lambda x: x == w, words1 ) ) ) == 1:
+ if not w in single1:
+ single1.append( w )
+
+ for w in words2:
+ if len( list( filter( lambda x: x == w, words2 ) ) ) == 1:
+ if not w in single2:
+ single2.append( w )
+
+ counting = 0
+ for w in single1:
+ if w in single2:
+ counting += 1
+
+ return counting
+
+
+# invoke the main without the command itself
+if __name__ == '__main__':
+ print( task_1( sys.argv[ 1: ] ) )
+
+
diff --git a/challenge-277/luca-ferrari/python/ch-2.py b/challenge-277/luca-ferrari/python/ch-2.py
new file mode 100644
index 0000000000..1b420ab4b7
--- /dev/null
+++ b/challenge-277/luca-ferrari/python/ch-2.py
@@ -0,0 +1,21 @@
+import sys
+
+# task implementation
+# the return value will be printed
+def task_2( args ):
+ nums = list( map( int, args ) )
+
+ strong = []
+
+ for i in range( 0, len( nums ) - 1 ):
+ for j in range( i + 1, len( nums ) ):
+ if nums[ i ] != nums[ j ] and abs( nums[ i ] - nums[ j ] ) < min( nums[ i ], nums[ j ] ):
+ strong.append( str( nums[ i ] ) + "<->" + str( nums[ j ] ) )
+
+ return len( strong )
+
+
+# invoke the main without the command itself
+if __name__ == '__main__':
+ print( task_2( sys.argv[ 1: ] ) )
+
diff --git a/challenge-277/luca-ferrari/raku/ch-1.raku b/challenge-277/luca-ferrari/raku/ch-1.raku
new file mode 100644
index 0000000000..556e0a28bc
--- /dev/null
+++ b/challenge-277/luca-ferrari/raku/ch-1.raku
@@ -0,0 +1,12 @@
+sub MAIN( :@left, :@right ) {
+ my %left-bag = Bag.new( @left );
+ my %right-bag = Bag.new( @right );
+ my @matches;
+ my @single-left = %left-bag.kv.grep( -> $k, $v { $v == 1 } ).map( *[ 0 ] );
+ my @single-right = %right-bag.kv.grep( -> $k, $v { $v == 1 } ).map( *[ 0 ] );
+ for @single-left -> $left {
+ @matches.push( $left ) if ( @single-right.grep( * ~~ $left ) );
+ }
+
+ @matches.elems.say;
+}
diff --git a/challenge-277/luca-ferrari/raku/ch-2.raku b/challenge-277/luca-ferrari/raku/ch-2.raku
new file mode 100644
index 0000000000..14c303a342
--- /dev/null
+++ b/challenge-277/luca-ferrari/raku/ch-2.raku
@@ -0,0 +1,11 @@
+sub MAIN( *@nums where { @nums.grep( * ~~ Int ).elems == @nums.elems } ) {
+ # A pair of integers x and y is called strong pair if it satisfies: 0 < |x - y| < min(x, y).
+ my @strong;
+ for 0 ..^ @nums.elems - 1 -> $i {
+ for $i ^..^ @nums.elems -> $j {
+ @strong.push: [ @nums[ $i ], @nums[ $j ] ] if ( 0 < abs( @nums[ $i ] - @nums[ $j ] ) < min( @nums[ $i ], @nums[ $j ] ) );
+ }
+ }
+
+ @strong.elems.say;
+}
diff --git a/challenge-280/eric-cheung/python/ch-1.py b/challenge-280/eric-cheung/python/ch-1.py
new file mode 100755
index 0000000000..df33741859
--- /dev/null
+++ b/challenge-280/eric-cheung/python/ch-1.py
@@ -0,0 +1,19 @@
+
+## Ref.
+## https://leetcode.com/problems/first-letter-to-appear-twice/description/
+## https://medium.com/@ac.shreedhar/2351-first-letter-to-appear-twice-in-java-970f99e3f625
+## https://algo.monster/liteproblems/2351
+
+def GetFirstAppearTwice (strFunc):
+ arrResult = [strFunc[0]]
+ for nIndx in range(1, len(strFunc)):
+ if strFunc[nIndx] in arrResult:
+ return strFunc[nIndx]
+ arrResult.append(strFunc[nIndx])
+ return ""
+
+## strInput = "acbddbca" ## Example 1
+## strInput = "abccd" ## Example 2
+strInput = "abcdabbb" ## Example 3
+
+print (GetFirstAppearTwice (strInput))
diff --git a/challenge-280/eric-cheung/python/ch-2.py b/challenge-280/eric-cheung/python/ch-2.py
new file mode 100755
index 0000000000..d7bbc31000
--- /dev/null
+++ b/challenge-280/eric-cheung/python/ch-2.py
@@ -0,0 +1,14 @@
+
+## Ref.
+## https://leetcode.ca/2022-07-26-2315-Count-Asterisks/
+
+## strInput = "p|*e*rl|w**e|*ekly|" ## Example 1
+## strInput = "perl" ## Example 2
+strInput = "th|ewe|e**|k|l***ych|alleng|e" ## Example 3
+
+if strInput.count("|") < 2:
+ print (strInput.count("*"))
+else:
+ arrSplit = strInput.split("|")
+ strResult = "".join([arrSplit[nIndx] for nIndx in range(len(arrSplit)) if nIndx % 2 == 0])
+ print (strResult.count("*"))
diff --git a/stats/pwc-challenge-279.json b/stats/pwc-challenge-279.json
new file mode 100644
index 0000000000..5d224cade5
--- /dev/null
+++ b/stats/pwc-challenge-279.json
@@ -0,0 +1,627 @@
+{
+ "xAxis" : {
+ "type" : "category"
+ },
+ "plotOptions" : {
+ "series" : {
+ "borderWidth" : 0,
+ "dataLabels" : {
+ "format" : "{point.y}",
+ "enabled" : 1
+ }
+ }
+ },
+ "subtitle" : {
+ "text" : "[Champions: 33] Last updated at 2024-07-29 10:44:57 GMT"
+ },
+ "legend" : {
+ "enabled" : 0
+ },
+ "chart" : {
+ "type" : "column"
+ },
+ "series" : [
+ {
+ "name" : "The Weekly Challenge - 279",
+ "data" : [
+ {
+ "drilldown" : "Ali Moradi",
+ "y" : 5,
+ "name" : "Ali Moradi"
+ },
+ {
+ "name" : "Andrew Schneider",
+ "y" : 3,
+ "drilldown" : "Andrew Schneider"
+ },
+ {
+ "y" : 2,
+ "name" : "Andrezgz",
+ "drilldown" : "Andrezgz"
+ },
+ {
+ "y" : 3,
+ "name" : "Arne Sommer",
+ "drilldown" : "Arne Sommer"
+ },
+ {
+ "y" : 4,
+ "name" : "Athanasius",
+ "drilldown" : "Athanasius"
+ },
+ {
+ "y" : 2,
+ "name" : "BarrOff",
+ "drilldown" : "BarrOff"
+ },
+ {
+ "drilldown" : "Bob Lied",
+ "y" : 2,
+ "name" : "Bob Lied"
+ },
+ {
+ "drilldown" : "Bruce Gray",
+ "y" : 2,
+ "name" : "Bruce Gray"
+ },
+ {
+ "drilldown" : "David Ferrone",
+ "y" : 2,
+ "name" : "David Ferrone"
+ },
+ {
+ "y" : 2,
+ "name" : "E. Choroba",
+ "drilldown" : "E. Choroba"
+ },
+ {
+ "name" : "Feng Chang",
+ "y" : 2,
+ "drilldown" : "Feng Chang"
+ },
+ {
+ "y" : 5,
+ "name" : "Jaldhar H. Vyas",
+ "drilldown" : "Jaldhar H. Vyas"
+ },
+ {
+ "drilldown" : "Jan Krnavek",
+ "y" : 2,
+ "name" : "Jan Krnavek"
+ },
+ {
+ "y" : 3,
+ "name" : "Jorg Sommrey",
+ "drilldown" : "Jorg Sommrey"
+ },
+ {
+ "y" : 2,
+ "name" : "Kjetil Skotheim",
+ "drilldown" : "Kjetil Skotheim"
+ },
+ {
+ "y" : 6,
+ "name" : "Laurent Rosenfeld",
+ "drilldown" : "Laurent Rosenfeld"
+ },
+ {
+ "drilldown" : "Mark Anderson",
+ "y" : 2,
+ "name" : "Mark Anderson"
+ },
+ {
+ "name" : "Matthew Neleigh",
+ "y" : 2,
+ "drilldown" : "Matthew Neleigh"
+ },
+ {
+ "drilldown" : "Matthias Muth",
+ "name" : "Matthias Muth",
+ "y" : 3
+ },
+ {
+ "drilldown" : "Nelo Tovar",
+ "name" : "Nelo Tovar",
+ "y" : 2
+ },
+ {
+ "y" : 2,
+ "name" : "Niels van Dijke",
+ "drilldown" : "Niels van Dijke"
+ },
+ {
+ "name" : "Packy Anderson",
+ "y" : 5,
+ "drilldown" : "Packy Anderson"
+ },
+ {
+ "drilldown" : "Peter Campbell Smith",
+ "name" : "Peter Campbell Smith",
+ "y" : 3
+ },
+ {
+ "drilldown" : "Peter Meszaros",
+ "y" : 2,
+ "name" : "Peter Meszaros"
+ },
+ {
+ "name" : "Reinier Maliepaard",
+ "y" : 3,
+ "drilldown" : "Reinier Maliepaard"
+ },
+ {
+ "drilldown" : "Robbie Hatley",
+ "y" : 3,
+ "name" : "Robbie Hatley"
+ },
+ {
+ "drilldown" : "Robert Ransbottom",
+ "name" : "Robert Ransbottom",
+ "y" : 2
+ },
+ {
+ "name" : "Roger Bell_West",
+ "y" : 5,
+ "drilldown" : "Roger Bell_West"
+ },
+ {
+ "drilldown" : "Santiago Leyva",
+ "y" : 2,
+ "name" : "Santiago Leyva"
+ },
+ {
+ "y" : 4,
+ "name" : "Thomas Kohler",
+ "drilldown" : "Thomas Kohler"
+ },
+ {
+ "drilldown" : "Ulrich Rieke",
+ "name" : "Ulrich Rieke",
+ "y" : 4
+ },
+ {
+ "name" : "W. Luis Mochan",
+ "y" : 3,
+ "drilldown" : "W. Luis Mochan"
+ },
+ {
+ "drilldown" : "Wanderdoc",
+ "name" : "Wanderdoc",
+ "y" : 2
+ }
+ ],
+ "colorByPoint" : 1
+ }
+ ],
+ "title" : {
+ "text" : "The Weekly Challenge - 279"
+ },
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
+ },
+ "drilldown" : {
+ "series" : [
+ {
+ "name" : "Ali Moradi",
+ "id" : "Ali Moradi",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Raku",
+ 2
+ ],
+ [
+ "Blog",
+ 1
+ ]
+ ]
+ },
+ {
+ "name" : "Andrew Schneider",
+ "id" : "Andrew Schneider",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Blog",
+ 1
+ ]
+ ]
+ },
+ {
+ "data" : [
+ [
+ "Perl",
+ 2
+ ]
+ ],
+ "id" : "Andrezgz",
+ "name" : "Andrezgz"
+ },
+ {
+ "id" : "Arne Sommer",
+ "data" : [
+ [
+ "Raku",
+ 2
+ ],
+ [
+ "Blog",
+ 1
+ ]
+ ],
+ "name" : "Arne Sommer"
+ },
+ {
+ "name" : "Athanasius",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Raku",
+ 2
+ ]
+ ],
+ "id" : "Athanasius"
+ },
+ {
+ "name" : "BarrOff",
+ "id" : "BarrOff",
+ "data" : [
+ [
+ "Raku",
+ 2
+ ]
+ ]
+ },
+ {
+ "name" : "Bob Lied",
+ "id" : "Bob Lied",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ]
+ ]
+ },
+ {
+ "data" : [
+ [
+ "Raku",
+ 2
+ ]
+ ],
+ "id" : "Bruce Gray",
+ "name" : "Bruce Gray"
+ },
+ {
+ "data" : [
+ [
+ "Perl",
+ 2
+ ]
+ ],
+ "id" : "David Ferrone",
+ "name" : "David Ferrone"
+ },
+ {
+ "name" : "E. Choroba",
+ "id" : "E. Choroba",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ]
+ ]
+ },
+ {
+ "name" : "Feng Chang",
+ "data" : [
+ [
+ "Raku",
+ 2
+ ]
+ ],
+ "id" : "Feng Chang"
+ },
+ {
+ "name" : "Jaldhar H. Vyas",
+ "id" : "Jaldhar H. Vyas",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Raku",
+ 2
+ ],
+ [
+ "Blog",
+ 1
+ ]
+ ]
+ },
+ {
+ "id" : "Jan Krnavek",
+ "data" : [
+ [
+ "Raku",
+ 2
+ ]
+ ],
+ "name" : "Jan Krnavek"
+ },
+ {
+ "name" : "Jorg Sommrey",
+ "id" : "Jorg Sommrey",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Blog",
+ 1
+ ]
+ ]
+ },
+ {
+ "name" : "Kjetil Skotheim",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ]
+ ],
+ "id" : "Kjetil Skotheim"
+ },
+ {
+ "id" : "Laurent Rosenfeld",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Raku",
+ 2
+ ],
+ [
+ "Blog",
+ 2
+ ]
+ ],
+ "name" : "Laurent Rosenfeld"
+ },
+ {
+ "data" : [
+ [
+ "Raku",
+ 2
+ ]
+ ],
+ "id" : "Mark Anderson",
+ "name" : "Mark Anderson"
+ },
+ {
+ "id" : "Matthew Neleigh",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ]
+ ],
+ "name" : "Matthew Neleigh"
+ },
+ {
+ "id" : "Matthias Muth",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Blog",
+ 1
+ ]
+ ],
+ "name" : "Matthias Muth"
+ },
+ {
+ "name" : "Nelo Tovar",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ]
+ ],
+ "id" : "Nelo Tovar"
+ },
+ {
+ "name" : "Niels van Dijke",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ]
+ ],
+ "id" : "Niels van Dijke"
+ },
+ {
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Raku",
+ 2
+ ],
+ [
+ "Blog",