aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordrbaggy <js5@sanger.ac.uk>2022-06-15 06:28:41 +0100
committerdrbaggy <js5@sanger.ac.uk>2022-06-15 06:28:41 +0100
commit640d609b76d6f98366ddb8edb35959cf3102e11a (patch)
treee67c53a9d1f32277f9decaf92b4009bcbc0508c4
parent4e67de07fef7fabe2a2ebd5d371d8644c83de1b9 (diff)
parent5cf0768375d1e0df139eec109433726256ed489a (diff)
downloadperlweeklychallenge-club-640d609b76d6f98366ddb8edb35959cf3102e11a.tar.gz
perlweeklychallenge-club-640d609b76d6f98366ddb8edb35959cf3102e11a.tar.bz2
perlweeklychallenge-club-640d609b76d6f98366ddb8edb35959cf3102e11a.zip
Merge remote-tracking branch 'upstream/master'
-rwxr-xr-xchallenge-169/e-choroba/perl/ch-1.pl24
-rwxr-xr-xchallenge-169/e-choroba/perl/ch-2.pl25
-rw-r--r--challenge-169/ulrich-rieke/cpp/ch-1.cpp46
-rw-r--r--challenge-169/ulrich-rieke/cpp/ch-2.cpp66
-rw-r--r--challenge-169/ulrich-rieke/haskell/ch-1.hs26
-rw-r--r--challenge-169/ulrich-rieke/haskell/ch-2.hs25
-rw-r--r--challenge-169/ulrich-rieke/perl/ch-1.pl37
-rw-r--r--challenge-169/ulrich-rieke/perl/ch-2.pl67
-rw-r--r--challenge-169/ulrich-rieke/raku/ch-1.raku30
-rw-r--r--challenge-169/ulrich-rieke/raku/ch-2.raku33
-rw-r--r--stats/pwc-current.json204
-rw-r--r--stats/pwc-language-breakdown-summary.json58
-rw-r--r--stats/pwc-language-breakdown.json2332
-rw-r--r--stats/pwc-leaders.json734
-rw-r--r--stats/pwc-summary-1-30.json96
-rw-r--r--stats/pwc-summary-121-150.json94
-rw-r--r--stats/pwc-summary-151-180.json40
-rw-r--r--stats/pwc-summary-181-210.json38
-rw-r--r--stats/pwc-summary-211-240.json40
-rw-r--r--stats/pwc-summary-241-270.json98
-rw-r--r--stats/pwc-summary-31-60.json120
-rw-r--r--stats/pwc-summary-61-90.json42
-rw-r--r--stats/pwc-summary-91-120.json32
-rw-r--r--stats/pwc-summary.json60
24 files changed, 2390 insertions, 1977 deletions
diff --git a/challenge-169/e-choroba/perl/ch-1.pl b/challenge-169/e-choroba/perl/ch-1.pl
new file mode 100755
index 0000000000..ef863b1cbc
--- /dev/null
+++ b/challenge-169/e-choroba/perl/ch-1.pl
@@ -0,0 +1,24 @@
+#!/usr/bin/perl
+use warnings;
+use strict;
+
+use Math::Prime::Util qw{ factor };
+
+sub brilliant_numbers {
+ my ($tally) = @_;
+ my @brilliant_numbers;
+ my $n = 1;
+ while (@brilliant_numbers < $tally) {
+ my @f = factor(++$n);
+ push @brilliant_numbers, $n
+ if 2 == @f
+ && length($f[0]) == length($f[1]);
+ }
+ return \@brilliant_numbers
+}
+
+use Test::More tests => 1;
+
+is_deeply brilliant_numbers(20),
+ [4, 6, 9, 10, 14, 15, 21, 25, 35, 49, 121,
+ 143, 169, 187, 209, 221, 247, 253, 289, 299];
diff --git a/challenge-169/e-choroba/perl/ch-2.pl b/challenge-169/e-choroba/perl/ch-2.pl
new file mode 100755
index 0000000000..48e9f7c4eb
--- /dev/null
+++ b/challenge-169/e-choroba/perl/ch-2.pl
@@ -0,0 +1,25 @@
+#!/usr/bin/perl
+use warnings;
+use strict;
+
+use Math::Prime::Util qw{ factor gcd };
+
+sub achilles_numbers {
+ my ($tally) = @_;
+ my $n = 1;
+ my @achilles_numbers;
+ while (@achilles_numbers < $tally) {
+ my %factors;
+ ++$factors{$_} for factor(++$n);
+ next if grep $_ == 1, values %factors; # Powerful.
+
+ push @achilles_numbers, $n
+ if 1 == gcd(values %factors); # Not perfect.
+ }
+ return \@achilles_numbers
+}
+
+use Test::More tests => 1;
+is_deeply achilles_numbers(20),
+ [72, 108, 200, 288, 392, 432, 500, 648, 675, 800, 864,
+ 968, 972, 1125, 1152, 1323, 1352, 1372, 1568, 1800];
diff --git a/challenge-169/ulrich-rieke/cpp/ch-1.cpp b/challenge-169/ulrich-rieke/cpp/ch-1.cpp
new file mode 100644
index 0000000000..2d4d8011f4
--- /dev/null
+++ b/challenge-169/ulrich-rieke/cpp/ch-1.cpp
@@ -0,0 +1,46 @@
+#include <iostream>
+#include <vector>
+#include <string>
+#include <algorithm>
+
+std::vector<int> primeDecompose( int n ) {
+ std::vector<int> primeFactors ;
+ int current = 2 ;
+ while ( n != 1 ) {
+ if ( n % current == 0 ) {
+ primeFactors.push_back( current ) ;
+ n /= current ;
+ }
+ else {
+ current++ ;
+ }
+ }
+ return primeFactors ;
+}
+
+bool isBrilliant( int n ) {
+ std::vector<int> primeFactors( primeDecompose( n ) ) ;
+ if ( primeFactors.size( ) == 2 ) {
+ std::vector<std::string> primeNumbers( 2 ) ;
+ std::transform( primeFactors.begin( ) , primeFactors.end( ) ,
+ primeNumbers.begin( ) , []( int i ){ return std::to_string( i ) ;} ) ;
+ return primeNumbers.begin()->length( ) == primeNumbers.back().length( ) ;
+ }
+ else {
+ return false ;
+ }
+}
+
+int main( ) {
+ std::vector<int> brilliantNumbers ;
+ int current = 2 ;
+ while ( brilliantNumbers.size( ) != 20 ) {
+ if ( isBrilliant( current ) )
+ brilliantNumbers.push_back( current ) ;
+ current++ ;
+ }
+ for ( int i : brilliantNumbers )
+ std::cout << i << " " ;
+ std::cout << std::endl ;
+ return 0 ;
+}
diff --git a/challenge-169/ulrich-rieke/cpp/ch-2.cpp b/challenge-169/ulrich-rieke/cpp/ch-2.cpp
new file mode 100644
index 0000000000..ffbcfcdd34
--- /dev/null
+++ b/challenge-169/ulrich-rieke/cpp/ch-2.cpp
@@ -0,0 +1,66 @@
+#include <iostream>
+#include <algorithm>
+#include <map>
+#include <vector>
+#include <numeric>
+#include <iterator>
+
+std::vector<int> primeDecompose( int n ) {
+ std::vector<int> primeFactors ;
+ int current = 2 ;
+ while ( n != 1 ) {
+ if ( n % current == 0 ) {
+ primeFactors.push_back( current ) ;
+ n /= current ;
+ }
+ else {
+ current++ ;
+ }
+ }
+ return primeFactors ;
+}
+
+int my_gcd( int a , int b ) {
+ std::vector<int> firstFactors( primeDecompose( a ) ) ;
+ std::vector<int> secondFactors( primeDecompose( b ) ) ;
+ std::vector<int> common ;
+ std::set_intersection( firstFactors.begin( ) , firstFactors.end( ) ,
+ secondFactors.begin( ) , secondFactors.end( ) ,
+ std::inserter( common, common.begin( ) )) ;
+ return std::accumulate( common.begin( ) , common.end( ) , 1 ,
+ std::multiplies( ) ) ;
+}
+
+bool isAchilles( int n ) {
+ std::vector<int> primeFactors( primeDecompose( n ) ) ;
+ std::map<int , int> factorCount ;
+ for ( int i : primeFactors ) {
+ factorCount[ i ]++ ;
+ }
+ std::vector<int> exponents ;
+ for ( auto it = factorCount.begin( ) ; it != factorCount.end( ) ; ++it ) {
+ exponents.push_back( it->second ) ;
+ }
+ if ( *std::min_element(exponents.begin( ) , exponents.end( ) ) >= 2 ) {
+ int start = *exponents.begin( ) ;
+ return (std::accumulate( exponents.begin( ) , exponents.end( ) , start ,
+ []( int a , int b ){ return my_gcd( a , b ) ; } ) == 1 ) ;
+ }
+ else
+ return false ;
+}
+
+int main( ) {
+ std::vector<int> achillesNumbers ;
+ int current = 2 ;
+ while ( achillesNumbers.size( ) != 20 ) {
+ if ( isAchilles( current ) ) {
+ achillesNumbers.push_back( current ) ;
+ }
+ current++ ;
+ }
+ for ( int i : achillesNumbers )
+ std::cout << i << " " ;
+ std::cout << std::endl ;
+ return 0 ;
+}
diff --git a/challenge-169/ulrich-rieke/haskell/ch-1.hs b/challenge-169/ulrich-rieke/haskell/ch-1.hs
new file mode 100644
index 0000000000..704ef0c9b1
--- /dev/null
+++ b/challenge-169/ulrich-rieke/haskell/ch-1.hs
@@ -0,0 +1,26 @@
+module Challenge169
+ where
+
+divisors :: Int -> [Int]
+divisors n = [d | d <- [2 .. n] , mod n d == 0 ]
+
+primeDecompose :: Int -> [Int]
+primeDecompose n = snd $ until ( (== 1) . fst ) step (n , [] )
+where
+ step :: ( Int , [Int] ) -> ( Int , [Int] )
+ step ( d , list ) = ( div d h , list ++ [h] )
+ where
+ h = head $ divisors d
+
+isBrilliant :: Int -> Bool
+isBrilliant n = (( length primeFactors ) == 2) && (l1 == l2 )
+where
+ primeFactors :: [Int]
+ primeFactors = primeDecompose n
+ l1 :: Int
+ l1 = length $ show $ head primeFactors
+ l2 :: Int
+ l2 = length $ show $ last primeFactors
+
+solution :: [Int]
+solution = take 20 $ filter isBrilliant [2 , 3 ..]
diff --git a/challenge-169/ulrich-rieke/haskell/ch-2.hs b/challenge-169/ulrich-rieke/haskell/ch-2.hs
new file mode 100644
index 0000000000..f3d2184277
--- /dev/null
+++ b/challenge-169/ulrich-rieke/haskell/ch-2.hs
@@ -0,0 +1,25 @@
+module Challenge169_2
+ where
+import Data.List ( group )
+
+divisors :: Int -> [Int]
+divisors n = [d | d <- [2 .. n] , mod n d == 0 ]
+
+primeDecompose :: Int -> [Int]
+primeDecompose n = snd $ until ( (== 1) . fst ) step (n , [] )
+where
+ step :: ( Int , [Int] ) -> ( Int , [Int] )
+ step ( d , list ) = ( div d h , list ++ [h] )
+ where
+ h = head $ divisors d
+
+isAchilles :: Int -> Bool
+isAchilles n = myCondition && ( (foldl1 gcd theLengths ) == 1 )
+where
+ theLengths :: [Int]
+ theLengths = map length $ group $ primeDecompose n
+ myCondition :: Bool
+ myCondition = if null theLengths then False else (minimum theLengths) >= 2
+
+solution :: [Int]
+solution = take 20 $ filter isAchilles [2 , 3 ..]
diff --git a/challenge-169/ulrich-rieke/perl/ch-1.pl b/challenge-169/ulrich-rieke/perl/ch-1.pl
new file mode 100644
index 0000000000..59be1f066b
--- /dev/null
+++ b/challenge-169/ulrich-rieke/perl/ch-1.pl
@@ -0,0 +1,37 @@
+#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+
+sub primeDecompose {
+ my $number = shift ;
+ my $current = 2 ;
+ my @primeFactors ;
+ while ( $number != 1 ) {
+ if ( $number % $current == 0 ) {
+ push @primeFactors, $current ;
+ $number /= $current ;
+ }
+ else {
+ $current++ ;
+ }
+ }
+ return @primeFactors ;
+}
+
+sub isBrilliant {
+ my $number = shift ;
+ my @primeFactors = primeDecompose( $number ) ;
+ return ( (scalar( @primeFactors ) == 2 ) && ( length( $primeFactors[0] )
+ == length( $primeFactors[1] ))) ;
+}
+
+my @brilliantNumbers ;
+my $current = 1 ;
+while ( scalar( @brilliantNumbers ) != 20 ) {
+ if ( isBrilliant( $current ) ) {
+ push @brilliantNumbers , $current ;
+ }
+ $current++ ;
+}
+say join( ',' , @brilliantNumbers ) ;
diff --git a/challenge-169/ulrich-rieke/perl/ch-2.pl b/challenge-169/ulrich-rieke/perl/ch-2.pl
new file mode 100644
index 0000000000..d2f5c0af99
--- /dev/null
+++ b/challenge-169/ulrich-rieke/perl/ch-2.pl
@@ -0,0 +1,67 @@
+#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+use List::Util qw ( min max reduce ) ;
+
+sub primeDecompose {
+ my $number = shift ;
+ my $current = 2 ;
+ my @primeFactors ;
+ while ( $number != 1 ) {
+ if ( $number % $current == 0 ) {
+ push @primeFactors, $current ;
+ $number /= $current ;
+ }
+ else {
+ $current++ ;
+ }
+ }
+ return @primeFactors ;
+}
+
+sub gcd {
+ my $first = shift ;
+ my $second = shift ;
+ my %firstDivisors ;
+ my %secondDivisors ;
+ for my $n ( 1 .. $first ) {
+ if ( $first % $n == 0 ) {
+ $firstDivisors{ $n }++ ;
+ }
+ }
+ for my $n ( 1 .. $second ) {
+ if ( $second % $n == 0 ) {
+ $secondDivisors{ $n }++ ;
+ }
+ }
+ my @common = grep { exists ($secondDivisors{$_}) } keys %firstDivisors ;
+ return max( @common ) ;
+}
+
+sub isAchilles {
+ my $number = shift ;
+ my @primeFactors = primeDecompose( $number ) ;
+ my %achilles ;
+ for my $n ( @primeFactors ) {
+ $achilles{$n}++ ;
+ }
+ my @frequencies = values( %achilles ) ;
+ my $minFactor = min( @frequencies ) ;
+ if ( $minFactor < 2 ) {
+ return 0 ;
+ }
+ else {
+ return ( (reduce { gcd( $a , $b ) } @frequencies) == 1 ) ;
+ }
+}
+
+my @achillesNumbers ;
+my $current = 2 ;
+while ( scalar( @achillesNumbers ) != 20 ) {
+ if ( isAchilles( $current ) ) {
+ push @achillesNumbers , $current ;
+ }
+ $current++ ;
+}
+say join( ',' , @achillesNumbers ) ;
diff --git a/challenge-169/ulrich-rieke/raku/ch-1.raku b/challenge-169/ulrich-rieke/raku/ch-1.raku
new file mode 100644
index 0000000000..ce2705bccc
--- /dev/null
+++ b/challenge-169/ulrich-rieke/raku/ch-1.raku
@@ -0,0 +1,30 @@
+use v6 ;
+
+sub primeDecompose( Int $n is copy ) {
+ my @primeFactors ;
+ my $current = 2 ;
+ while ( $n != 1 ) {
+ while ( not ( $n %% $current ) ) {
+ $current++ ;
+ }
+ @primeFactors.push( $current ) ;
+ $n div= $current ;
+ }
+ return @primeFactors ;
+}
+
+sub isBrilliant( Int $n is copy --> Bool ) {
+ my @primeFactors = primeDecompose( $n ) ;
+ return ( @primeFactors.elems == 2 ) && ( ~(@primeFactors[0]).chars ==
+ ~(@primeFactors[1].chars )) ;
+}
+
+my @brilliantNumbers ;
+my $current = 2 ;
+while ( @brilliantNumbers.elems != 20 ) {
+ if ( isBrilliant( $current ) ) {
+ @brilliantNumbers.push( $current ) ;
+ }
+ $current++ ;
+}
+say @brilliantNumbers.join( ',') ;
diff --git a/challenge-169/ulrich-rieke/raku/ch-2.raku b/challenge-169/ulrich-rieke/raku/ch-2.raku
new file mode 100644
index 0000000000..f04f39e218
--- /dev/null
+++ b/challenge-169/ulrich-rieke/raku/ch-2.raku
@@ -0,0 +1,33 @@
+use v6 ;
+
+sub primeDecompose( Int $n is copy ) {
+ my @primeFactors ;
+ my $current = 2 ;
+ while ( $n != 1 ) {
+ while ( not ( $n %% $current ) ) {
+ $current++ ;
+ }
+ @primeFactors.push( $current ) ;
+ $n div= $current ;
+ }
+ return @primeFactors ;
+}
+
+sub isAchillesNumber( Int $n is copy --> Bool ) {
+ my @primeFactors = primeDecompose( $n ) ;
+ my %achilles ;
+ for @primeFactors -> $i {
+ %achilles{~$i}++ ;
+ }
+ return (%achilles.values.min >= 2) && (([gcd] %achilles.values) == 1 ) ;
+}
+
+my @achillesNumbers ;
+my $current = 2 ;
+while (@achillesNumbers.elems != 20 ) {
+ if ( isAchillesNumber( $current ) ) {
+ @achillesNumbers.push( $current ) ;
+ }
+ $current++ ;
+}
+say @achillesNumbers.join( ', ' ) ;
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index f59115fdb5..02d32957b6 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,28 +1,106 @@
{
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
- },
"xAxis" : {
"type" : "category"
},
+ "series" : [
+ {
+ "data" : [
+ {
+ "drilldown" : "E. Choroba",
+ "name" : "E. Choroba",
+ "y" : 2
+ },
+ {
+ "y" : 8,
+ "drilldown" : "Luca Ferrari",
+ "name" : "Luca Ferrari"
+ },
+ {
+ "y" : 2,
+ "name" : "Mark Anderson",
+ "drilldown" : "Mark Anderson"
+ },
+ {
+ "drilldown" : "Peter Campbell Smith",
+ "name" : "Peter Campbell Smith",
+ "y" : 3
+ },
+ {
+ "name" : "PokGoPun",
+ "drilldown" : "PokGoPun",
+ "y" : 2
+ },
+ {
+ "name" : "Robert DiCicco",
+ "drilldown" : "Robert DiCicco",
+ "y" : 1
+ },
+ {
+ "y" : 4,
+ "name" : "Roger Bell_West",
+ "drilldown" : "Roger Bell_West"
+ },
+ {
+ "name" : "Simon Green",
+ "drilldown" : "Simon Green",
+ "y" : 3
+ },
+ {
+ "y" : 4,
+ "drilldown" : "Stephen G Lynn",
+ "name" : "Stephen G Lynn"
+ },
+ {
+ "drilldown" : "Ulrich Rieke",
+ "name" : "Ulrich Rieke",
+ "y" : 4
+ },
+ {
+ "y" : 3,
+ "drilldown" : "W. Luis Mochan",
+ "name" : "W. Luis Mochan"
+ }
+ ],
+ "colorByPoint" : 1,
+ "name" : "The Weekly Challenge - 169"
+ }
+ ],
+ "legend" : {
+ "enabled" : 0
+ },
"subtitle" : {
- "text" : "[Champions: 9] Last updated at 2022-06-14 20:05:56 GMT"
+ "text" : "[Champions: 11] Last updated at 2022-06-14 23:23:29 GMT"
},
- "title" : {
- "text" : "The Weekly Challenge - 169"
+ "plotOptions" : {
+ "series" : {
+ "borderWidth" : 0,
+ "dataLabels" : {
+ "format" : "{point.y}",
+ "enabled" : 1
+ }
+ }
},
- "legend" : {
- "enabled" : 0
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
},
- "chart" : {
- "type" : "column"
+ "title" : {
+ "text" : "The Weekly Challenge - 169"
},
"drilldown" : {
"series" : [
{
- "id" : "Luca Ferrari",
+ "name" : "E. Choroba",
+ "id" : "E. Choroba",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ]
+ ]
+ },
+ {
"data" : [
[
"Raku",
@@ -33,6 +111,7 @@
6
]
],
+ "id" : "Luca Ferrari",
"name" : "Luca Ferrari"
},
{
@@ -46,8 +125,8 @@
"id" : "Mark Anderson"
},
{
- "id" : "Peter Campbell Smith",
"name" : "Peter Campbell Smith",
+ "id" : "Peter Campbell Smith",
"data" : [
[
"Perl",
@@ -60,14 +139,14 @@
]
},
{
+ "id" : "PokGoPun",
"data" : [
[
"Perl",
2
]
],
- "name" : "PokGoPun",
- "id" : "PokGoPun"
+ "name" : "PokGoPun"
},
{
"id" : "Robert DiCicco",
@@ -80,6 +159,7 @@
"name" : "Robert DiCicco"
},
{
+ "name" : "Roger Bell_West",
"data" : [
[
"Perl",
@@ -90,7 +170,6 @@
2
]
],
- "name" : "Roger Bell_West",
"id" : "Roger Bell_West"
},
{
@@ -109,6 +188,7 @@
},
{
"name" : "Stephen G Lynn",
+ "id" : "Stephen G Lynn",
"data" : [
[
"Perl",
@@ -118,8 +198,21 @@
"Raku",
2
]
- ],
- "id" : "Stephen G Lynn"
+ ]
+ },
+ {
+ "name" : "Ulrich Rieke",
+ "id" : "Ulrich Rieke",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Raku",
+ 2
+ ]
+ ]
},
{
"data" : [
@@ -132,76 +225,17 @@
1
]
],
- "name" : "W. Luis Mochan",
- "id" : "W. Luis Mochan"
+ "id" : "W. Luis Mochan",
+ "name" : "W. Luis Mochan"
}
]
},
- "plotOptions" : {
- "series" : {
- "borderWidth" : 0,
- "dataLabels" : {
- "enabled" : 1,
- "format" : "{point.y}"
- }
- }
- },
"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/>",
- "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>"
+ "followPointer" : 1
},
- "series" : [
- {
- "colorByPoint" : 1,
- "data" : [
- {
- "y" : 8,
- "name" : "Luca Ferrari",
- "drilldown" : "Luca Ferrari"
- },
- {
- "y" : 2,
- "drilldown" : "Mark Anderson",
- "name" : "Mark Anderson"
- },
- {
- "y" : 3,
- "drilldown" : "Peter Campbell Smith",
- "name" : "Peter Campbell Smith"
- },
- {
- "y" : 2,
- "name" : "PokGoPun",
- "drilldown" : "PokGoPun"
- },
- {
- "drilldown" : "Robert DiCicco",
- "name" : "Robert DiCicco",
- "y" : 1
- },
- {
- "name" : "Roger Bell_West",
- "drilldown" : "Roger Bell_West",
- "y" : 4
- },
- {
- "name" : "Simon Green",
- "drilldown" : "Simon Green",
- "y" : 3
- },
- {
- "y" : 4,
- "drilldown" : "Stephen G Lynn",
- "name" : "Stephen G Lynn"
- },
- {
- "y" : 3,
- "drilldown" : "W. Luis Mochan",
- "name" : "W. Luis Mochan"
- }
- ],
- "name" : "The Weekly Challenge - 169"
- }
- ]
+ "chart" : {
+ "type" : "column"
+ }
}
diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json
index c59e609bf2..4638097288 100644
--- a/stats/pwc-language-breakdown-summary.json
+++ b/stats/pwc-language-breakdown-summary.json
@@ -1,12 +1,21 @@
{
- "chart" : {
- "type" : "column"
- },
- "tooltip" : {
- "pointFormat" : "<b>{point.y:.0f}</b>"
+ "legend" : {
+ "enabled" : "false"
},
"series" : [
{
+ "dataLabels" : {
+ "enabled" : "true",
+ "y" : 10,
+ "style" : {
+ "fontFamily" : "Verdana, sans-serif",
+ "fontSize" : "13px"
+ },
+ "align" : "right",
+ "format" : "{point.y:.0f}",
+ "rotation" : -90,
+ "color" : "#FFFFFF"
+ },
"data" : [
[
"Blog",
@@ -14,50 +23,41 @@
],
[
"Perl",
- 8208
+ 8212
],
[
"Raku",
- 4872
+ 4874
]
],
- "name" : "Contributions",
- "dataLabels" : {
- "style" : {
- "fontFamily" : "Verdana, sans-serif",
- "fontSize" : "13px"
- },
- "color" : "#FFFFFF",
- "y" : 10,
- "rotation" : -90,
- "align" : "right",
- "enabled" : "true",
- "format" : "{point.y:.0f}"
- }
+ "name" : "Contributions"
}
],
"xAxis" : {
"type" : "category",
"labels" : {
"style" : {
- "fontFamily" : "Verdana, sans-serif",
- "fontSize" : "13px"
+ "fontSize" : "13px",
+ "fontFamily" : "Verdana, sans-serif"
}
}
},
+ "subtitle" : {
+ "text" : "Last updated at 2022-06-14 23:23:29 GMT"
+ },
"yAxis" : {
- "min" : 0,
"title" : {
"text" : null
- }
+ },
+ "min" : 0
},
- "subtitle" : {
- "text" : "Last updated at 2022-06-14 20:05:56 GMT"
+ "chart" : {
+ "type" : "column"
+ },
+ "tooltip" : {
+ "pointFormat" : "<b>{point.y:.0f}</b>"
},
"title" : {
"text" : "The Weekly Challenge Contributions [2019 - 2022]"
- },
- "legend" : {
- "enabled" : "false"
}
}
diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json
index 1d897066af..5ced0350d7 100644
--- a/stats/pwc-language-breakdown.json
+++ b/stats/pwc-language-breakdown.json
@@ -1,4 +1,869 @@
{
+ "subtitle" : {
+ "text" : "Click the columns to drilldown the language breakdown. Last updated at 2022-06-14 23:23:29 GMT"
+ },
+ "series" : [
+ {
+ "name" : "The Weekly Challenge Languages",
+ "colorByPoint" : "true",
+ "data" : [
+ {
+ "y" : 161,
+ "drilldown" : "001",
+ "name" : "#001"
+ },
+ {
+ "name" : "#002",
+ "drilldown" : "002",
+ "y" : 125
+ },
+ {
+ "name" : "#003",
+ "drilldown" : "003",
+ "y" : 83
+ },
+ {
+ "y" : 99,
+ "name" : "#004",
+ "drilldown" : "004"
+ },
+ {
+ "y" : 78,
+ "drilldown" : "005",
+ "name" : "#005"
+ },
+ {
+ "drilldown" : "006",
+ "name" : "#006",
+ "y" : 58
+ },
+ {
+ "y" : 64,
+ "name" : "#007",
+ "drilldown" : "007"
+ },
+ {
+ "y" : 78,
+ "name" : "#008",
+ "drilldown" : "008"
+ },
+ {
+ "y" : 76,
+ "drilldown" : "009",
+ "name" : "#009"
+ },
+ {
+ "name" : "#010",
+ "drilldown" : "010",
+ "y" : 65
+ },
+ {
+ "y" : 85,
+ "drilldown" : "011",
+ "name" : "#011"
+ },
+ {
+ "drilldown" : "012",
+ "name" : "#012",
+ "y" : 89
+ },
+ {
+ "y" : 85,
+ "drilldown" : "013",
+ "name" : "#013"
+ },
+ {
+ "y" : 101,
+ "drilldown" : "014",
+ "name" : "#014"
+ },
+ {
+ "name" : "#015",
+ "drilldown" : "015",
+ "y" : 99
+ },
+ {
+ "y" : 71,
+ "name" : "#016",
+ "drilldown" : "016"
+ },
+ {
+ "name" : "#017",
+ "drilldown" : "017",
+ "y" : 84
+ },
+ {
+ "y" : 81,
+ "name" : "#018",
+ "drilldown" : "018"
+ },
+ {
+ "y" : 103,
+ "name" : "#019",
+ "drilldown" : "019"
+ },
+ {
+ "y" : 101,
+ "drilldown" : "020",
+ "name" : "#020"
+ },
+ {
+ "name" : "#021",
+ "drilldown" : "021",
+ "y" : 72
+ },
+ {
+ "y" : 68,
+ "drilldown" : "022",
+ "name" : "#022"
+ },
+ {
+ "drilldown" : "023",
+ "name" : "#023",
+ "y" : 97
+ },
+ {
+ "y" : 75,
+ "drilldown" : "024",
+ "name" : "#024"
+ },
+ {