diff options
| -rw-r--r-- | challenge-021/duane-powell/perl5/ch-1.pl | 77 | ||||
| -rw-r--r-- | challenge-021/duane-powell/perl5/ch-2.pl | 41 | ||||
| -rw-r--r-- | stats/pwc-current.json | 107 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 70 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 342 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 870 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 106 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 28 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 48 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 88 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 266 |
11 files changed, 1088 insertions, 955 deletions
diff --git a/challenge-021/duane-powell/perl5/ch-1.pl b/challenge-021/duane-powell/perl5/ch-1.pl new file mode 100644 index 0000000000..eee3e3a3df --- /dev/null +++ b/challenge-021/duane-powell/perl5/ch-1.pl @@ -0,0 +1,77 @@ +#!/usr/bin/perl +use Modern::Perl; +use bignum qw(e); +use Math::BigFloat; +Math::BigFloat->precision(-50); + +# write a script to calculate e https://en.wikipedia.org/wiki/E_(mathematical_constant) +# e, Euler's number, 2.71828182845904523536028747135266249775724709369995 + +sub factorial { + my $f = 1; + map { $f *= $_ } ( 1 .. shift ); + return $f; +} + +sub e_factorial { + my $e = 0; + map { $e += 1/factorial($_) } ( 0 .. shift ); + return $e; +} + +sub brothers { + my $b = 0; + map { $b += (2 * $_ + 2) / factorial(2 * $_ + 1) } ( 0 .. shift ); + return $b; +} + +sub e_brothers { + my $b = shift; + my $e = brothers($b); + return $e; +} + +sub e_limit_n { + my $n = shift; + return ( 1 + 1/$n ) ** $n; +} + +sub e_limit_t { + my $t = shift; + return ( 1 + $t ) ** (1/$t); +} + + +my $e = 2.71828182845904523536028747135266249775724709369995; +say $e, " e constant from wiki"; + +$e = e(); +say $e, " e from perl module bignum"; + +my $n = 40; +$e = e_factorial($n); +say $e, " e calculated from $n factorial"; + +$n = 20; +$e = e_brothers($n); +say $e, " e calculated from brothers, $n steps"; + +$n = 100000; +$e = e_limit_n($n); +say $e, " e calculated as a limit n approaching infinity $n"; + +$n = .00001; +$e = e_limit_t($n); +say $e, " e calculated as a limit t approaching zero $n"; + + +__END__ + +./ch1.pl +2.71828182845904523536028747135266249775724709369995 e constant from wiki +2.71828182845904523536028747135266249775700000000000 e from perl module bignum +2.71828182845904523536028747135266249775724709369992 e calculated from 40 factorial +2.71828182845904523536028747135266249775724709369997 e calculated from brothers, 20 steps +2.71826823717448966803506482442604644797444693267782 e calculated as a limit n approaching infinity 100000 +2.71826823717448966803506482442604644797444693267782 e calculated as a limit t approaching zero 0.00001 + diff --git a/challenge-021/duane-powell/perl5/ch-2.pl b/challenge-021/duane-powell/perl5/ch-2.pl new file mode 100644 index 0000000000..fccd7934d9 --- /dev/null +++ b/challenge-021/duane-powell/perl5/ch-2.pl @@ -0,0 +1,41 @@ +#!/usr/bin/perl +use Modern::Perl; +use URI qw(canonical); + +# take a list of urls and say their normal forms + +my @url = qw( +HTTP://www.Example.com/ +HTTP://www.example.COM:80/ +https://www.example.com/ +https://www.example.com:443/ +http://www.example.com/a%c2%b1b +http://www.example.com/%7Eusername/ +http://www.example.com:80/bar.html +); + +my %normal_url; +foreach my $url (@url) { + push @{ $normal_url{ URI->new($url)->canonical() } }, $url; +} + +foreach my $url ( sort {$a cmp $b} (keys %normal_url) ) { + say $url; + foreach ( sort {$a cmp $b} @{ $normal_url{$url} } ) { + say "\t$_"; + } +} + +__END__ + +./ch2.pl +http://www.example.com/ + HTTP://www.Example.com/ + http://www.example.com:80/ +http://www.example.com/a%C2%B1b + http://www.example.com/a%c2%b1b +http://www.example.com/bar.html + http://www.example.com:80/bar.html +http://www.example.com/~username/ + http://www.example.com/%7Eusername/ + diff --git a/stats/pwc-current.json b/stats/pwc-current.json index de7063ccfb..d9be91bcde 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,72 +1,84 @@ { + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "xAxis" : { + "type" : "category" + }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + } + } + }, + "subtitle" : { + "text" : "[Champions: 5] Last updated at 2019-08-13 15:25:44 GMT" + }, + "title" : { + "text" : "Perl Weekly Challenge - 021" + }, "series" : [ { + "name" : "Perl Weekly Challenge - 021", + "colorByPoint" : 1, "data" : [ { "y" : 2, - "name" : "Dave Cross", - "drilldown" : "Dave Cross" + "drilldown" : "Dave Cross", + "name" : "Dave Cross" + }, + { + "name" : "Duane Powell", + "drilldown" : "Duane Powell", + "y" : 2 }, { - "y" : 3, "name" : "Roger Bell West", + "y" : 3, "drilldown" : "Roger Bell West" }, { - "y" : 1, "name" : "Simon Proctor", + "y" : 1, "drilldown" : "Simon Proctor" }, { "name" : "Steven Wilson", - "y" : 1, - "drilldown" : "Steven Wilson" + "drilldown" : "Steven Wilson", + "y" : 1 } - ], - "name" : "Perl Weekly Challenge - 021", - "colorByPoint" : 1 + ] } ], - "subtitle" : { - "text" : "[Champions: 4] Last updated at 2019-08-13 12:02:27 GMT" - }, - "title" : { - "text" : "Perl Weekly Challenge - 021" - }, - "legend" : { - "enabled" : 0 - }, - "xAxis" : { - "type" : "category" - }, "chart" : { "type" : "column" }, - "tooltip" : { - "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/>", - "followPointer" : 1 - }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - }, - "borderWidth" : 0 - } - }, "drilldown" : { "series" : [ { "id" : "Dave Cross", + "name" : "Dave Cross", "data" : [ [ "Perl 5", 2 ] - ], - "name" : "Dave Cross" + ] + }, + { + "id" : "Duane Powell", + "name" : "Duane Powell", + "data" : [ + [ + "Perl 5", + 2 + ] + ] }, { "data" : [ @@ -79,34 +91,37 @@ 1 ] ], - "name" : "Roger Bell West", - "id" : "Roger Bell West" + "id" : "Roger Bell West", + "name" : "Roger Bell West" }, { - "name" : "Simon Proctor", "data" : [ [ "Perl 6", 1 ] ], - "id" : "Simon Proctor" + "id" : "Simon Proctor", + "name" : "Simon Proctor" }, { - "id" : "Steven Wilson", "data" : [ [ "Perl 5", 1 ] ], + "id" : "Steven Wilson", "name" : "Steven Wilson" } ] }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } + "legend" : { + "enabled" : 0 + }, + "tooltip" : { + "followPointer" : 1, + "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/>" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 3a0a19cb40..955f9cbcd2 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,18 +1,37 @@ { - "yAxis" : { - "title" : { - "text" : null + "tooltip" : { + "pointFormat" : "<b>{point.y:.0f}</b>" + }, + "xAxis" : { + "labels" : { + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + } }, - "min" : 0 + "type" : "category" }, "title" : { "text" : "Perl Weekly Challenge Contributions - 2019" }, - "subtitle" : { - "text" : "Last updated at 2019-08-13 12:02:39 GMT" + "legend" : { + "enabled" : "false" }, "series" : [ { + "name" : "Contributions", + "dataLabels" : { + "enabled" : "true", + "format" : "{point.y:.0f}", + "color" : "#FFFFFF", + "rotation" : -90, + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + }, + "align" : "right", + "y" : 10 + }, "data" : [ [ "Blog", @@ -20,44 +39,25 @@ ], [ "Perl 5", - 853 + 855 ], [ "Perl 6", 506 ] - ], - "dataLabels" : { - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - }, - "format" : "{point.y:.0f}", - "enabled" : "true", - "rotation" : -90, - "align" : "right", - "color" : "#FFFFFF", - "y" : 10 - }, - "name" : "Contributions" + ] } ], - "chart" : { - "type" : "column" - }, - "xAxis" : { - "type" : "category", - "labels" : { - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - } + "yAxis" : { + "min" : 0, + "title" : { + "text" : null } }, - "tooltip" : { - "pointFormat" : "<b>{point.y:.0f}</b>" + "chart" : { + "type" : "column" }, - "legend" : { - "enabled" : "false" + "subtitle" : { + "text" : "Last updated at 2019-08-13 15:26:15 GMT" } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index a54439fce7..8452294033 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,11 +1,130 @@ { + "title" : { + "text" : "Perl Weekly Challenge Language" + }, + "series" : [ + { + "name" : "Perl Weekly Challenge Languages", + "data" : [ + { + "drilldown" : "001", + "name" : "#001", + "y" : 123 + }, + { + "drilldown" : "002", + "name" : "#002", + "y" : 104 + }, + { + "y" : 66, + "drilldown" : "003", + "name" : "#003" + }, + { + "y" : 84, + "drilldown" : "004", + "name" : "#004" + }, + { + "name" : "#005", + "drilldown" : "005", + "y" : 66 + }, + { + "y" : 47, + "name" : "#006", + "drilldown" : "006" + }, + { + "y" : 54, + "name" : "#007", + "drilldown" : "007" + }, + { + "drilldown" : "008", + "name" : "#008", + "y" : 67 + }, + { + "y" : 65, + "drilldown" : "009", + "name" : "#009" + }, + { + "y" : 58, + "drilldown" : "010", + "name" : "#010" + }, + { + "y" : 77, + "name" : "#011", + "drilldown" : "011" + }, + { + "drilldown" : "012", + "name" : "#012", + "y" : 81 + }, + { + "drilldown" : "013", + "name" : "#013", + "y" : 74 + }, + { + "y" : 94, + "drilldown" : "014", + "name" : "#014" + }, + { + "y" : 90, + "name" : "#015", + "drilldown" : "015" + }, + { + "y" : 64, + "drilldown" : "016", + "name" : "#016" + }, + { + "y" : 77, + "name" : "#017", + "drilldown" : "017" + }, + { + "y" : 73, + "name" : "#018", + "drilldown" : "018" + }, + { + "y" : 92, + "drilldown" : "019", + "name" : "#019" + }, + { + "y" : 89, + "drilldown" : "020", + "name" : "#020" + }, + { + "y" : 9, + "drilldown" : "021", + "name" : "#021" + } + ], + "colorByPoint" : "true" + } + ], + "legend" : { + "enabled" : "false" + }, "plotOptions" : { "series" : { + "borderWidth" : 0, "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - }, - "borderWidth" : 0 + "enabled" : 1, + "format" : "{point.y}" + } } }, "tooltip" : { @@ -13,10 +132,13 @@ "followPointer" : "true", "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>" }, + "xAxis" : { + "type" : "category" + }, "drilldown" : { "series" : [ { - "id" : "001", + "name" : "001", "data" : [ [ "Perl 5", @@ -31,7 +153,7 @@ 10 ] ], - "name" : "001" + "id" : "001" }, { "data" : [ @@ -48,12 +170,10 @@ 9 ] ], - "name" : "002", - "id" : "002" + "id" : "002", + "name" : "002" }, { - "id" : "003", - "name" : "003", "data" : [ [ "Perl 5", @@ -67,10 +187,11 @@ "Blog", 8 ] - ] + ], + "id" : "003", + "name" : "003" }, { - "id" : "004", "name" : "004", "data" : [ [ @@ -85,9 +206,11 @@ "Blog", 9 ] - ] + ], + "id" : "004" }, { + "id" : "005", "data" : [ [ "Perl 5", @@ -102,12 +225,9 @@ 11 ] ], - "name" : "005", - "id" : "005" + "name" : "005" }, { - "id" : "006", - "name" : "006", "data" : [ [ "Perl 5", @@ -121,10 +241,11 @@ "Blog", 6 ] - ] + ], + "id" : "006", + "name" : "006" }, { - "id" : "007", "data" : [ [ "Perl 5", @@ -139,10 +260,10 @@ 8 ] ], + "id" : "007", "name" : "007" }, { - "name" : "008", "data" : [ [ "Perl 5", @@ -157,9 +278,11 @@ 9 ] ], - "id" : "008" + "id" : "008", + "name" : "008" }, { + "name" : "009", "data" : [ [ "Perl 5", @@ -174,11 +297,9 @@ 11 ] ], - "name" : "009", "id" : "009" }, { - "name" : "010", "data" : [ [ "Perl 5", @@ -193,7 +314,8 @@ 9 ] ], - "id" : "010" + "id" : "010", + "name" : "010" }, { "id" : "011", @@ -214,7 +336,6 @@ "name" : "011" }, { - "name" : "012", "data" : [ [ "Perl 5", @@ -229,9 +350,11 @@ 9 ] ], - "id" : "012" + "id" : "012", + "name" : "012" }, { + "name" : "013", "id" : "013", "data" : [ [ @@ -246,8 +369,7 @@ "Blog", 11 ] - ], - "name" : "013" + ] }, { "data" : [ @@ -264,10 +386,11 @@ 13 ] ], - "name" : "014", - "id" : "014" + "id" : "014", + "name" : "014" }, { + "name" : "015", "data" : [ [ "Perl 5", @@ -282,10 +405,10 @@ 12 ] ], - "name" : "015", "id" : "015" }, { + "id" : "016", "data" : [ [ "Perl 5", @@ -300,12 +423,9 @@ 10 ] ], - "name" : "016", - "id" : "016" + "name" : "016" }, { - "id" : "017", - "name" : "017", "data" : [ [ "Perl 5", @@ -319,11 +439,11 @@ "Blog", 10 ] - ] + ], + "id" : "017", + "name" : "017" }, { - "id" : "018", - "name" : "018", "data" : [ [ "Perl 5", @@ -337,10 +457,11 @@ "Blog", 11 ] - ] + ], + "id" : "018", + "name" : "018" }, { - "name" : "019", "data" : [ [ "Perl 5", @@ -355,11 +476,11 @@ 10 ] ], - "id" : "019" + "id" : "019", + "name" : "019" }, { "id" : "020", - "name" : "020", "data" : [ [ "Perl 5", @@ -373,13 +494,14 @@ "Blog", 9 ] - ] + ], + "name" : "020" }, { "data" : [ [ "Perl 5", - 5 + 7 ], [ "Perl 6", @@ -390,142 +512,20 @@ 0 ] ], - "name" : "021", - "id" : "021" + "id" : "021", + "name" : "021" } ] }, - "legend" : { - "enabled" : "false" + "chart" : { + "type" : "column" }, "yAxis" : { "title" : { "text" : "Total Solutions" } }, - "series" : [ - { - "colorByPoint" : "true", - "name" : "Perl Weekly Challenge Languages", - "data" : [ - { - "name" : "#001", - "drilldown" : "001", - "y" : 123 - }, - { - "name" : "#002", - "drilldown" : "002", - "y" : 104 - }, - { - "drilldown" : "003", - "y" : 66, - "name" : "#003" - }, - { - "name" : "#004", - "drilldown" : "004", - "y" : 84 - }, - { - "name" : "#005", - "y" : 66, - "drilldown" : "005" - }, - { - "y" : 47, - "drilldown" : "006", - "name" : "#006" - }, - { - "name" : "#007", - "y" : 54, - "drilldown" : "007" - }, - { - "name" : "#008", - "y" : 67, - "drilldown" : "008" - }, - { - "y" : 65, - "drilldown" : "009", - "name" : "#009" - }, - { - "y" : 58, - "drilldown" : "010", - "name" : "#010" - }, - { - "name" : "#011", - "drilldown" : "011", - "y" : 77 - }, - { - "name" : "#012", - "y" : 81, - "drilldown" : "012" - }, - { - "y" : 74, - "drilldown" : "013", - "name" : "#013" - }, - { - "name" : "#014", - "drilldown" : "014", - "y" : 94 - }, - { - "drilldown" : "015", - "y" : 90, - "name" : "#015" - }, - { - "drilldown" : "016", - "y" : 64, - "name" : "#016" - }, - { - "drilldown" : "017", - "y" : 77, - "name" : "#017" - }, - { - "name" : "#018", - "drilldown" : "018", - "y" : 73 - }, - { - "drilldown" : "019", - "y" : 92, - "name" : "#019" - }, - { - "drilldown" : "020", - "y" : 89, - "name" : "#020" - }, - { - "y" : 7, - "drilldown" : "021", - "name" : "#021" - } - ] - } - ], - "title" : { - "text" : "Perl Weekly Challenge Language" - }, "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2019-08-13 12:02:39 GMT" - }, - "chart" : { - "type" : "column" - }, - "xAxis" : { - "type" : "category" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2019-08-13 15:26:15 GMT" } } diff --git a/stats/pwc-leaders.json b/stats/pwc-leaders.json index c9bca2e243..1a5a993e02 100644 --- a/stats/pwc-leaders.json +++ b/stats/pwc-leaders.json @@ -1,329 +1,61 @@ { - "legend" : { - "enabled" : "false" - }, - "xAxis" : { - "type" : "category" - }, - "chart" : { - "type" : "column" - }, - "series" : [ - { - "name" : "Perl Weekly Challenge Leaders", - "colorByPoint" : "true", - "data" : [ - { - "drilldown" : "Joelle Maslak", - "name" : "#1: Joelle Maslak", - "y" : 216 - }, - { - "drilldown" : "Laurent Rosenfeld", - "y" : 208, - "name" : "#2: Laurent Rosenfeld" - }, - { - "y" : 172, - "name" : "#3: Jaldhar H. Vyas", - "drilldown" : "Jaldhar H. Vyas" - }, - { - "drilldown" : "Ruben Westerberg", - "y" : 148, - "name" : "#4: Ruben Westerberg" - }, - { - "y" : 130, - "name" : "#5: Athanasius", - "drilldown" : "Athanasius" - }, - { - "y" : 126, - "name" : "#6: Adam Russell", - "drilldown" : "Adam Russell" - }, - { - "drilldown" : "Arne Sommer", - "y" : 112, - "name" : "#7: Arne Sommer" - }, - { - "y" : 98, - "name" : "#8: E. Choroba", - "drilldown" : "E. Choroba" - }, - { - "drilldown" : "Francis Whittle", - "y" : 92, - "name" : "#9: Francis Whittle" - }, - { - "y" : 90, - "name" : "#10: Simon Proctor", - "drilldown" : "Simon Proctor" - }, - { - "drilldown" : "Kian-Meng Ang", - "name" : "#11: Kian-Meng Ang", - "y" : 88 - }, - { - "drilldown" : "Dave Jacoby", - "y" : 86, - "name" : "#12: Dave Jacoby" - }, - { - "drilldown" : "Feng Chang", - "y" : 80, - "name" : "#13: Feng Chang" - }, - { - "drilldown" : "Andrezgz", - "name" : "#14: Andrezgz", - "y" : 76 - }, - { - "drilldown" : "Gustavo Chaves", - "y" : 72, - "name" : "#15: Gustavo Chaves" - }, - { - "drilldown" : "Yozen Hernandez", - "name" : "#16: Yozen Hernandez", - "y" : 70 - }, - { - "drilldown" : "Daniel Mantovani", - "y" : 68, - "name" : "#17: Daniel Mantovani" - }, - { - "y" : 68, - "name" : "#18: Duncan C. White", - "drilldown" : "Duncan C. White" - }, - { - "drilldown" : "Steven Wilson", - "y" : 68, - "name" : "#19: Steven Wilson" - }, - { - "y" : 56, - "name" : "#20: Jo Christian Oterhals", - "drilldown" : "Jo Christian Oterhals" - }, - { - "y" : 50, - "name" : "#21: Roger Bell West", - "drilldown" : "Roger Bell West" - }, - { - "drilldown" : "Mark Senn", - "name" : "#22: Mark Senn", - "y" : 46 - }, - { - "y" : 44, - "name" : "#23: Dr James A. Smith", - "drilldown" : "Dr James A. Smith" - }, - { - "name" : "#24: Guillermo Ramos", - "y" : 42, - "drilldown" : "Guillermo Ramos" - }, - { - "drilldown" : "Ozzy", - "name" : "#25: Ozzy", - "y" : 42 - }, - { - "drilldown" : "Veesh Goldman", - "y" : 42, - "name" : "#26: Veesh Goldman" - }, - { - "drilldown" : "Kevin Colyer", - "name" : "#27: Kevin Colyer", - "y" : 34 - }, - { - "name" : "#28: Lubos Kolouch", - "y" : 34, - "drilldown" : "Lubos Kolouch" - }, - { - "y" : 32, - "name" : "#29: Nick Logan", - "drilldown" : "Nick Logan" - }, - { - "drilldown" : "Lars Balker", - "name" : "#30: Lars Balker", - "y" : 28 - }, - { - "name" : "#31: Noud", - "y" : 28, - "drilldown" : "Noud" - }, - { - "name" : "#32: Duane Powell", - "y" : 26, - "drilldown" : "Duane Powell" - }, - { - "y" : 24, - "name" : "#33: Jaime Corchado", - "drilldown" : "Jaime Corchado" - }, - { - "drilldown" : "Maxim Nechaev", - "name" : "#34: Maxim Nechaev", - "y" : 24 - }, - { - "y" : 22, - "name" : "#35: Alicia Bielsa", - "drilldown" : "Alicia Bielsa" - }, - { - "y" : 20, - "name" : "#36: Doug Schrag", - "drilldown" : "Doug Schrag" - }, - { - "y" : 18, - "name" : "#37: Neil Bowers", - "drilldown" : "Neil Bowers" - }, - { - "drilldown" : "Dave Cross", - "y" : 16, - "name" : "#38: Dave Cross" |
