From 4d2123b57d0adb3e71526802aa840f54f96a9a7d Mon Sep 17 00:00:00 2001 From: "Jaldhar H. Vyas" Date: Sun, 21 Aug 2022 18:37:21 -0400 Subject: Challenge 178 by Jaldhar H. Vyas --- challenge-178/jaldhar-h-vyas/blog.txt | 1 + challenge-178/jaldhar-h-vyas/perl/ch-1.pl | 28 ++++++++++++++ challenge-178/jaldhar-h-vyas/perl/ch-2.pl | 60 +++++++++++++++++++++++++++++ challenge-178/jaldhar-h-vyas/raku/ch-1.sh | 3 ++ challenge-178/jaldhar-h-vyas/raku/ch-2.raku | 56 +++++++++++++++++++++++++++ 5 files changed, 148 insertions(+) create mode 100644 challenge-178/jaldhar-h-vyas/blog.txt create mode 100755 challenge-178/jaldhar-h-vyas/perl/ch-1.pl create mode 100755 challenge-178/jaldhar-h-vyas/perl/ch-2.pl create mode 100755 challenge-178/jaldhar-h-vyas/raku/ch-1.sh create mode 100755 challenge-178/jaldhar-h-vyas/raku/ch-2.raku diff --git a/challenge-178/jaldhar-h-vyas/blog.txt b/challenge-178/jaldhar-h-vyas/blog.txt new file mode 100644 index 0000000000..b71a1d2383 --- /dev/null +++ b/challenge-178/jaldhar-h-vyas/blog.txt @@ -0,0 +1 @@ +https://www.braincells.com/perl/2022/08/perl_weekly_challenge_week_178.html \ No newline at end of file diff --git a/challenge-178/jaldhar-h-vyas/perl/ch-1.pl b/challenge-178/jaldhar-h-vyas/perl/ch-1.pl new file mode 100755 index 0000000000..ef0f386183 --- /dev/null +++ b/challenge-178/jaldhar-h-vyas/perl/ch-1.pl @@ -0,0 +1,28 @@ +#!/usr/bin/perl +use 5.030; +use warnings; +use Math::Prime::Util qw/ todigits /; +use POSIX qw/ floor /; + +# based on http://www.rosettacode.org/wiki/Negative_base_numbers#Perl +sub quaterImaginaryBase { + my($n) = @_; + my @result; + my $r = 0; + + while ($n) { + $r = $n % -4; + $n = floor($n / -4); + if ($r < 0) { + $n++; + $r += 4; + } + push @result, todigits($r, 4) || 0; + } + + return join '0', reverse @result; +} + +my ($n) = shift // die "Need an integer\n"; + +say quaterImaginaryBase($n); \ No newline at end of file diff --git a/challenge-178/jaldhar-h-vyas/perl/ch-2.pl b/challenge-178/jaldhar-h-vyas/perl/ch-2.pl new file mode 100755 index 0000000000..1007e7e389 --- /dev/null +++ b/challenge-178/jaldhar-h-vyas/perl/ch-2.pl @@ -0,0 +1,60 @@ +#!/usr/bin/perl +use 5.030; +use warnings; +use DateTime; +use English; + +sub nextBusinessDay { + my ($dt) = @_; + my $next = $dt->clone; + if ($dt->day_of_week == 5) { + $next->add(days => 3); + } elsif ($dt->day_of_week == 6) { + $next->add(days => 2); + } else { + $next->add(days => 1); + } + + return $next->set(hour => 9, minute => 0) +} + +sub usage() { + print<<"-USAGE-"; +Usage: + $PROGRAM_NAME + + a datetime string in the format YYYY-MM-DD HH:MM + a duration as a decimal number of hours +-USAGE- + exit 0; +} + +if (scalar @ARGV != 2) { + usage; +} + +my ($timestamp, $duration) = @ARGV; + +my ($year, $month, $day, $hour, $minute); +if ($timestamp =~ / ^ (\d{4}) [-] (\d{2}) \- (\d{2}) [ ] (\d{2}) [:] (\d{2}) $/msx) { + ($year, $month, $day, $hour, $minute) = @{^CAPTURE}; +} else { + die "Bad timestamp format\n"; +} + +my $start = DateTime->new( + year => $year, + month => $month, + day => $day, + hour => $hour, + minute => $minute +); + +my $endOfDay = $start->clone->set(hour => 18, minute => 0); +my $endOfDuration = $start->clone->add(hours => $duration); +if ($endOfDuration <= $endOfDay) { + say $endOfDuration->strftime('%F %H:%M'); +} else { + my $difference = $endOfDuration - $endOfDay; + say nextBusinessDay($start)->add($difference)->strftime('%F %H:%M'); +} diff --git a/challenge-178/jaldhar-h-vyas/raku/ch-1.sh b/challenge-178/jaldhar-h-vyas/raku/ch-1.sh new file mode 100755 index 0000000000..101ac3837b --- /dev/null +++ b/challenge-178/jaldhar-h-vyas/raku/ch-1.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +raku -MBase::Any -e 'to-base(@*ARGS[0].Int, 2i).say;' $@ \ No newline at end of file diff --git a/challenge-178/jaldhar-h-vyas/raku/ch-2.raku b/challenge-178/jaldhar-h-vyas/raku/ch-2.raku new file mode 100755 index 0000000000..d5a9bf5e8c --- /dev/null +++ b/challenge-178/jaldhar-h-vyas/raku/ch-2.raku @@ -0,0 +1,56 @@ +#!/usr/bin/raku + +sub format($self) { + sprintf "%04d-%02d-%02d %02d:%02d", .year, .month, .day, .hour, .minute + given $self; +} + +sub nextBusinessDay(DateTime $dt) { + my $next = DateTime.new( + date => $dt.Date, + hour => 9, + minute => 0, + formatter => &format + ); + + if ($dt.day-of-week == 5) { + $next = $next.later(days => 3); + } elsif ($dt.day-of-week == 6) { + $next = $next.later(days => 2); + } else { + $next = $next.later(days => 1); + } + + return $next; +} + +sub MAIN( + Str $timestamp, #= a datetime string in the format YYYY-MM-DD HH:MM + Real $duration #= a duration as a decimal number of hours +) { + my ($year, $month, $day, $hour, $minute); + + if $timestamp.match(/ ^ (\d ** 4) '-' (\d ** 2) '-' (\d ** 2) ' ' (\d ** 2) ':' (\d ** 2) $/) { + ($year, $month, $day, $hour, $minute) = $/.List; + } else { + die "Bad timestamp format"; + } + + my $start = DateTime.new( + year => $year, + month => $month, + day => $day, + hour => $hour, + minute => $minute, + formatter => &format + ); + + my $endOfDay = DateTime.new(date => $start.Date, hour => 18, minute => 0); + my $endOfDuration = $start.clone.later(seconds => 3_600 * $duration); + if $endOfDuration <= $endOfDay { + say $endOfDuration; + } else { + my $difference = $endOfDuration - $endOfDay; + say nextBusinessDay($start).later(seconds => $difference); + } +} \ No newline at end of file -- cgit From a8948854bc51354c0e663f7126b1e72c4efa3917 Mon Sep 17 00:00:00 2001 From: Luca Ferrari Date: Mon, 22 Aug 2022 09:59:44 +0200 Subject: Task 1 done --- challenge-179/luca-ferrari/raku/ch-1.p6 | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100755 challenge-179/luca-ferrari/raku/ch-1.p6 diff --git a/challenge-179/luca-ferrari/raku/ch-1.p6 b/challenge-179/luca-ferrari/raku/ch-1.p6 new file mode 100755 index 0000000000..9621aaac46 --- /dev/null +++ b/challenge-179/luca-ferrari/raku/ch-1.p6 @@ -0,0 +1,32 @@ +#!raku + +# Perl Weekly Challenge 179 + +sub MAIN( Int $n where { 0 < $n < 1000 } ) { + + my @units = 'first', + 'second', + 'third', + 'foruth', + 'fifth', + 'sixth', + 'seventh', + 'eigth', + 'nineth', + 'tenth'; + + my @teens = 'eleven', 'twelve', 'thriteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', + 'eigtheen', 'nineteen'; + my @non-teens = 'twenty', 'thirty', 'fourty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety'; + + given ( $n ) { + when $_ <= 10 { @units[ $n - 1 ].say; } + when $_ < 20 { @teens[ ( $n - 1 ) % 10 ].say; } + when $_ >= 20 { + say @non-teens[ ( $n / 10 ).Int - 2 ] + ~ ( $n %% 10 ?? '' !! @units[ ( $n % 10 ) - 1 ] ); + } + + } + +} -- cgit From f5fd5b95a4dce33551918494e9026941fd915682 Mon Sep 17 00:00:00 2001 From: Roger Bell_West Date: Mon, 22 Aug 2022 10:00:06 +0100 Subject: Solutions for challenge #179 --- challenge-179/roger-bell-west/javascript/ch-2.js | 35 +++++++++++++++ challenge-179/roger-bell-west/kotlin/ch-2.kt | 34 ++++++++++++++ challenge-179/roger-bell-west/lua/ch-2.lua | 35 +++++++++++++++ challenge-179/roger-bell-west/perl/ch-1.pl | 13 ++++++ challenge-179/roger-bell-west/perl/ch-2.pl | 26 +++++++++++ challenge-179/roger-bell-west/postscript/ch-2.ps | 56 ++++++++++++++++++++++++ challenge-179/roger-bell-west/python/ch-2.py | 23 ++++++++++ challenge-179/roger-bell-west/raku/ch-1.p6 | 11 +++++ challenge-179/roger-bell-west/raku/ch-2.p6 | 21 +++++++++ challenge-179/roger-bell-west/ruby/ch-2.rb | 31 +++++++++++++ challenge-179/roger-bell-west/rust/ch-2.rs | 32 ++++++++++++++ 11 files changed, 317 insertions(+) create mode 100755 challenge-179/roger-bell-west/javascript/ch-2.js create mode 100644 challenge-179/roger-bell-west/kotlin/ch-2.kt create mode 100755 challenge-179/roger-bell-west/lua/ch-2.lua create mode 100755 challenge-179/roger-bell-west/perl/ch-1.pl create mode 100755 challenge-179/roger-bell-west/perl/ch-2.pl create mode 100644 challenge-179/roger-bell-west/postscript/ch-2.ps create mode 100755 challenge-179/roger-bell-west/python/ch-2.py create mode 100755 challenge-179/roger-bell-west/raku/ch-1.p6 create mode 100755 challenge-179/roger-bell-west/raku/ch-2.p6 create mode 100755 challenge-179/roger-bell-west/ruby/ch-2.rb create mode 100755 challenge-179/roger-bell-west/rust/ch-2.rs diff --git a/challenge-179/roger-bell-west/javascript/ch-2.js b/challenge-179/roger-bell-west/javascript/ch-2.js new file mode 100755 index 0000000000..6c4838eed9 --- /dev/null +++ b/challenge-179/roger-bell-west/javascript/ch-2.js @@ -0,0 +1,35 @@ +#! /usr/bin/node + +"use strict" + +function sparkline(nn) { + let bar = []; + for (let bc = 9601; bc <= 9608; bc++) { + bar.push(String.fromCharCode(bc)); + } + let mn = Math.min(...nn); + let mx = Math.max(...nn); + let inscale = mx - mn; + let outscale = bar.length; + let out = ""; + for (let v of nn) { + let va = Math.min(Math.floor((v - mn) / inscale * outscale), + outscale - 1); + out += bar[va]; + } + return out; +} + +if (sparkline([0, 100]) == "▁█") { + process.stdout.write("Pass"); +} else { + process.stdout.write("FAIL"); +} +process.stdout.write(" "); + +if (sparkline([1, 2, 3, 4, 5, 6, 7, 8]) == "▁▂▃▄▅▆▇█") { + process.stdout.write("Pass"); +} else { + process.stdout.write("FAIL"); +} +process.stdout.write("\n"); diff --git a/challenge-179/roger-bell-west/kotlin/ch-2.kt b/challenge-179/roger-bell-west/kotlin/ch-2.kt new file mode 100644 index 0000000000..d970b9aecf --- /dev/null +++ b/challenge-179/roger-bell-west/kotlin/ch-2.kt @@ -0,0 +1,34 @@ +fun sparkline(nn: List): String { + var bar = ArrayList(); + for (bc in 9601..9608) { + bar.add(bc.toChar()) + } + val mn = nn.minOrNull()!! + val mx = nn.maxOrNull()!! + val inscale = mx - mn + val outscale = bar.size + var out = "" + for (v in nn) { + var va = ((v-mn).toDouble()/inscale.toDouble() * outscale.toDouble()).toInt() + if (va > outscale - 1) { + va = outscale - 1 + } + out += bar[va] + } + return out +} + +fun main() { + if (sparkline(listOf(0,100)) == "▁█") { + print("Pass") + } else { + print("FAIL") + } + print(" ") + if (sparkline(listOf(1, 2, 3, 4, 5, 6, 7, 8)) == "▁▂▃▄▅▆▇█") { + print("Pass") + } else { + print("FAIL") + } + println("") +} diff --git a/challenge-179/roger-bell-west/lua/ch-2.lua b/challenge-179/roger-bell-west/lua/ch-2.lua new file mode 100755 index 0000000000..9225e21744 --- /dev/null +++ b/challenge-179/roger-bell-west/lua/ch-2.lua @@ -0,0 +1,35 @@ +#! /usr/bin/lua + +function sparkline(nn) + local bar = {} + for c = 0x2581, 0x2588 do + table.insert(bar, utf8.char(c)) + end + local mn = math.min(table.unpack(nn)) + local mx = math.max(table.unpack(nn)) + local inscale = mx - mn + local outscale = #bar + local out = "" + for k,v in pairs(nn) do + va = 1 + math.floor((v - mn) / inscale * outscale) + if va > outscale then + va = outscale + end + out = out .. bar[va] + end + return out +end + +if sparkline({0, 10}) == "▁█" then + io.write("Pass") +else + io.write("FAIL") +end +io.write(" ") + +if sparkline({1, 2, 3, 4, 5, 6, 7, 8}) == "▁▂▃▄▅▆▇█" then + io.write("Pass") +else + io.write("FAIL") +end +print("") diff --git a/challenge-179/roger-bell-west/perl/ch-1.pl b/challenge-179/roger-bell-west/perl/ch-1.pl new file mode 100755 index 0000000000..9e762785e4 --- /dev/null +++ b/challenge-179/roger-bell-west/perl/ch-1.pl @@ -0,0 +1,13 @@ +#! /usr/bin/perl + +use strict; +use warnings; +use experimental 'signatures'; + +use Lingua::EN::Numbers qw(num2en_ordinal); + +use Test::More tests => 3; + +is(num2en_ordinal(11),"eleventh",'example 1'); +is(num2en_ordinal(62),"sixty-second",'example 2'); +is(num2en_ordinal(99),"ninety-ninth",'example 3'); diff --git a/challenge-179/roger-bell-west/perl/ch-2.pl b/challenge-179/roger-bell-west/perl/ch-2.pl new file mode 100755 index 0000000000..6538a25638 --- /dev/null +++ b/challenge-179/roger-bell-west/perl/ch-2.pl @@ -0,0 +1,26 @@ +#! /usr/bin/perl + +use strict; +use warnings; +use experimental 'signatures'; + +use utf8; +use List::Util qw(min max); + +use Test::More tests => 2; + +is(sparkline([0, 100]), "▁█", 'example 1'); + +is(sparkline([1, 2, 3, 4, 5, 6, 7, 8]), "▁▂▃▄▅▆▇█", 'example 1'); + +sub sparkline($nn) { + my @bar = map {chr($_)} (0x2581..0x2588); + my $mn = min(@{$nn}); + my $mx = max(@{$nn}); + my $inscale = $mx - $mn; + my $outscale = scalar @bar; + return join('',map {$bar[min( + int(($_ - $mn) / $inscale * $outscale), + $outscale - 1 + )]} @{$nn}); +} diff --git a/challenge-179/roger-bell-west/postscript/ch-2.ps b/challenge-179/roger-bell-west/postscript/ch-2.ps new file mode 100644 index 0000000000..1cad0dbdcc --- /dev/null +++ b/challenge-179/roger-bell-west/postscript/ch-2.ps @@ -0,0 +1,56 @@ +%!PS + +% begin included library code +% see https://github.com/Firedrake/postscript-libraries/ +/reduce { % array proc -> value + 2 dict begin + /p exch def + /a exch def + a 0 get + 1 1 a length 1 sub { + a exch get + p + } for + end +} bind def + +/listmax { + { max } reduce +} bind def + +/listmin { + { min } reduce +} bind def + + +% end included library code + +/sparkline { + 9 dict begin + /nn exch def + /bar 8 array def + 0 1 7 { + /i exch def + /cc 3 string def + cc 0 16#e2 put + cc 1 16#96 put + cc 2 16#81 i add put + bar i cc put + } for + /mn nn listmin def + /mx nn listmax def + /inscale mx mn sub def + /outscale bar length def + /out nn length 3 mul string def + 0 1 nn length 1 sub { + /i exch def + out i 3 mul + bar nn i get mn sub inscale div outscale mul cvi outscale 1 sub min get + putinterval + } for + out + end +} bind def + +[ 0 10 ] sparkline print () = +[ 1 2 3 4 5 6 7 8 ] sparkline print () = diff --git a/challenge-179/roger-bell-west/python/ch-2.py b/challenge-179/roger-bell-west/python/ch-2.py new file mode 100755 index 0000000000..73f896e6a7 --- /dev/null +++ b/challenge-179/roger-bell-west/python/ch-2.py @@ -0,0 +1,23 @@ +#! /usr/bin/python3 + +import unittest + +def sparkline(nn): + bar = [chr(bc) for bc in range(9601, 9608+1)] + mn = min(nn) + mx = max(nn) + inscale = mx - mn + outscale = len(bar) + return ''.join(bar[min(int((n-mn) / inscale * outscale),outscale - 1)] for n in nn) + +class TestSparkline(unittest.TestCase): + + def test_ex1(self): + self.assertEqual(sparkline([0, 100]), + "▁█", 'example 1') + + def test_ex2(self): + self.assertEqual(sparkline([1, 2, 3, 4, 5, 6, 7, 8]), + "▁▂▃▄▅▆▇█", 'example 2') + +unittest.main() diff --git a/challenge-179/roger-bell-west/raku/ch-1.p6 b/challenge-179/roger-bell-west/raku/ch-1.p6 new file mode 100755 index 0000000000..9ed24766e0 --- /dev/null +++ b/challenge-179/roger-bell-west/raku/ch-1.p6 @@ -0,0 +1,11 @@ +#! /usr/bin/perl6 + +use Lingua::EN::Numbers; + +use Test; + +plan 3; + +is(ordinal(11),"eleventh",'example 1'); +is(ordinal(62),"sixty-second",'example 2'); +is(ordinal(99),"ninety-ninth",'example 3'); diff --git a/challenge-179/roger-bell-west/raku/ch-2.p6 b/challenge-179/roger-bell-west/raku/ch-2.p6 new file mode 100755 index 0000000000..33b03ae459 --- /dev/null +++ b/challenge-179/roger-bell-west/raku/ch-2.p6 @@ -0,0 +1,21 @@ +#! /usr/bin/perl6 + +use Test; + +plan 2; + +is(sparkline([0, 100]), "▁█", 'example 1'); +is(sparkline([1, 2, 3, 4, 5, 6, 7, 8]), "▁▂▃▄▅▆▇█", 'example 2'); + +sub sparkline(@nn) { + my @bar; + for (0x2581..0x2588) -> $bc { + @bar.push($bc.chr); + } + my $mn = min(@nn); + my $mx = max(@nn); + my $inscale = $mx - $mn; + my $outscale = @bar.elems; + return @nn.map({@bar[min(floor(($_-$mn) / $inscale * $outscale), + $outscale - 1)]}).join(''); +} diff --git a/challenge-179/roger-bell-west/ruby/ch-2.rb b/challenge-179/roger-bell-west/ruby/ch-2.rb new file mode 100755 index 0000000000..191c427b24 --- /dev/null +++ b/challenge-179/roger-bell-west/ruby/ch-2.rb @@ -0,0 +1,31 @@ +#! /usr/bin/ruby +# coding: utf-8 + +require 'test/unit' + +def sparkline(nn) + bar = [] + 9601.upto(9608) do |bc| + bar.push(bc.chr(Encoding::UTF_8)) + end + mn = nn.min + mx = nn.max + inscale = mx - mn + outscale = bar.length + return nn.collect {|n| bar[[ + (((n-mn) * outscale).to_f / inscale.to_f).to_i, + outscale - 1 + ].min]}.join("") +end + +class TestSparkline < Test::Unit::TestCase + + def test_ex1 + assert_equal("▁█", sparkline([0, 100])) + end + + def test_ex2 + assert_equal("▁▂▃▄▅▆▇█", sparkline([1, 2, 3, 4, 5, 6, 7, 8])) + end + +end diff --git a/challenge-179/roger-bell-west/rust/ch-2.rs b/challenge-179/roger-bell-west/rust/ch-2.rs new file mode 100755 index 0000000000..833fcc05bd --- /dev/null +++ b/challenge-179/roger-bell-west/rust/ch-2.rs @@ -0,0 +1,32 @@ +#! /bin/sh +//usr/bin/env rustc --test $0 -o ${0}x && ./${0}x --nocapture; rm -f ${0}x ; exit + +#[test] +fn test_ex1() { + assert_eq!(sparkline(vec![0, 10]), "▁█".to_string()); +} + +#[test] +fn test_ex2() { + assert_eq!(sparkline(vec![1, 2, 3, 4, 5, 6, 7, 8]), "▁▂▃▄▅▆▇█".to_string()); +} + +fn sparkline(nn: Vec) -> String { + let bar = (9601..=9608) + .map(|i| char::from_u32(i).unwrap()) + .collect::>(); + let mn = *nn.iter().min().unwrap(); + let mx = *nn.iter().max().unwrap(); + let inscale = mx - mn; + let outscale = bar.len(); + let mut o = "".to_string(); + for n in nn { + let mut i = + (((n - mn) * outscale as i32) as f64 / (inscale as f64)) as usize; + if i > outscale - 1 { + i = outscale - 1; + } + o.push(bar[i]); + } + o +} -- cgit From 3c232b36f0c6b41f5cc0479ce929375f0012ea99 Mon Sep 17 00:00:00 2001 From: Luca Ferrari Date: Mon, 22 Aug 2022 11:26:15 +0200 Subject: Task 2 done --- challenge-179/luca-ferrari/raku/ch-2.p6 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100755 challenge-179/luca-ferrari/raku/ch-2.p6 diff --git a/challenge-179/luca-ferrari/raku/ch-2.p6 b/challenge-179/luca-ferrari/raku/ch-2.p6 new file mode 100755 index 0000000000..d6fc43fb4d --- /dev/null +++ b/challenge-179/luca-ferrari/raku/ch-2.p6 @@ -0,0 +1,10 @@ +#!raku + +# Perl Weekly Challenge 179 + +sub MAIN( *@n where { @n.grep( * ~~ Int ).elems == @n.elems } ) { + my @symbols = '▁' ... '█'; + my ($min, $max) = @n.min, @n.max; + my @graph = @n.map: { ( $_ - $min ) / ( $max - $min ) * @n.elems }; + @symbols[ @graph ].join.say; +} -- cgit From 4dce5e63a15f7718baabc557d66c067bec6dcd36 Mon Sep 17 00:00:00 2001 From: Luca Ferrari Date: Mon, 22 Aug 2022 11:38:26 +0200 Subject: Task 1 plperl done --- challenge-179/luca-ferrari/postgresql/ch-1.plperl | 53 +++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 challenge-179/luca-ferrari/postgresql/ch-1.plperl diff --git a/challenge-179/luca-ferrari/postgresql/ch-1.plperl b/challenge-179/luca-ferrari/postgresql/ch-1.plperl new file mode 100644 index 0000000000..f50a5b9828 --- /dev/null +++ b/challenge-179/luca-ferrari/postgresql/ch-1.plperl @@ -0,0 +1,53 @@ +-- Perl Weekly Challenge 179 +-- Task 1 + +CREATE SCHEMA IF NOT EXISTS pwc179; + +CREATE OR REPLACE FUNCTION +pwc179.task1_plperl( int ) +RETURNS text +AS $CODE$ + my @units = qw/ + first + second + third + foruth + fifth + sixth + seventh + eigth + nineth + tenth + /; + + my @teens = qw / + eleven + twelve + thriteen + fourteen + fifteen + sixteen + seventeen + eigtheen + nineteen + /; + my @non_teens = qw/ + twenty + thirty + fourty + fifty + sixty + seventy + eighty + ninety + /; + + my ( $n ) = @_; + + return $units[ $n - 1 ] if ( $n <= 10 ); + return $teens[ ( $n - 1 ) % 10 ] if ( $n > 10 && $n < 20 ); + return $non_teens[ ( $n / 10 ) - 2 ] if ( $n >= 20 && $n % 10 == 0 ); + return $non_teens[ ( $n / 10 ) - 2 ] . $units[ ( $n % 10 ) - 1 ] if ( $n > 20 ); + +$CODE$ +LANGUAGE plperl; -- cgit From 8071a002320792cda2be39bde5c8792934527032 Mon Sep 17 00:00:00 2001 From: Luca Ferrari Date: Mon, 22 Aug 2022 11:38:51 +0200 Subject: Fix limit --- challenge-179/luca-ferrari/postgresql/ch-1.plperl | 3 ++- challenge-179/luca-ferrari/raku/ch-1.p6 | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/challenge-179/luca-ferrari/postgresql/ch-1.plperl b/challenge-179/luca-ferrari/postgresql/ch-1.plperl index f50a5b9828..f495dabed6 100644 --- a/challenge-179/luca-ferrari/postgresql/ch-1.plperl +++ b/challenge-179/luca-ferrari/postgresql/ch-1.plperl @@ -43,11 +43,12 @@ AS $CODE$ /; my ( $n ) = @_; - + return 'Cannot spell' if ( $n >= 100 ); return $units[ $n - 1 ] if ( $n <= 10 ); return $teens[ ( $n - 1 ) % 10 ] if ( $n > 10 && $n < 20 ); return $non_teens[ ( $n / 10 ) - 2 ] if ( $n >= 20 && $n % 10 == 0 ); return $non_teens[ ( $n / 10 ) - 2 ] . $units[ ( $n % 10 ) - 1 ] if ( $n > 20 ); + $CODE$ LANGUAGE plperl; diff --git a/challenge-179/luca-ferrari/raku/ch-1.p6 b/challenge-179/luca-ferrari/raku/ch-1.p6 index 9621aaac46..da58bbe2bb 100755 --- a/challenge-179/luca-ferrari/raku/ch-1.p6 +++ b/challenge-179/luca-ferrari/raku/ch-1.p6 @@ -2,7 +2,7 @@ # Perl Weekly Challenge 179 -sub MAIN( Int $n where { 0 < $n < 1000 } ) { +sub MAIN( Int $n where { 0 < $n < 100 } ) { my @units = 'first', 'second', @@ -26,7 +26,7 @@ sub MAIN( Int $n where { 0 < $n < 1000 } ) { say @non-teens[ ( $n / 10 ).Int - 2 ] ~ ( $n %% 10 ?? '' !! @units[ ( $n % 10 ) - 1 ] ); } - + default { "Cannot spell $n".say; } } } -- cgit From a6c87bd08e681702a45eb02d505897169af68865 Mon Sep 17 00:00:00 2001 From: Luca Ferrari Date: Mon, 22 Aug 2022 11:55:40 +0200 Subject: Task 2 plperl done --- challenge-179/luca-ferrari/postgresql/ch-2.plperl | 28 +++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 challenge-179/luca-ferrari/postgresql/ch-2.plperl diff --git a/challenge-179/luca-ferrari/postgresql/ch-2.plperl b/challenge-179/luca-ferrari/postgresql/ch-2.plperl new file mode 100644 index 0000000000..1a45a69416 --- /dev/null +++ b/challenge-179/luca-ferrari/postgresql/ch-2.plperl @@ -0,0 +1,28 @@ +-- Perl Weekly Challenge 179 +-- Task 2 + +CREATE SCHEMA IF NOT EXISTS pwc179; + +CREATE OR REPLACE FUNCTION +pwc179.task2_plperl( int[] ) +RETURNS text +AS $CODE$ + + my ($n) = shift; + my @n; + + my @symbols = map {chr($_)} (0x2581..0x2588); + + my ($min, $max) = (-1,-1); + + # compute min and max over the values + for my $current ( @$n ) { + $max = $current if ( $current > $max ); + $min = $current if ( $min == -1 || $current < $min ); + push @n, $current; + } + + my @graph = map { ( $_ - $min ) / ( $max - $min ) * scalar( @$n ) } @$n; + return join( '', @symbols[ @graph ] ); +$CODE$ +LANGUAGE plperl; -- cgit From bd411541890e1ad0685ce14b690007c8c911ea79 Mon Sep 17 00:00:00 2001 From: Luca Ferrari Date: Mon, 22 Aug 2022 12:08:06 +0200 Subject: Task 1 done in plpgsql --- challenge-179/luca-ferrari/postgresql/ch-1.sql | 79 ++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 challenge-179/luca-ferrari/postgresql/ch-1.sql diff --git a/challenge-179/luca-ferrari/postgresql/ch-1.sql b/challenge-179/luca-ferrari/postgresql/ch-1.sql new file mode 100644 index 0000000000..106916ec2c --- /dev/null +++ b/challenge-179/luca-ferrari/postgresql/ch-1.sql @@ -0,0 +1,79 @@ +-- Perl Weekly Challenge 179 +-- Task 1 + +CREATE SCHEMA IF NOT EXISTS pwc179; + +CREATE TABLE IF NOT EXISTS +pwc179.number2words +( + v int PRIMARY KEY + , t text +); + +TRUNCATE pwc179.number2words; + +INSERT INTO pwc179.number2words +VALUES + ( 1, 'first' ) +, ( 2, 'second' ) +, ( 3, 'third' ) +, ( 4, 'fourth' ) +, ( 5, 'fifth' ) +, ( 6, 'sixth' ) +, ( 7, 'seventh' ) +, ( 8, 'eigth' ) +, ( 9, 'nineth' ) +, ( 10, 'tenth' ) +, ( 11, 'eleventh' ) +, ( 12, 'twelveth' ) +, ( 13, 'thirteenth' ) +, ( 14, 'fourtineenth' ) +, ( 15, 'fifteenth' ) +, ( 16, 'sixteenth' ) +, ( 17, 'seventeenth' ) +, ( 18, 'eigthteenth' ) +, ( 19, 'nineteenth' ) +, ( 20, 'twentyth' ) +, ( 30, 'thirtyth' ) +, ( 40, 'fourtyth' ) +, ( 50, 'fiftyth' ) +, ( 60, 'sixtyth' ) +, ( 70, 'seventyth' ) +, ( 80, 'eightyth' ) +, ( 90, 'ninetyth' ); + + +CREATE OR REPLACE FUNCTION +pwc179.task1_plpgsql( n int ) +RETURNS TEXT +AS $CODE$ + +DECLARE + w text; + s text; +BEGIN + SELECT t + INTO w + FROM pwc179.number2words + WHERE v = n; + + IF FOUND THEN + RETURN w; + ELSE + -- not found, compose the word + SELECT t + INTO w + FROM pwc179.number2words + WHERE v = ( n / 10 )::int; + + SELECT t + INTO s + FROM pwc179.number2words + WHERE v = ( n % 10 )::int; + + RETURN replace( w, 'th', 'ty') || s; + END IF; +END + +$CODE$ +LANGUAGE plpgsql; -- cgit From 8971a969add2550c91565aea416db5dad951ab93 Mon Sep 17 00:00:00 2001 From: Luca Ferrari Date: Mon, 22 Aug 2022 12:29:26 +0200 Subject: Task 2 plpgsql --- challenge-179/luca-ferrari/postgresql/ch-2.sql | 57 ++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 challenge-179/luca-ferrari/postgresql/ch-2.sql diff --git a/challenge-179/luca-ferrari/postgresql/ch-2.sql b/challenge-179/luca-ferrari/postgresql/ch-2.sql new file mode 100644 index 0000000000..10e3b13341 --- /dev/null +++ b/challenge-179/luca-ferrari/postgresql/ch-2.sql @@ -0,0 +1,57 @@ +-- Perl Weekly Challenge 179 +-- Task 2 + +CREATE SCHEMA IF NOT EXISTS pwc179; + +CREATE TABLE IF NOT EXISTS pwc179.symbols +( + v int PRIMARY KEY + , s text +); + +TRUNCATE pwc179.symbols; + +INSERT INTO pwc179.symbols +VALUES +( 0, '▁') +,(1, '▁') +,(2,'▂') +,(3, '▃') +,(4, '▄') +,(5, '▅') +,(6, '▆') +,(7,'▇') +,(8, '█') +,(9, '█'); + + +CREATE OR REPLACE FUNCTION +pwc179.task2_plpgsql( n int[] ) +RETURNS text +AS $CODE$ +DECLARE + c int; + t text; + tt text; + scale_max int; + scale_min int; + scale_count int; +BEGIN + t := ''; + + SELECT min(v), max(v), count(v) + INTO scale_min, scale_max, scale_count + FROM pwc179.symbols; + + FOREACH c IN ARRAY n LOOP + SELECT s + INTO tt + FROM pwc179.symbols + WHERE v = ( ( c - scale_min ) / ( scale_max - scale_min ) ); + t := t || tt; + END LOOP; + + RETURN t; +END +$CODE$ +LANGUAGE plpgsql; -- cgit From c1c28edcf5aea611ca5f5053ae7b1378b5fb6b7b Mon Sep 17 00:00:00 2001 From: Luca Ferrari Date: Mon, 22 Aug 2022 13:09:38 +0200 Subject: Blog refences --- challenge-179/luca-ferrari/blog-1.txt | 1 + challenge-179/luca-ferrari/blog-2.txt | 1 + challenge-179/luca-ferrari/blog-3.txt | 1 + challenge-179/luca-ferrari/blog-4.txt | 1 + challenge-179/luca-ferrari/blog-5.txt | 1 + challenge-179/luca-ferrari/blog-6.txt | 1 + 6 files changed, 6 insertions(+) create mode 100644 challenge-179/luca-ferrari/blog-1.txt create mode 100644 challenge-179/luca-ferrari/blog-2.txt create mode 100644 challenge-179/luca-ferrari/blog-3.txt create mode 100644 challenge-179/luca-ferrari/blog-4.txt create mode 100644 challenge-179/luca-ferrari/blog-5.txt create mode 100644 challenge-179/luca-ferrari/blog-6.txt diff --git a/challenge-179/luca-ferrari/blog-1.txt b/challenge-179/luca-ferrari/blog-1.txt new file mode 100644 index 0000000000..ece2925a72 --- /dev/null +++ b/challenge-179/luca-ferrari/blog-1.txt @@ -0,0 +1 @@ +https://fluca1978.github.io/2022/08/22/PerlWeeklyChallenge179.html#task1 diff --git a/challenge-179/luca-ferrari/blog-2.txt b/challenge-179/luca-ferrari/blog-2.txt new file mode 100644 index 0000000000..456d0905ff --- /dev/null +++ b/challenge-179/luca-ferrari/blog-2.txt @@ -0,0 +1 @@ +https://fluca1978.github.io/2022/08/22/PerlWeeklyChallenge179.html#task2 diff --git a/challenge-179/luca-ferrari/blog-3.txt b/challenge-179/luca-ferrari/blog-3.txt new file mode 100644 index 0000000000..a20ed84896 --- /dev/null +++ b/challenge-179/luca-ferrari/blog-3.txt @@ -0,0 +1 @@ +https://fluca1978.github.io/2022/08/22/PerlWeeklyChallenge179.html#task1plperl diff --git a/challenge-179/luca-ferrari/blog-4.txt b/challenge-179/luca-ferrari/blog-4.txt new file mode 100644 index 0000000000..30a4ecbc8d --- /dev/null +++ b/challenge-179/luca-ferrari/blog-4.txt @@ -0,0 +1 @@ +https://fluca1978.github.io/2022/08/22/PerlWeeklyChallenge179.html#task2plperl diff --git a/challenge-179/luca-ferrari/blog-5.txt b/challenge-179/luca-ferrari/blog-5.txt new file mode 100644 index 0000000000..75ef4f8453 --- /dev/null +++ b/challenge-179/luca-ferrari/blog-5.txt @@ -0,0 +1 @@ +https://fluca1978.github.io/2022/08/22/PerlWeeklyChallenge179.html#task1plpgsql diff --git a/challenge-179/luca-ferrari/blog-6.txt b/challenge-179/luca-ferrari/blog-6.txt new file mode 100644 index 0000000000..7e8929e903 --- /dev/null +++ b/challenge-179/luca-ferrari/blog-6.txt @@ -0,0 +1 @@ +https://fluca1978.github.io/2022/08/22/PerlWeeklyChallenge179.html#task2plpgsql -- cgit From d9e9ed12ce42bbc276f3dc163c5a29cf4b5976bf Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Mon, 22 Aug 2022 15:08:15 +0100 Subject: - Added solutions by Jaldhar H. Vyas. --- stats/pwc-current.json | 223 ++--- stats/pwc-language-breakdown-summary.json | 76 +- stats/pwc-language-breakdown.json | 1278 ++++++++++++++--------------- stats/pwc-leaders.json | 414 +++++----- stats/pwc-summary-1-30.json | 104 +-- stats/pwc-summary-121-150.json | 88 +- stats/pwc-summary-151-180.json | 112 +-- stats/pwc-summary-181-210.json | 34 +- stats/pwc-summary-211-240.json | 54 +- stats/pwc-summary-241-270.json | 116 +-- stats/pwc-summary-31-60.json | 94 +-- stats/pwc-summary-61-90.json | 94 +-- stats/pwc-summary-91-120.json | 104 +-- stats/pwc-summary.json | 48 +- 14 files changed, 1431 insertions(+), 1408 deletions(-) diff --git a/stats/pwc-current.json b/stats/pwc-current.json index ed2d8afbf5..541a2adeda 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,17 +1,20 @@ { + "legend" : { + "enabled" : 0 + }, "tooltip" : { "headerFormat" : "{series.name}
", - "followPointer" : 1, - "pointFormat" : "{point.name}: {point.y:f}
" + "pointFormat" : "{point.name}: {point.y:f}
", + "followPointer" : 1 }, "series" : [ { - "name" : "The Weekly Challenge - 178", + "colorByPoint" : 1, "data" : [ { - "name" : "AhmetEmre", + "drilldown" : "AhmetEmre", "y" : 2, - "drilldown" : "AhmetEmre" + "name" : "AhmetEmre" }, { "name" : "Arne Sommer", @@ -19,39 +22,44 @@ "drilldown" : "Arne Sommer" }, { + "y" : 2, "name" : "Athanasius", - "drilldown" : "Athanasius", - "y" : 2 + "drilldown" : "Athanasius" }, { - "name" : "Cheok-Yin Fung", "drilldown" : "Cheok-Yin Fung", + "name" : "Cheok-Yin Fung", "y" : 2 }, { - "drilldown" : "Colin Crain", "y" : 4, - "name" : "Colin Crain" + "name" : "Colin Crain", + "drilldown" : "Colin Crain" }, { "name" : "E. Choroba", - "drilldown" : "E. Choroba", - "y" : 2 + "y" : 2, + "drilldown" : "E. Choroba" }, { - "drilldown" : "Flavio Poletti", + "name" : "Flavio Poletti", "y" : 6, - "name" : "Flavio Poletti" + "drilldown" : "Flavio Poletti" + }, + { + "drilldown" : "Jaldhar H. Vyas", + "name" : "Jaldhar H. Vyas", + "y" : 5 }, { - "name" : "James Smith", "drilldown" : "James Smith", - "y" : 2 + "y" : 2, + "name" : "James Smith" }, { - "drilldown" : "Jan Krnavek", "y" : 1, - "name" : "Jan Krnavek" + "name" : "Jan Krnavek", + "drilldown" : "Jan Krnavek" }, { "drilldown" : "Jorg Sommrey", @@ -64,65 +72,77 @@ "drilldown" : "Kjetil Skotheim" }, { + "name" : "Luca Ferrari", "y" : 4, - "drilldown" : "Luca Ferrari", - "name" : "Luca Ferrari" + "drilldown" : "Luca Ferrari" }, { - "y" : 2, "drilldown" : "Mark Anderson", - "name" : "Mark Anderson" + "name" : "Mark Anderson", + "y" : 2 }, { - "y" : 3, "drilldown" : "Peter Campbell Smith", + "y" : 3, "name" : "Peter Campbell Smith" }, { "name" : "Roger Bell_West", - "drilldown" : "Roger Bell_West", - "y" : 5 + "y" : 5, + "drilldown" : "Roger Bell_West" }, { - "name" : "Simon Green", "drilldown" : "Simon Green", - "y" : 3 + "y" : 3, + "name" : "Simon Green" }, { "drilldown" : "Solathian", - "y" : 1, - "name" : "Solathian" + "name" : "Solathian", + "y" : 1 }, { - "name" : "Stephen G Lynn", "drilldown" : "Stephen G Lynn", + "name" : "Stephen G Lynn", "y" : 3 }, { - "name" : "Ulrich Rieke", + "drilldown" : "Ulrich Rieke", "y" : 4, - "drilldown" : "Ulrich Rieke" + "name" : "Ulrich Rieke" }, { + "name" : "W. Luis Mochan", "y" : 3, - "drilldown" : "W. Luis Mochan", - "name" : "W. Luis Mochan" + "drilldown" : "W. Luis Mochan" } ], - "colorByPoint" : 1 + "name" : "The Weekly Challenge - 178" } ], + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + } + } + }, + "chart" : { + "type" : "column" + }, "drilldown" : { "series" : [ { - "name" : "AhmetEmre", - "id" : "AhmetEmre", "data" : [ [ "Raku", 2 ] - ] + ], + "id" : "AhmetEmre", + "name" : "AhmetEmre" }, { "data" : [ @@ -135,11 +155,10 @@ 1 ] ], - "name" : "Arne Sommer", - "id" : "Arne Sommer" + "id" : "Arne Sommer", + "name" : "Arne Sommer" }, { - "name" : "Athanasius", "id" : "Athanasius", "data" : [ [ @@ -150,9 +169,12 @@ "Raku", 1 ] - ] + ], + "name" : "Athanasius" }, { + "name" : "Cheok-Yin Fung", + "id" : "Cheok-Yin Fung", "data" : [ [ "Perl", @@ -162,13 +184,9 @@ "Raku", 1 ] - ], - "name" : "Cheok-Yin Fung", - "id" : "Cheok-Yin Fung" + ] }, { - "id" : "Colin Crain", - "name" : "Colin Crain", "data" : [ [ "Perl", @@ -178,19 +196,23 @@ "Blog", 2 ] - ] + ], + "id" : "Colin Crain", + "name" : "Colin Crain" }, { + "id" : "E. Choroba", "data" : [ [ "Perl", 2 ] ], - "name" : "E. Choroba", - "id" : "E. Choroba" + "name" : "E. Choroba" }, { + "name" : "Flavio Poletti", + "id" : "Flavio Poletti", "data" : [ [ "Perl", @@ -204,51 +226,68 @@ "Blog", 2 ] + ] + }, + { + "id" : "Jaldhar H. Vyas", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] ], - "id" : "Flavio Poletti", - "name" : "Flavio Poletti" + "name" : "Jaldhar H. Vyas" }, { - "name" : "James Smith", "id" : "James Smith", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "James Smith" }, { + "name" : "Jan Krnavek", + "id" : "Jan Krnavek", "data" : [ [ "Raku", 1 ] - ], - "name" : "Jan Krnavek", - "id" : "Jan Krnavek" + ] }, { + "name" : "Jorg Sommrey", + "id" : "Jorg Sommrey", "data" : [ [ "Perl", 2 ] - ], - "name" : "Jorg Sommrey", - "id" : "Jorg Sommrey" + ] }, { + "name" : "Kjetil Skotheim", + "id" : "Kjetil Skotheim", "data" : [ [ "Perl", 2 ] - ], - "name" : "Kjetil Skotheim", - "id" : "Kjetil Skotheim" + ] }, { + "name" : "Luca Ferrari", "data" : [ [ "Raku", @@ -259,20 +298,20 @@ 2 ] ], - "id" : "Luca Ferrari", - "name" : "Luca Ferrari" + "id" : "Luca Ferrari" }, { - "name" : "Mark Anderson", - "id" : "Mark Anderson", "data" : [ [ "Raku", 2 ] - ] + ], + "id" : "Mark Anderson", + "name" : "Mark Anderson" }, { + "name" : "Peter Campbell Smith", "data" : [ [ "Perl", @@ -283,11 +322,9 @@ 1 ] ], - "name" : "Peter Campbell Smith", "id" : "Peter Campbell Smith" }, { - "id" : "Roger Bell_West", "name" : "Roger Bell_West", "data" : [ [ @@ -302,11 +339,12 @@ "Blog", 1 ] - ] + ], + "id" : "Roger Bell_West" }, { - "id" : "Simon Green", "name" : "Simon Green", + "id" : "Simon Green", "data" : [ [ "Perl", @@ -319,16 +357,17 @@ ] }, { + "name" : "Solathian", "data" : [ [ "Perl", 1 ] ], - "id" : "Solathian", - "name" : "Solathian" + "id" : "Solathian" }, { + "name" : "Stephen G Lynn", "data" : [ [ "Perl", @@ -343,12 +382,10 @@ 1 ] ], - "name" : "Stephen G Lynn", "id" : "Stephen G Lynn" }, { "name" : "Ulrich Rieke", - "id" : "Ulrich Rieke", "data" : [ [ "Perl", @@ -358,9 +395,12 @@ "Raku", 2 ] - ] + ], + "id" : "Ulrich Rieke" }, { + "name" : "W. Luis Mochan", + "id" : "W. Luis Mochan", "data" : [ [ "Perl", @@ -370,39 +410,22 @@ "Blog", 1 ] - ], - "name" : "W. Luis Mochan", - "id" : "W. Luis Mochan" + ] } ] }, - "legend" : { - "enabled" : 0 - }, - "title" : { - "text" : "The Weekly Challenge - 178" - }, - "chart" : { - "type" : "column" - }, "yAxis" : { "title" : { "text" : "Total Solutions" } }, - "plotOptions" : { - "series" : { - "borderWidth" : 0, - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - } - } - }, - "subtitle" : { - "text" : "[Champions: 20] Last updated at 2022-08-22 01:45:18 GMT" + "title" : { + "text" : "The Weekly Challenge - 178" }, "xAxis" : { "type" : "category" + }, + "subtitle" : { + "text" : "[Champions: 21] Last updated at 2022-08-22 14:06:07 GMT" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 7cf2387e1b..a9daa98e06 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,63 +1,63 @@ { - "xAxis" : { - "labels" : { - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - } - }, - "type" : "category" - }, - "yAxis" : { - "min" : 0, - "title" : { - "text" : null - } - }, - "subtitle" : { - "text" : "Last updated at 2022-08-22 01:45:18 GMT" - }, - "tooltip" : { - "pointFormat" : "{point.y:.0f}" - }, "series" : [ { - "dataLabels" : { - "y" : 10, - "color" : "#FFFFFF", - "rotation" : -90, - "align" : "right", - "enabled" : "true", - "format" : "{point.y:.0f}", - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - } - }, - "name" : "Contributions", "data" : [ [ "Blog", - 2804 + 2805 ], [ "Perl", - 8671 + 8673 ], [ "Raku", - 5180 + 5182 ] - ] + ], + "dataLabels" : { + "format" : "{point.y:.0f}", + "align" : "right", + "color" : "#FFFFFF", + "y" : 10, + "enabled" : "true", + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + }, + "rotation" : -90 + }, + "name" : "Contributions" } ], "chart" : { "type" : "column" }, + "yAxis" : { + "title" : { + "text" : null + }, + "min" : 0 + }, "legend" : { "enabled" : "false" }, + "tooltip" : { + "pointFormat" : "{point.y:.0f}" + }, + "subtitle" : { + "text" : "Last updated at 2022-08-22 14:06:07 GMT" + }, "title" : { "text" : "The Weekly Challenge Contributions [2019 - 2022]" + }, + "xAxis" : { + "type" : "category", + "labels" : { + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + } + } } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 0ea81019d1..747551954a 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,4 +1,7 @@ { + "legend" : { + "enabled" : "false" + }, "tooltip" : { "headerFormat" : "", "pointFormat" : "Challenge {point.name}: {point.y:f}
", @@ -7,56 +10,57 @@ "series" : [ { "name" : "The Weekly Challenge Languages", + "colorByPoint" : "true", "data" : [ { + "y" : 161, "name" : "#001", - "drilldown" : "001", - "y" : 161 + "drilldown" : "001" }, { - "drilldown" : "002", + "name" : "#002", "y" : 125, - "name" : "#002" + "drilldown" : "002" }, { + "name" : "#003", "y" : 83, - "drilldown" : "003", - "name" : "#003" + "drilldown" : "003" }, { - "y" : 99, "drilldown" : "004", + "y" : 99, "name" : "#004" }, { - "name" : "#005", "y" : 78, + "name" : "#005", "drilldown" : "005" }, { + "name" : "#006", "y" : 58, - "drilldown" : "006", - "name" : "#006" + "drilldown" : "006" }, { + "name" : "#007", "y" : 65, - "drilldown" : "007", - "name" : "#007" + "drilldown" : "007" }, { + "y" : 78, "name" : "#008", - "drilldown" : "008", - "y" : 78 + "drilldown" : "008" }, { - "name" : "#009", "drilldown" : "009", + "name" : "#009", "y" : 76 }, { + "y" : 65, "name" : "#010", - "drilldown" : "010", - "y" : 65 + "drilldown" : "010" }, { "drilldown" : "011", @@ -65,23 +69,23 @@ }, { "y" : 89, - "drilldown" : "012", - "name" : "#012" + "name" : "#012", + "drilldown" : "012" }, { "name" : "#013", - "drilldown" : "013", - "y" : 85 + "y" : 85, + "drilldown" : "013" }, { "y" : 101, - "drilldown" : "014", - "name" : "#014" + "name" : "#014", + "drilldown" : "014" }, { "name" : "#015", - "drilldown" : "015", - "y" : 99 + "y" : 99, + "drilldown" : "015" }, { "name" : "#016", @@ -90,57 +94,57 @@ }, { "drilldown" : "017", - "y" : 84, - "name" : "#017" + "name" : "#017", + "y" : 84 }, { + "drilldown" : "018", "name" : "#018", - "y" : 81, - "drilldown" : "018" + "y" : 81 }, { "y" : 103, - "drilldown" : "019", - "name" : "#019" + "name" : "#019", + "drilldown" : "019" }, { - "name" : "#020", "drilldown" : "020", + "name" : "#020", "y" : 101 }, { - "drilldown" : "021", + "name" : "#021", "y" : 72, - "name" : "#021" + "drilldown" : "021" }, { - "name" : "#022", "drilldown" : "022", + "name" : "#022", "y" : 68 }, { - "y" : 97, "drilldown" : "023", - "name" : "#023" + "name" : "#023", + "y" : 97 }, { - "name" : "#024", "y" : 75, + "name" : "#024", "drilldown" : "024" }, { - "y" : 59, "drilldown" : "025", - "name" : "#025" + "name" : "#025", + "y" : 59 }, { - "y" : 74, "drilldown" : "026", + "y" : 74, "name" : "#026" }, { - "name" : "#027", "y" : 62, + "name" : "#027", "drilldown" : "027" }, { @@ -159,24 +163,24 @@ "drilldown" : "030" }, { - "name" : "#031", "drilldown" : "031", - "y" : 91 + "y" : 91, + "name" : "#031" }, { - "name" : "#032", "y" : 96, + "name" : "#032", "drilldown" : "032" }, { "drilldown" : "033", - "y" : 112, - "name" : "#033" + "name" : "#033", + "y" : 112 }, { "name" : "#034", - "drilldown" : "034", - "y" : 66 + "y" : 66, + "drilldown" : "034" }, { "name" : "#035", @@ -184,8 +188,8 @@ "drilldown" : "035" }, { - "name" : "#036", "y" : 70, + "name" : "#036", "drilldown" : "036" }, { @@ -194,29 +198,29 @@ "drilldown" : "037" }, { + "drilldown" : "038", "name" : "#038", - "y" : 70, - "drilldown" : "038" + "y" : 70 }, { - "drilldown" : "039", "y" : 64, - "name" : "#039" + "name" : "#039", + "drilldown" : "039" }, { + "drilldown" : "040", "name" : "#040", - "y" : 75, - "drilldown" : "040" + "y" : 75 }, { - "name" : "#041", + "drilldown" : "041", "y" : 78, - "drilldown" : "041" + "name" : "#041" }, { "name" : "#042", - "drilldown" : "042", - "y" : 94 + "y" : 94, + "drilldown" : "042" }, { "drilldown" : "043", @@ -224,48 +228,48 @@ "name" : "#043" }, { - "name" : "#044", "drilldown" : "044", + "name" : "#044", "y" : 87 }, { - "drilldown" : "045", "y" : 98, - "name" : "#045" + "name" : "#045", + "drilldown" : "045" }, { + "name" : "#046", "y" : 89, - "drilldown" : "046", - "name" : "#046" + "drilldown" : "046" }, { - "name" : "#047", "y" : 86, + "name" : "#047", "drilldown" : "047" }, { - "drilldown" : "048", "y" : 110, - "name" : "#048" + "name" : "#048", + "drilldown" : "048" }, { "drilldown" : "049", - "y" : 91, - "name" : "#049" + "name" : "#049", + "y" : 91 }, { - "drilldown" : "050", "y" : 100, - "name" : "#050" + "name" : "#050", + "drilldown" : "050" }, { "y" : 91, - "drilldown" : "051", - "name" : "#051" + "name" : "#051", + "drilldown" : "051" }, { - "y" : 93, "drilldown" : "052", + "y" : 93, "name" : "#052" }, { @@ -274,44 +278,44 @@ "drilldown" : "053" }, { - "name" : "#054", "drilldown" : "054", + "name" : "#054", "y" : 105 }, { + "drilldown" : "055", "name" : "#055", - "y" : 90, - "drilldown" : "055" + "y" : 90 }, { + "y" : 97, "name" : "#056", - "drilldown" : "056", - "y" : 97 + "drilldown" : "056" }, { + "y" : 82, "name" : "#057", - "drilldown" : "057", - "y" : 82 + "drilldown" : "057" }, { - "name" : "#058", "drilldown" : "058", - "y" : 71 + "y" : 71, + "name" : "#058" }, { "name" : "#059", - "drilldown" : "059", - "y" : 91 + "y" : 91, + "drilldown" : "059" }, { - "name" : "#060", "drilldown" : "060", - "y" : 87 + "y" : 87, + "name" : "#060" }, { + "name" : "#061", "y" : 83, - "drilldown" : "061", - "name" : "#061" + "drilldown" : "061" }, { "drilldown" : "062", @@ -319,24 +323,24 @@ "name" : "#062" }, { - "name" : "#063", "drilldown" : "063", - "y" : 91 + "y" : 91, + "name" : "#063" }, { - "name" : "#064", "drilldown" : "064", - "y" : 82 + "y" : 82, + "name" : "#064" }, { - "drilldown" : "065", "y" : 75, - "name" : "#065" + "name" : "#065", + "drilldown" : "065" }, { + "name" : "#066", "y" : 86, - "drilldown" : "066", - "name" : "#066" + "drilldown" : "066" }, { "drilldown" : "067", @@ -349,24 +353,24 @@ "drilldown" : "068" }, { + "y" : 85, "name" : "#069", - "drilldown" : "069", - "y" : 85 + "drilldown" : "069" }, { - "name" : "#070", "drilldown" : "070", - "y" : 95 + "y" : 95, + "name" : "#070" }, { - "name" : "#071", "y" : 80, + "name" : "#071", "drilldown" : "071" }, { "y" : 114, - "drilldown" : "072", - "name" : "#072" + "name" : "#072", + "drilldown" : "072" }, { "name" : "#073", @@ -374,39 +378,39 @@ "drilldown" : "073" }, { + "y" : 117, "name" : "#074", - "drilldown" : "074", - "y" : 117 + "drilldown" : "074" }, { "name" : "#075", - "drilldown" : "075", - "y" : 117 + "y" : 117, + "drilldown" : "075" }, { - "name" : "#076", "y" : 101, + "name" : "#076", "drilldown" : "076" }, { "y" : 100, - "drilldown" : "077", - "name" : "#077" + "name" : "#077", + "drilldown" : "077" }, { + "drilldown" : "078", "name" : "#078", - "y" : 127, - "drilldown" : "078" + "y" : 127 }, { + "name" : "#079", "y" : 122, - "drilldown" : "079", - "name" : "#079" + "drilldown" : "079" }, { - "y" : 127, "drilldown" : "080", - "name" : "#080" + "name" : "#080", + "y" : 127 }, { "drilldown" : "081", @@ -414,44 +418,44 @@ "name" : "#081" }, { - "name" : "#082", "drilldown" : "082", - "y" : 114 + "y" : 114, + "name" : "#082" }, { - "name" : "#083", "drilldown" : "083", + "name" : "#083", "y" : 127 }, { - "drilldown" : "084", "y" : 119, - "name" : "#084" + "name" : "#084", + "drilldown" : "084" }, { - "name" : "#085", "drilldown" : "085", + "name" : "#085", "y" : 114 }, { - "name" : "#086", "drilldown" : "086", + "name" : "#086", "y" : 104 }, { "y" : 101, - "drilldown" : "087", - "name" : "#087" + "name" : "#087", + "drilldown" : "087" }, { - "name" : "#088", + "drilldown" : "088", "y" : 121, - "drilldown" : "088" + "name" : "#088" }, { + "drilldown" : "089", "name" : "#089", - "y" : 113, - "drilldown" : "089" + "y" : 113 }, { "drilldown" : "090", @@ -464,119 +468,119 @@ "drilldown" : "091" }, { + "name" : "#092", "y" : 98, - "drilldown" : "092", - "name" : "#092" + "drilldown" : "092" }, { - "name" : "#093", "drilldown" : "093", + "name" : "#093", "y" : 87 }, { + "drilldown" : "094", "name" : "#094", - "y" : 87, - "drilldown" : "094" + "y" : 87 }, { - "drilldown" : "095", "y" : 108, - "name" : "#095" + "name" : "#095", + "drilldown" : "095" }, { + "name" : "#096", "y" : 108, - "drilldown" : "096", - "name" : "#096" + "drilldown" : "096" }, { + "y" : 111, "name" : "#097", - "drilldown" : "097", - "y" : 111 + "drilldown" : "097" }, { - "drilldown" : "098", + "name" : "#098", "y" : 108, - "name" : "#098" + "drilldown" : "098" }, { - "y" : 97, "drilldown" : "099", - "name" : "#099" + "name" : "#099", + "y" : 97 }, { - "y" : 120, "drilldown" : "100", + "y" : 120, "name" : "#100" }, { - "name" : "#101", "drilldown" : "101", + "name" : "#101", "y" : 83 }, { - "y" : 90, "drilldown" : "102", + "y" : 90, "name" : "#102" }, { "name" : "#103", - "drilldown" : "103", - "y" : 79 + "y" : 79, + "drilldown" : "103" }, { "drilldown" : "104", - "y" : 85, - "name" : "#104" + "name" : "#104", + "y" : 85 }, { - "name" : "#105",