Rosetta Code/List authors of task descriptions: Difference between revisions

From Rosetta Code
Content added Content deleted
m (→‎{{header|Perl 6}}: Add comments, style tweaks, minor enhancements)
m (→‎{{header|Perl 6}}: Minor updates and tweaks)
Line 21: Line 21:
Please '''DO NOT''' add a full output for ''each'' programming language; just show a representative sample. One full list is useful. Multiple full lists just use space and bandwidth.
Please '''DO NOT''' add a full output for ''each'' programming language; just show a representative sample. One full list is useful. Multiple full lists just use space and bandwidth.


<div style="height:80ex;overflow:scroll;border-style:ridge;"><table border="1" cellpadding="4"><tr><th colspan="2">As of 2017-12-21 | Total: 1071 / Tasks: 867 / Draft Tasks: 204 / By 247 Authors<tr><th>User</th><th>Authored</th></tr>
<div style="height:80ex;overflow:scroll;border-style:ridge;"><table border="1" cellpadding="4"><tr><th colspan="2">As of 2017-12-23 | Total: 1073 / Tasks: 867 / Draft Tasks: 206 / By 247 Authors<tr><th>User</th><th>Authored</th></tr>
<tr><td><ul>[[User:2Powers|2Powers]] [[Special:Contributions/2Powers|?]]</ul></td><td><ul><ol><li>2013-05-16 - Draft: [[Names%20to%20numbers|Names to numbers]]</li><li>2013-05-16 - Draft: [[Solving%20coin%20problems|Solving coin problems]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:2Powers|2Powers]] [[Special:Contributions/2Powers|?]]</ul></td><td><ul><ol><li>2013-05-16 - Draft: [[Names%20to%20numbers|Names to numbers]]</li><li>2013-05-16 - Draft: [[Solving%20coin%20problems|Solving coin problems]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:12.175.32.19|12.175.32.19]] [[Special:Contributions/12.175.32.19|?]]</ul></td><td><ul><ol><li>2009-11-12 - Task: [[Soundex|Soundex]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:12.175.32.19|12.175.32.19]] [[Special:Contributions/12.175.32.19|?]]</ul></td><td><ul><ol><li>2009-11-12 - Task: [[Soundex|Soundex]]</li></ol></ul></td></tr>
Line 79: Line 79:
<tr><td><ul>[[User:Bjrtr|Bjrtr]] [[Special:Contributions/Bjrtr|?]]</ul></td><td><ul><ol><li>2011-08-16 - Task: [[Call%20an%20object%20method|Call an object method]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:Bjrtr|Bjrtr]] [[Special:Contributions/Bjrtr|?]]</ul></td><td><ul><ol><li>2011-08-16 - Task: [[Call%20an%20object%20method|Call an object method]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:BlaiseP|BlaiseP]] [[Special:Contributions/BlaiseP|?]]</ul></td><td><ul><ol><li>2014-07-22 - Task: [[The%20ISAAC%20Cipher|The ISAAC Cipher]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:BlaiseP|BlaiseP]] [[Special:Contributions/BlaiseP|?]]</ul></td><td><ul><ol><li>2014-07-22 - Task: [[The%20ISAAC%20Cipher|The ISAAC Cipher]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:Blue Prawn|Blue Prawn]] [[Special:Contributions/Blue Prawn|?]]</ul></td><td><ul><ol><li>2008-12-06 - Task: [[Bitmap|Bitmap]]</li><li>2008-12-06 - Task: [[Bitmap%2FBresenham%27s%20line%20algorithm|Bitmap/Bresenham's line algorithm]]</li><li>2008-12-06 - Task: [[Bitmap%2FBézier%20curves%2FCubic|Bitmap/Bézier curves/Cubic]]</li><li>2008-12-06 - Task: [[Bitmap%2FBézier%20curves%2FQuadratic|Bitmap/Bézier curves/Quadratic]]</li><li>2008-12-06 - Task: [[Bitmap%2FMidpoint%20circle%20algorithm|Bitmap/Midpoint circle algorithm]]</li><li>2008-12-06 - Task: [[Bitmap%2FPPM%20conversion%20through%20a%20pipe|Bitmap/PPM conversion through a pipe]]</li><li>2008-12-06 - Task: [[Bitmap%2FWrite%20a%20PPM%20file|Bitmap/Write a PPM file]]</li><li>2010-01-06 - Task: [[Catmull%E2%80%93Clark%20subdivision%20surface|Catmull–Clark subdivision surface]]</li><li>2013-03-28 - Draft: [[Check%20output%20device%20is%20a%20terminal|Check output device is a terminal]]</li><li>2010-09-23 - Task: [[Equilibrium%20index|Equilibrium index]]</li><li>2008-12-07 - Task: [[Image%20convolution|Image convolution]]</li><li>2011-11-05 - Task: [[Last%20Friday%20of%20each%20month|Last Friday of each month]]</li><li>2008-08-08 - Task: [[LZW%20compression|LZW compression]]</li><li>2008-12-07 - Task: [[Median%20filter|Median filter]]</li><li>2009-09-12 - Task: [[N-queens%20problem|N-queens problem]]</li><li>2008-11-13 - Task: [[Percentage%20difference%20between%20images|Percentage difference between images]]</li><li>2010-01-02 - Draft: [[Process%20SMIL%20directives%20in%20XML%20data|Process SMIL directives in XML data]]</li><li>2008-08-26 - Task: [[Shell%20one-liner|Shell one-liner]]</li><li>2008-11-13 - Task: [[Window%20creation%2FX11|Window creation/X11]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:Blue Prawn|Blue Prawn]] [[Special:Contributions/Blue Prawn|?]]</ul></td><td><ul><ol><li>2008-12-06 - Task: [[Bitmap|Bitmap]]</li><li>2008-12-06 - Task: [[Bitmap%2FBresenham%27s%20line%20algorithm|Bitmap/Bresenham's line algorithm]]</li><li>2008-12-06 - Task: [[Bitmap%2FB%C3%A9zier%20curves%2FCubic|Bitmap/Bézier curves/Cubic]]</li><li>2008-12-06 - Task: [[Bitmap%2FB%C3%A9zier%20curves%2FQuadratic|Bitmap/Bézier curves/Quadratic]]</li><li>2008-12-06 - Task: [[Bitmap%2FMidpoint%20circle%20algorithm|Bitmap/Midpoint circle algorithm]]</li><li>2008-12-06 - Task: [[Bitmap%2FPPM%20conversion%20through%20a%20pipe|Bitmap/PPM conversion through a pipe]]</li><li>2008-12-06 - Task: [[Bitmap%2FWrite%20a%20PPM%20file|Bitmap/Write a PPM file]]</li><li>2010-01-06 - Task: [[Catmull%E2%80%93Clark%20subdivision%20surface|Catmull–Clark subdivision surface]]</li><li>2013-03-28 - Draft: [[Check%20output%20device%20is%20a%20terminal|Check output device is a terminal]]</li><li>2010-09-23 - Task: [[Equilibrium%20index|Equilibrium index]]</li><li>2008-12-07 - Task: [[Image%20convolution|Image convolution]]</li><li>2011-11-05 - Task: [[Last%20Friday%20of%20each%20month|Last Friday of each month]]</li><li>2008-08-08 - Task: [[LZW%20compression|LZW compression]]</li><li>2008-12-07 - Task: [[Median%20filter|Median filter]]</li><li>2009-09-12 - Task: [[N-queens%20problem|N-queens problem]]</li><li>2008-11-13 - Task: [[Percentage%20difference%20between%20images|Percentage difference between images]]</li><li>2010-01-02 - Draft: [[Process%20SMIL%20directives%20in%20XML%20data|Process SMIL directives in XML data]]</li><li>2008-08-26 - Task: [[Shell%20one-liner|Shell one-liner]]</li><li>2008-11-13 - Task: [[Window%20creation%2FX11|Window creation/X11]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:Bob9000|Bob9000]] [[Special:Contributions/Bob9000|?]]</ul></td><td><ul><ol><li>2007-01-28 - Task: [[Sort%20an%20integer%20array|Sort an integer array]]</li><li>2007-01-30 - Task: [[Sort%20using%20a%20custom%20comparator|Sort using a custom comparator]]</li><li>2007-02-04 - Task: [[SQL-based%20authentication|SQL-based authentication]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:Bob9000|Bob9000]] [[Special:Contributions/Bob9000|?]]</ul></td><td><ul><ol><li>2007-01-28 - Task: [[Sort%20an%20integer%20array|Sort an integer array]]</li><li>2007-01-30 - Task: [[Sort%20using%20a%20custom%20comparator|Sort using a custom comparator]]</li><li>2007-02-04 - Task: [[SQL-based%20authentication|SQL-based authentication]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:BR|BR]] [[Special:Contributions/BR|?]]</ul></td><td><ul><ol><li>2010-01-25 - Task: [[Sorting%20algorithms%2FComb%20sort|Sorting algorithms/Comb sort]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:BR|BR]] [[Special:Contributions/BR|?]]</ul></td><td><ul><ol><li>2010-01-25 - Task: [[Sorting%20algorithms%2FComb%20sort|Sorting algorithms/Comb sort]]</li></ol></ul></td></tr>
Line 109: Line 109:
<tr><td><ul>[[User:Dkf|Dkf]] [[Special:Contributions/Dkf|?]]</ul></td><td><ul><ol><li>2009-12-28 - Task: [[Accumulator%20factory|Accumulator factory]]</li><li>2009-08-07 - Task: [[Animate%20a%20pendulum|Animate a pendulum]]</li><li>2009-06-14 - Task: [[Animation|Animation]]</li><li>2009-06-12 - Task: [[Averages%2FMedian|Averages/Median]]</li><li>2009-06-13 - Task: [[Averages%2FMode|Averages/Mode]]</li><li>2009-06-16 - Task: [[Cumulative%20standard%20deviation|Cumulative standard deviation]]</li><li>2009-05-13 - Task: [[Echo%20server|Echo server]]</li><li>2010-11-22 - Task: [[Generator%2FExponential|Generator/Exponential]]</li><li>2010-01-21 - Task: [[Hough%20transform|Hough transform]]</li><li>2009-06-01 - Task: [[HTTPS|HTTPS]]</li><li>2009-06-01 - Task: [[HTTPS%2FClient-authenticated|HTTPS/Client-authenticated]]</li><li>2009-06-28 - Task: [[Named%20parameters|Named parameters]]</li><li>2009-06-09 - Task: [[Non-decimal%20radices%2FInput|Non-decimal radices/Input]]</li><li>2009-06-03 - Task: [[Respond%20to%20an%20unknown%20method%20call|Respond to an unknown method call]]</li><li>2012-10-15 - Draft: [[Rosetta%20Code%2FTasks%20sorted%20by%20average%20lines%20of%20code|Rosetta Code/Tasks sorted by average lines of code]]</li><li>2011-04-24 - Task: [[Speech%20synthesis|Speech synthesis]]</li><li>2009-05-18 - Task: [[Stack%20traces|Stack traces]]</li><li>2010-03-23 - Task: [[Sutherland-Hodgman%20polygon%20clipping|Sutherland-Hodgman polygon clipping]]</li><li>2010-10-16 - Task: [[Terminal%20control%2FRinging%20the%20terminal%20bell|Terminal control/Ringing the terminal bell]]</li><li>2009-08-09 - Task: [[Verify%20distribution%20uniformity%2FChi-squared%20test|Verify distribution uniformity/Chi-squared test]]</li><li>2009-09-09 - Task: [[Wireworld|Wireworld]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:Dkf|Dkf]] [[Special:Contributions/Dkf|?]]</ul></td><td><ul><ol><li>2009-12-28 - Task: [[Accumulator%20factory|Accumulator factory]]</li><li>2009-08-07 - Task: [[Animate%20a%20pendulum|Animate a pendulum]]</li><li>2009-06-14 - Task: [[Animation|Animation]]</li><li>2009-06-12 - Task: [[Averages%2FMedian|Averages/Median]]</li><li>2009-06-13 - Task: [[Averages%2FMode|Averages/Mode]]</li><li>2009-06-16 - Task: [[Cumulative%20standard%20deviation|Cumulative standard deviation]]</li><li>2009-05-13 - Task: [[Echo%20server|Echo server]]</li><li>2010-11-22 - Task: [[Generator%2FExponential|Generator/Exponential]]</li><li>2010-01-21 - Task: [[Hough%20transform|Hough transform]]</li><li>2009-06-01 - Task: [[HTTPS|HTTPS]]</li><li>2009-06-01 - Task: [[HTTPS%2FClient-authenticated|HTTPS/Client-authenticated]]</li><li>2009-06-28 - Task: [[Named%20parameters|Named parameters]]</li><li>2009-06-09 - Task: [[Non-decimal%20radices%2FInput|Non-decimal radices/Input]]</li><li>2009-06-03 - Task: [[Respond%20to%20an%20unknown%20method%20call|Respond to an unknown method call]]</li><li>2012-10-15 - Draft: [[Rosetta%20Code%2FTasks%20sorted%20by%20average%20lines%20of%20code|Rosetta Code/Tasks sorted by average lines of code]]</li><li>2011-04-24 - Task: [[Speech%20synthesis|Speech synthesis]]</li><li>2009-05-18 - Task: [[Stack%20traces|Stack traces]]</li><li>2010-03-23 - Task: [[Sutherland-Hodgman%20polygon%20clipping|Sutherland-Hodgman polygon clipping]]</li><li>2010-10-16 - Task: [[Terminal%20control%2FRinging%20the%20terminal%20bell|Terminal control/Ringing the terminal bell]]</li><li>2009-08-09 - Task: [[Verify%20distribution%20uniformity%2FChi-squared%20test|Verify distribution uniformity/Chi-squared test]]</li><li>2009-09-09 - Task: [[Wireworld|Wireworld]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:Dmitry-kazakov|Dmitry-kazakov]] [[Special:Contributions/Dmitry-kazakov|?]]</ul></td><td><ul><ol><li>2008-11-20 - Task: [[Abstract%20type|Abstract type]]</li><li>2008-11-02 - Task: [[Active%20object|Active object]]</li><li>2009-03-22 - Task: [[Arena%20storage%20pool|Arena storage pool]]</li><li>2008-12-07 - Task: [[Bitmap%2FHistogram|Bitmap/Histogram]]</li><li>2008-12-07 - Task: [[Bitmap%2FRead%20a%20PPM%20file|Bitmap/Read a PPM file]]</li><li>2009-08-11 - Task: [[Call%20a%20foreign-language%20function|Call a foreign-language function]]</li><li>2010-08-10 - Task: [[Checkpoint%20synchronization|Checkpoint synchronization]]</li><li>2009-06-08 - Task: [[Create%20an%20object%20at%20a%20given%20address|Create an object at a given address]]</li><li>2008-11-01 - Task: [[Dining%20philosophers|Dining philosophers]]</li><li>2009-06-10 - Task: [[Events|Events]]</li><li>2008-12-07 - Task: [[Grayscale%20image|Grayscale image]]</li><li>2009-06-11 - Task: [[Loops%2FNested|Loops/Nested]]</li><li>2008-10-25 - Task: [[Polymorphic%20copy|Polymorphic copy]]</li><li>2009-02-17 - Task: [[Rendezvous|Rendezvous]]</li><li>2009-08-12 - Task: [[Safe%20addition|Safe addition]]</li><li>2009-08-11 - Task: [[Use%20another%20language%20to%20call%20a%20function|Use another language to call a function]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:Dmitry-kazakov|Dmitry-kazakov]] [[Special:Contributions/Dmitry-kazakov|?]]</ul></td><td><ul><ol><li>2008-11-20 - Task: [[Abstract%20type|Abstract type]]</li><li>2008-11-02 - Task: [[Active%20object|Active object]]</li><li>2009-03-22 - Task: [[Arena%20storage%20pool|Arena storage pool]]</li><li>2008-12-07 - Task: [[Bitmap%2FHistogram|Bitmap/Histogram]]</li><li>2008-12-07 - Task: [[Bitmap%2FRead%20a%20PPM%20file|Bitmap/Read a PPM file]]</li><li>2009-08-11 - Task: [[Call%20a%20foreign-language%20function|Call a foreign-language function]]</li><li>2010-08-10 - Task: [[Checkpoint%20synchronization|Checkpoint synchronization]]</li><li>2009-06-08 - Task: [[Create%20an%20object%20at%20a%20given%20address|Create an object at a given address]]</li><li>2008-11-01 - Task: [[Dining%20philosophers|Dining philosophers]]</li><li>2009-06-10 - Task: [[Events|Events]]</li><li>2008-12-07 - Task: [[Grayscale%20image|Grayscale image]]</li><li>2009-06-11 - Task: [[Loops%2FNested|Loops/Nested]]</li><li>2008-10-25 - Task: [[Polymorphic%20copy|Polymorphic copy]]</li><li>2009-02-17 - Task: [[Rendezvous|Rendezvous]]</li><li>2009-08-12 - Task: [[Safe%20addition|Safe addition]]</li><li>2009-08-11 - Task: [[Use%20another%20language%20to%20call%20a%20function|Use another language to call a function]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:Domgetter|Domgetter]] [[Special:Contributions/Domgetter|?]]</ul></td><td><ul><ol><li>2016-02-01 - Draft: [[Category%3AMonads|Category:Monads]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:Domgetter|Domgetter]] [[Special:Contributions/Domgetter|?]]</ul></td><td><ul><ol><li>2016-02-01 - Draft: [[Monads%2FList%20monad|Monads/List monad]]</li><li>2016-02-01 - Draft: [[Monads%2FMaybe%20monad|Monads/Maybe monad]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:Drea|Drea]] [[Special:Contributions/Drea|?]]</ul></td><td><ul><ol><li>2007-10-18 - Task: [[Sieve%20of%20Eratosthenes|Sieve of Eratosthenes]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:Drea|Drea]] [[Special:Contributions/Drea|?]]</ul></td><td><ul><ol><li>2007-10-18 - Task: [[Sieve%20of%20Eratosthenes|Sieve of Eratosthenes]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:DSblizzard|DSblizzard]] [[Special:Contributions/DSblizzard|?]]</ul></td><td><ul><ol><li>2011-02-27 - Task: [[Multisplit|Multisplit]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:DSblizzard|DSblizzard]] [[Special:Contributions/DSblizzard|?]]</ul></td><td><ul><ol><li>2011-02-27 - Task: [[Multisplit|Multisplit]]</li></ol></ul></td></tr>
Line 149: Line 149:
<tr><td><ul>[[User:Hippyman|Hippyman]] [[Special:Contributions/Hippyman|?]]</ul></td><td><ul><ol><li>2016-08-21 - Draft: [[Color%20wheel|Color wheel]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:Hippyman|Hippyman]] [[Special:Contributions/Hippyman|?]]</ul></td><td><ul><ol><li>2016-08-21 - Draft: [[Color%20wheel|Color wheel]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:Hircus|Hircus]] [[Special:Contributions/Hircus|?]]</ul></td><td><ul><ol><li>2009-10-24 - Task: [[Stair-climbing%20puzzle|Stair-climbing puzzle]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:Hircus|Hircus]] [[Special:Contributions/Hircus|?]]</ul></td><td><ul><ol><li>2009-10-24 - Task: [[Stair-climbing%20puzzle|Stair-climbing puzzle]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:Hout|Hout]] [[Special:Contributions/Hout|?]]</ul></td><td><ul><ol><li>2017-05-29 - Task: [[Cartesian%20product%20of%20two%20or%20more%20lists|Cartesian product of two or more lists]]</li><li>2016-12-06 - Task: [[Water%20collected%20between%20towers|Water collected between towers]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:Hout|Hout]] [[Special:Contributions/Hout|?]]</ul></td><td><ul><ol><li>2017-05-29 - Task: [[Cartesian%20product%20of%20two%20or%20more%20lists|Cartesian product of two or more lists]]</li><li>2016-02-01 - Draft: [[Monads%2FWriter%20monad|Monads/Writer monad]]</li><li>2016-12-06 - Task: [[Water%20collected%20between%20towers|Water collected between towers]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:Hsnarula|Hsnarula]] [[Special:Contributions/Hsnarula|?]]</ul></td><td><ul><ol><li>2013-04-16 - Task: [[Find%20the%20last%20Sunday%20of%20each%20month|Find the last Sunday of each month]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:Hsnarula|Hsnarula]] [[Special:Contributions/Hsnarula|?]]</ul></td><td><ul><ol><li>2013-04-16 - Task: [[Find%20the%20last%20Sunday%20of%20each%20month|Find the last Sunday of each month]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:IanOsgood|IanOsgood]] [[Special:Contributions/IanOsgood|?]]</ul></td><td><ul><ol><li>2009-05-26 - Task: [[Memory%20allocation|Memory allocation]]</li><li>2007-10-03 - Task: [[Sorting%20algorithms%2FQuicksort|Sorting algorithms/Quicksort]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:IanOsgood|IanOsgood]] [[Special:Contributions/IanOsgood|?]]</ul></td><td><ul><ol><li>2009-05-26 - Task: [[Memory%20allocation|Memory allocation]]</li><li>2007-10-03 - Task: [[Sorting%20algorithms%2FQuicksort|Sorting algorithms/Quicksort]]</li></ol></ul></td></tr>
Line 176: Line 176:
<tr><td><ul>[[User:Lrq3000|Lrq3000]] [[Special:Contributions/Lrq3000|?]]</ul></td><td><ul><ol><li>2015-06-05 - Draft: [[Polynomial%20synthetic%20division|Polynomial synthetic division]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:Lrq3000|Lrq3000]] [[Special:Contributions/Lrq3000|?]]</ul></td><td><ul><ol><li>2015-06-05 - Draft: [[Polynomial%20synthetic%20division|Polynomial synthetic division]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:Lupus|Lupus]] [[Special:Contributions/Lupus|?]]</ul></td><td><ul><ol><li>2008-12-11 - Task: [[Factors%20of%20a%20Mersenne%20number|Factors of a Mersenne number]]</li><li>2008-11-27 - Task: [[Roots%20of%20a%20quadratic%20function|Roots of a quadratic function]]</li><li>2008-11-21 - Task: [[Sorting%20algorithms%2FSelection%20sort|Sorting algorithms/Selection sort]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:Lupus|Lupus]] [[Special:Contributions/Lupus|?]]</ul></td><td><ul><ol><li>2008-12-11 - Task: [[Factors%20of%20a%20Mersenne%20number|Factors of a Mersenne number]]</li><li>2008-11-27 - Task: [[Roots%20of%20a%20quadratic%20function|Roots of a quadratic function]]</li><li>2008-11-21 - Task: [[Sorting%20algorithms%2FSelection%20sort|Sorting algorithms/Selection sort]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:MagiMaster|MagiMaster]] [[Special:Contributions/MagiMaster|?]]</ul></td><td><ul><ol><li>2011-11-07 - Task: [[Mad%20Libs|Mad Libs]]</li><li>2011-06-07 - Draft: [[Morpion%20solitaire|Morpion solitaire]]</li><li>2014-04-02 - Draft: [[Recursive%20descent%20parser%20generator|Recursive descent parser generator]]</li><li>2011-05-27 - Task: [[Sokoban|Sokoban]]</li><li>2011-06-06 - Task: [[Straddling%20checkerboard|Straddling checkerboard]]</li><li>2011-05-31 - Task: [[Vigenère%20cipher|Vigenère cipher]]</li><li>2011-05-31 - Task: [[Vigenère%20cipher%2FCryptanalysis|Vigenère cipher/Cryptanalysis]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:MagiMaster|MagiMaster]] [[Special:Contributions/MagiMaster|?]]</ul></td><td><ul><ol><li>2011-11-07 - Task: [[Mad%20Libs|Mad Libs]]</li><li>2011-06-07 - Draft: [[Morpion%20solitaire|Morpion solitaire]]</li><li>2014-04-02 - Draft: [[Recursive%20descent%20parser%20generator|Recursive descent parser generator]]</li><li>2011-05-27 - Task: [[Sokoban|Sokoban]]</li><li>2011-06-06 - Task: [[Straddling%20checkerboard|Straddling checkerboard]]</li><li>2011-05-31 - Task: [[Vigen%C3%A8re%20cipher|Vigenère cipher]]</li><li>2011-05-31 - Task: [[Vigen%C3%A8re%20cipher%2FCryptanalysis|Vigenère cipher/Cryptanalysis]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:Magnus|Magnus]] [[Special:Contributions/Magnus|?]]</ul></td><td><ul><ol><li>2017-08-24 - Draft: [[Finite%20state%20machine|Finite state machine]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:Magnus|Magnus]] [[Special:Contributions/Magnus|?]]</ul></td><td><ul><ol><li>2017-08-24 - Draft: [[Finite%20state%20machine|Finite state machine]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:Mahaju|Mahaju]] [[Special:Contributions/Mahaju|?]]</ul></td><td><ul><ol><li>2011-12-20 - Draft: [[Montgomery%20reduction|Montgomery reduction]]</li></ol></ul></td></tr>
<tr><td><ul>[[User:Mahaju|Mahaju]] [[Special:Contributions/Mahaju|?]]</ul></td><td><ul><ol><li>2011-12-20 - Draft: [[Montgomery%20reduction|Montgomery reduction]]</li></ol></ul></td></tr>
Line 278: Line 278:


<lang perl6>use HTTP::UserAgent;
<lang perl6>use HTTP::UserAgent;
use URI::Escape;
use JSON::Fast;
use JSON::Fast;
use Sort::Naturally;
use Sort::Naturally;
Line 301: Line 302:
#=begin update
#=begin update


note 'Retreiving task authors...';
note 'Retreiving task information...';


for %cat.keys -> $category {
for %cat.keys -> $category {
Line 323: Line 324:
).map({
).map({
print "\b" x 150, ' ' x 150, "\b" x 150,
print "\b" x 150, ' ' x 150, "\b" x 150,
1 + $++, ' ', $category,': ', .[0]<title>;
1 + $++, ' ', %cat{$category}, ' ', .[0]<title>;
%tasks{.[0]<title>}<category> = %cat{$category};
%tasks{.[0]<title>}<category> = %cat{$category};
%tasks{.[0]<title>}<author> = .[0]<revisions>[0]<user>;
%tasks{.[0]<title>}<author> = .[0]<revisions>[0]<user>;
Line 332: Line 333:


# Save information to a local file
# Save information to a local file
note "\nTask information saved to local file: {$hashfile.IO.absolute}";
$hashfile.IO.spurt(%tasks.&to-json);
$hashfile.IO.spurt(%tasks.&to-json);


Line 340: Line 342:


# Convert saved task / author info to an HTML table
# Convert saved task / author info to an HTML table
note "Building HTML table...";
note "\nBuilding HTML table...";
my $count = +%tasks;
my $count = +%tasks;
my $taskcnt = +%tasks.grep: *.value.<category> eq %cat<Programming_Tasks>;
my $taskcnt = +%tasks.grep: *.value.<category> eq %cat<Programming_Tasks>;
Line 364: Line 366:
# and add the date, status and task link to the list in the second cell
# and add the date, status and task link to the list in the second cell
$out.print( "<li>{$task.value.<date>} - {$task.value.<category>}",
$out.print( "<li>{$task.value.<date>} - {$task.value.<category>}",
" [[{uri-encode $task.key}|{$task.key}]]</li>"
" [[{uri-escape $task.key}|{$task.key}]]</li>"
)
)
}
}
Line 387: Line 389:
}
}


sub uri-query-string (*%fields) { %fields.map({ "{.key}={uri-encode .value}" }).join("&") }
sub uri-query-string (*%fields) { %fields.map({ "{.key}={uri-escape .value}" }).join("&") }
</lang>

sub uri-encode ($str) {
if $str ~~ /<:!ASCII>/ {
my $enc = $str.subst(/<[\x00..\x7f]-[a..zA..Z0..9_.~-]>/, *.ord.fmt('%%%02X'), :g);
return $enc.subst(/<:!ASCII-[\w]>/, *.Str.encode('utf8').list.fmt("%%%02X"), :g ).subst(' ','',:g);
}
$str.subst(/<[\x00..\x7f]-[a..zA..Z0..9_.~-]>/, *.ord.fmt('%%%02X'), :g);
}</lang>


;Sample output
;Sample output

Revision as of 13:56, 23 December 2017

Rosetta Code/List authors of task descriptions is a draft programming task. It is not yet considered ready to be promoted as a complete task, for reasons that should be found in its talk page.

In this task, the goal is to compile an authorship list for task descriptions. A pseudocode example (in imperative style) that should accomplish this is as follows:

<lang pseudocode>for each task page

 grab page source, discard everything after the first ==section==.

Cache as $previous. Note $author.

 for each revision
   grab page source, discard everything after first ==section==.

Cache as $previous2. Note $author2

   compare $previous2 to $previous. If different, record $author to $list.
   replace $previous with $previous2
   replace $author with $author2</lang>

The following resources for HTTP interface information for MediaWiki may prove to be useful:

Conversely, some languages have libraries which abstract these interfaces into language-native idioms. Use of these abstractions is perfectly fine.


Please DO NOT add a full output for each programming language; just show a representative sample. One full list is useful. Multiple full lists just use space and bandwidth.

As of 2017-12-23 | Total: 1073 / Tasks: 867 / Draft Tasks: 206 / By 247 Authors
UserAuthored
    1. 2008-09-25 - Task: HTTP
    1. 2007-01-23 - Task: SOAP
    1. 2010-04-08 - Task: A+B
    1. 2011-01-20 - Draft: VList

Perl 6

Works with: Rakudo version 2017.11

The pseudocode above is no longer really useful as the page format has changed significantly since this task was written. Rather than checking every edit to see if it was a change to the task description, we'll just assume the user that created the page is the task author. This isn't 100% accurate; a very few pages got renamed and recreated by someone other than the original author without preserving the history, so they are misreported (15 Puzzle Game for instance,) but is as good as it is likely to get without extensive manual intervention. Subsequent edits to the task description are not credited. As it is, we must still make thousands of requests and pound the server pretty hard. Checking every edit would make the task several of orders of magnitude more abusive of the server (and my internet connection.)

<lang perl6>use HTTP::UserAgent; use URI::Escape; use JSON::Fast; use Sort::Naturally;

  1. Friendlier descriptions for task categories

my %cat = (

   'Programming_Tasks' => 'Task: ',
   'Draft_Programming_Tasks' => 'Draft:'

);

my $client = HTTP::UserAgent.new;

my $url = 'http://rosettacode.org/mw';

my $htmlfile = './RC_Authors.html'; my $hashfile = './RC_Authors.json';

my %tasks;

  1. clear screen

run($*DISTRO.is-win ?? 'cls' !! 'clear');

  1. =begin update

note 'Retreiving task information...';

for %cat.keys -> $category {

   mediawiki-query(
       $url, 'pages',
       :generator<categorymembers>,
       :gcmtitle("Category:$category"),
       :gcmlimit<350>,
       :rawcontinue(),
       :prop<title>
   ).map({
       mediawiki-query(
           $url, 'pages',
           :titles(.<title>),
           :prop<revisions>,
           :rvprop<user|timestamp>,
           :rvstart<2000-01-01T01:01:01Z>,
           :rvdir<newer>,
           :rvlimit<1>
       )}
   ).map({
       print "\b" x 150, ' ' x 150, "\b" x 150,
         1 + $++, ' ', %cat{$category}, ' ', .[0]<title>;
       %tasks{.[0]<title>}<category> = %cat{$category};
       %tasks{.[0]<title>}<author> = .[0]<revisions>[0]<user>;
       %tasks{.[0]<title>}<date> = .[0]<revisions>[0]<timestamp>.subst(/'T'.+$/, )
       }
   )

}

  1. Save information to a local file

note "\nTask information saved to local file: {$hashfile.IO.absolute}"; $hashfile.IO.spurt(%tasks.&to-json);

  1. =end update
  1. Load information from local file

%tasks = $hashfile.IO.e ?? $hashfile.IO.slurp.&from-json !! ( );

  1. Convert saved task / author info to an HTML table

note "\nBuilding HTML table..."; my $count = +%tasks; my $taskcnt = +%tasks.grep: *.value.<category> eq %cat<Programming_Tasks>; my $draftcnt = $count - $taskcnt;

  1. Dump an HTML table to a file

my $out = open($htmlfile, :w) or die "$!\n";

  1. Add table boilerplate and header

$out.say( '

' );
  1. Get sorted unique list of task authors

for %tasks{*}».<author>.unique.sort(*.&naturally) -> $author {

   # Add author and contributions link to the first cell
$out.print( "' );

}

$out.say( '
As of ', Date.today, ' | Total: ',
 "$count / Tasks: $taskcnt / Draft Tasks: $draftcnt / By {+%tasks{*}».<author>.unique} Authors",
'
UserAuthored
      " );
         # Get list of tasks by this author, sorted by name
         for %tasks.grep( { $_.value.<author> eq $author } ).sort(*.key.&naturally) -> $task {
      
             # and add the date, status and task link to the list in the second cell
      
      $out.print( "
    1. {$task.value.<date>} - {$task.value.<category>}", " [[{uri-escape $task.key}|{$task.key}]]
    2. " ) } $out.say( '

' );

$out.close;

note "HTML table file saved as: {$htmlfile.IO.absolute}";

sub mediawiki-query ($site, $type, *%query) {

   my $url = "$site/api.php?" ~ uri-query-string(
       :action<query>, :format<json>, :formatversion<2>, |%query);
   my $continue = ;
   gather loop {
       my $response = $client.get("$url&$continue");
       my $data = from-json($response.content);
       take $_ for $data.<query>.{$type}.values;
       $continue = uri-query-string |($data.<query-continue>{*}».hash.hash or last);
   }

}

sub uri-query-string (*%fields) { %fields.map({ "{.key}={uri-escape .value}" }).join("&") } </lang>

Sample output
As of 2017-12-21 | Total: 1071 / Tasks: 867 / Draft Tasks: 204 / By 247 Authors
UserAuthored

Many rows omitted...