diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2022-08-21 22:05:06 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2022-08-21 22:05:06 +0100 |
| commit | 34bdbbb761726d917fc13a6b260f816de71068ef (patch) | |
| tree | 6ab4e6728a612170404b543134d19785e4c037a2 | |
| parent | 410bb325a3c2adc9702dc777018b3cc41d4b2343 (diff) | |
| download | perlweeklychallenge-club-34bdbbb761726d917fc13a6b260f816de71068ef.tar.gz perlweeklychallenge-club-34bdbbb761726d917fc13a6b260f816de71068ef.tar.bz2 perlweeklychallenge-club-34bdbbb761726d917fc13a6b260f816de71068ef.zip | |
- Added solutions by Colin Crain.
| -rw-r--r-- | challenge-178/colin-crain/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-178/colin-crain/blog1.txt | 1 | ||||
| -rwxr-xr-x | challenge-178/colin-crain/perl/ch-1.pl | 180 | ||||
| -rwxr-xr-x | challenge-178/colin-crain/perl/ch-2.pl | 177 | ||||
| -rw-r--r-- | stats/pwc-current.json | 197 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 76 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 1230 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 358 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 106 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 44 | ||||
| -rw-r--r-- | stats/pwc-summary-151-180.json | 42 | ||||
| -rw-r--r-- | stats/pwc-summary-181-210.json | 118 | ||||
| -rw-r--r-- | stats/pwc-summary-211-240.json | 40 | ||||
| -rw-r--r-- | stats/pwc-summary-241-270.json | 38 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 114 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 46 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 104 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 592 |
18 files changed, 1921 insertions, 1543 deletions
diff --git a/challenge-178/colin-crain/blog.txt b/challenge-178/colin-crain/blog.txt new file mode 100644 index 0000000000..c70c2a2d2c --- /dev/null +++ b/challenge-178/colin-crain/blog.txt @@ -0,0 +1 @@ +https://colincrain.com/2022/08/21/the-imaginary-quartet diff --git a/challenge-178/colin-crain/blog1.txt b/challenge-178/colin-crain/blog1.txt new file mode 100644 index 0000000000..b29ec29f57 --- /dev/null +++ b/challenge-178/colin-crain/blog1.txt @@ -0,0 +1 @@ +https://colincrain.com/2022/08/22/a-very-busy-dating-service diff --git a/challenge-178/colin-crain/perl/ch-1.pl b/challenge-178/colin-crain/perl/ch-1.pl new file mode 100755 index 0000000000..8d0fb49b21 --- /dev/null +++ b/challenge-178/colin-crain/perl/ch-1.pl @@ -0,0 +1,180 @@ +#!/Users/colincrain/perl5/perlbrew/perls/perl-5.32.0/bin/perl
+#
+# imaginary-quartet.pl
+#
+# Quater-imaginary Base
+# Submitted by: Mohammad S Anwar
+# Write a script to convert a given number (base 10) to
+# quater-imaginary base number and vice-versa. For more
+# informations, please checkout wiki page.
+#
+# For example:
+#
+# $number_base_10 = 4
+# $number_quater_imaginary_base = 10300
+
+# Background:
+#
+# Wow. well this has been a wild ride. I laughed, I cried. I looked
+# at the page and reread what I had in front of me again. I found
+# other sources and periphrial topics. I hunted down Knuth's
+# original and read that. It's really such an... interesting piece
+# of math.
+#
+# As it is, some of our previous efforts here at the PWC have
+# introduced me to various ideas in alternate bases. From the very
+# beginning in PWC we converted to base-35. You know what would
+# make a really interesting numbering system? Using prime numbers:
+# you could describe any number by the exponent values in its prime
+# factorization, with the primes each assigned positions. Or
+# Fibonacci numbers. Yes you can construct an insane numbering
+# system from them too.
+#
+# Today we have a brace of novel ideas that link together. THe
+# first is the idea of negative bases. If the base is negative,
+# than in a positional expansion:
+#
+# xyz = x * base^2 + y * base^1 + z * base^0
+#
+# every other value will wind up negative, and hence be subtracted.
+# This, interestingly enough, allows us to write negative values
+# without designating a special sign for them.
+
+# This leads us to base (-2), or negabinary, which because of the
+# aforementioned property is occationally of interest to comuter
+# scientists who are sick of twos-complement for one reason orr
+# another. It's intriguing in a number of ways, and has soem
+# interesting properties, but never much caught on in computing.
+#
+# More immediate to the task at hand is base (-4), or
+# negaquaternary. Having four available values for each digit does
+# condense things a bit. We'll be using this later.
+#
+# Wait what? Why, for all that is good and holy, WHY?
+#
+# Because Donald Knuth wasn't satisfied with simply toying around in
+# negabinary, I suppose, and wanted to take matters into a
+# different dimension. Off the line, that is, up and into the complex plane.
+#
+# Complex numbers are constructed from two values, a real and an
+# imaginary component. The real part is just a number as we know
+# it, but the imaginary part is a real number multipllied by the
+# square root of negative 1, denotated *i*.
+#
+# Imaginary numbers, as it works out, can be an extremely useful
+# idea.
+#
+# So what we're talking about here is really just the same
+# conceptualization of negative bases mapped on over. How, you ask?
+# By making the base 2i.
+#
+# As i * i = -1, every other position in a positional expansion
+# here is real, as well as negative. However every other real
+# position will be a negative number squared, and hence will be
+# positive. The imaginary comonents follow the same alternating
+# pattern as well.
+#
+# So in the same way that by alternately adding and subtracting
+# values we can home in on any real value in negaquaternary, we can
+# home in on any real value for the complex component, all with
+# only the digits 0,1,2, and 3 and perhaps a lot of space.
+
+# Knuth originally commented in his 1955 paper that the
+# quater-imaginary number system could be potentially quite useful
+# due to its ease in multiplication and addition, which is
+# remarkably straighforward. However a graceful technique for
+# division eluded him, and to this day quater-imaginary numbers
+# remain largely a mathematical curiosity.
+#
+# Method:
+#
+# In this task, however, we are only getting our feet wet, as we
+# are asked to convert base-10 real numbers to their
+# quater-imaginary equivalent and back. Real numbers are still
+# complex, of course, with an imaginary component set to 0. Thus
+# the alternating positions holding he complex components will all
+# be 0. The remaining positions, viewed as a number, will be the
+# decimal number converted to negaquaternary.
+#
+# Converting bases is old hat by this point, we divide out and
+# append the remainders to the converted value. There is one twist,
+# though, in that for this to work the remainder must be positive.
+# Should the remainder be negative, we need to carry a digit from
+# the quotient back, subtracting 1 from the quotient and adding 4
+# to the remainder. With this additional new step everything works
+# out right.
+#
+# To convert back to decimal there is no similar problem with
+# powers, so like any other conversion we raise (-4) to the power
+# of the position and multiply by the value found there, adding the
+# result to the deecimal conversion.
+#
+# © 2022 colin crain
+## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
+
+
+
+use warnings;
+use strict;
+use utf8;
+use feature ":5.26";
+use feature qw(signatures);
+no warnings 'experimental::signatures';
+
+## a spread of values converted to quater-imaginary and back again
+
+say " dec : quater-i : dec ";
+say "-----+------------+-----";
+for (-16..16) {
+ my $qi = dec2quater_i( $_ );
+ say sprintf "%4d : %-10d : %d", $_, $qi, quater_i2dec( $qi );
+
+}
+
+
+sub dec2quater_i ( $num ) {
+## variant on normal base conversion
+## non-imaginary integers only!
+## converts from base-10 to quater-imaginary
+## converts to base -4 and then inserts 0s between digits for +i components
+ my $rem;
+ my $quot;
+ my @nqt;
+
+ ## divide out -4s and save remainders
+ ## remainders must be positive
+ while ( $num != 0 ) {
+ $quot = int($num / -4);
+ ($num, $rem) = ($quot, $num - ($quot * -4));
+ if ($rem < 0) {
+ ## flip remainder to positive if necessary (subtract -4 and carry)
+ ($num, $rem) = ($num + 1, $rem + 4)
+ }
+ unshift @nqt, $rem;
+ }
+ return scalar @nqt ## required to ensure 0 value
+ ? join '0', @nqt
+ : 0 ;
+}
+
+sub quater_i2dec( $num ) {
+
+## non-imaginary integers only!
+## converts quater-imaginary to non-imaginary base-10
+## strips +i components (which will be zeros) and converts from base -4
+
+ ## filter out every other position
+ my $i = 1;
+ my @num = grep { $i++ & 1 } split //, $num;
+
+ ## convert by computing expanded form
+ my $out;
+ my $pos = 0;
+ for ( reverse @num ) {
+ $out += $_ * (-4) ** $pos++;
+ }
+
+ return $out;
+}
+
+
diff --git a/challenge-178/colin-crain/perl/ch-2.pl b/challenge-178/colin-crain/perl/ch-2.pl new file mode 100755 index 0000000000..d596cbdb69 --- /dev/null +++ b/challenge-178/colin-crain/perl/ch-2.pl @@ -0,0 +1,177 @@ +#!/Users/colincrain/perl5/perlbrew/perls/perl-5.32.0/bin/perl
+#
+# busy-dating-service.pl
+#
+# Business Date
+# Submitted by: Mohammad S Anwar
+# You are given $timestamp (date with time) and $duration in hours.
+#
+# Write a script to find the time that occurs $duration business
+# hours after $timestamp. For the sake of this task, let us assume
+# the working hours is 9am to 6pm, Monday to Friday. Please ignore
+# timezone too.
+#
+# For example,
+#
+# Suppose the given timestamp is 2022-08-01 10:30 and the duration
+# is 4 hours. Then the next business date would be 2022-08-01
+# 14:30.
+#
+# Similar if the given timestamp is 2022-08-01 17:00 and the
+# duration is 3.5 hours. Then the next business date would be
+# 2022-08-02 11:30.
+
+# Analysis:
+#
+# There's alot of moving parts to this particular challenge. We
+# need to start with inputting a timestamp string, and then add
+# hours to it, carrying over into the next day as required until we
+# land within the business hours of a single day. Weekends are
+# excluded as well, so if we roll off Friday we resume Monday
+# morning. And of course we're only counting the hours elapsed
+# within a limited frame of 9am to 6pm.
+#
+# Fortunately the directionality of time limits our duration hours
+# to positive values. So theres that. And seconds: no seconds, or
+# nanoseconds, or timezones, as noted, but I can't figure out how
+# those would come into play anyway. Are we doing business on the
+# Concorde?
+#
+# I don't think we're going to worry about either lunchbreaks or
+# holidays either, and hold fast to the given input timestamp
+# format, without extensive validation or anything. Life is
+# complicated enough.
+
+# We're also going to make one more simplifting assumption, that
+# the timestamp input occurs with a business day. In a real program
+# we'd want to verify this, and start the clock at the next
+# business day, but if the ticket was submitted by the business
+# personnel then the bnusiness would need to be open, no?
+#
+# Method:
+#
+# As the day of the week is a very important part of the problem,
+# and subject to arcane leap-year rules in February, I think it
+# prudent to armor ourselves under the protective shield of the
+# DateTime module so we can poll th eday of the week value directly
+# from there. We can't, however just add hours to find a new date,
+# as all hours are important but some hours are more important that
+# others.
+#
+# It seems a good strategy would be to break down the hours added
+# into 3 components:
+#
+# 1. the hours remaining in the current day
+# 2. a series of 9-hour intervals comprising complete workdays
+# 3. a remaining portion of less than 9 hours to place the
+# endpoint timestamp
+#
+# We will start by parsing the input timestamp into a new DateTime
+# object and try deriving the three components from there. Which is
+# fine, but DateTime doesn't actually do that. We'll need something
+# else.
+
+# And what would that be?
+#
+# As it work out, DateTime does not parse dates because there's way
+# too many varieties to choose from when writng them down. So
+# instead of trying to implement the functionality within the date
+# module directly, and entire class of classes takes the role
+# instead: DateTime::Format. This in turn is subclassed further
+# with a whatever scheme you might want to accomodate.
+#
+# We will pick DateTime::Format::Strptime which basically
+# implements the unix utilities strptime and strftime, allowing one
+# to specifiy a formatting template from a list of symbols,
+# including shortcuts for some of the more common layouts.
+
+# Once the timestamp is in we can then create another DateTIme
+# object for the end of whatever day we are in, and subtract the
+# earlier from the later to create a duration until the end of the day.
+#
+# If the end of the day is after the given span, we add the minutes
+# to the current day and report. If we need to jump to the next day
+# things get a little more complicated.
+#
+# We need to first reset by removing the reamining mnutes for the
+# current day from the count, ans start a new day object at 9am.
+# This will be initialized at the next business day, skipping hte
+# weekend if necessary. From there we subtract entire days in
+# minutes, 540 each, until the span is less than 540, again
+# skipping weekends if necessary. This locates the end date.
+
+# Once we have the end date we add the remaining minute count of
+# the duration to obtain the end time within the day.
+#
+
+#
+# © 2022 colin crain
+## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
+
+
+
+use warnings;
+use strict;
+use utf8;
+use feature ":5.26";
+use feature qw(signatures);
+no warnings 'experimental::signatures';
+
+use DateTime;
+use DateTime::Format::Strptime ;
+
+
+my ($timestamp, $delta) = @ARGV;
+if (@ARGV == 0) { ($timestamp, $delta) = ( '2022-08-01 10:30', 400 )}
+
+## convert to minutes
+my $duration_minutes = $delta * 60;
+
+## parse input and create a DateTime object for the timestamp
+my $format = DateTime::Format::Strptime->new(
+ pattern => '%F %H:%M');
+my $date = $format->parse_datetime($timestamp);
+
+## calculate remaining minutes in current day
+my $day_end = DateTime->new(
+ year => $date->year,
+ month => $date->month,
+ day => $date->day,
+ hour => 18,
+ minute => 0
+);
+my $date_remaining_duration = $day_end->subtract_datetime($date);
+my $remaining_minutes_today = $date_remaining_duration->hours * 60 +
+ $date_remaining_duration->minutes;
+
+## CASE 1: duration falls within current day
+##
+if ($duration_minutes <= $remaining_minutes_today) {
+ $date->add( minutes => $duration_minutes );
+}
+
+## CASE 2: we finish this day and locate the ending day
+##
+else {
+ ## subtract remaining time within current day
+ $duration_minutes -= $remaining_minutes_today;
+
+ ## start a new day to the next business day
+ $date->set_hour( 9 );
+ $date->set_minute( 0 );
+ $date->add( days => ($date->day_of_week == 5 ? 3 : 1));
+
+ ## add any complete days, skipping weekends
+ while ($duration_minutes > 540) { ## 540 minutes in 9-hour day
+ $date->add( days => ($date->day_of_week == 5 ? 3 : 1));
+ $duration_minutes -= 540;
+ }
+
+ ## add any remaining minutes forward from 9am on the end day
+ $date->add( minutes => $duration_minutes );
+}
+
+## output timestamp as per format
+$date->set_formatter($format);
+say $date->stringify;
+
diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 77c0f5ce3d..d5a0cfa0d0 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,22 +1,33 @@ { - "chart" : { - "type" : "column" + "title" : { + "text" : "The Weekly Challenge - 178" + }, + "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 + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "legend" : { + "enabled" : 0 }, "drilldown" : { "series" : [ { - "name" : "AhmetEmre", "data" : [ [ "Raku", 2 ] ], + "name" : "AhmetEmre", "id" : "AhmetEmre" }, { - "name" : "Arne Sommer", - "id" : "Arne Sommer", "data" : [ [ "Raku", @@ -26,7 +37,9 @@ "Blog", 1 ] - ] + ], + "name" : "Arne Sommer", + "id" : "Arne Sommer" }, { "data" : [ @@ -39,10 +52,12 @@ 1 ] ], - "id" : "Athanasius", - "name" : "Athanasius" + "name" : "Athanasius", + "id" : "Athanasius" }, { + "name" : "Cheok-Yin Fung", + "id" : "Cheok-Yin Fung", "data" : [ [ "Perl", @@ -52,21 +67,34 @@ "Raku", 1 ] + ] + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 2 + ] ], - "id" : "Cheok-Yin Fung", - "name" : "Cheok-Yin Fung" + "id" : "Colin Crain", + "name" : "Colin Crain" }, { "id" : "E. Choroba", + "name" : "E. Choroba", "data" : [ [ "Perl", 2 ] - ], - "name" : "E. Choroba" + ] }, { + "name" : "Flavio Poletti", "id" : "Flavio Poletti", "data" : [ [ @@ -81,38 +109,37 @@ "Blog", 2 ] - ], - "name" : "Flavio Poletti" + ] }, { + "id" : "Jan Krnavek", "name" : "Jan Krnavek", "data" : [ [ "Raku", 1 ] - ], - "id" : "Jan Krnavek" + ] }, { - "name" : "Jorg Sommrey", - "id" : "Jorg Sommrey", "data" : [ [ "Perl", 2 ] - ] + ], + "id" : "Jorg Sommrey", + "name" : "Jorg Sommrey" }, { - "name" : "Kjetil Skotheim", - "id" : "Kjetil Skotheim", "data" : [ [ "Perl", 2 ] - ] + ], + "id" : "Kjetil Skotheim", + "name" : "Kjetil Skotheim" }, { "data" : [ @@ -139,8 +166,8 @@ "name" : "Mark Anderson" }, { - "name" : "Peter Campbell Smith", "id" : "Peter Campbell Smith", + "name" : "Peter Campbell Smith", "data" : [ [ "Perl", @@ -167,12 +194,12 @@ 1 ] ], - "id" : "Roger Bell_West", - "name" : "Roger Bell_West" + "name" : "Roger Bell_West", + "id" : "Roger Bell_West" }, { - "name" : "Simon Green", "id" : "Simon Green", + "name" : "Simon Green", "data" : [ [ "Perl", @@ -185,16 +212,18 @@ ] }, { + "id" : "Solathian", + "name" : "Solathian", "data" : [ [ "Perl", 1 ] - ], - "id" : "Solathian", - "name" : "Solathian" + ] }, { + "id" : "Stephen G Lynn", + "name" : "Stephen G Lynn", "data" : [ [ "Perl", @@ -208,13 +237,11 @@ "Blog", 1 ] - ], - "id" : "Stephen G Lynn", - "name" : "Stephen G Lynn" + ] }, { - "name" : "Ulrich Rieke", "id" : "Ulrich Rieke", + "name" : "Ulrich Rieke", "data" : [ [ "Perl", @@ -227,8 +254,8 @@ ] }, { - "name" : "W. Luis Mochan", "id" : "W. Luis Mochan", + "name" : "W. Luis Mochan", "data" : [ [ "Perl", @@ -242,10 +269,23 @@ } ] }, - "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" : { + "borderWidth" : 0, + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + } + } + }, + "subtitle" : { + "text" : "[Champions: 19] Last updated at 2022-08-21 21:00:53 GMT" + }, + "chart" : { + "type" : "column" + }, + "xAxis" : { + "type" : "category" }, "series" : [ { @@ -262,18 +302,23 @@ }, { "name" : "Athanasius", - "drilldown" : "Athanasius", - "y" : 2 + "y" : 2, + "drilldown" : "Athanasius" }, { + "name" : "Cheok-Yin Fung", "y" : 2, - "drilldown" : "Cheok-Yin Fung", - "name" : "Cheok-Yin Fung" + "drilldown" : "Cheok-Yin Fung" + }, + { + "y" : 4, + "name" : "Colin Crain", + "drilldown" : "Colin Crain" }, { - "drilldown" : "E. Choroba", "y" : 2, - "name" : "E. Choroba" + "name" : "E. Choroba", + "drilldown" : "E. Choroba" }, { "name" : "Flavio Poletti", @@ -281,13 +326,13 @@ "drilldown" : "Flavio Poletti" }, { - "name" : "Jan Krnavek", + "drilldown" : "Jan Krnavek", "y" : 1, - "drilldown" : "Jan Krnavek" + "name" : "Jan Krnavek" }, { - "y" : 2, "drilldown" : "Jorg Sommrey", + "y" : 2, "name" : "Jorg Sommrey" }, { @@ -297,8 +342,8 @@ }, { "drilldown" : "Luca Ferrari", - "y" : 4, - "name" : "Luca Ferrari" + "name" : "Luca Ferrari", + "y" : 4 }, { "drilldown" : "Mark Anderson", @@ -307,68 +352,42 @@ }, { "drilldown" : "Peter Campbell Smith", - "y" : 3, - "name" : "Peter Campbell Smith" + "name" : "Peter Campbell Smith", + "y" : 3 }, { + "drilldown" : "Roger Bell_West", "name" : "Roger Bell_West", - "y" : 5, - "drilldown" : "Roger Bell_West" + "y" : 5 }, { - "name" : "Simon Green", "y" : 3, + "name" : "Simon Green", "drilldown" : "Simon Green" }, { - "drilldown" : "Solathian", "y" : 1, - "name" : "Solathian" + "name" : "Solathian", + "drilldown" : "Solathian" }, { "drilldown" : "Stephen G Lynn", - "y" : 3, - "name" : "Stephen G Lynn" + "name" : "Stephen G Lynn", + "y" : 3 }, { - "name" : "Ulrich Rieke", + "drilldown" : "Ulrich Rieke", "y" : 4, - "drilldown" : "Ulrich Rieke" + "name" : "Ulrich Rieke" }, { "y" : 3, - "drilldown" : "W. Luis Mochan", - "name" : "W. Luis Mochan" + "name" : "W. Luis Mochan", + "drilldown" : "W. Luis Mochan" } ], "colorByPoint" : 1, "name" : "The Weekly Challenge - 178" } - ], - "subtitle" : { - "text" : "[Champions: 18] Last updated at 2022-08-21 20:49:25 GMT" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "legend" : { - "enabled" : 0 - }, - "xAxis" : { - "type" : "category" - }, - "plotOptions" : { - "series" : { - "borderWidth" : 0, - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - } - } - }, - "title" : { - "text" : "The Weekly Challenge - 178" - } + ] } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 4d91b46384..a4feed2e37 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,63 +1,63 @@ { - "chart" : { - "type" : "column" + "title" : { + "text" : "The Weekly Challenge Contributions [2019 - 2022]" }, "tooltip" : { "pointFormat" : "<b>{point.y:.0f}</b>" }, + "yAxis" : { + "min" : 0, + "title" : { + "text" : null + } + }, + "chart" : { + "type" : "column" + }, + "xAxis" : { + "type" : "category", + "labels" : { + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + } + } + }, "series" : [ { + "name" : "Contributions", + "dataLabels" : { + "align" : "right", + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + }, + "format" : "{point.y:.0f}", + "rotation" : -90, + "y" : 10, + "enabled" : "true", + "color" : "#FFFFFF" + }, "data" : [ [ "Blog", - 2802 + 2804 ], [ "Perl", - 8667 + 8669 ], [ "Raku", 5180 ] - ], - "dataLabels" : { - "y" : 10, - "align" : "right", - "enabled" : "true", - "rotation" : -90, - "color" : "#FFFFFF", - "format" : "{point.y:.0f}", - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - } - }, - "name" : "Contributions" + ] } ], - "subtitle" : { - "text" : "Last updated at 2022-08-21 20:49:24 GMT" - }, - "yAxis" : { - "min" : 0, - "title" : { - "text" : null - } - }, "legend" : { "enabled" : "false" }, - "xAxis" : { - "type" : "category", - "labels" : { - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - } - } - }, - "title" : { - "text" : "The Weekly Challenge Contributions [2019 - 2022]" + "subtitle" : { + "text" : "Last updated at 2022-08-21 21:00:53 GMT" } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index b306d1c069..655f2c49d1 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,53 +1,30 @@ { - "title" : { - "text" : "The Weekly Challenge Language" - }, - "xAxis" : { - "type" : "category" - }, - "plotOptions" : { - "series" : { - "borderWidth" : 0, - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - } - } - }, - "legend" : { - "enabled" : "false" - }, - "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2022-08-21 20:49:24 GMT" - }, "series" : [ { - "colorByPoint" : "true", - "name" : "The Weekly Challenge Languages", "data" : [ { - "drilldown" : "001", "y" : 161, - "name" : " |
