diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-10-31 15:15:19 +0000 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-10-31 15:15:19 +0000 |
| commit | 712d39760bea5a3e234fc3c0749873c92354d838 (patch) | |
| tree | 87d5fbfde845504e62194ccc888e2fc2012982c3 | |
| parent | f071894759de3f7524b4c2bb9d7898b63980f8a3 (diff) | |
| download | perlweeklychallenge-club-712d39760bea5a3e234fc3c0749873c92354d838.tar.gz perlweeklychallenge-club-712d39760bea5a3e234fc3c0749873c92354d838.tar.bz2 perlweeklychallenge-club-712d39760bea5a3e234fc3c0749873c92354d838.zip | |
- Added solutions by Ulrich Rieke.
| -rw-r--r-- | challenge-032/ulrich-rieke/perl5/ch-1.pl | 57 | ||||
| -rw-r--r-- | challenge-032/ulrich-rieke/perl5/ch-2.pl | 84 | ||||
| -rw-r--r-- | stats/pwc-current.json | 305 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 90 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 494 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 906 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 38 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 74 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 102 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 106 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 88 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 44 |
12 files changed, 1274 insertions, 1114 deletions
diff --git a/challenge-032/ulrich-rieke/perl5/ch-1.pl b/challenge-032/ulrich-rieke/perl5/ch-1.pl new file mode 100644 index 0000000000..cc6c7d8830 --- /dev/null +++ b/challenge-032/ulrich-rieke/perl5/ch-1.pl @@ -0,0 +1,57 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; + +sub printStrings { + my @strings = @_ ; + my %stringhash ; + my $maxlen = 0 ; + for my $str ( @strings ) { + $stringhash{ $str }++ ; + if ( length $str > $maxlen ) { + $maxlen = length $str ; + } + } + my @ordered = sort { $stringhash{ $b } <=> $stringhash{ $a } } keys + %stringhash ; + print "output as csv ? (y)es or (n)o ?" ; + my $answer = <STDIN> ; + chomp $answer ; + if ( substr( $answer , 0 , 1 ) eq "n" ) { + for my $str ( @ordered ) { + print $str ; + print " " x ( $maxlen - length( $str ) + 1 ) . "$stringhash{ $str }\n" ; + } + } + else { + for my $str ( @ordered ) { + print "$str,$stringhash{ $str }\n" ; + } + } +} + +my @strings ; +my @files ; +foreach my $arg (@ARGV) { + if ( -e $arg && -f $arg ) { + push ( @files , $arg ) ; + } + else { + push ( @strings , $arg ) ; + } +} +if ( @strings ) { + printStrings( @strings ) ; +} +if ( @files ) { + foreach my $file ( @files ) { + open( FH, "< $file" ) or die "Couldn't open file $file !\n" ; + my @lines = <FH> ; + close FH ; + for my $line ( @lines ) { + chomp $line ; + } + print "The content of file $file, ordered by frequency:\n" ; + printStrings( @lines ) ; + } +} diff --git a/challenge-032/ulrich-rieke/perl5/ch-2.pl b/challenge-032/ulrich-rieke/perl5/ch-2.pl new file mode 100644 index 0000000000..ba98882843 --- /dev/null +++ b/challenge-032/ulrich-rieke/perl5/ch-2.pl @@ -0,0 +1,84 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; + +sub enterData { + my %data ; + my $label = " "; + my $quantity = 0 ; + my $multiply = "false" ; + do { + print "Label ( end to stop data entry ) ?\n" ; + $label = <STDIN> ; + chomp $label ; + } while ( $label !~ /[a-z]+/ ) ; + while ( $label ne "end" ) { + do { + print "Quantity ?\n" ; + $quantity = <STDIN> ; + chomp $quantity ; + } while ( $quantity !~ /[+-]*\d+|\d+\.\d/ ) ; + $data{$label} = $quantity ; + if ( int( $quantity ) != $quantity ) { #it's not an integer + $multiply = "true" ; + } + do { + print "Label ( end to stop data entry ) ?\n" ; + $label = <STDIN> ; + chomp $label ; + } while ( $label !~ /[a-z]+/ ) ; + } + if ( $multiply eq "true" ) {#we have floating point values! + while ( my ( $key , $value ) = each %data ) { + $data{ $key } = 10 * $value ; + } + } + return %data ; +} + +sub generate_bar_graph { + my $dats = shift ; + my %data = %{ $dats } ; + print "order by values? (y)es or (n)o ?\n" ; + my $answer = <STDIN> ; + my @ordered ; + if ( substr( $answer , 0 , 1 ) eq "y" ) { + @ordered = sort { $data{ $b } <=> $data{ $a } } keys %data ; + } + else { + @ordered = sort { length( $b ) <=> length( $a ) } keys %data ; + } +#no more than 40 character should be printed, so we should normalize the +#values of the hash + my $maximum = 0 ; + for my $val ( values %data ) { + if ( $val > $maximum ) { + $maximum = $val ; + } + } + my $scalefactor ; + if ( $maximum > 40 ) { + $scalefactor = 40 / $maximum ; + } + if ( $scalefactor ) { + while ( my ( $key , $val ) = each %data ) { + $data{ $key } = int ( $scalefactor * $val ) ; + } + } + my $maxlen = 0 ; + for my $item ( @ordered ) { + if ( length( $item ) > $maxlen ) { + $maxlen = length( $item ) ; + } + } + for my $item ( @ordered ) { + print "$item" ; + print " " x ( $maxlen - length( $item ) ) ; + print "|" ; + print "#" x $data{ $item } . "\n" ; + } +} + +my %data = enterData( ) ; +generate_bar_graph( \%data ) ; + diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 1ebc551eb9..03c4bbcdc8 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,44 +1,152 @@ { - "subtitle" : { - "text" : "[Champions: 18] Last updated at 2019-10-31 14:59:11 GMT" + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "title" : { + "text" : "Perl Weekly Challenge - 032" + }, + "xAxis" : { + "type" : "category" + }, + "tooltip" : { + "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>", + "followPointer" : 1, + "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>" + }, + "chart" : { + "type" : "column" }, "plotOptions" : { "series" : { + "borderWidth" : 0, "dataLabels" : { "format" : "{point.y}", "enabled" : 1 - }, - "borderWidth" : 0 + } } }, - "chart" : { - "type" : "column" + "subtitle" : { + "text" : "[Champions: 19] Last updated at 2019-10-31 15:14:55 GMT" }, "legend" : { "enabled" : 0 }, - "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/>" - }, - "title" : { - "text" : "Perl Weekly Challenge - 032" - }, - "xAxis" : { - "type" : "category" - }, + "series" : [ + { + "colorByPoint" : 1, + "name" : "Perl Weekly Challenge - 032", + "data" : [ + { + "drilldown" : "Andrezgz", + "y" : 2, + "name" : "Andrezgz" + }, + { + "drilldown" : "Dave Cross", + "y" : 2, + "name" : "Dave Cross" + }, + { + "drilldown" : "Dave Jacoby", + "y" : 2, + "name" : "Dave Jacoby" + }, + { + "drilldown" : "Duane Powell", + "name" : "Duane Powell", + "y" : 2 + }, + { + "drilldown" : "E. Choroba", + "y" : 2, + "name" : "E. Choroba" + }, + { + "drilldown" : "Fabrizio Poggi", + "y" : 2, + "name" : "Fabrizio Poggi" + }, + { + "drilldown" : "Joelle Maslak", + "y" : 4, + "name" : "Joelle Maslak" + }, + { + "drilldown" : "Lars Balker", + "y" : 2, + "name" : "Lars Balker" + }, + { + "drilldown" : "Lars Thegler", + "y" : 2, + "name" : "Lars Thegler" + }, + { + "drilldown" : "Laurent Rosenfeld", + "y" : 5, + "name" : "Laurent Rosenfeld" + }, + { + "name" : "Markus Holzer", + "y" : 2, + "drilldown" : "Markus Holzer" + }, + { + "drilldown" : "Nazareno Delucca", + "y" : 2, + "name" : "Nazareno Delucca" + }, + { + "y" : 2, + "name" : "Prajith P", + "drilldown" : "Prajith P" + }, + { + "drilldown" : "Rage311", + "name" : "Rage311", + "y" : 2 + }, + { + "drilldown" : "Roger Bell West", + "y" : 2, + "name" : "Roger Bell West" + }, + { + "y" : 2, + "name" : "Simon Proctor", + "drilldown" : "Simon Proctor" + }, + { + "name" : "Steven Wilson", + "y" : 2, + "drilldown" : "Steven Wilson" + }, + { + "y" : 2, + "name" : "Ulrich Rieke", + "drilldown" : "Ulrich Rieke" + }, + { + "name" : "Yet Ebreo", + "y" : 2, + "drilldown" : "Yet Ebreo" + } + ] + } + ], "drilldown" : { "series" : [ { "id" : "Andrezgz", + "name" : "Andrezgz", "data" : [ [ "Perl 5", 2 ] - ], - "name" : "Andrezgz" + ] }, { "id" : "Dave Cross", @@ -51,24 +159,24 @@ ] }, { - "id" : "Dave Jacoby", + "name" : "Dave Jacoby", "data" : [ [ "Perl 5", 2 ] ], - "name" : "Dave Jacoby" + "id" : "Dave Jacoby" }, { "id" : "Duane Powell", - "name" : "Duane Powell", "data" : [ [ "Perl 5", 2 ] - ] + ], + "name" : "Duane Powell" }, { "id" : "E. Choroba", @@ -81,14 +189,14 @@ ] }, { - "id" : "Fabrizio Poggi", + "name" : "Fabrizio Poggi", "data" : [ [ "Perl 5", 2 ] ], - "name" : "Fabrizio Poggi" + "id" : "Fabrizio Poggi" }, { "id" : "Joelle Maslak", @@ -105,24 +213,24 @@ "name" : "Joelle Maslak" }, { - "id" : "Lars Balker", - "name" : "Lars Balker", "data" : [ [ "Perl 5", 2 ] - ] + ], + "name" : "Lars Balker", + "id" : "Lars Balker" }, { - "id" : "Lars Thegler", "name" : "Lars Thegler", "data" : [ [ "Perl 5", 2 ] - ] + ], + "id" : "Lars Thegler" }, { "data" : [ @@ -143,44 +251,44 @@ "id" : "Laurent Rosenfeld" }, { - "name" : "Markus Holzer", + "id" : "Markus Holzer", "data" : [ [ "Perl 6", 2 ] ], - "id" : "Markus Holzer" + "name" : "Markus Holzer" }, { - "id" : "Nazareno Delucca", "name" : "Nazareno Delucca", "data" : [ [ "Perl 5", 2 ] - ] + ], + "id" : "Nazareno Delucca" }, { - "id" : "Prajith P", + "name" : "Prajith P", "data" : [ [ "Perl 5", 2 ] ], - "name" : "Prajith P" + "id" : "Prajith P" }, { + "id" : "Rage311", "name" : "Rage311", "data" : [ [ "Perl 5", 2 ] - ], - "id" : "Rage311" + ] }, { "name" : "Roger Bell West", @@ -203,14 +311,14 @@ "name" : "Simon Proctor" }, { + "id" : "Steven Wilson", + "name" : "Steven Wilson", "data" : [ [ "Perl 5", 2 ] - ], - "name" : "Steven Wilson", - "id" : "Steven Wilson" + ] }, { "data" : [ @@ -219,112 +327,19 @@ 2 ] ], + "name" : "Ulrich Rieke", + "id" : "Ulrich Rieke" + }, + { "name" : "Yet Ebreo", + "data" : [ + [ + "Perl 5", + 2 + ] + ], "id" : "Yet Ebreo" } ] - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "series" : [ - { - "colorByPoint" : 1, - "name" : "Perl Weekly Challenge - 032", - "data" : [ - { - "name" : "Andrezgz", - "drilldown" : "Andrezgz", - "y" : 2 - }, - { - "name" : "Dave Cross", - "drilldown" : "Dave Cross", - "y" : 2 - }, - { - "y" : 2, - "name" : "Dave Jacoby", - "drilldown" : "Dave Jacoby" - }, - { - "drilldown" : "Duane Powell", - "name" : "Duane Powell", - "y" : 2 - }, - { - "y" : 2, - "drilldown" : "E. Choroba", - "name" : "E. Choroba" - }, - { - "drilldown" : "Fabrizio Poggi", - "name" : "Fabrizio Poggi", - "y" : 2 - }, - { - "y" : 4, - "drilldown" : "Joelle Maslak", - "name" : "Joelle Maslak" - }, - { - "name" : "Lars Balker", - "drilldown" : "Lars Balker", - "y" : 2 - }, - { - "y" : 2, - "name" : "Lars Thegler", - "drilldown" : "Lars Thegler" - }, - { - "y" : 5, - "name" : "Laurent Rosenfeld", - "drilldown" : "Laurent Rosenfeld" - }, - { - "drilldown" : "Markus Holzer", - "name" : "Markus Holzer", - "y" : 2 - }, - { - "name" : "Nazareno Delucca", - "drilldown" : "Nazareno Delucca", - "y" : 2 - }, - { - "drilldown" : "Prajith P", - "name" : "Prajith P", - "y" : 2 - }, - { - "name" : "Rage311", - "drilldown" : "Rage311", - "y" : 2 - }, - { - "y" : 2, - "name" : "Roger Bell West", - "drilldown" : "Roger Bell West" - }, - { - "y" : 2, - "drilldown" : "Simon Proctor", - "name" : "Simon Proctor" - }, - { - "drilldown" : "Steven Wilson", - "name" : "Steven Wilson", - "y" : 2 - }, - { - "drilldown" : "Yet Ebreo", - "name" : "Yet Ebreo", - "y" : 2 - } - ] - } - ] + } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 152d1fef58..d6c3f4764f 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,36 +1,19 @@ { - "xAxis" : { - "labels" : { - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - } - }, - "type" : "category" - }, - "tooltip" : { - "pointFormat" : "<b>{point.y:.0f}</b>" - }, - "yAxis" : { - "title" : { - "text" : null - }, - "min" : 0 - }, - "chart" : { - "type" : "column" - }, - "subtitle" : { - "text" : "Last updated at 2019-10-31 14:59:33 GMT" - }, - "title" : { - "text" : "Perl Weekly Challenge Contributions - 2019" - }, - "legend" : { - "enabled" : "false" - }, "series" : [ { + "dataLabels" : { + "enabled" : "true", + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + }, + "rotation" : -90, + "y" : 10, + "color" : "#FFFFFF", + "align" : "right", + "format" : "{point.y:.0f}" + }, + "name" : "Contributions", "data" : [ [ "Blog", @@ -38,26 +21,43 @@ ], [ "Perl 5", - 1337 + 1339 ], [ "Perl 6", 786 ] - ], - "name" : "Contributions", - "dataLabels" : { - "enabled" : "true", - "y" : 10, - "align" : "right", - "format" : "{point.y:.0f}", - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - }, - "rotation" : -90, - "color" : "#FFFFFF" + ] + } + ], + "legend" : { + "enabled" : "false" + }, + "title" : { + "text" : "Perl Weekly Challenge Contributions - 2019" + }, + "chart" : { + "type" : "column" + }, + "xAxis" : { + "type" : "category", + "labels" : { + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" } } - ] + }, + "subtitle" : { + "text" : "Last updated at 2019-10-31 15:15:14 GMT" + }, + "tooltip" : { + "pointFormat" : "<b>{point.y:.0f}</b>" + }, + "yAxis" : { + "title" : { + "text" : null + }, + "min" : 0 + } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 09fbb97135..466d51ae5d 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,33 +1,209 @@ { + "subtitle" : { + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2019-10-31 15:15:14 GMT" + }, + "chart" : { + "type" : "column" + }, "xAxis" : { "type" : "category" }, - "tooltip" : { - "followPointer" : "true", - "headerFormat" : "<span style=\"font-size:11px\"></span>", - "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>" + "title" : { + "text" : "Perl Weekly Challenge Language" + }, + "series" : [ + { + "colorByPoint" : "true", + "name" : "Perl Weekly Challenge Languages", + "data" : [ + { + "drilldown" : "001", + "name" : "#001", + "y" : 132 + }, + { + "y" : 104, + "drilldown" : "002", + "name" : "#002" + }, + { + "drilldown" : "003", + "name" : "#003", + "y" : 67 + }, + { + "name" : "#004", + "drilldown" : "004", + "y" : 86 + }, + { + "drilldown" : "005", + "name" : "#005", + "y" : 66 + }, + { + "drilldown" : "006", + "name" : "#006", + "y" : 48 + }, + { + "drilldown" : "007", + "name" : "#007", + "y" : 56 + }, + { + "name" : "#008", + "drilldown" : "008", + "y" : 70 + }, + { + "y" : 68, + "drilldown" : "009", + "name" : "#009" + }, + { + "drilldown" : "010", + "y" : 60, + "name" : "#010" + }, + { + "name" : "#011", + "drilldown" : "011", + "y" : 78 + }, + { + "drilldown" : "012", + "y" : 83, + "name" : "#012" + }, + { + "drilldown" : "013", + "y" : 76, + "name" : "#013" + }, + { + "drilldown" : "014", + "name" : "#014", + "y" : 96 + }, + { + "drilldown" : "015", + "y" : 93, + "name" : "#015" + }, + { + "y" : 66, + "drilldown" : "016", + "name" : "#016" + }, + { + "name" : "#017", + "drilldown" : "017", + "y" : 79 + }, + { + "drilldown" : "018", + "name" : "#018", + "y" : 76 + }, + { + "name" : "#019", + "drilldown" : "019", + "y" : 95 + }, + { + "y" : 95, + "drilldown" : "020", + "name" : "#020" + }, + { + "drilldown" : "021", + "name" : "#021", + "y" : 67 + }, + { + "name" : "#022", + "drilldown" : "022", + "y" : 63 + }, + { + "drilldown" : "023", + "name" : "#023", + "y" : 91 + }, + { + "name" : "#024", + "drilldown" : "024", + "y" : 70 + }, + { + "y" : 55, + "drilldown" : "025", + "name" : "#025" + }, + { + "name" : "#026", + "drilldown" : "026", + "y" : 70 + }, + { + "y" : 58, + "drilldown" : "027", + "name" : "#027" + }, + { + "name" : "#028", + "drilldown" : "028", + "y" : 78 + }, + { + "y" : 76, + "drilldown" : "029", + "name" : "#029" + }, + { + "drilldown" : "030", + "name" : "#030", + "y" : 114 + }, + { + "drilldown" : "031", + "name" : "#031", + "y" : 84 + }, + { + "name" : "#032", + "drilldown" : "032", + "y" : 44 + } + ] + } + ], + "legend" : { + "enabled" : "false" }, "yAxis" : { "title" : { "text" : "Total Solutions" } }, + "tooltip" : { + "headerFormat" : "<span style=\"font-size:11px\"></span>", + "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>", + "followPointer" : "true" + }, "plotOptions" : { "series" : { + "borderWidth" : 0, "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - }, - "borderWidth" : 0 + "enabled" : 1, + "format" : "{point.y}" + } } }, - "chart" : { - "type" : "column" - }, "drilldown" : { "series" : [ { - "name" : "001", "data" : [ [ "Perl 5", @@ -42,10 +218,10 @@ 11 ] ], + "name" : "001", "id" : "001" }, { - "name" : "002", "data" : [ [ "Perl 5", @@ -60,10 +236,10 @@ 9 ] ], + "name" : "002", "id" : "002" }, { - "name" : "003", "data" : [ [ "Perl 5", @@ -78,7 +254,8 @@ 9 ] ], - "id" : "003" + "id" : "003", + "name" : "003" }, { "data" : [ @@ -99,7 +276,6 @@ "id" : "004" }, { - "id" : "005", "data" : [ [ "Perl 5", @@ -114,11 +290,10 @@ 11 ] ], + "id" : "005", "name" : "005" }, { - "id" : "006", - "name" : "006", "data" : [ [ "Perl 5", @@ -132,10 +307,11 @@ "Blog", 7 ] - ] + ], + "name" : "006", + "id" : "006" }, { - "name" : "007", "data" : [ [ "Perl 5", @@ -150,9 +326,11 @@ 10 ] ], - "id" : "007" + "id" : "007", + "name" : "007" }, { + "name" : "008", "id" : "008", "data" : [ [ @@ -167,12 +345,9 @@ "Blog", 12 ] - ], - "name" : "008" + ] }, { - "id" : "009", - "name" : "009", "data" : [ [ "Perl 5", @@ -186,10 +361,13 @@ "Blog", 13 ] - ] + ], + "name" : "009", + "id" : "009" }, { "name" : "010", + "id" : "010", "data" : [ [ "Perl 5", @@ -203,8 +381,7 @@ "Blog", 11 ] - ], - "id" : "010" + ] }, { "data" : [ @@ -225,8 +402,6 @@ "id" : "011" }, { - "id" : "012", - "name" : "012", "data" : [ [ "Perl 5", @@ -240,10 +415,11 @@ "Blog", 11 ] - ] + ], + "name" : "012", + "id" : "012" }, { - "id" : "013", "data" : [ [ "Perl 5", @@ -258,7 +434,8 @@ 13 ] ], - "name" : "013" + "name" : "013", + "id" : "013" }, { "id" : "014", @@ -279,7 +456,6 @@ ] }, { - "id" : "015", "data" : [ [ "Perl 5", @@ -294,9 +470,11 @@ 15 ] ], - "name" : "015" + "name" : "015", + "id" : "015" }, { + "name" : "016", "id" : "016", "data" : [ [ @@ -311,10 +489,10 @@ "Blog", 12 ] - ], - "name" : "016" + ] }, { + "name" : "017", "id" : "017", "data" : [ [ @@ -329,11 +507,9 @@ "Blog", 12 ] |
