Rosetta Code/List authors of task descriptions: Difference between revisions
Thundergnat (talk | contribs) (→{{header|Perl 6}}: Change to a version that uses the mediawiki API. It is much faster and less resource intensive.) |
m (→{{header|Wren}}: Minor tidy) |
||
(34 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
{{draft task}}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: |
{{draft task}}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: |
||
< |
<syntaxhighlight lang="pseudocode">for each task page |
||
grab page source, discard everything after the first ==section==. |
grab page source, discard everything after the first ==section==. |
||
Cache as $previous. Note $author. |
Cache as $previous. Note $author. |
||
Line 9: | Line 9: | ||
compare $previous2 to $previous. If different, record $author to $list. |
compare $previous2 to $previous. If different, record $author to $list. |
||
replace $previous with $previous2 |
replace $previous with $previous2 |
||
replace $author with $author2</ |
replace $author with $author2</syntaxhighlight> |
||
The following resources for HTTP interface information for MediaWiki may prove to be useful: |
The following resources for HTTP interface information for MediaWiki may prove to be useful: |
||
Line 19: | Line 19: | ||
Please '''DO NOT''' add a full output for ''each'' programming language; just show a representative sample. |
Please '''DO NOT''' add a full output for ''each'' programming language; just show a representative sample. For an full listing, see [[Rosetta_Code/List_authors_of_task_descriptions/Full_list]]. |
||
=={{header|Go}}== |
|||
<div style="height:80ex;overflow:scroll;border-style:ridge;"><table border="1" cellpadding="4"><tr><th colspan="2">As of 2017-11-12 | Total: 1069 / Tasks: 867 / Draft Tasks: 202 / By 245 Authors<tr><th>User</th><th>Authored</th></tr> |
|||
<syntaxhighlight lang="go">package main |
|||
<tr><td><ul>[[User:2Powers|2Powers]] [[Special:Contributions/2Powers|?]]</ul></td><td><ul><ol><li>2013-05-16 - Draft: [[Names_to_numbers|Names to numbers]]</li><li>2013-05-16 - Draft: [[Solving_coin_problems|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:12Me21|12Me21]] [[Special:Contributions/12Me21|?]]</ul></td><td><ul><ol><li>2015-05-04 - Task: [[Draw_a_rotating_cube|Draw a rotating cube]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:64.131.185.25|64.131.185.25]] [[Special:Contributions/64.131.185.25|?]]</ul></td><td><ul><ol><li>2008-03-14 - Task: [[Sierpinski_carpet|Sierpinski carpet]]</li><li>2008-03-14 - Task: [[Sierpinski_triangle|Sierpinski triangle]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:66.120.226.84|66.120.226.84]] [[Special:Contributions/66.120.226.84|?]]</ul></td><td><ul><ol><li>2008-12-03 - Task: [[Top_rank_per_group|Top rank per group]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:67.20.197.154|67.20.197.154]] [[Special:Contributions/67.20.197.154|?]]</ul></td><td><ul><ol><li>2011-03-24 - Task: [[RSA_code|RSA code]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:68.38.195.134|68.38.195.134]] [[Special:Contributions/68.38.195.134|?]]</ul></td><td><ul><ol><li>2008-08-03 - Task: [[Zig-zag_matrix|Zig-zag matrix]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:68.175.31.239|68.175.31.239]] [[Special:Contributions/68.175.31.239|?]]</ul></td><td><ul><ol><li>2008-08-02 - Task: [[SEDOLs|SEDOLs]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:69.12.181.181|69.12.181.181]] [[Special:Contributions/69.12.181.181|?]]</ul></td><td><ul><ol><li>2007-04-07 - Task: [[Random_numbers|Random numbers]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:70.83.182.253|70.83.182.253]] [[Special:Contributions/70.83.182.253|?]]</ul></td><td><ul><ol><li>2007-04-07 - Task: [[Check_that_file_exists|Check that file exists]]</li><li>2007-04-07 - Task: [[Create_a_file|Create a file]]</li><li>2007-04-07 - Task: [[Delete_a_file|Delete a file]]</li><li>2007-04-07 - Task: [[File_modification_time|File modification time]]</li><li>2007-04-07 - Task: [[File_size|File size]]</li><li>2007-04-07 - Task: [[Rename_a_file|Rename a file]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:71.205.120.86|71.205.120.86]] [[Special:Contributions/71.205.120.86|?]]</ul></td><td><ul><ol><li>2007-09-18 - Task: [[Function_definition|Function definition]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:74.56.102.15|74.56.102.15]] [[Special:Contributions/74.56.102.15|?]]</ul></td><td><ul><ol><li>2007-02-24 - Task: [[Compound_data_type|Compound data type]]</li><li>2007-02-22 - Task: [[Copy_a_string|Copy a string]]</li><li>2007-02-23 - Task: [[Enumerations|Enumerations]]</li><li>2007-02-23 - Task: [[Increment_a_numerical_string|Increment a numerical string]]</li><li>2007-02-23 - Task: [[Polymorphism|Polymorphism]]</li><li>2007-02-24 - Task: [[Stack|Stack]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:74.74.225.216|74.74.225.216]] [[Special:Contributions/74.74.225.216|?]]</ul></td><td><ul><ol><li>2007-10-30 - Task: [[Singly-linked_list/Traversal|Singly-linked list/Traversal]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:76.19.46.239|76.19.46.239]] [[Special:Contributions/76.19.46.239|?]]</ul></td><td><ul><ol><li>2008-03-07 - Task: [[Non-decimal_radices/Convert|Non-decimal radices/Convert]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:76.91.63.71|76.91.63.71]] [[Special:Contributions/76.91.63.71|?]]</ul></td><td><ul><ol><li>2009-07-17 - Task: [[Sorting_algorithms/Heapsort|Sorting algorithms/Heapsort]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:77.250.119.152|77.250.119.152]] [[Special:Contributions/77.250.119.152|?]]</ul></td><td><ul><ol><li>2011-12-02 - Task: [[Haversine_formula|Haversine formula]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:78.35.107.83|78.35.107.83]] [[Special:Contributions/78.35.107.83|?]]</ul></td><td><ul><ol><li>2010-07-20 - Task: [[Discordian_date|Discordian date]]</li><li>2010-07-20 - Task: [[Leap_year|Leap year]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:78.146.0.60|78.146.0.60]] [[Special:Contributions/78.146.0.60|?]]</ul></td><td><ul><ol><li>2010-09-21 - Task: [[Narcissist|Narcissist]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:79.54.58.148|79.54.58.148]] [[Special:Contributions/79.54.58.148|?]]</ul></td><td><ul><ol><li>2011-11-30 - Task: [[Paraffins|Paraffins]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:82.32.24.201|82.32.24.201]] [[Special:Contributions/82.32.24.201|?]]</ul></td><td><ul><ol><li>2011-06-09 - Draft: [[Aspect_Oriented_Programming|Aspect Oriented Programming]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:83.104.248.190|83.104.248.190]] [[Special:Contributions/83.104.248.190|?]]</ul></td><td><ul><ol><li>2007-12-09 - Task: [[Matrix_multiplication|Matrix multiplication]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:87.224.129.185|87.224.129.185]] [[Special:Contributions/87.224.129.185|?]]</ul></td><td><ul><ol><li>2012-03-05 - Task: [[Canny_edge_detector|Canny edge detector]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:91.4.78.20|91.4.78.20]] [[Special:Contributions/91.4.78.20|?]]</ul></td><td><ul><ol><li>2011-02-07 - Task: [[Ordered_Partitions|Ordered Partitions]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:96.20.64.30|96.20.64.30]] [[Special:Contributions/96.20.64.30|?]]</ul></td><td><ul><ol><li>2009-03-31 - Task: [[Mandelbrot_set|Mandelbrot set]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:99.105.56.162|99.105.56.162]] [[Special:Contributions/99.105.56.162|?]]</ul></td><td><ul><ol><li>2011-01-10 - Task: [[Levenshtein_distance|Levenshtein distance]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:137.195.250.2|137.195.250.2]] [[Special:Contributions/137.195.250.2|?]]</ul></td><td><ul><ol><li>2008-05-07 - Task: [[Sorting_algorithms/Bogosort|Sorting algorithms/Bogosort]]</li><li>2008-05-08 - Task: [[Sorting_algorithms/Permutation_sort|Sorting algorithms/Permutation sort]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:142.204.88.102|142.204.88.102]] [[Special:Contributions/142.204.88.102|?]]</ul></td><td><ul><ol><li>2011-03-08 - Task: [[Create_an_HTML_table|Create an HTML table]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:145.254.251.66|145.254.251.66]] [[Special:Contributions/145.254.251.66|?]]</ul></td><td><ul><ol><li>2007-11-07 - Task: [[List_comprehensions|List comprehensions]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:145.254.251.95|145.254.251.95]] [[Special:Contributions/145.254.251.95|?]]</ul></td><td><ul><ol><li>2007-11-06 - Task: [[Pattern_matching|Pattern matching]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:146.201.224.238|146.201.224.238]] [[Special:Contributions/146.201.224.238|?]]</ul></td><td><ul><ol><li>2008-04-18 - Task: [[Reverse_a_string|Reverse a string]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:155.192.0.234|155.192.0.234]] [[Special:Contributions/155.192.0.234|?]]</ul></td><td><ul><ol><li>2011-05-04 - Task: [[Sorting_algorithms/Strand_sort|Sorting algorithms/Strand sort]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:165.124.208.73|165.124.208.73]] [[Special:Contributions/165.124.208.73|?]]</ul></td><td><ul><ol><li>2011-10-28 - Task: [[Pythagoras_tree|Pythagoras tree]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:171.65.33.13|171.65.33.13]] [[Special:Contributions/171.65.33.13|?]]</ul></td><td><ul><ol><li>2007-02-13 - Task: [[Command-line_arguments|Command-line arguments]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:195.33.114.129|195.33.114.129]] [[Special:Contributions/195.33.114.129|?]]</ul></td><td><ul><ol><li>2008-05-20 - Task: [[Sorting_algorithms/Shell_sort|Sorting algorithms/Shell sort]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:200.102.26.6|200.102.26.6]] [[Special:Contributions/200.102.26.6|?]]</ul></td><td><ul><ol><li>2008-09-25 - Task: [[HTTP|HTTP]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:201.67.232.39|201.67.232.39]] [[Special:Contributions/201.67.232.39|?]]</ul></td><td><ul><ol><li>2010-12-30 - Task: [[Record_sound|Record sound]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:207.74.29.206|207.74.29.206]] [[Special:Contributions/207.74.29.206|?]]</ul></td><td><ul><ol><li>2007-01-15 - Task: [[Window_creation|Window creation]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:209.63.105.137|209.63.105.137]] [[Special:Contributions/209.63.105.137|?]]</ul></td><td><ul><ol><li>2007-01-22 - Task: [[Associative_array/Creation|Associative array/Creation]]</li><li>2007-02-06 - Task: [[Fork|Fork]]</li><li>2007-01-23 - Task: [[Table_creation/Postal_addresses|Table creation/Postal addresses]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:219.77.140.150|219.77.140.150]] [[Special:Contributions/219.77.140.150|?]]</ul></td><td><ul><ol><li>2008-08-17 - Task: [[Factorial|Factorial]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Abu|Abu]] [[Special:Contributions/Abu|?]]</ul></td><td><ul><ol><li>2010-11-23 - Task: [[Anonymous_recursion|Anonymous recursion]]</li><li>2010-12-10 - Task: [[Chat_server|Chat server]]</li><li>2012-04-24 - Draft: [[Chess_player|Chess player]]</li><li>2010-08-27 - Task: [[Extend_your_language|Extend your language]]</li><li>2011-06-30 - Task: [[First_class_environments|First class environments]]</li><li>2011-11-02 - Task: [[Function_frequency|Function frequency]]</li><li>2010-08-23 - Task: [[GUI_component_interaction|GUI component interaction]]</li><li>2010-08-23 - Task: [[GUI_enabling/disabling_of_controls|GUI enabling/disabling of controls]]</li><li>2010-12-14 - Task: [[Maze_generation|Maze generation]]</li><li>2010-12-15 - Task: [[Maze_solving|Maze solving]]</li><li>2010-08-24 - Task: [[Morse_code|Morse code]]</li><li>2010-12-15 - Task: [[Parallel_calculations|Parallel calculations]]</li><li>2011-01-11 - Task: [[Random_number_generator_(device)|Random number generator (device)]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Adonis|Adonis]] [[Special:Contributions/Adonis|?]]</ul></td><td><ul><ol><li>2007-01-27 - Task: [[Classes|Classes]]</li><li>2007-01-24 - Task: [[Walk_a_directory/Non-recursively|Walk a directory/Non-recursively]]</li><li>2007-01-24 - Task: [[XML/DOM_serialization|XML/DOM serialization]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Akshay|Akshay]] [[Special:Contributions/Akshay|?]]</ul></td><td><ul><ol><li>2011-12-08 - Draft: [[Dijkstra%27s_algorithm|Dijkstra's algorithm]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:AlainD|AlainD]] [[Special:Contributions/AlainD|?]]</ul></td><td><ul><ol><li>2014-01-20 - Task: [[Fractran|Fractran]]</li><li>2015-07-22 - Task: [[URL_parser|URL parser]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Alegend|Alegend]] [[Special:Contributions/Alegend|?]]</ul></td><td><ul><ol><li>2010-04-11 - Task: [[Evaluate_binomial_coefficients|Evaluate binomial coefficients]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:AlexLehm|AlexLehm]] [[Special:Contributions/AlexLehm|?]]</ul></td><td><ul><ol><li>2011-10-30 - Task: [[Langton%27s_ant|Langton's ant]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Aloisdg|Aloisdg]] [[Special:Contributions/Aloisdg|?]]</ul></td><td><ul><ol><li>2016-12-03 - Draft: [[Diversity_prediction_theorem|Diversity prediction theorem]]</li><li>2016-09-22 - Task: [[Munchausen_numbers|Munchausen numbers]]</li><li>2016-08-29 - Draft: [[Sattolo_cycle|Sattolo cycle]]</li><li>2016-10-04 - Draft: [[Two_Sum|Two Sum]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:AnatolV|AnatolV]] [[Special:Contributions/AnatolV|?]]</ul></td><td><ul><ol><li>2017-04-05 - Task: [[Kronecker_product|Kronecker product]]</li><li>2017-04-05 - Task: [[Kronecker_product_based_fractals|Kronecker product based fractals]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Avi|Avi]] [[Special:Contributions/Avi|?]]</ul></td><td><ul><ol><li>2011-03-07 - Task: [[Cholesky_decomposition|Cholesky decomposition]]</li><li>2011-06-08 - Task: [[Element-wise_operations|Element-wise operations]]</li><li>2011-03-06 - Task: [[Euler_method|Euler method]]</li><li>2011-03-11 - Task: [[LU_decomposition|LU decomposition]]</li><li>2011-05-28 - Task: [[Numerical_integration/Gauss-Legendre_Quadrature|Numerical integration/Gauss-Legendre Quadrature]]</li><li>2011-06-17 - Task: [[QR_decomposition|QR decomposition]]</li><li>2017-03-05 - Task: [[UTF-8_encode_and_decode|UTF-8 encode and decode]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Axtens|Axtens]] [[Special:Contributions/Axtens|?]]</ul></td><td><ul><ol><li>2011-01-24 - Draft: [[Decision_tables|Decision tables]]</li><li>2010-04-20 - Task: [[Find_limit_of_recursion|Find limit of recursion]]</li><li>2011-06-29 - Task: [[History_variables|History variables]]</li><li>2011-06-05 - Task: [[Last_letter-first_letter|Last letter-first letter]]</li><li>2010-03-15 - Task: [[Price_fraction|Price fraction]]</li><li>2010-04-01 - Task: [[Take_notes_on_the_command_line|Take notes on the command line]]</li><li>2015-04-21 - Draft: [[Tasks_without_examples|Tasks without examples]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Backupbrain|Backupbrain]] [[Special:Contributions/Backupbrain|?]]</ul></td><td><ul><ol><li>2007-01-23 - Task: [[SOAP|SOAP]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Badmadevil|Badmadevil]] [[Special:Contributions/Badmadevil|?]]</ul></td><td><ul><ol><li>2008-03-22 - Task: [[Pascal%27s_triangle/Puzzle|Pascal's triangle/Puzzle]]</li><li>2008-06-07 - Task: [[Power_set|Power set]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Bcdady|Bcdady]] [[Special:Contributions/Bcdady|?]]</ul></td><td><ul><ol><li>2010-05-07 - Task: [[Write_to_Windows_event_log|Write to Windows event log]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Bearophile|Bearophile]] [[Special:Contributions/Bearophile|?]]</ul></td><td><ul><ol><li>2013-10-14 - Draft: [[ASCII_art_diagram_converter|ASCII art diagram converter]]</li><li>2013-01-06 - Draft: [[Boids|Boids]]</li><li>2015-01-14 - Draft: [[Dice_game_probabilities|Dice game probabilities]]</li><li>2014-10-28 - Draft: [[Free_polyominoes_enumeration|Free polyominoes enumeration]]</li><li>2013-08-02 - Task: [[Generate_lower_case_ASCII_alphabet|Generate lower case ASCII alphabet]]</li><li>2014-08-23 - Task: [[Iterated_digits_squaring|Iterated digits squaring]]</li><li>2014-02-20 - Task: [[Maximum_triangle_path_sum|Maximum triangle path sum]]</li><li>2013-11-21 - Task: [[Nonogram_solver|Nonogram solver]]</li><li>2015-04-25 - Task: [[Sum_and_Product_Puzzle|Sum and Product Puzzle]]</li><li>2012-09-15 - Task: [[Total_circles_area|Total circles area]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Binki|Binki]] [[Special:Contributions/Binki|?]]</ul></td><td><ul><ol><li>2015-10-22 - Task: [[Write_entire_file|Write entire file]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Bjartur|Bjartur]] [[Special:Contributions/Bjartur|?]]</ul></td><td><ul><ol><li>2014-05-17 - Draft: [[Repeat|Repeat]]</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_an_object_method|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_ISAAC_Cipher|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/B%C3%A9zier_curves/Cubic|Bitmap/Bézier curves/Cubic]]</li><li>2008-12-06 - Task: [[Bitmap/B%C3%A9zier_curves/Quadratic|Bitmap/Bézier curves/Quadratic]]</li><li>2008-12-06 - Task: [[Bitmap/Bresenham%27s_line_algorithm|Bitmap/Bresenham's line algorithm]]</li><li>2008-12-06 - Task: [[Bitmap/Midpoint_circle_algorithm|Bitmap/Midpoint circle algorithm]]</li><li>2008-12-06 - Task: [[Bitmap/PPM_conversion_through_a_pipe|Bitmap/PPM conversion through a pipe]]</li><li>2008-12-06 - Task: [[Bitmap/Write_a_PPM_file|Bitmap/Write a PPM file]]</li><li>2010-01-06 - Task: [[Catmull%E2%80%93Clark_subdivision_surface|Catmull–Clark subdivision surface]]</li><li>2013-03-28 - Draft: [[Check_output_device_is_a_terminal|Check output device is a terminal]]</li><li>2010-09-23 - Task: [[Equilibrium_index|Equilibrium index]]</li><li>2008-12-07 - Task: [[Image_convolution|Image convolution]]</li><li>2011-11-05 - Task: [[Last_Friday_of_each_month|Last Friday of each month]]</li><li>2008-08-08 - Task: [[LZW_compression|LZW compression]]</li><li>2008-12-07 - Task: [[Median_filter|Median filter]]</li><li>2009-09-12 - Task: [[N-queens_problem|N-queens problem]]</li><li>2008-11-13 - Task: [[Percentage_difference_between_images|Percentage difference between images]]</li><li>2010-01-02 - Draft: [[Process_SMIL_directives_in_XML_data|Process SMIL directives in XML data]]</li><li>2008-08-26 - Task: [[Shell_one-liner|Shell one-liner]]</li><li>2008-11-13 - Task: [[Window_creation/X11|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_an_integer_array|Sort an integer array]]</li><li>2007-01-30 - Task: [[Sort_using_a_custom_comparator|Sort using a custom comparator]]</li><li>2007-02-04 - Task: [[SQL-based_authentication|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_algorithms/Comb_sort|Sorting algorithms/Comb sort]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Bubbajim3|Bubbajim3]] [[Special:Contributions/Bubbajim3|?]]</ul></td><td><ul><ol><li>2017-01-14 - Task: [[MAC_Vendor_Lookup|MAC Vendor Lookup]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Bugmenot|Bugmenot]] [[Special:Contributions/Bugmenot|?]]</ul></td><td><ul><ol><li>2015-09-26 - Task: [[Array_length|Array length]]</li><li>2015-10-07 - Draft: [[Type_detection|Type detection]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Bugmenot2|Bugmenot2]] [[Special:Contributions/Bugmenot2|?]]</ul></td><td><ul><ol><li>2015-10-09 - Task: [[Search_a_list_of_records|Search a list of records]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Bukzor|Bukzor]] [[Special:Contributions/Bukzor|?]]</ul></td><td><ul><ol><li>2014-08-09 - Task: [[Make_directory_path|Make directory path]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Casebash|Casebash]] [[Special:Contributions/Casebash|?]]</ul></td><td><ul><ol><li>2010-10-15 - Task: [[String_matching|String matching]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Cblp|Cblp]] [[Special:Contributions/Cblp|?]]</ul></td><td><ul><ol><li>2016-06-15 - Task: [[Stream_Merge|Stream Merge]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Ce|Ce]] [[Special:Contributions/Ce|?]]</ul></td><td><ul><ol><li>2007-05-28 - Task: [[Arithmetic/Integer|Arithmetic/Integer]]</li><li>2007-03-12 - Task: [[Comments|Comments]]</li><li>2008-12-05 - Task: [[Constrained_genericity|Constrained genericity]]</li><li>2007-02-27 - Task: [[Create_a_two-dimensional_array_at_runtime|Create a two-dimensional array at runtime]]</li><li>2008-01-20 - Task: [[Infinity|Infinity]]</li><li>2008-04-27 - Task: [[Inheritance/Multiple|Inheritance/Multiple]]</li><li>2007-03-31 - Task: [[Integer_comparison|Integer comparison]]</li><li>2007-11-18 - Task: [[Logical_operations|Logical operations]]</li><li>2008-04-18 - Task: [[Loops/Downward_for|Loops/Downward for]]</li><li>2008-04-18 - Task: [[Loops/N_plus_one_half|Loops/N plus one half]]</li><li>2007-01-25 - Task: [[Pointers_and_references|Pointers and references]]</li><li>2009-07-08 - Task: [[Tree_traversal|Tree traversal]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Cook|Cook]] [[Special:Contributions/Cook|?]]</ul></td><td><ul><ol><li>2007-11-13 - Task: [[Literals/String|Literals/String]]</li><li>2007-11-13 - Task: [[Special_characters|Special characters]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Created by: X|Created by: X]] [[Special:Contributions/Created by: X|?]]</ul></td><td><ul><ol><li>2007-01-21 - Task: [[Determine_if_a_string_is_numeric|Determine if a string is numeric]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:CRGreathouse|CRGreathouse]] [[Special:Contributions/CRGreathouse|?]]</ul></td><td><ul><ol><li>2010-11-01 - Task: [[Literals/Floating_point|Literals/Floating point]]</li><li>2012-06-29 - Task: [[Matrix_arithmetic|Matrix arithmetic]]</li><li>2011-07-09 - Task: [[Rosetta_Code/Find_bare_lang_tags|Rosetta Code/Find bare lang tags]]</li><li>2013-01-17 - Draft: [[Untrusted_environment|Untrusted environment]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Crossrodas1112|Crossrodas1112]] [[Special:Contributions/Crossrodas1112|?]]</ul></td><td><ul><ol><li>2017-05-10 - Draft: [[Word_break_problem|Word break problem]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Cyberjacob|Cyberjacob]] [[Special:Contributions/Cyberjacob|?]]</ul></td><td><ul><ol><li>2011-05-05 - Draft: [[IRC_gateway|IRC gateway]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:D2|D2]] [[Special:Contributions/D2|?]]</ul></td><td><ul><ol><li>2007-01-24 - Task: [[Towers_of_Hanoi|Towers of Hanoi]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Damian.nikodem|Damian.nikodem]] [[Special:Contributions/Damian.nikodem|?]]</ul></td><td><ul><ol><li>2007-11-26 - Task: [[Sockets|Sockets]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:DanBron|DanBron]] [[Special:Contributions/DanBron|?]]</ul></td><td><ul><ol><li>2008-10-10 - Task: [[Host_introspection|Host introspection]]</li><li>2011-05-27 - Task: [[K-means%2B%2B_clustering|K-means++ clustering]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Danprager|Danprager]] [[Special:Contributions/Danprager|?]]</ul></td><td><ul><ol><li>2013-06-10 - Draft: [[Deming%27s_Funnel|Deming's Funnel]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:DataWraith|DataWraith]] [[Special:Contributions/DataWraith|?]]</ul></td><td><ul><ol><li>2009-04-24 - Task: [[Run-length_encoding|Run-length encoding]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Davewhipp|Davewhipp]] [[Special:Contributions/Davewhipp|?]]</ul></td><td><ul><ol><li>2010-09-02 - Task: [[Constrained_random_points_on_a_circle|Constrained random points on a circle]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Davgot|Davgot]] [[Special:Contributions/Davgot|?]]</ul></td><td><ul><ol><li>2014-01-24 - Task: [[Chinese_remainder_theorem|Chinese remainder theorem]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:DavidMcCabe|DavidMcCabe]] [[Special:Contributions/DavidMcCabe|?]]</ul></td><td><ul><ol><li>2011-08-27 - Task: [[Send_an_unknown_method_call|Send an unknown method call]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Daxim|Daxim]] [[Special:Contributions/Daxim|?]]</ul></td><td><ul><ol><li>2007-10-07 - Task: [[100_doors|100 doors]]</li><li>2007-10-07 - Task: [[FizzBuzz|FizzBuzz]]</li><li>2007-06-08 - Task: [[HTTPS/Authenticated|HTTPS/Authenticated]]</li><li>2007-06-08 - Task: [[OpenGL|OpenGL]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Dbohdan|Dbohdan]] [[Special:Contributions/Dbohdan|?]]</ul></td><td><ul><ol><li>2014-06-12 - Task: [[2048|2048]]</li><li>2014-06-03 - Task: [[FTP|FTP]]</li><li>2017-05-03 - Task: [[Retrieve_and_search_chat_history|Retrieve and search chat history]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Dgamey|Dgamey]] [[Special:Contributions/Dgamey|?]]</ul></td><td><ul><ol><li>2011-07-17 - Task: [[Deepcopy|Deepcopy]]</li><li>2011-05-06 - Task: [[Galton_box_animation|Galton box animation]]</li><li>2011-08-12 - Task: [[Longest_string_challenge|Longest string challenge]]</li><li>2010-09-29 - Task: [[MD5/Implementation|MD5/Implementation]]</li><li>2011-05-06 - Task: [[Sierpinski_triangle/Graphical|Sierpinski triangle/Graphical]]</li><li>2011-08-29 - Task: [[State_name_puzzle|State name puzzle]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Dingowolf|Dingowolf]] [[Special:Contributions/Dingowolf|?]]</ul></td><td><ul><ol><li>2010-10-01 - Draft: [[Create_an_object/Native_demonstration|Create an object/Native demonstration]]</li><li>2009-05-06 - Task: [[Happy_numbers|Happy numbers]]</li><li>2010-10-30 - Task: [[Strip_block_comments|Strip block comments]]</li><li>2010-10-14 - Task: [[Variable-length_quantity|Variable-length quantity]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Dirkt|Dirkt]] [[Special:Contributions/Dirkt|?]]</ul></td><td><ul><ol><li>2008-03-28 - Task: [[Formal_power_series|Formal power series]]</li><li>2008-03-27 - Task: [[Non-continuous_subsequences|Non-continuous subsequences]]</li><li>2007-11-08 - Task: [[Parametric_polymorphism|Parametric polymorphism]]</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_factory|Accumulator factory]]</li><li>2009-08-07 - Task: [[Animate_a_pendulum|Animate a pendulum]]</li><li>2009-06-14 - Task: [[Animation|Animation]]</li><li>2009-06-12 - Task: [[Averages/Median|Averages/Median]]</li><li>2009-06-13 - Task: [[Averages/Mode|Averages/Mode]]</li><li>2009-06-16 - Task: [[Cumulative_standard_deviation|Cumulative standard deviation]]</li><li>2009-05-13 - Task: [[Echo_server|Echo server]]</li><li>2010-11-22 - Task: [[Generator/Exponential|Generator/Exponential]]</li><li>2010-01-21 - Task: [[Hough_transform|Hough transform]]</li><li>2009-06-01 - Task: [[HTTPS|HTTPS]]</li><li>2009-06-01 - Task: [[HTTPS/Client-authenticated|HTTPS/Client-authenticated]]</li><li>2009-06-28 - Task: [[Named_parameters|Named parameters]]</li><li>2009-06-09 - Task: [[Non-decimal_radices/Input|Non-decimal radices/Input]]</li><li>2009-06-03 - Task: [[Respond_to_an_unknown_method_call|Respond to an unknown method call]]</li><li>2012-10-15 - Draft: [[Rosetta_Code/Tasks_sorted_by_average_lines_of_code|Rosetta Code/Tasks sorted by average lines of code]]</li><li>2011-04-24 - Task: [[Speech_synthesis|Speech synthesis]]</li><li>2009-05-18 - Task: [[Stack_traces|Stack traces]]</li><li>2010-03-23 - Task: [[Sutherland-Hodgman_polygon_clipping|Sutherland-Hodgman polygon clipping]]</li><li>2010-10-16 - Task: [[Terminal_control/Ringing_the_terminal_bell|Terminal control/Ringing the terminal bell]]</li><li>2009-08-09 - Task: [[Verify_distribution_uniformity/Chi-squared_test|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_type|Abstract type]]</li><li>2008-11-02 - Task: [[Active_object|Active object]]</li><li>2009-03-22 - Task: [[Arena_storage_pool|Arena storage pool]]</li><li>2008-12-07 - Task: [[Bitmap/Histogram|Bitmap/Histogram]]</li><li>2008-12-07 - Task: [[Bitmap/Read_a_PPM_file|Bitmap/Read a PPM file]]</li><li>2009-08-11 - Task: [[Call_a_foreign-language_function|Call a foreign-language function]]</li><li>2010-08-10 - Task: [[Checkpoint_synchronization|Checkpoint synchronization]]</li><li>2009-06-08 - Task: [[Create_an_object_at_a_given_address|Create an object at a given address]]</li><li>2008-11-01 - Task: [[Dining_philosophers|Dining philosophers]]</li><li>2009-06-10 - Task: [[Events|Events]]</li><li>2008-12-07 - Task: [[Grayscale_image|Grayscale image]]</li><li>2009-06-11 - Task: [[Loops/Nested|Loops/Nested]]</li><li>2008-10-25 - Task: [[Polymorphic_copy|Polymorphic copy]]</li><li>2009-02-17 - Task: [[Rendezvous|Rendezvous]]</li><li>2009-08-12 - Task: [[Safe_addition|Safe addition]]</li><li>2009-08-11 - Task: [[Use_another_language_to_call_a_function|Use another language to call a function]]</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_of_Eratosthenes|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:Dstaley|Dstaley]] [[Special:Contributions/Dstaley|?]]</ul></td><td><ul><ol><li>2015-03-03 - Task: [[JortSort|JortSort]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Dstaudacher|Dstaudacher]] [[Special:Contributions/Dstaudacher|?]]</ul></td><td><ul><ol><li>2012-10-22 - Task: [[Create_a_file_on_magnetic_tape|Create a file on magnetic tape]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Dubs|Dubs]] [[Special:Contributions/Dubs|?]]</ul></td><td><ul><ol><li>2017-01-20 - Draft: [[Solve_a_Rubik%27s_Cube|Solve a Rubik's Cube]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Dukzcry|Dukzcry]] [[Special:Contributions/Dukzcry|?]]</ul></td><td><ul><ol><li>2013-05-02 - Task: [[AVL_tree|AVL tree]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Dwarring|Dwarring]] [[Special:Contributions/Dwarring|?]]</ul></td><td><ul><ol><li>2013-12-09 - Task: [[Poker_hand_analyser|Poker hand analyser]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Ed Davis|Ed Davis]] [[Special:Contributions/Ed Davis|?]]</ul></td><td><ul><ol><li>2016-10-19 - Task: [[Compiler/AST_interpreter|Compiler/AST interpreter]]</li><li>2016-10-22 - Task: [[Compiler/code_generator|Compiler/code generator]]</li><li>2016-08-14 - Task: [[Compiler/lexical_analyzer|Compiler/lexical analyzer]]</li><li>2016-09-28 - Task: [[Compiler/syntax_analyzer|Compiler/syntax analyzer]]</li><li>2016-10-22 - Task: [[Compiler/virtual_machine_interpreter|Compiler/virtual machine interpreter]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Edmund|Edmund]] [[Special:Contributions/Edmund|?]]</ul></td><td><ul><ol><li>2016-04-11 - Task: [[Babbage_problem|Babbage problem]]</li><li>2016-09-19 - Draft: [[French_Republican_calendar|French Republican calendar]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Emarch|Emarch]] [[Special:Contributions/Emarch|?]]</ul></td><td><ul><ol><li>2014-10-17 - Draft: [[I.Q._Puzzle|I.Q. Puzzle]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:EMBee|EMBee]] [[Special:Contributions/EMBee|?]]</ul></td><td><ul><ol><li>2012-01-03 - Draft: [[Find_URI_in_text|Find URI in text]]</li><li>2011-11-09 - Draft: [[Make_a_backup_file|Make a backup file]]</li><li>2011-11-28 - Task: [[Order_two_numerical_lists|Order two numerical lists]]</li><li>2011-11-02 - Draft: [[Readline_interface|Readline interface]]</li><li>2011-11-22 - Draft: [[Rosetta_Code/Run_examples|Rosetta Code/Run examples]]</li><li>2011-11-17 - Draft: [[Run_as_a_daemon_or_service|Run as a daemon or service]]</li><li>2011-10-15 - Task: [[S-Expressions|S-Expressions]]</li><li>2011-11-01 - Task: [[Simple_database|Simple database]]</li><li>2012-01-05 - Draft: [[Text_to_HTML|Text to HTML]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Emeraude|Emeraude]] [[Special:Contributions/Emeraude|?]]</ul></td><td><ul><ol><li>2015-10-09 - Task: [[Floyd-Warshall_algorithm|Floyd-Warshall algorithm]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Epsilon|Epsilon]] [[Special:Contributions/Epsilon|?]]</ul></td><td><ul><ol><li>2007-12-11 - Task: [[Arithmetic_evaluation|Arithmetic evaluation]]</li><li>2007-12-21 - Draft: [[Proof|Proof]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Eriksiers|Eriksiers]] [[Special:Contributions/Eriksiers|?]]</ul></td><td><ul><ol><li>2010-04-05 - Task: [[Sorting_algorithms/Pancake_sort|Sorting algorithms/Pancake sort]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Fabian|Fabian]] [[Special:Contributions/Fabian|?]]</ul></td><td><ul><ol><li>2007-01-21 - Task: [[Collections|Collections]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Farter|Farter]] [[Special:Contributions/Farter|?]]</ul></td><td><ul><ol><li>2015-11-05 - Draft: [[Tetris|Tetris]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Francogrex|Francogrex]] [[Special:Contributions/Francogrex|?]]</ul></td><td><ul><ol><li>2013-11-25 - Task: [[Hash_join|Hash join]]</li><li>2013-12-31 - Task: [[Machine_code|Machine code]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Fwend|Fwend]] [[Special:Contributions/Fwend|?]]</ul></td><td><ul><ol><li>2016-03-02 - Task: [[Archimedean_spiral|Archimedean spiral]]</li><li>2016-03-01 - Task: [[Barnsley_fern|Barnsley fern]]</li><li>2010-12-11 - Task: [[Best_shuffle|Best shuffle]]</li><li>2016-03-01 - Task: [[Chaos_game|Chaos game]]</li><li>2016-03-06 - Task: [[Julia_set|Julia set]]</li><li>2016-03-16 - Task: [[Magic_squares_of_doubly_even_order|Magic squares of doubly even order]]</li><li>2016-03-16 - Task: [[Magic_squares_of_singly_even_order|Magic squares of singly even order]]</li><li>2016-04-22 - Draft: [[Penrose_tiling|Penrose tiling]]</li><li>2015-04-21 - Task: [[Pentagram|Pentagram]]</li><li>2016-03-27 - Draft: [[Pentomino_tiling|Pentomino tiling]]</li><li>2016-04-25 - Draft: [[Perceptron|Perceptron]]</li><li>2016-03-08 - Task: [[Plasma_effect|Plasma effect]]</li><li>2016-03-09 - Task: [[Polyspiral|Polyspiral]]</li><li>2012-09-07 - Task: [[Semordnilap|Semordnilap]]</li><li>2013-02-09 - Task: [[Set_puzzle|Set puzzle]]</li><li>2015-10-15 - Task: [[Sierpinski_pentagon|Sierpinski pentagon]]</li><li>2015-10-16 - Task: [[Superellipse|Superellipse]]</li><li>2013-02-12 - Task: [[Temperature_conversion|Temperature conversion]]</li><li>2013-03-22 - Task: [[Vampire_number|Vampire number]]</li><li>2016-03-26 - Task: [[Word_search|Word search]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:G.Brougnard|G.Brougnard]] [[Special:Contributions/G.Brougnard|?]]</ul></td><td><ul><ol><li>2016-01-28 - Draft: [[Addition_chains|Addition chains]]</li><li>2016-03-25 - Draft: [[Cipolla%27s_algorithm|Cipolla's algorithm]]</li><li>2016-03-19 - Draft: [[Prime_conspiracy|Prime conspiracy]]</li><li>2016-01-21 - Draft: [[Railway_circuit|Railway circuit]]</li><li>2016-03-23 - Draft: [[Simulated_annealing|Simulated annealing]]</li><li>2016-03-28 - Draft: [[Tonelli-Shanks_algorithm|Tonelli-Shanks algorithm]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Geka Sua|Geka Sua]] [[Special:Contributions/Geka Sua|?]]</ul></td><td><ul><ol><li>2007-12-24 - Task: [[Compare_sorting_algorithms%27_performance|Compare sorting algorithms' performance]]</li><li>2007-12-24 - Task: [[Plot_coordinate_pairs|Plot coordinate pairs]]</li><li>2007-12-24 - Task: [[Polynomial_regression|Polynomial regression]]</li><li>2007-12-24 - Task: [[Time_a_function|Time a function]]</li><li>2007-12-24 - Task: [[Write_float_arrays_to_a_text_file|Write float arrays to a text file]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Geoffhacker|Geoffhacker]] [[Special:Contributions/Geoffhacker|?]]</ul></td><td><ul><ol><li>2015-02-18 - Draft: [[Longest_Common_Substring|Longest Common Substring]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Georg Peter|Georg Peter]] [[Special:Contributions/Georg Peter|?]]</ul></td><td><ul><ol><li>2014-07-29 - Task: [[Integer_overflow|Integer overflow]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Gerard Schildberger|Gerard Schildberger]] [[Special:Contributions/Gerard Schildberger|?]]</ul></td><td><ul><ol><li>2016-12-31 - Task: [[4-rings_or_4-squares_puzzle|4-rings or 4-squares puzzle]]</li><li>2017-09-17 - Draft: [[Abbreviations,_automatic|Abbreviations, automatic]]</li><li>2017-09-17 - Draft: [[Abbreviations,_easy|Abbreviations, easy]]</li><li>2017-09-17 - Draft: [[Abbreviations,_simple|Abbreviations, simple]]</li><li>2014-03-11 - Task: [[Bernoulli_numbers|Bernoulli numbers]]</li><li>2014-04-05 - Task: [[Commatizing_numbers|Commatizing numbers]]</li><li>2014-04-02 - Draft: [[Egyptian_fractions|Egyptian fractions]]</li><li>2014-03-24 - Task: [[Emirp_primes|Emirp primes]]</li><li>2014-03-18 - Task: [[Exponentiation_order|Exponentiation order]]</li><li>2014-03-31 - Task: [[Farey_sequence|Farey sequence]]</li><li>2014-03-25 - Task: [[Find_palindromic_numbers_in_both_binary_and_ternary_bases|Find palindromic numbers in both binary and ternary bases]]</li><li>2017-09-11 - Draft: [[Four_is_the_number_of_letters_in_the_...|Four is the number of letters in the ...]]</li><li>2014-03-21 - Draft: [[Idiomatically_determine_all_the_characters_that_can_be_used_for_symbols|Idiomatically determine all the characters that can be used for symbols]]</li><li>2014-03-21 - Draft: [[Idiomatically_determine_all_the_lowercase_and_uppercase_letters|Idiomatically determine all the lowercase and uppercase letters]]</li><li>2015-06-02 - Draft: [[Knuth%27s_power_tree|Knuth's power tree]]</li><li>2014-03-29 - Task: [[Left_factorials|Left factorials]]</li><li>2017-05-20 - Task: [[Leonardo_numbers|Leonardo numbers]]</li><li>2014-03-05 - Task: [[Lucky_and_even_lucky_numbers|Lucky and even lucky numbers]]</li><li>2014-03-20 - Task: [[Magic_squares_of_odd_order|Magic squares of odd order]]</li><li>2017-03-03 - Task: [[Partition_an_integer_X_into_N_primes|Partition an integer X into N primes]]</li><li>2014-03-12 - Task: [[Pernicious_numbers|Pernicious numbers]]</li><li>2014-03-12 - Task: [[Population_count|Population count]]</li><li>2015-06-12 - Task: [[Primorial_numbers|Primorial numbers]]</li><li>2017-07-11 - Task: [[Pythagorean_quadruples|Pythagorean quadruples]]</li><li>2014-03-27 - Task: [[Reverse_words_in_a_string|Reverse words in a string]]</li><li>2017-04-30 - Task: [[Sort_three_variables|Sort three variables]]</li><li>2017-09-07 - Draft: [[Spelling_of_ordinal_numbers|Spelling of ordinal numbers]]</li><li>2016-12-30 - Task: [[Split_a_character_string_based_on_change_of_character|Split a character string based on change of character]]</li><li>2016-12-31 - Task: [[Sum_to_100|Sum to 100]]</li><li>2014-03-14 - Task: [[Taxicab_numbers|Taxicab numbers]]</li><li>2015-01-14 - Task: [[Ulam_spiral_(for_primes)|Ulam spiral (for primes)]]</li><li>2014-03-18 - Task: [[Zero_to_the_zero_power|Zero to the zero power]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Gfannes|Gfannes]] [[Special:Contributions/Gfannes|?]]</ul></td><td><ul><ol><li>2007-01-22 - Task: [[Apply_a_callback_to_an_array|Apply a callback to an array]]</li><li>2007-01-22 - Task: [[Filter|Filter]]</li><li>2007-01-22 - Task: [[Hash_from_two_arrays|Hash from two arrays]]</li><li>2007-01-22 - Task: [[Remove_duplicate_elements|Remove duplicate elements]]</li><li>2007-01-22 - Task: [[XML/XPath|XML/XPath]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Glennj|Glennj]] [[Special:Contributions/Glennj|?]]</ul></td><td><ul><ol><li>2009-07-10 - Task: [[Boolean_values|Boolean values]]</li><li>2009-05-13 - Task: [[Date_manipulation|Date manipulation]]</li><li>2009-10-09 - Task: [[Doubly-linked_list/Traversal|Doubly-linked list/Traversal]]</li><li>2009-08-06 - Task: [[Loop_over_multiple_arrays_simultaneously|Loop over multiple arrays simultaneously]]</li><li>2009-07-10 - Task: [[Loops/For_with_a_specified_step|Loops/For with a specified step]]</li><li>2009-10-21 - Task: [[Repeat_a_string|Repeat a string]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:GlitchMr|GlitchMr]] [[Special:Contributions/GlitchMr|?]]</ul></td><td><ul><ol><li>2012-09-24 - Draft: [[Check_input_device_is_a_terminal|Check input device is a terminal]]</li><li>2017-05-29 - Draft: [[Damm_algorithm|Damm algorithm]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Gn4v3|Gn4v3]] [[Special:Contributions/Gn4v3|?]]</ul></td><td><ul><ol><li>2007-06-20 - Task: [[Greatest_subsequential_sum|Greatest subsequential sum]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:GozzoMan|GozzoMan]] [[Special:Contributions/GozzoMan|?]]</ul></td><td><ul><ol><li>2007-01-24 - Task: [[Higher-order_functions|Higher-order functions]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Grauenwolf|Grauenwolf]] [[Special:Contributions/Grauenwolf|?]]</ul></td><td><ul><ol><li>2007-11-14 - Task: [[Determine_if_only_one_instance_is_running|Determine if only one instance is running]]</li><li>2008-12-25 - Task: [[Doubly-linked_list/Definition|Doubly-linked list/Definition]]</li><li>2008-12-25 - Task: [[XML/Input|XML/Input]]</li><li>2008-12-25 - Task: [[XML/Output|XML/Output]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:GreatPalash|GreatPalash]] [[Special:Contributions/GreatPalash|?]]</ul></td><td><ul><ol><li>2015-10-12 - Draft: [[Substitution_Cipher|Substitution Cipher]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Grondilu|Grondilu]] [[Special:Contributions/Grondilu|?]]</ul></td><td><ul><ol><li>2012-11-27 - Task: [[Bitcoin/address_validation|Bitcoin/address validation]]</li><li>2012-11-29 - Task: [[Bitcoin/public_point_to_address|Bitcoin/public point to address]]</li><li>2015-10-11 - Draft: [[Display_a_linear_combination|Display a linear combination]]</li><li>2014-02-27 - Task: [[Elementary_cellular_automaton|Elementary cellular automaton]]</li><li>2014-03-20 - Draft: [[Elementary_cellular_automaton/Infinite_length|Elementary cellular automaton/Infinite length]]</li><li>2014-03-19 - Draft: [[Elementary_cellular_automaton/Random_Number_Generator|Elementary cellular automaton/Random Number Generator]]</li><li>2012-11-30 - Draft: [[Elliptic_curve_arithmetic|Elliptic curve arithmetic]]</li><li>2013-02-26 - Draft: [[Entropy/Narcissist|Entropy/Narcissist]]</li><li>2013-04-03 - Task: [[FASTA_format|FASTA format]]</li><li>2014-05-01 - Task: [[Generate_Chess960_starting_position|Generate Chess960 starting position]]</li><li>2015-12-11 - Draft: [[Generate_random_chess_position|Generate random chess position]]</li><li>2015-10-13 - Draft: [[Geometric_algebra|Geometric algebra]]</li><li>2014-05-08 - Draft: [[Index_finite_lists_of_positive_integers|Index finite lists of positive integers]]</li><li>2013-05-02 - Draft: [[Levenshtein_distance/Alignment|Levenshtein distance/Alignment]]</li><li>2013-02-21 - Draft: [[Modular_arithmetic|Modular arithmetic]]</li><li>2012-11-30 - Task: [[Modular_inverse|Modular inverse]]</li><li>2016-07-06 - Draft: [[Orbital_elements|Orbital elements]]</li><li>2014-03-05 - Draft: [[Perlin_noise|Perlin noise]]</li><li>2012-11-02 - Task: [[SHA-256|SHA-256]]</li><li>2013-02-22 - Draft: [[Shortest_common_supersequence|Shortest common supersequence]]</li><li>2013-05-10 - Draft: [[Suffix_tree|Suffix tree]]</li><li>2014-06-18 - Task: [[Test_integerness|Test integerness]]</li><li>2013-01-24 - Task: [[Topic_variable|Topic variable]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Guga360|Guga360]] [[Special:Contributions/Guga360|?]]</ul></td><td><ul><ol><li>2009-07-30 - Task: [[Arrays|Arrays]]</li><li>2009-07-21 - Task: [[Execute_HQ9%2B|Execute HQ9+]]</li><li>2010-09-30 - Task: [[Image_noise|Image noise]]</li><li>2009-01-29 - Task: [[Rosetta_Code/Fix_code_tags|Rosetta Code/Fix code tags]]</li><li>2009-01-24 - Task: [[Rosetta_Code/Rank_languages_by_popularity|Rosetta Code/Rank languages by popularity]]</li><li>2009-05-03 - Task: [[Yahoo!_search_interface|Yahoo! search interface]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Hailholyghost|Hailholyghost]] [[Special:Contributions/Hailholyghost|?]]</ul></td><td><ul><ol><li>2015-05-26 - Draft: [[Calculate_P-Value|Calculate P-Value]]</li><li>2017-11-01 - Draft: [[P-value_correction|P-value correction]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Hajo|Hajo]] [[Special:Contributions/Hajo|?]]</ul></td><td><ul><ol><li>2014-11-18 - Draft: [[One-time_pad|One-time pad]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Hamstar|Hamstar]] [[Special:Contributions/Hamstar|?]]</ul></td><td><ul><ol><li>2008-08-10 - Task: [[Active_Directory/Connect|Active Directory/Connect]]</li><li>2008-08-06 - Task: [[Active_Directory/Search_for_a_user|Active Directory/Search for a user]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Hansoft|Hansoft]] [[Special:Contributions/Hansoft|?]]</ul></td><td><ul><ol><li>2015-01-04 - Draft: [[Sorting_Algorithms/Circle_Sort|Sorting Algorithms/Circle Sort]]</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_wheel|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_puzzle|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_product_of_two_or_more_lists|Cartesian product of two or more lists]]</li><li>2016-12-06 - Task: [[Water_collected_between_towers|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_the_last_Sunday_of_each_month|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_allocation|Memory allocation]]</li><li>2007-10-03 - Task: [[Sorting_algorithms/Quicksort|Sorting algorithms/Quicksort]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Infogulch|Infogulch]] [[Special:Contributions/Infogulch|?]]</ul></td><td><ul><ol><li>2009-07-21 - Task: [[Sudoku|Sudoku]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Isrunt|Isrunt]] [[Special:Contributions/Isrunt|?]]</ul></td><td><ul><ol><li>2014-08-11 - Draft: [[File_extension_is_in_extensions_list|File extension is in extensions list]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Jfd34|Jfd34]] [[Special:Contributions/Jfd34|?]]</ul></td><td><ul><ol><li>2013-12-19 - Task: [[The_Twelve_Days_of_Christmas|The Twelve Days of Christmas]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Jgfoot|Jgfoot]] [[Special:Contributions/Jgfoot|?]]</ul></td><td><ul><ol><li>2017-02-04 - Task: [[Parallel_Brute_Force|Parallel Brute Force]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Jhuni|Jhuni]] [[Special:Contributions/Jhuni|?]]</ul></td><td><ul><ol><li>2011-01-02 - Task: [[Enforced_immutability|Enforced immutability]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Jimbojw|Jimbojw]] [[Special:Contributions/Jimbojw|?]]</ul></td><td><ul><ol><li>2007-08-03 - Task: [[Date_format|Date format]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:JimD|JimD]] [[Special:Contributions/JimD|?]]</ul></td><td><ul><ol><li>2007-11-20 - Task: [[Rot-13|Rot-13]]</li><li>2007-10-22 - Task: [[Secure_temporary_file|Secure temporary file]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:JimTheriot|JimTheriot]] [[Special:Contributions/JimTheriot|?]]</ul></td><td><ul><ol><li>2015-08-02 - Draft: [[Chebyshev_coefficients|Chebyshev coefficients]]</li><li>2015-07-31 - Draft: [[Particle_Swarm_Optimization|Particle Swarm Optimization]]</li><li>2015-06-30 - Draft: [[Weather_Routing|Weather Routing]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Jking|Jking]] [[Special:Contributions/Jking|?]]</ul></td><td><ul><ol><li>2014-01-08 - Task: [[ABC_Problem|ABC Problem]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Jrslepak|Jrslepak]] [[Special:Contributions/Jrslepak|?]]</ul></td><td><ul><ol><li>2007-05-08 - Task: [[Doubly-linked_list/Element_definition|Doubly-linked list/Element definition]]</li><li>2007-07-05 - Task: [[Doubly-linked_list/Element_insertion|Doubly-linked list/Element insertion]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Jwilkins|Jwilkins]] [[Special:Contributions/Jwilkins|?]]</ul></td><td><ul><ol><li>2007-09-18 - Task: [[Add_a_variable_to_a_class_instance_at_runtime|Add a variable to a class instance at runtime]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Kentros|Kentros]] [[Special:Contributions/Kentros|?]]</ul></td><td><ul><ol><li>2017-08-14 - Draft: [[Word_count|Word count]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Kernigh|Kernigh]] [[Special:Contributions/Kernigh|?]]</ul></td><td><ul><ol><li>2011-06-12 - Task: [[Caesar_cipher|Caesar cipher]]</li><li>2012-01-30 - Task: [[Conjugate_transpose|Conjugate transpose]]</li><li>2011-09-18 - Task: [[Deal_cards_for_FreeCell|Deal cards for FreeCell]]</li><li>2011-05-16 - Task: [[DNS_query|DNS query]]</li><li>2012-01-02 - Task: [[Empty_directory|Empty directory]]</li><li>2011-11-13 - Task: [[Even_or_odd|Even or odd]]</li><li>2012-03-19 - Task: [[Identity_matrix|Identity matrix]]</li><li>2011-05-19 - Task: [[Jump_anywhere|Jump anywhere]]</li><li>2011-03-30 - Task: [[Least_common_multiple|Least common multiple]]</li><li>2011-09-18 - Task: [[Letter_frequency|Letter frequency]]</li><li>2011-06-30 - Task: [[Linear_congruential_generator|Linear congruential generator]]</li><li>2012-03-26 - Task: [[MD4|MD4]]</li><li>2011-12-18 - Task: [[Modular_exponentiation|Modular exponentiation]]</li><li>2011-10-09 - Task: [[Return_multiple_values|Return multiple values]]</li><li>2012-03-29 - Task: [[RIPEMD-160|RIPEMD-160]]</li><li>2011-09-16 - Task: [[Set|Set]]</li><li>2012-01-18 - Task: [[SHA-1|SHA-1]]</li><li>2011-08-02 - Task: [[Subtractive_generator|Subtractive generator]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Kevin Reid|Kevin Reid]] [[Special:Contributions/Kevin Reid|?]]</ul></td><td><ul><ol><li>2009-05-16 - Task: [[Atomic_updates|Atomic updates]]</li><li>2007-08-18 - Task: [[Distributed_programming|Distributed programming]]</li><li>2009-01-29 - Task: [[Multiple_distinct_objects|Multiple distinct objects]]</li><li>2009-05-24 - Task: [[Optional_parameters|Optional parameters]]</li><li>2009-06-11 - Task: [[Play_recorded_sounds|Play recorded sounds]]</li><li>2009-01-05 - Task: [[Queue/Usage|Queue/Usage]]</li><li>2010-06-29 - Task: [[Read_entire_file|Read entire file]]</li><li>2009-02-07 - Task: [[Rosetta_Code/Find_unimplemented_tasks|Rosetta Code/Find unimplemented tasks]]</li><li>2009-02-17 - Task: [[Runtime_evaluation|Runtime evaluation]]</li><li>2009-02-17 - Task: [[Runtime_evaluation/In_an_environment|Runtime evaluation/In an environment]]</li><li>2009-12-14 - Task: [[Stem-and-leaf_plot|Stem-and-leaf plot]]</li><li>2009-07-03 - Task: [[Variables|Variables]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Kipb|Kipb]] [[Special:Contributions/Kipb|?]]</ul></td><td><ul><ol><li>2007-02-11 - Task: [[Formatted_numeric_output|Formatted numeric output]]</li><li>2007-02-11 - Task: [[String_case|String case]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Krauss|Krauss]] [[Special:Contributions/Krauss|?]]</ul></td><td><ul><ol><li>2017-07-13 - Draft: [[Base58Check_encoding|Base58Check encoding]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Kwhitefoot|Kwhitefoot]] [[Special:Contributions/Kwhitefoot|?]]</ul></td><td><ul><ol><li>2016-10-27 - Draft: [[Singly-linked_list/Element_removal|Singly-linked list/Element removal]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Kzh|Kzh]] [[Special:Contributions/Kzh|?]]</ul></td><td><ul><ol><li>2012-09-18 - Task: [[Catamorphism|Catamorphism]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Lambertdw|Lambertdw]] [[Special:Contributions/Lambertdw|?]]</ul></td><td><ul><ol><li>2011-01-19 - Task: [[Sorting_algorithms/Radix_sort|Sorting algorithms/Radix sort]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Learneroo|Learneroo]] [[Special:Contributions/Learneroo|?]]</ul></td><td><ul><ol><li>2014-01-08 - Draft: [[Input/Output_for_Lines_of_Text|Input/Output for Lines of Text]]</li><li>2013-12-04 - Draft: [[Input/Output_for_Pairs_of_Numbers|Input/Output for Pairs of Numbers]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Ledrug|Ledrug]] [[Special:Contributions/Ledrug|?]]</ul></td><td><ul><ol><li>2011-11-01 - Task: [[Balanced_ternary|Balanced ternary]]</li><li>2011-08-11 - Task: [[Color_quantization|Color quantization]]</li><li>2011-10-27 - Task: [[Count_the_coins|Count the coins]]</li><li>2011-10-08 - Task: [[Cut_a_rectangle|Cut a rectangle]]</li><li>2011-07-03 - Task: [[Draw_a_clock|Draw a clock]]</li><li>2011-09-28 - Draft: [[IPC_via_named_pipe|IPC via named pipe]]</li><li>2012-10-27 - Task: [[Josephus_problem|Josephus problem]]</li><li>2015-05-06 - Draft: [[List_rooted_trees|List rooted trees]]</li><li>2011-11-03 - Task: [[Odd_word_problem|Odd word problem]]</li><li>2011-08-04 - Task: [[Priority_queue|Priority queue]]</li><li>2011-06-28 - Task: [[Pythagorean_triples|Pythagorean triples]]</li><li>2011-08-21 - Task: [[Resistor_mesh|Resistor mesh]]</li><li>2011-09-30 - Task: [[Set_of_real_numbers|Set of real numbers]]</li><li>2011-07-02 - Task: [[Statistics/Basic|Statistics/Basic]]</li><li>2011-07-27 - Task: [[Statistics/Normal_distribution|Statistics/Normal distribution]]</li><li>2011-06-30 - Task: [[Unicode_strings|Unicode strings]]</li><li>2012-09-01 - Task: [[Visualize_a_tree|Visualize a tree]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Legrady|Legrady]] [[Special:Contributions/Legrady|?]]</ul></td><td><ul><ol><li>2016-09-07 - Draft: [[File_size_distribution|File size distribution]]</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_synthetic_division|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_of_a_Mersenne_number|Factors of a Mersenne number]]</li><li>2008-11-27 - Task: [[Roots_of_a_quadratic_function|Roots of a quadratic function]]</li><li>2008-11-21 - Task: [[Sorting_algorithms/Selection_sort|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_Libs|Mad Libs]]</li><li>2011-06-07 - Draft: [[Morpion_solitaire|Morpion solitaire]]</li><li>2014-04-02 - Draft: [[Recursive_descent_parser_generator|Recursive descent parser generator]]</li><li>2011-05-27 - Task: [[Sokoban|Sokoban]]</li><li>2011-06-06 - Task: [[Straddling_checkerboard|Straddling checkerboard]]</li><li>2011-05-31 - Task: [[Vigen%C3%A8re_cipher|Vigenère cipher]]</li><li>2011-05-31 - Task: [[Vigen%C3%A8re_cipher/Cryptanalysis|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_state_machine|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_reduction|Montgomery reduction]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:MainframeFossil|MainframeFossil]] [[Special:Contributions/MainframeFossil|?]]</ul></td><td><ul><ol><li>2014-04-10 - Task: [[Get_system_command_output|Get system command output]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Markhobley|Markhobley]] [[Special:Contributions/Markhobley|?]]</ul></td><td><ul><ol><li>2013-02-23 - Draft: [[Audio_frequency_generator|Audio frequency generator]]</li><li>2011-07-06 - Task: [[Binary_digits|Binary digits]]</li><li>2011-07-15 - Task: [[Call_a_function|Call a function]]</li><li>2011-02-07 - Task: [[Case-sensitivity_of_identifiers|Case-sensitivity of identifiers]]</li><li>2013-02-22 - Draft: [[Code_segment_unload|Code segment unload]]</li><li>2011-05-22 - Task: [[Colour_bars/Display|Colour bars/Display]]</li><li>2011-05-22 - Task: [[Colour_pinstripe/Display|Colour pinstripe/Display]]</li><li>2011-05-22 - Task: [[Colour_pinstripe/Printer|Colour pinstripe/Printer]]</li><li>2011-06-05 - Task: [[Count_in_octal|Count in octal]]</li><li>2011-03-29 - Task: [[Death_Star|Death Star]]</li><li>2010-12-13 - Task: [[Draw_a_cuboid|Draw a cuboid]]</li><li>2011-03-25 - Task: [[Draw_a_sphere|Draw a sphere]]</li><li>2011-07-04 - Task: [[Empty_string|Empty string]]</li><li>2011-07-17 - Task: [[Function_prototype|Function prototype]]</li><li>2010-10-30 - Task: [[Globally_replace_text_in_several_files|Globally replace text in several files]]</li><li>2011-05-22 - Task: [[Greyscale_bars/Display|Greyscale bars/Display]]</li><li>2010-10-28 - Task: [[Guess_the_number|Guess the number]]</li><li>2010-11-23 - Task: [[GUI/Maximum_window_dimensions|GUI/Maximum window dimensions]]</li><li>2010-10-03 - Task: [[Hello_world/Line_printer|Hello world/Line printer]]</li><li>2011-07-25 - Task: [[Hello_world/Newline_omission|Hello world/Newline omission]]</li><li>2011-05-14 - Task: [[Here_document|Here document]]</li><li>2011-05-25 - Task: [[Honeycombs|Honeycombs]]</li><li>2011-05-29 - Task: [[Include_a_file|Include a file]]</li><li>2011-05-30 - Task: [[Inverted_syntax|Inverted syntax]]</li><li>2011-05-23 - Task: [[Joystick_position|Joystick position]]</li><li>2010-10-07 - Task: [[Keyboard_input/Flush_the_keyboard_buffer|Keyboard input/Flush the keyboard buffer]]</li><li>2010-10-07 - Task: [[Keyboard_input/Keypress_check|Keyboard input/Keypress check]]</li><li>2010-10-08 - Task: [[Keyboard_input/Obtain_a_Y_or_N_response|Keyboard input/Obtain a Y or N response]]</li><li>2011-09-07 - Task: [[Metronome|Metronome]]</li><li>2013-03-22 - Draft: [[Musical_scale|Musical scale]]</li><li>2013-02-21 - Task: [[Nautical_bell|Nautical bell]]</li><li>2011-03-25 - Task: [[Pi|Pi]]</li><li>2011-05-22 - Task: [[Pinstripe/Display|Pinstripe/Display]]</li><li>2011-05-22 - Task: [[Pinstripe/Printer|Pinstripe/Printer]]</li><li>2011-10-08 - Task: [[Pragmatic_directives|Pragmatic directives]]</li><li>2011-02-10 - Task: [[Read_a_configuration_file|Read a configuration file]]</li><li>2013-03-17 - Draft: [[Read_a_file_character_by_character/UTF8|Read a file character by character/UTF8]]</li><li>2011-04-03 - Task: [[Read_a_file_line_by_line|Read a file line by line]]</li><li>2011-07-12 - Task: [[Read_a_specific_line_from_a_file|Read a specific line from a file]]</li><li>2011-07-12 - Task: [[Remove_lines_from_a_file|Remove lines from a file]]</li><li>2013-02-18 - Task: [[Scope/Function_names_and_labels|Scope/Function names and labels]]</li><li>2011-06-02 - Task: [[Special_variables|Special variables]]</li><li>2011-07-12 - Task: [[Start_from_a_main_routine|Start from a main routine]]</li><li>2013-02-22 - Task: [[String_comparison|String comparison]]</li><li>2011-06-05 - Task: [[Strip_a_set_of_characters_from_a_string|Strip a set of characters from a string]]</li><li>2010-10-30 - Task: [[Strip_comments_from_a_string|Strip comments from a string]]</li><li>2011-06-05 - Task: [[Strip_control_codes_and_extended_characters_from_a_string|Strip control codes and extended characters from a string]]</li><li>2011-06-04 - Task: [[Strip_whitespace_from_a_string/Top_and_tail|Strip whitespace from a string/Top and tail]]</li><li>2011-06-05 - Task: [[Substring/Top_and_tail|Substring/Top and tail]]</li><li>2010-10-04 - Task: [[Terminal_control/Clear_the_screen|Terminal control/Clear the screen]]</li><li>2011-09-06 - Task: [[Terminal_control/Coloured_text|Terminal control/Coloured text]]</li><li>2011-07-07 - Task: [[Terminal_control/Cursor_movement|Terminal control/Cursor movement]]</li><li>2010-10-04 - Task: [[Terminal_control/Cursor_positioning|Terminal control/Cursor positioning]]</li><li>2010-10-05 - Task: [[Terminal_control/Dimensions|Terminal control/Dimensions]]</li><li>2010-10-26 - Task: [[Terminal_control/Display_an_extended_character|Terminal control/Display an extended character]]</li><li>2010-10-26 - Task: [[Terminal_control/Hiding_the_cursor|Terminal control/Hiding the cursor]]</li><li>2010-10-26 - Task: [[Terminal_control/Inverse_video|Terminal control/Inverse video]]</li><li>2010-10-04 - Task: [[Terminal_control/Positional_read|Terminal control/Positional read]]</li><li>2011-03-20 - Task: [[Terminal_control/Preserve_screen|Terminal control/Preserve screen]]</li><li>2013-02-10 - Draft: [[Terminal_control/Restricted_width_positional_input/No_wrapping|Terminal control/Restricted width positional input/No wrapping]]</li><li>2013-02-10 - Draft: [[Terminal_control/Restricted_width_positional_input/With_wrapping|Terminal control/Restricted width positional input/With wrapping]]</li><li>2011-09-11 - Task: [[Terminal_control/Unicode_output|Terminal control/Unicode output]]</li><li>2011-07-19 - Task: [[Truncate_a_file|Truncate a file]]</li><li>2011-05-20 - Task: [[Update_a_configuration_file|Update a configuration file]]</li><li>2011-06-16 - Task: [[URL_decoding|URL decoding]]</li><li>2011-06-16 - Task: [[URL_encoding|URL encoding]]</li><li>2011-04-04 - Draft: [[Using_a_Speech_engine_to_highlight_words|Using a Speech engine to highlight words]]</li><li>2011-06-06 - Task: [[Video_display_modes|Video display modes]]</li><li>2011-07-12 - Draft: [[Waveform_analysis/Doh_ray_me|Waveform analysis/Doh ray me]]</li><li>2011-09-09 - Draft: [[Waveform_analysis/Top_and_tail|Waveform analysis/Top and tail]]</li><li>2010-12-15 - Task: [[Write_language_name_in_3D_ASCII|Write language name in 3D ASCII]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Markjreed|Markjreed]] [[Special:Contributions/Markjreed|?]]</ul></td><td><ul><ol><li>2017-01-27 - Task: [[Chinese_zodiac|Chinese zodiac]]</li><li>2011-05-27 - Task: [[Knight%27s_tour|Knight's tour]]</li><li>2015-04-27 - Task: [[Subleq|Subleq]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Marshmallows|Marshmallows]] [[Special:Contributions/Marshmallows|?]]</ul></td><td><ul><ol><li>2008-03-23 - Task: [[Amb|Amb]]</li><li>2008-04-11 - Task: [[Loops/For|Loops/For]]</li><li>2008-04-11 - Task: [[Loops/Infinite|Loops/Infinite]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Masak|Masak]] [[Special:Contributions/Masak|?]]</ul></td><td><ul><ol><li>2013-01-03 - Task: [[Average_loop_length|Average loop length]]</li><li>2011-02-20 - Task: [[Balanced_brackets|Balanced brackets]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Mathaddict|Mathaddict]] [[Special:Contributions/Mathaddict|?]]</ul></td><td><ul><ol><li>2010-04-08 - Task: [[A%2BB|A+B]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Matthias|Matthias]] [[Special:Contributions/Matthias|?]]</ul></td><td><ul><ol><li>2008-03-27 - Task: [[Dragon_curve|Dragon curve]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Mbishop|Mbishop]] [[Special:Contributions/Mbishop|?]]</ul></td><td><ul><ol><li>2009-05-20 - Task: [[Knuth_shuffle|Knuth shuffle]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Mcandre|Mcandre]] [[Special:Contributions/Mcandre|?]]</ul></td><td><ul><ol><li>2011-03-03 - Draft: [[Modulinos|Modulinos]]</li><li>2011-08-06 - Draft: [[Multiline_shebang|Multiline shebang]]</li><li>2011-08-06 - Draft: [[Parse_command-line_arguments|Parse command-line arguments]]</li><li>2011-08-09 - Task: [[Pick_random_element|Pick random element]]</li><li>2011-08-05 - Task: [[Program_name|Program name]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:MichaelChrisco|MichaelChrisco]] [[Special:Contributions/MichaelChrisco|?]]</ul></td><td><ul><ol><li>2010-08-25 - Task: [[Sorting_algorithms/Bead_sort|Sorting algorithms/Bead sort]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Mikachu|Mikachu]] [[Special:Contributions/Mikachu|?]]</ul></td><td><ul><ol><li>2011-05-09 - Task: [[Roman_numerals/Decode|Roman numerals/Decode]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Mikymaione|Mikymaione]] [[Special:Contributions/Mikymaione|?]]</ul></td><td><ul><ol><li>2017-02-05 - Draft: [[Kosaraju|Kosaraju]]</li><li>2017-02-04 - Draft: [[Tarjan|Tarjan]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Mischief|Mischief]] [[Special:Contributions/Mischief|?]]</ul></td><td><ul><ol><li>2014-06-12 - Draft: [[Sorting_algorithms/Cycle_sort|Sorting algorithms/Cycle sort]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Mogmios|Mogmios]] [[Special:Contributions/Mogmios|?]]</ul></td><td><ul><ol><li>2011-01-20 - Draft: [[VList|VList]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Mroman|Mroman]] [[Special:Contributions/Mroman|?]]</ul></td><td><ul><ol><li>2013-02-21 - Task: [[Entropy|Entropy]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Mwn3d|Mwn3d]] [[Special:Contributions/Mwn3d|?]]</ul></td><td><ul><ol><li>2008-02-28 - Task: [[99_Bottles_of_Beer|99 Bottles of Beer]]</li><li>2008-09-23 - Task: [[Ackermann_function|Ackermann function]]</li><li>2008-03-08 - Task: [[Arithmetic/Complex|Arithmetic/Complex]]</li><li>2009-09-09 - Task: [[Array_concatenation|Array concatenation]]</li><li>2009-02-04 - Task: [[Assertions|Assertions]]</li><li>2007-11-08 - Task: [[Binary_search|Binary search]]</li><li>2007-11-18 - Task: [[Bitwise_operations|Bitwise operations]]</li><li>2015-04-26 - Draft: [[Card_shuffles|Card shuffles]]</li><li>2011-02-11 - Task: [[Catalan_numbers|Catalan numbers]]</li><li>2008-02-17 - Task: [[Detect_division_by_zero|Detect division by zero]]</li><li>2009-09-03 - Task: [[Documentation|Documentation]]</li><li>2008-05-04 - Task: [[Execute_SNUSP|Execute SNUSP]]</li><li>2008-02-29 - Task: [[Fibonacci_sequence|Fibonacci sequence]]</li><li>2010-10-22 - Task: [[Five_weekends|Five weekends]]</li><li>2011-03-16 - Task: [[Gray_code|Gray code]]</li><li>2009-01-07 - Task: [[Hello_world/Standard_error|Hello world/Standard error]]</li><li>2009-03-26 - Task: [[Huffman_coding|Huffman coding]]</li><li>2008-04-27 - Task: [[Inheritance/Single|Inheritance/Single]]</li><li>2008-02-17 - Task: [[Input_loop|Input loop]]</li><li>2008-05-07 - Task: [[Longest_common_subsequence|Longest common subsequence]]</li><li>2009-06-05 - Task: [[Loops/Break|Loops/Break]]</li><li>2008-04-21 - Task: [[Loops/Continue|Loops/Continue]]</li><li>2008-04-14 - Task: [[Loops/Do-while|Loops/Do-while]]</li><li>2008-04-13 - Task: [[Loops/Foreach|Loops/Foreach]]</li><li>2008-04-11 - Task: [[Loops/While|Loops/While]]</li><li>2007-11-19 - Task: [[MD5|MD5]]</li><li>2008-09-24 - Task: [[Monte_Carlo_methods|Monte Carlo methods]]</li><li>2008-07-30 - Task: [[Null_object|Null object]]</li><li>2007-12-21 - Task: [[Numerical_integration|Numerical integration]]</li><li>2009-10-07 - Task: [[Parametrized_SQL_statement|Parametrized SQL statement]]</li><li>2008-06-23 - Task: [[Pascal%27s_triangle|Pascal's triangle]]</li><li>2008-08-22 - Task: [[Perfect_numbers|Perfect numbers]]</li><li>2007-11-20 - Task: [[Primality_by_trial_division|Primality by trial division]]</li><li>2008-02-05 - Task: [[Prime_decomposition|Prime decomposition]]</li><li>2008-04-21 - Task: [[Program_termination|Program termination]]</li><li>2007-11-09 - Task: [[Quine|Quine]]</li><li>2008-05-07 - Task: [[Real_constants_and_functions|Real constants and functions]]</li><li>2009-01-21 - Task: [[Reduced_row_echelon_form|Reduced row echelon form]]</li><li>2009-02-09 - Task: [[Rosetta_Code/Count_examples|Rosetta Code/Count examples]]</li><li>2009-06-10 - Task: [[Scope_modifiers|Scope modifiers]]</li><li>2011-08-08 - Task: [[Show_the_epoch|Show the epoch]]</li><li>2007-12-11 - Task: [[Sleep|Sleep]]</li><li>2008-11-25 - Task: [[Sorting_algorithms/Cocktail_sort|Sorting algorithms/Cocktail sort]]</li><li>2007-11-11 - Task: [[Sorting_algorithms/Insertion_sort|Sorting algorithms/Insertion sort]]</li><li>2008-02-05 - Task: [[Sorting_algorithms/Merge_sort|Sorting algorithms/Merge sort]]</li><li>2010-07-24 - Task: [[Sorting_algorithms/Stooge_sort|Sorting algorithms/Stooge sort]]</li><li>2008-12-17 - Task: [[String_concatenation|String concatenation]]</li><li>2008-01-19 - Task: [[String_length|String length]]</li><li>2007-12-03 - Task: [[Sum_and_product_of_an_array|Sum and product of an array]]</li><li>2008-01-23 - Task: [[System_time|System time]]</li><li>2008-01-05 - Task: [[Trigonometric_functions|Trigonometric functions]]</li><li>2009-07-08 - Task: [[User_input/Graphical|User input/Graphical]]</li><li>2009-07-08 - Task: [[User_input/Text|User input/Text]]</li><li>2008-06-01 - Task: [[Variadic_function|Variadic function]]</li><li>2014-06-18 - Task: [[World_Cup_group_stage|World Cup group stage]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Namanyayg|Namanyayg]] [[Special:Contributions/Namanyayg|?]]</ul></td><td><ul><ol><li>2014-12-27 - Draft: [[Using_the_Meetup.com_API|Using the Meetup.com API]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:NevilleDNZ|NevilleDNZ]] [[Special:Contributions/NevilleDNZ|?]]</ul></td><td><ul><ol><li>2011-08-27 - Draft: [[Addition-chain_exponentiation|Addition-chain exponentiation]]</li><li>2011-09-12 - Task: [[Append_a_record_to_the_end_of_a_text_file|Append a record to the end of a text file]]</li><li>2009-02-13 - Task: [[Arithmetic/Rational|Arithmetic/Rational]]</li><li>2013-02-24 - Draft: [[Banker%27s_algorithm|Banker's algorithm]]</li><li>2013-06-04 - Draft: [[Birthday_problem|Birthday problem]]</li><li>2011-05-30 - Task: [[Calendar|Calendar]]</li><li>2011-05-31 - Task: [[Calendar_-_for_%22REAL%22_programmers|Calendar - for "REAL" programmers]]</li><li>2013-04-14 - Task: [[Combinations_and_permutations|Combinations and permutations]]</li><li>2013-04-02 - Task: [[Currying|Currying]]</li><li>2008-02-19 - Task: [[Exponentiation_operator|Exponentiation operator]]</li><li>2011-12-07 - Draft: [[Find_first_and_last_set_bit_of_a_long_integer|Find first and last set bit of a long integer]]</li><li>2011-10-28 - Draft: [[Generalised_floating_point_addition|Generalised floating point addition]]</li><li>2011-10-30 - Draft: [[Generalised_floating_point_multiplication|Generalised floating point multiplication]]</li><li>2007-12-17 - Task: [[Greatest_common_divisor|Greatest common divisor]]</li><li>2008-02-12 - Task: [[Hello_world/Graphical|Hello world/Graphical]]</li><li>2010-06-29 - Task: [[Holidays_related_to_Easter|Holidays related to Easter]]</li><li>2010-06-24 - Task: [[Horizontal_sundial_calculations|Horizontal sundial calculations]]</li><li>2013-04-23 - Draft: [[Implicit_type_conversion|Implicit type conversion]]</li><li>2008-11-21 - Task: [[Jensen%27s_Device|Jensen's Device]]</li><li>2013-12-15 - Draft: [[Just_in_time_processing_on_a_character_stream|Just in time processing on a character stream]]</li><li>2008-02-14 - Task: [[Lucas-Lehmer_test|Lucas-Lehmer test]]</li><li>2007-12-18 - Task: [[Man_or_boy_test|Man or boy test]]</li><li>2008-02-19 - Task: [[Matrix-exponentiation_operator|Matrix-exponentiation operator]]</li><li>2008-02-07 - Task: [[Matrix_transposition|Matrix transposition]]</li><li>2009-12-05 - Task: [[Multiplication_tables|Multiplication tables]]</li><li>2015-09-19 - Task: [[Naming_conventions|Naming conventions]]</li><li>2013-09-03 - Draft: [[Native_shebang|Native shebang]]</li><li>2008-09-27 - Task: [[Number_names|Number names]]</li><li>2012-08-17 - Task: [[Operator_precedence|Operator precedence]]</li><li>2013-04-26 - Draft: [[Permutations_with_repetitions|Permutations with repetitions]]</li><li>2012-10-05 - Draft: [[Reverse_the_gender_of_a_string|Reverse the gender of a string]]</li><li>2008-09-28 - Task: [[Search_a_list|Search a list]]</li><li>2014-03-30 - Draft: [[Sorting_algorithms/Tree_sort_on_a_linked_list|Sorting algorithms/Tree sort on a linked list]]</li><li>2013-10-03 - Task: [[String_append|String append]]</li><li>2013-10-03 - Task: [[String_prepend|String prepend]]</li><li>2011-08-26 - Task: [[Ternary_logic|Ternary logic]]</li><li>2010-10-02 - Task: [[Thiele%27s_interpolation_formula|Thiele's interpolation formula]]</li><li>2011-11-17 - Draft: [[Unicode_polynomial_equation|Unicode polynomial equation]]</li><li>2011-09-13 - Draft: [[User_defined_pipe_and_redirection_operators|User defined pipe and redirection operators]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Nigel Galloway|Nigel Galloway]] [[Special:Contributions/Nigel Galloway|?]]</ul></td><td><ul><ol><li>2013-04-27 - Task: [[9_billion_names_of_God_the_integer|9 billion names of God the integer]]</li><li>2012-02-06 - Task: [[Arithmetic-geometric_mean|Arithmetic-geometric mean]]</li><li>2014-01-12 - Task: [[Arithmetic-geometric_mean/Calculate_Pi|Arithmetic-geometric mean/Calculate Pi]]</li><li>2013-07-01 - Draft: [[Blackjack_strategy|Blackjack strategy]]</li><li>2012-11-30 - Task: [[Carmichael_3_strong_pseudoprimes|Carmichael 3 strong pseudoprimes]]</li><li>2012-06-24 - Task: [[Casting_out_nines|Casting out nines]]</li><li>2013-04-26 - Task: [[Catalan_numbers/Pascal%27s_triangle|Catalan numbers/Pascal's triangle]]</li><li>2014-09-16 - Draft: [[Combinations_with_repetitions/Square_Digit_Chain|Combinations with repetitions/Square Digit Chain]]</li><li>2012-02-27 - Task: [[Continued_fraction|Continued fraction]]</li><li>2013-02-04 - Task: [[Continued_fraction/Arithmetic/Construct_from_rational_number|Continued fraction/Arithmetic/Construct from rational number]]</li><li>2013-02-06 - Draft: [[Continued_fraction/Arithmetic/G(matrix_NG,_Contined_Fraction_N)|Continued fraction/Arithmetic/G(matrix NG, Contined Fraction N)]]</li><li>2013-02-12 - Draft: [[Continued_fraction/Arithmetic/G(matrix_NG,_Contined_Fraction_N1,_Contined_Fraction_N2)|Continued fraction/Arithmetic/G(matrix NG, Contined Fraction N1, Contined Fraction N2)]]</li><li>2012-07-20 - Task: [[Digital_root|Digital root]]</li><li>2013-07-12 - Task: [[Fibonacci_word|Fibonacci word]]</li><li>2013-07-15 - Task: [[Fibonacci_word/fractal|Fibonacci word/fractal]]</li><li>2012-09-15 - Task: [[Find_largest_left_truncatable_prime_in_a_given_base|Find largest left truncatable prime in a given base]]</li><li>2012-01-07 - Draft: [[Ramsey%27s_theorem|Ramsey's theorem]]</li><li>2012-01-12 - Task: [[Solve_a_Hidato_puzzle|Solve a Hidato puzzle]]</li><li>2014-06-01 - Task: [[Solve_a_Holy_Knight%27s_tour|Solve a Holy Knight's tour]]</li><li>2014-05-30 - Task: [[Solve_a_Hopido_puzzle|Solve a Hopido puzzle]]</li><li>2014-05-30 - Task: [[Solve_a_Numbrix_puzzle|Solve a Numbrix puzzle]]</li><li>2012-07-19 - Task: [[Sum_digits_of_an_integer|Sum digits of an integer]]</li><li>2015-02-03 - Task: [[Textonyms|Textonyms]]</li><li>2015-02-20 - Draft: [[Ukkonen%E2%80%99s_Suffix_Tree_Construction|Ukkonen’s Suffix Tree Construction]]</li><li>2013-09-01 - Task: [[Vogel%27s_approximation_method|Vogel's approximation method]]</li><li>2012-10-29 - Task: [[Zeckendorf_arithmetic|Zeckendorf arithmetic]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Nirs|Nirs]] [[Special:Contributions/Nirs|?]]</ul></td><td><ul><ol><li>2007-10-03 - Task: [[Delegates|Delegates]]</li><li>2007-11-04 - Task: [[Queue/Definition|Queue/Definition]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Old man|Old man]] [[Special:Contributions/Old man|?]]</ul></td><td><ul><ol><li>2015-02-23 - Task: [[Primes_-_allocate_descendants_to_their_ancestors|Primes - allocate descendants to their ancestors]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Oligomous|Oligomous]] [[Special:Contributions/Oligomous|?]]</ul></td><td><ul><ol><li>2009-08-15 - Task: [[Factors_of_an_integer|Factors of an integer]]</li><li>2009-08-05 - Task: [[Substring|Substring]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Outis|Outis]] [[Special:Contributions/Outis|?]]</ul></td><td><ul><ol><li>2016-07-22 - Task: [[Reflection/Get_source|Reflection/Get source]]</li><li>2016-07-23 - Draft: [[Reflection/List_methods|Reflection/List methods]]</li><li>2016-07-24 - Task: [[Reflection/List_properties|Reflection/List properties]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:P3cox|P3cox]] [[Special:Contributions/P3cox|?]]</ul></td><td><ul><ol><li>2017-07-02 - Draft: [[Fibonacci_heap|Fibonacci heap]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Paddy3118|Paddy3118]] [[Special:Contributions/Paddy3118|?]]</ul></td><td><ul><ol><li>2009-10-31 - Task: [[24_game|24 game]]</li><li>2009-11-01 - Task: [[24_game/Solve|24 game/Solve]]</li><li>2014-12-16 - Task: [[Abundant,_deficient_and_perfect_number_classifications|Abundant, deficient and perfect number classifications]]</li><li>2014-02-06 - Task: [[AKS_test_for_primes|AKS test for primes]]</li><li>2008-11-16 - Task: [[Align_columns|Align columns]]</li><li>2014-12-18 - Task: [[Aliquot_sequence_classifications|Aliquot sequence classifications]]</li><li>2014-02-21 - Task: [[Almost_prime|Almost prime]]</li><li>2014-12-16 - Task: [[Amicable_pairs|Amicable pairs]]</li><li>2008-09-24 - Task: [[Anagrams|Anagrams]]</li><li>2011-05-14 - Task: [[Anagrams/Deranged_anagrams|Anagrams/Deranged anagrams]]</li><li>2010-02-13 - Task: [[Arbitrary-precision_integers_(included)|Arbitrary-precision integers (included)]]</li><li>2012-07-09 - Task: [[Averages/Mean_angle|Averages/Mean angle]]</li><li>2012-07-10 - Task: [[Averages/Mean_time_of_day|Averages/Mean time of day]]</li><li>2010-02-20 - Task: [[Averages/Pythagorean_means|Averages/Pythagorean means]]</li><li>2010-02-20 - Task: [[Averages/Root_mean_square|Averages/Root mean square]]</li><li>2009-06-17 - Task: [[Averages/Simple_moving_average|Averages/Simple moving average]]</li><li>2011-03-27 - Task: [[Box_the_compass|Box the compass]]</li><li>2011-08-06 - Task: [[Break_OO_privacy|Break OO privacy]]</li><li>2009-05-03 - Task: [[Bulls_and_cows|Bulls and cows]]</li><li>2010-06-13 - Task: [[Bulls_and_cows/Player|Bulls and cows/Player]]</li><li>2013-04-16 - Task: [[Circles_of_given_radius_through_two_points|Circles of given radius through two points]]</li><li>2013-10-06 - Task: [[Comma_quibbling|Comma quibbling]]</li><li>2008-10-10 - Task: [[Conway%27s_Game_of_Life|Conway's Game of Life]]</li><li>2010-11-13 - Task: [[CSV_to_HTML_translation|CSV to HTML translation]]</li><li>2008-12-12 - Task: [[Day_of_the_week|Day of the week]]</li><li>2014-04-11 - Task: [[Digital_root/Multiplicative_digital_root|Digital root/Multiplicative digital root]]</li><li>2011-06-25 - Task: [[Dinesman%27s_multiple-dwelling_problem|Dinesman's multiple-dwelling problem]]</li><li>2010-02-24 - Task: [[Dot_product|Dot product]]</li><li>2012-07-01 - Task: [[Dutch_national_flag_problem|Dutch national flag problem]]</li><li>2017-08-07 - Task: [[Egyptian_division|Egyptian division]]</li><li>2009-07-23 - Task: [[Ethiopian_multiplication|Ethiopian multiplication]]</li><li>2015-04-14 - Task: [[Euler%27s_sum_of_powers_conjecture|Euler's sum of powers conjecture]]</li><li>2009-10-06 - Task: [[Evolutionary_algorithm|Evolutionary algorithm]]</li><li>2009-03-07 - Task: [[Exceptions/Catch_an_exception_thrown_in_a_nested_call|Exceptions/Catch an exception thrown in a nested call]]</li><li>2011-03-14 - Task: [[Executable_library|Executable library]]</li><li>2014-03-26 - Task: [[Extensible_prime_generator|Extensible prime generator]]</li><li>2010-07-15 - Task: [[Extreme_floating_point_values|Extreme floating point values]]</li><li>2012-05-24 - Task: [[Fibonacci_n-step_number_sequences|Fibonacci n-step number sequences]]</li><li>2010-03-23 - Task: [[Find_common_directory_path|Find common directory path]]</li><li>2009-02-24 - Task: [[First-class_functions|First-class functions]]</li><li>2009-08-05 - Task: [[First-class_functions/Use_numbers_analogously|First-class functions/Use numbers analogously]]</li><li>2009-08-16 - Task: [[Flatten_a_list|Flatten a list]]</li><li>2013-07-10 - Task: [[Flipping_bits_game|Flipping bits game]]</li><li>2012-06-24 - Task: [[Floyd%27s_triangle|Floyd's triangle]]</li><li>2009-03-03 - Task: [[Function_composition|Function composition]]</li><li>2015-08-12 - Draft: [[Functional_coverage_tree|Functional coverage tree]]</li><li>2010-10-29 - Task: [[Guess_the_number/With_feedback|Guess the number/With feedback]]</li><li>2010-10-29 - Task: [[Guess_the_number/With_feedback_(player)|Guess the number/With feedback (player)]]</li><li>2010-03-08 - Task: [[Hailstone_sequence|Hailstone sequence]]</li><li>2009-12-02 - Task: [[Hamming_numbers|Hamming numbers]]</li><li>2013-03-25 - Task: [[Harshad_or_Niven_series|Harshad or Niven series]]</li><li>2011-11-06 - Task: [[Hello_world/Newbie|Hello world/Newbie]]</li><li>2015-01-03 - Task: [[Heronian_triangles|Heronian triangles]]</li><li>2014-01-01 - Task: [[Hickerson_series_of_almost_integers|Hickerson series of almost integers]]</li><li>2010-03-09 - Task: [[Hofstadter-Conway_$10,000_sequence|Hofstadter-Conway $10,000 sequence]]</li><li>2011-10-22 - Task: [[Hofstadter_Figure-Figure_sequences|Hofstadter Figure-Figure sequences]]</li><li>2011-10-23 - Task: [[Hofstadter_Q_sequence|Hofstadter Q sequence]]</li><li>2010-03-31 - Task: [[Horner%27s_rule_for_polynomial_evaluation|Horner's rule for polynomial evaluation]]</li><li>2013-01-03 - Task: [[I_before_E_except_after_C|I before E except after C]]</li><li>2009-02-21 - Task: [[Interactive_programming|Interactive programming]]</li><li>2014-12-11 - Draft: [[Kahan_summation|Kahan summation]]</li><li>2011-06-07 - Task: [[Kaprekar_numbers|Kaprekar numbers]]</li><li>2008-12-02 - Task: [[Knapsack_problem/Unbounded|Knapsack problem/Unbounded]]</li><li>2011-10-21 - Task: [[Knuth%27s_algorithm_S|Knuth's algorithm S]]</li><li>2013-04-03 - Task: [[Largest_int_from_concatenated_ints|Largest int from concatenated ints]]</li><li>2009-02-01 - Task: [[Literals/Integer|Literals/Integer]]</li><li>2013-08-16 - Task: [[Longest_increasing_subsequence|Longest increasing subsequence]]</li><li>2009-04-04 - Task: [[Look-and-say_sequence|Look-and-say sequence]]</li><li>2014-03-15 - Task: [[Ludic_numbers|Ludic numbers]]</li><li>2010-03-02 - Task: [[Luhn_test_of_credit_card_numbers|Luhn test of credit card numbers]]</li><li>2015-08-29 - Task: [[Lychrel_numbers|Lychrel numbers]]</li><li>2009-06-03 - Task: [[Menu|Menu]]</li><li>2013-02-02 - Task: [[Middle_three_digits|Middle three digits]]</li><li>2010-07-10 - Task: [[Minesweeper_game|Minesweeper game]]</li><li>2008-08-05 - Task: [[Monty_Hall_problem|Monty Hall problem]]</li><li>2014-05-20 - Task: [[Move-to-front_algorithm|Move-to-front algorithm]]</li><li>2015-01-09 - Draft: [[Multi-dimensional_array|Multi-dimensional array]]</li><li>2012-11-13 - Task: [[Multifactorial|Multifactorial]]</li><li>2009-04-09 - Task: [[Mutual_recursion|Mutual recursion]]</li><li>2014-03-15 - Task: [[N%27th|N'th]]</li><li>2014-03-06 - Task: [[Narcissistic_decimal_number|Narcissistic decimal number]]</li><li>2011-04-23 - Task: [[Natural_sorting|Natural sorting]]</li><li>2009-01-31 - Task: [[Non-decimal_radices/Output|Non-decimal radices/Output]]</li><li>2014-04-04 - Task: [[Nonoblock|Nonoblock]]</li><li>2010-04-03 - Task: [[Number_reversal_game|Number reversal game]]</li><li>2011-07-30 - Task: [[Numeric_error_propagation|Numeric error propagation]]</li><li>2008-10-08 - Task: [[One-dimensional_cellular_automata|One-dimensional cellular automata]]</li><li>2011-09-07 - Task: [[One_of_n_lines_in_a_file|One of n lines in a file]]</li><li>2014-05-04 - Task: [[Order_disjoint_list_items|Order disjoint list items]]</li><li>2010-11-09 - Task: [[Ordered_words|Ordered words]]</li><li>2010-01-25 - Task: [[Pangram_checker|Pangram checker]]</li><li>2011-12-03 - Task: [[Parsing/RPN_calculator_algorithm|Parsing/RPN calculator algorithm]]</li><li>2011-12-03 - Task: [[Parsing/RPN_to_infix_conversion|Parsing/RPN to infix conversion]]</li><li>2011-12-02 - Task: [[Parsing/Shunting-yard_algorithm|Parsing/Shunting-yard algorithm]]</li><li>2011-03-25 - Task: [[Partial_function_application|Partial function application]]</li><li>2015-04-15 - Task: [[Pascal_matrix_generation|Pascal matrix generation]]</li><li>2014-09-27 - Task: [[Penney%27s_game|Penney's game]]</li><li>2013-08-07 - Task: [[Percolation/Bond_percolation|Percolation/Bond percolation]]</li><li>2013-08-10 - Task: [[Percolation/Mean_cluster_density|Percolation/Mean cluster density]]</li><li>2013-08-10 - Task: [[Percolation/Mean_run_density|Percolation/Mean run density]]</li><li>2013-08-09 - Task: [[Percolation/Site_percolation|Percolation/Site percolation]]</li><li>2011-05-14 - Task: [[Permutations/Derangements|Permutations/Derangements]]</li><li>2012-10-25 - Task: [[Permutations/Rank_of_a_permutation|Permutations/Rank of a permutation]]</li><li>2012-07-24 - Task: [[Permutations_by_swapping|Permutations by swapping]]</li><li>2014-11-13 - Task: [[Phrase_reversals|Phrase reversals]]</li><li>2012-09-12 - Task: [[Pig_the_dice_game|Pig the dice game]]</li><li>2012-09-14 - Task: [[Pig_the_dice_game/Player|Pig the dice game/Player]]</li><li>2008-11-17 - Task: [[Probabilistic_choice|Probabilistic choice]]</li><li>2014-12-16 - Draft: [[Proper_divisors|Proper divisors]]</li><li>2010-08-02 - Task: [[Quaternion_type|Quaternion type]]</li><li>2013-09-28 - Task: [[Quickselect_algorithm|Quickselect algorithm]]</li><li>2010-01-23 - Task: [[Random_number_generator_(included)|Random number generator (included)]]</li><li>2010-07-15 - Task: [[Range_expansion|Range expansion]]</li><li>2010-07-15 - Task: [[Range_extraction|Range extraction]]</li><li>2014-07-05 - Task: [[Ranking_methods|Ranking methods]]</li><li>2013-05-10 - Task: [[Rep-string|Rep-string]]</li><li>2015-05-01 - Task: [[Sailors,_coconuts_and_a_monkey_problem|Sailors, coconuts and a monkey problem]]</li><li>2009-07-01 - Task: [[Send_email|Send email]]</li><li>2008-08-24 - Task: [[Sequence_of_non-squares|Sequence of non-squares]]</li><li>2015-06-13 - Draft: [[Sequence_of_primorial_primes|Sequence of primorial primes]]</li><li>2012-05-07 - Task: [[Set_consolidation|Set consolidation]]</li><li>2009-08-08 - Task: [[Seven-sided_dice_from_five-sided_dice|Seven-sided dice from five-sided dice]]</li><li>2017-08-09 - Task: [[Shoelace_formula_for_polygonal_area|Shoelace formula for polygonal area]]</li><li>2010-07-24 - Task: [[Short-circuit_evaluation|Short-circuit evaluation]]</li><li>2014-10-04 - Task: [[Solve_the_no_connection_puzzle|Solve the no connection puzzle]]</li><li>2011-02-12 - Task: [[Sort_disjoint_sublist|Sort disjoint sublist]]</li><li>2009-06-06 - Task: [[Sort_stability|Sort stability]]</li><li>2013-06-17 - Task: [[Sparkline_in_unicode|Sparkline in unicode]]</li><li>2008-08-05 - Task: [[Spiral_matrix|Spiral matrix]]</li><li>2010-08-05 - Task: [[Stable_marriage_problem|Stable marriage problem]]</li><li>2014-12-07 - Task: [[Stern-Brocot_sequence|Stern-Brocot sequence]]</li><li>2010-01-30 - Task: [[String_interpolation_(included)|String interpolation (included)]]</li><li>2014-11-14 - Draft: [[Superpermutation_minimisation|Superpermutation minimisation]]</li><li>2009-05-28 - Task: [[Test_a_function|Test a function]]</li><li>2008-11-08 - Task: [[Text_processing/1|Text processing/1]]</li><li>2008-11-13 - Task: [[Text_processing/2|Text processing/2]]</li><li>2008-10-03 - Task: [[Text_processing/Max_licenses_in_use|Text processing/Max licenses in use]]</li><li>2011-02-04 - Task: [[Tic-tac-toe|Tic-tac-toe]]</li><li>2009-07-03 - Task: [[Topological_sort|Topological sort]]</li><li>2010-10-06 - Draft: [[Topological_sort/Extracted_top_item|Topological sort/Extracted top item]]</li><li>2012-11-22 - Task: [[Topswops|Topswops]]</li><li>2012-05-22 - Task: [[Trabb_Pardo%E2%80%93Knuth_algorithm|Trabb Pardo–Knuth algorithm]]</li><li>2010-09-08 - Task: [[Truncatable_primes|Truncatable primes]]</li><li>2011-10-31 - Task: [[Truth_table|Truth table]]</li><li>2011-02-22 - Task: [[Unbias_a_random_generator|Unbias a random generator]]</li><li>2011-07-01 - Task: [[Unicode_variable_names|Unicode variable names]]</li><li>2011-03-10 - Task: [[Van_der_Corput_sequence|Van der Corput sequence]]</li><li>2011-04-09 - Task: [[Vector_products|Vector products]]</li><li>2009-08-08 - Task: [[Verify_distribution_uniformity/Naive|Verify distribution uniformity/Naive]]</li><li>2008-08-20 - Task: [[Web_scraping|Web scraping]]</li><li>2009-02-28 - Task: [[Y_combinator|Y combinator]]</li><li>2011-04-02 - Task: [[Yin_and_yang|Yin and yang]]</li><li>2012-10-10 - Task: [[Zeckendorf_number_representation|Zeckendorf number representation]]</li><li>2013-10-13 - Task: [[Zhang-Suen_thinning_algorithm|Zhang-Suen thinning algorithm]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Paul|Paul]] [[Special:Contributions/Paul|?]]</ul></td><td><ul><ol><li>2015-05-27 - Draft: [[Linux_CPU_utilization|Linux CPU utilization]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Paul.chernoch|Paul.chernoch]] [[Special:Contributions/Paul.chernoch|?]]</ul></td><td><ul><ol><li>2016-02-25 - Draft: [[Cycle_detection|Cycle detection]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Paulo Jorente|Paulo Jorente]] [[Special:Contributions/Paulo Jorente|?]]</ul></td><td><ul><ol><li>2017-07-10 - Task: [[15_puzzle_solver|15 puzzle solver]]</li><li>2015-09-04 - Draft: [[Bacon_cipher|Bacon cipher]]</li><li>2017-07-05 - Draft: [[Black_Box|Black Box]]</li><li>2014-02-02 - Draft: [[Decimal_floating_point_number_to_binary|Decimal floating point number to binary]]</li><li>2016-04-13 - Draft: [[Greed|Greed]]</li><li>2015-06-05 - Draft: [[Hexapawn|Hexapawn]]</li><li>2016-06-25 - Draft: [[Markov_chain_text_generator|Markov chain text generator]]</li><li>2016-10-31 - Draft: [[Mastermind|Mastermind]]</li><li>2013-05-10 - Draft: [[Playfair_cipher|Playfair cipher]]</li><li>2016-04-14 - Draft: [[Robots|Robots]]</li><li>2016-04-09 - Task: [[Smith_numbers|Smith numbers]]</li><li>2016-12-02 - Draft: [[Snake_And_Ladder|Snake And Ladder]]</li><li>2015-12-01 - Draft: [[Tamagotchi_emulator|Tamagotchi emulator]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Pelci|Pelci]] [[Special:Contributions/Pelci|?]]</ul></td><td><ul><ol><li>2010-11-16 - Task: [[Combinations_with_repetitions|Combinations with repetitions]]</li><li>2010-02-14 - Task: [[Knapsack_problem/0-1|Knapsack problem/0-1]]</li><li>2010-02-14 - Task: [[Knapsack_problem/Bounded|Knapsack problem/Bounded]]</li><li>2010-02-24 - Task: [[Knapsack_problem/Continuous|Knapsack problem/Continuous]]</li><li>2010-10-02 - Task: [[Permutations|Permutations]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Pirho|Pirho]] [[Special:Contributions/Pirho|?]]</ul></td><td><ul><ol><li>2012-02-11 - Task: [[Gaussian_elimination|Gaussian elimination]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Pistacchio|Pistacchio]] [[Special:Contributions/Pistacchio|?]]</ul></td><td><ul><ol><li>2015-05-07 - Task: [[Hunt_The_Wumpus|Hunt The Wumpus]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Proton|Proton]] [[Special:Contributions/Proton|?]]</ul></td><td><ul><ol><li>2016-10-05 - Draft: [[External_sort|External sort]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Rainb|Rainb]] [[Special:Contributions/Rainb|?]]</ul></td><td><ul><ol><li>2013-08-26 - Draft: [[Base64_encode_data|Base64 encode data]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Ralph|Ralph]] [[Special:Contributions/Ralph|?]]</ul></td><td><ul><ol><li>2007-08-12 - Task: [[Sort_an_array_of_composite_structures|Sort an array of composite structures]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:RasF|RasF]] [[Special:Contributions/RasF|?]]</ul></td><td><ul><ol><li>2010-08-11 - Task: [[Problem_of_Apollonius|Problem of Apollonius]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Raslbg|Raslbg]] [[Special:Contributions/Raslbg|?]]</ul></td><td><ul><ol><li>2017-05-29 - Draft: [[Data_Encryption_Standard|Data Encryption Standard]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Razerwolf|Razerwolf]] [[Special:Contributions/Razerwolf|?]]</ul></td><td><ul><ol><li>2013-06-10 - Draft: [[Bilinear_interpolation|Bilinear interpolation]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Rdm|Rdm]] [[Special:Contributions/Rdm|?]]</ul></td><td><ul><ol><li>2016-02-06 - Task: [[15_Puzzle_Game|15 Puzzle Game]]</li><li>2015-06-01 - Draft: [[Convex_hull|Convex hull]]</li><li>2011-10-25 - Draft: [[OpenGL_Pixel_Shader|OpenGL Pixel Shader]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Rob.s.brit|Rob.s.brit]] [[Special:Contributions/Rob.s.brit|?]]</ul></td><td><ul><ol><li>2010-04-27 - Task: [[Brownian_tree|Brownian tree]]</li><li>2009-12-15 - Task: [[Execute_a_Markov_algorithm|Execute a Markov algorithm]]</li><li>2010-05-04 - Task: [[Fractal_tree|Fractal tree]]</li><li>2009-06-29 - Task: [[Multiple_regression|Multiple regression]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Roger Hui|Roger Hui]] [[Special:Contributions/Roger Hui|?]]</ul></td><td><ul><ol><li>2007-12-11 - Task: [[Averages/Arithmetic_mean|Averages/Arithmetic mean]]</li><li>2007-12-08 - Task: [[Combinations|Combinations]]</li><li>2007-12-08 - Task: [[Multiplicative_order|Multiplicative order]]</li><li>2007-12-13 - Task: [[Roots_of_unity|Roots of unity]]</li><li>2007-12-11 - Task: [[Sum_of_squares|Sum of squares]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Roland Illig|Roland Illig]] [[Special:Contributions/Roland Illig|?]]</ul></td><td><ul><ol><li>2016-09-17 - Task: [[Nested_function|Nested function]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Sanaris|Sanaris]] [[Special:Contributions/Sanaris|?]]</ul></td><td><ul><ol><li>2014-04-15 - Draft: [[N-body_problem|N-body problem]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Sceiler|Sceiler]] [[Special:Contributions/Sceiler|?]]</ul></td><td><ul><ol><li>2015-05-04 - Draft: [[Extract_file_extension|Extract file extension]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Senyotzyabin|Senyotzyabin]] [[Special:Contributions/Senyotzyabin|?]]</ul></td><td><ul><ol><li>2013-05-14 - Task: [[Sum_multiples_of_3_and_5|Sum multiples of 3 and 5]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Sgeier|Sgeier]] [[Special:Contributions/Sgeier|?]]</ul></td><td><ul><ol><li>2007-02-03 - Task: [[Hostname|Hostname]]</li><li>2007-03-15 - Task: [[Introspection|Introspection]]</li><li>2007-02-20 - Task: [[Simple_windowed_application|Simple windowed application]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Shedai|Shedai]] [[Special:Contributions/Shedai|?]]</ul></td><td><ul><ol><li>2014-03-23 - Draft: [[Most_frequent_k_chars_distance|Most frequent k chars distance]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:ShinTakezou|ShinTakezou]] [[Special:Contributions/ShinTakezou|?]]</ul></td><td><ul><ol><li>2009-04-14 - Task: [[Binary_strings|Binary strings]]</li><li>2009-02-18 - Task: [[Bitmap/Flood_fill|Bitmap/Flood fill]]</li><li>2008-12-11 - Task: [[Bitmap/Read_an_image_through_a_pipe|Bitmap/Read an image through a pipe]]</li><li>2008-12-19 - Task: [[Bitwise_IO|Bitwise IO]]</li><li>2009-03-06 - Task: [[Call_a_function_in_a_shared_library|Call a function in a shared library]]</li><li>2009-05-06 - Task: [[Closest-pair_problem|Closest-pair problem]]</li><li>2010-07-12 - Task: [[Forest_fire|Forest fire]]</li><li>2010-06-15 - Task: [[Four_bit_adder|Four bit adder]]</li><li>2009-03-05 - Task: [[Gamma_function|Gamma function]]</li><li>2009-04-29 - Task: [[Miller%E2%80%93Rabin_primality_test|Miller–Rabin primality test]]</li><li>2009-07-31 - Task: [[Nth_root|Nth root]]</li><li>2008-12-05 - Task: [[Palindrome_detection|Palindrome detection]]</li><li>2009-06-17 - Task: [[Polynomial_long_division|Polynomial long division]]</li><li>2009-05-23 - Task: [[Ray-casting_algorithm|Ray-casting algorithm]]</li><li>2009-05-19 - Task: [[Sorting_algorithms/Counting_sort|Sorting algorithms/Counting sort]]</li><li>2009-04-27 - Task: [[Sorting_algorithms/Gnome_sort|Sorting algorithms/Gnome sort]]</li><li>2009-03-06 - Task: [[Xiaolin_Wu%27s_line_algorithm|Xiaolin Wu's line algorithm]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Short Circuit|Short Circuit]] [[Special:Contributions/Short Circuit|?]]</ul></td><td><ul><ol><li>2007-01-25 - Task: [[Conditional_structures|Conditional structures]]</li><li>2010-12-23 - Task: [[Count_in_factors|Count in factors]]</li><li>2007-01-18 - Task: [[Empty_program|Empty program]]</li><li>2007-01-25 - Task: [[Exceptions|Exceptions]]</li><li>2007-02-01 - Task: [[Execute_a_system_command|Execute a system command]]</li><li>2007-11-28 - Task: [[Execute_Brain****|Execute Brain****]]</li><li>2007-01-09 - Task: [[File_input/output|File input/output]]</li><li>2009-12-24 - Task: [[Find_the_missing_permutation|Find the missing permutation]]</li><li>2007-01-25 - Task: [[Flow-control_structures|Flow-control structures]]</li><li>2008-06-01 - Task: [[Greatest_element_of_a_list|Greatest element of a list]]</li><li>2007-01-09 - Task: [[Hello_world/Text|Hello world/Text]]</li><li>2011-02-13 - Task: [[Integer_sequence|Integer sequence]]</li><li>2007-11-26 - Task: [[JSON|JSON]]</li><li>2009-02-25 - Task: [[Long_multiplication|Long multiplication]]</li><li>2010-11-25 - Task: [[Map_range|Map range]]</li><li>2011-08-15 - Task: [[Old_lady_swallowed_a_fly|Old lady swallowed a fly]]</li><li>2011-09-25 - Task: [[Parse_an_IP_Address|Parse an IP Address]]</li><li>2009-12-05 - Task: [[Rate_counter|Rate counter]]</li><li>2008-09-11 - Task: [[RCRPG|RCRPG]]</li><li>2010-02-15 - Draft: [[Remote_agent/Agent_interface|Remote agent/Agent interface]]</li><li>2010-02-15 - Draft: [[Remote_agent/Agent_logic|Remote agent/Agent logic]]</li><li>2010-02-15 - Draft: [[Remote_agent/Simulation|Remote agent/Simulation]]</li><li>2011-07-04 - Task: [[Rock-paper-scissors|Rock-paper-scissors]]</li><li>2008-02-22 - Task: [[Roots_of_a_function|Roots of a function]]</li><li>2012-09-02 - Draft: [[Rosetta_Code/List_authors_of_task_descriptions|Rosetta Code/List authors of task descriptions]]</li><li>2008-02-05 - Task: [[Singleton|Singleton]]</li><li>2007-03-19 - Task: [[Singly-linked_list/Element_definition|Singly-linked list/Element definition]]</li><li>2007-03-20 - Task: [[Singly-linked_list/Element_insertion|Singly-linked list/Element insertion]]</li><li>2008-02-22 - Task: [[Sum_of_a_series|Sum of a series]]</li><li>2009-12-02 - Task: [[Symmetric_difference|Symmetric difference]]</li><li>2007-01-14 - Draft: [[Table_creation|Table creation]]</li><li>2009-11-28 - Task: [[Undefined_values|Undefined values]]</li><li>2007-01-28 - Task: [[Walk_a_directory/Recursively|Walk a directory/Recursively]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Simplex|Simplex]] [[Special:Contributions/Simplex|?]]</ul></td><td><ul><ol><li>2017-05-22 - Task: [[Department_Numbers|Department Numbers]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Siskus|Siskus]] [[Special:Contributions/Siskus|?]]</ul></td><td><ul><ol><li>2014-08-20 - Draft: [[Assertions_in_design_by_contract|Assertions in design by contract]]</li><li>2014-06-09 - Draft: [[Separate_the_house_number_from_the_street_name|Separate the house number from the street name]]</li><li>2014-07-27 - Draft: [[Starting_a_web_browser|Starting a web browser]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Sluggo|Sluggo]] [[Special:Contributions/Sluggo|?]]</ul></td><td><ul><ol><li>2010-02-21 - Task: [[Deconvolution/1D|Deconvolution/1D]]</li><li>2010-02-23 - Task: [[Deconvolution/2D%2B|Deconvolution/2D+]]</li><li>2011-02-01 - Task: [[Permutation_test|Permutation test]]</li><li>2012-01-01 - Draft: [[Subset_sum_problem|Subset sum problem]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Smarmius|Smarmius]] [[Special:Contributions/Smarmius|?]]</ul></td><td><ul><ol><li>2011-07-19 - Task: [[Voronoi_diagram|Voronoi diagram]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Smls|Smls]] [[Special:Contributions/Smls|?]]</ul></td><td><ul><ol><li>2014-01-25 - Task: [[Brace_expansion|Brace expansion]]</li><li>2014-06-26 - Task: [[Compare_a_list_of_strings|Compare a list of strings]]</li><li>2015-06-06 - Task: [[Convert_seconds_to_compound_duration|Convert seconds to compound duration]]</li><li>2014-06-24 - Task: [[Tokenize_a_string_with_escaping|Tokenize a string with escaping]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Sonia|Sonia]] [[Special:Contributions/Sonia|?]]</ul></td><td><ul><ol><li>2014-01-02 - Draft: [[Currency|Currency]]</li><li>2011-06-30 - Task: [[Hello_world/Web_server|Hello world/Web server]]</li><li>2012-03-06 - Task: [[K-d_tree|K-d tree]]</li><li>2011-06-16 - Task: [[Sorting_algorithms/Sleep_sort|Sorting algorithms/Sleep sort]]</li><li>2012-03-27 - Task: [[Word_wrap|Word wrap]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Sothach|Sothach]] [[Special:Contributions/Sothach|?]]</ul></td><td><ul><ol><li>2015-03-19 - Draft: [[Longest_common_prefix|Longest common prefix]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Spekkio|Spekkio]] [[Special:Contributions/Spekkio|?]]</ul></td><td><ul><ol><li>2011-11-29 - Task: [[CRC-32|CRC-32]]</li><li>2011-11-25 - Task: [[Munching_squares|Munching squares]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Spintronic|Spintronic]] [[Special:Contributions/Spintronic|?]]</ul></td><td><ul><ol><li>2014-11-03 - Draft: [[XML_Validation|XML Validation]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Spoon!|Spoon!]] [[Special:Contributions/Spoon!|?]]</ul></td><td><ul><ol><li>2009-08-03 - Task: [[Associative_array/Iteration|Associative array/Iteration]]</li><li>2008-11-17 - Task: [[Character_codes|Character codes]]</li><li>2011-07-20 - Task: [[Closures/Value_capture|Closures/Value capture]]</li><li>2011-06-16 - Task: [[Count_occurrences_of_a_substring|Count occurrences of a substring]]</li><li>2008-12-23 - Task: [[Environment_variables|Environment variables]]</li><li>2013-08-21 - Draft: [[Sorting_algorithms/Patience_sort|Sorting algorithms/Patience sort]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Star651|Star651]] [[Special:Contributions/Star651|?]]</ul></td><td><ul><ol><li>2011-07-26 - Draft: [[Audio_Overlap_Loop|Audio Overlap Loop]]</li><li>2011-07-21 - Draft: [[AudioAlarm|AudioAlarm]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Stone|Stone]] [[Special:Contributions/Stone|?]]</ul></td><td><ul><ol><li>2007-02-02 - Task: [[Tokenize_a_string|Tokenize a string]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Sxpert|Sxpert]] [[Special:Contributions/Sxpert|?]]</ul></td><td><ul><ol><li>2012-07-09 - Draft: [[OpenWebNet_Password|OpenWebNet Password]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:TBH|TBH]] [[Special:Contributions/TBH|?]]</ul></td><td><ul><ol><li>2007-12-14 - Task: [[Forward_difference|Forward difference]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:TheWombat|TheWombat]] [[Special:Contributions/TheWombat|?]]</ul></td><td><ul><ol><li>2015-02-23 - Task: [[Validate_International_Securities_Identification_Number|Validate International Securities Identification Number]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Thundergnat|Thundergnat]] [[Special:Contributions/Thundergnat|?]]</ul></td><td><ul><ol><li>2013-05-03 - Task: [[Benford%27s_law|Benford's law]]</li><li>2017-09-27 - Draft: [[Four_is_magic|Four is magic]]</li><li>2017-02-12 - Draft: [[Imaginary_base_numbers|Imaginary base numbers]]</li><li>2017-09-01 - Draft: [[Largest_number_divisible_by_its_digits|Largest number divisible by its digits]]</li><li>2016-02-22 - Task: [[Pathological_floating_point_problems|Pathological floating point problems]]</li><li>2011-08-21 - Task: [[Self-referential_sequence|Self-referential sequence]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Til|Til]] [[Special:Contributions/Til|?]]</ul></td><td><ul><ol><li>2007-01-24 - Task: [[Regular_expressions|Regular expressions]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:TimSC|TimSC]] [[Special:Contributions/TimSC|?]]</ul></td><td><ul><ol><li>2016-12-18 - Draft: [[A*_search_algorithm|A* search algorithm]]</li><li>2016-12-16 - Task: [[Angle_difference_between_two_bearings|Angle difference between two bearings]]</li><li>2016-12-16 - Task: [[Apply_a_digital_filter_(direct_form_II_transposed)|Apply a digital filter (direct form II transposed)]]</li><li>2016-12-16 - Draft: [[Determine_if_two_triangles_overlap|Determine if two triangles overlap]]</li><li>2016-12-15 - Draft: [[Eertree|Eertree]]</li><li>2016-12-16 - Task: [[Find_the_intersection_of_a_line_with_a_plane|Find the intersection of a line with a plane]]</li><li>2016-12-16 - Task: [[Find_the_intersection_of_two_lines|Find the intersection of two lines]]</li><li>2016-12-16 - Task: [[Negative_base_numbers|Negative base numbers]]</li><li>2016-12-16 - Task: [[Ramer-Douglas-Peucker_line_simplification|Ramer-Douglas-Peucker line simplification]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:TimToady|TimToady]] [[Special:Contributions/TimToady|?]]</ul></td><td><ul><ol><li>2012-08-14 - Task: [[Same_Fringe|Same Fringe]]</li><li>2012-09-20 - Task: [[Twelve_statements|Twelve statements]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Tinku99|Tinku99]] [[Special:Contributions/Tinku99|?]]</ul></td><td><ul><ol><li>2009-05-27 - Task: [[Color_of_a_screen_pixel|Color of a screen pixel]]</li><li>2009-06-02 - Task: [[Dynamic_variable_names|Dynamic variable names]]</li><li>2010-04-20 - Task: [[Inverted_index|Inverted index]]</li><li>2009-05-27 - Task: [[Keyboard_macros|Keyboard macros]]</li><li>2009-05-27 - Task: [[Mouse_position|Mouse position]]</li><li>2011-07-24 - Task: [[OLE_Automation|OLE Automation]]</li><li>2010-06-12 - Draft: [[Parse_EBNF|Parse EBNF]]</li><li>2009-06-02 - Task: [[Simulate_input/Keyboard|Simulate input/Keyboard]]</li><li>2009-05-26 - Task: [[Simulate_input/Mouse|Simulate input/Mouse]]</li><li>2009-05-27 - Task: [[Window_management|Window management]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:TobyK|TobyK]] [[Special:Contributions/TobyK|?]]</ul></td><td><ul><ol><li>2012-11-08 - Task: [[Check_Machin-like_formulas|Check Machin-like formulas]]</li><li>2015-05-18 - Draft: [[Chess_player/Move_generation|Chess player/Move generation]]</li><li>2015-05-18 - Draft: [[Chess_player/Program_options_and_user_interface|Chess player/Program options and user interface]]</li><li>2015-05-18 - Draft: [[Chess_player/Search_and_evaluation|Chess player/Search and evaluation]]</li><li>2013-04-10 - Draft: [[Find_duplicate_files|Find duplicate files]]</li><li>2016-04-24 - Task: [[Password_generator|Password generator]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Toucanbird|Toucanbird]] [[Special:Contributions/Toucanbird|?]]</ul></td><td><ul><ol><li>2017-02-11 - Task: [[CUSIP|CUSIP]]</li><li>2013-03-31 - Task: [[IBAN|IBAN]]</li><li>2013-03-17 - Draft: [[NYSIIS|NYSIIS]]</li><li>2014-09-21 - Draft: [[Time-based_One-time_Password_Algorithm|Time-based One-time Password Algorithm]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Trizen|Trizen]] [[Special:Contributions/Trizen|?]]</ul></td><td><ul><ol><li>2016-01-23 - Draft: [[Arithmetic_coding/As_a_generalized_change_of_radix|Arithmetic coding/As a generalized change of radix]]</li><li>2016-01-28 - Task: [[Cramer%27s_rule|Cramer's rule]]</li><li>2016-01-10 - Draft: [[Faulhaber%27s_formula|Faulhaber's formula]]</li><li>2017-06-05 - Draft: [[Faulhaber%27s_triangle|Faulhaber's triangle]]</li><li>2016-02-01 - Task: [[Jaro_distance|Jaro distance]]</li><li>2016-03-30 - Draft: [[Snake|Snake]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Ttmrichter|Ttmrichter]] [[Special:Contributions/Ttmrichter|?]]</ul></td><td><ul><ol><li>2013-02-04 - Task: [[Universal_Turing_machine|Universal Turing machine]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Umariani|Umariani]] [[Special:Contributions/Umariani|?]]</ul></td><td><ul><ol><li>2016-07-07 - Task: [[Sort_a_list_of_object_identifiers|Sort a list of object identifiers]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Underscore|Underscore]] [[Special:Contributions/Underscore|?]]</ul></td><td><ul><ol><li>2009-11-27 - Task: [[Go_Fish|Go Fish]]</li><li>2010-11-14 - Task: [[Metaprogramming|Metaprogramming]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Vcelier|Vcelier]] [[Special:Contributions/Vcelier|?]]</ul></td><td><ul><ol><li>2007-01-21 - Task: [[Sorting_algorithms/Bubble_sort|Sorting algorithms/Bubble sort]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Vilipetek|Vilipetek]] [[Special:Contributions/Vilipetek|?]]</ul></td><td><ul><ol><li>2013-06-20 - Task: [[CSV_data_manipulation|CSV data manipulation]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Waldorf|Waldorf]] [[Special:Contributions/Waldorf|?]]</ul></td><td><ul><ol><li>2007-02-27 - Task: [[Address_of_a_variable|Address of a variable]]</li><li>2007-02-06 - Task: [[Concurrent_computing|Concurrent computing]]</li><li>2007-02-27 - Task: [[Define_a_primitive_data_type|Define a primitive data type]]</li><li>2007-09-07 - Task: [[Generic_swap|Generic swap]]</li><li>2008-12-23 - Task: [[Handle_a_signal|Handle a signal]]</li><li>2007-02-27 - Task: [[Memory_layout_of_a_data_structure|Memory layout of a data structure]]</li><li>2007-02-09 - Task: [[Metered_concurrency|Metered concurrency]]</li><li>2007-03-09 - Task: [[Object_serialization|Object serialization]]</li><li>2008-04-27 - Task: [[Playing_cards|Playing cards]]</li><li>2008-04-01 - Task: [[Roman_numerals/Encode|Roman numerals/Encode]]</li><li>2007-02-09 - Task: [[Synchronous_concurrency|Synchronous concurrency]]</li><li>2007-02-27 - Task: [[Variable_size/Get|Variable size/Get]]</li><li>2007-02-27 - Task: [[Variable_size/Set|Variable size/Set]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Walterpachl|Walterpachl]] [[Special:Contributions/Walterpachl|?]]</ul></td><td><ul><ol><li>2015-04-27 - Draft: [[Selective_File_Copy|Selective File Copy]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Wei2912|Wei2912]] [[Special:Contributions/Wei2912|?]]</ul></td><td><ul><ol><li>2015-03-08 - Task: [[General_FizzBuzz|General FizzBuzz]]</li><li>2014-06-05 - Task: [[Unix/ls|Unix/ls]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:WillNess|WillNess]] [[Special:Contributions/WillNess|?]]</ul></td><td><ul><ol><li>2014-09-13 - Task: [[Sequence_of_primes_by_Trial_Division|Sequence of primes by Trial Division]]</li><li>2011-12-02 - Task: [[Zebra_puzzle|Zebra puzzle]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Wmeyer|Wmeyer]] [[Special:Contributions/Wmeyer|?]]</ul></td><td><ul><ol><li>2010-01-25 - Task: [[Compile-time_calculation|Compile-time calculation]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Wolfram|Wolfram]] [[Special:Contributions/Wolfram|?]]</ul></td><td><ul><ol><li>2011-02-08 - Task: [[Fast_Fourier_transform|Fast Fourier transform]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Wsg|Wsg]] [[Special:Contributions/Wsg|?]]</ul></td><td><ul><ol><li>2014-02-20 - Task: [[Semiprime|Semiprime]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Xenoker|Xenoker]] [[Special:Contributions/Xenoker|?]]</ul></td><td><ul><ol><li>2012-03-15 - Task: [[Runge-Kutta_method|Runge-Kutta method]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Xkrouhn|Xkrouhn]] [[Special:Contributions/Xkrouhn|?]]</ul></td><td><ul><ol><li>2011-06-11 - Task: [[Convert_decimal_number_to_rational|Convert decimal number to rational]]</li><li>2011-05-08 - Task: [[Self-describing_numbers|Self-describing numbers]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Yuriy Chumak|Yuriy Chumak]] [[Special:Contributions/Yuriy Chumak|?]]</ul></td><td><ul><ol><li>2016-01-12 - Draft: [[OpenGL/Utah_Teapot|OpenGL/Utah Teapot]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Zelah|Zelah]] [[Special:Contributions/Zelah|?]]</ul></td><td><ul><ol><li>2016-05-10 - Draft: [[Integer_roots|Integer roots]]</li><li>2014-05-02 - Draft: [[Self-hosting_compiler|Self-hosting compiler]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Zorro1024|Zorro1024]] [[Special:Contributions/Zorro1024|?]]</ul></td><td><ul><ol><li>2015-04-16 - Task: [[Perfect_shuffle|Perfect shuffle]]</li><li>2015-03-21 - Draft: [[Vector|Vector]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Zzo38|Zzo38]] [[Special:Contributions/Zzo38|?]]</ul></td><td><ul><ol><li>2015-09-20 - Task: [[Thue-Morse|Thue-Morse]]</li></ol></ul></td></tr> |
|||
<tr><td><ul>[[User:Русский|Русский]] [[Special:Contributions/Русский|?]]</ul></td><td><ul><ol><li>2012-08-31 - Task: [[Main_step_of_GOST_28147-89|Main step of GOST 28147-89]]</li><li>2013-01-09 - Draft: [[Old_Russian_measure_of_length|Old Russian measure of length]]</li><li>2013-05-24 - Draft: [[Transportation_problem|Transportation problem]]</li></ol></ul></td></tr> |
|||
</table> |
|||
</div> |
|||
import ( |
|||
=={{header|Perl 6}}== |
|||
"fmt" |
|||
{{works with|Rakudo|2017.11}} |
|||
"io/ioutil" |
|||
"net/http" |
|||
"regexp" |
|||
"sort" |
|||
"strings" |
|||
) |
|||
type authorNumber struct { |
|||
The pseudocode above is no longer really useful as the page format has changed significantly sine 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.) |
|||
author string |
|||
number int |
|||
} |
|||
func main() { |
|||
ex1 := `<li><a href="/wiki/(.*?)"` |
|||
ex2 := `a href="/(wiki/User:|mw/index\.php\?title=User:|wiki/Special:Contributions/)([^"&]+)` |
|||
re1 := regexp.MustCompile(ex1) |
|||
re2 := regexp.MustCompile(ex2) |
|||
url1 := "http://rosettacode.org/wiki/Category:Programming_Tasks" |
|||
url2 := "http://rosettacode.org/wiki/Category:Draft_Programming_Tasks" |
|||
urls := []string{url1, url2} |
|||
var tasks []string |
|||
for _, url := range urls { |
|||
resp, _ := http.Get(url) |
|||
body, _ := ioutil.ReadAll(resp.Body) |
|||
// find all tasks |
|||
matches := re1.FindAllStringSubmatch(string(body), -1) |
|||
resp.Body.Close() |
|||
for _, match := range matches { |
|||
// exclude any 'category' references |
|||
if !strings.HasPrefix(match[1], "Category:") { |
|||
tasks = append(tasks, match[1]) |
|||
} |
|||
} |
|||
} |
|||
authors := make(map[string]int) |
|||
for _, task := range tasks { |
|||
// check the last or only history page for each task |
|||
page := fmt.Sprintf("http://rosettacode.org/mw/index.php?title=%s&dir=prev&action=history", task) |
|||
resp, _ := http.Get(page) |
|||
body, _ := ioutil.ReadAll(resp.Body) |
|||
// find all the users in that page |
|||
matches := re2.FindAllStringSubmatch(string(body), -1) |
|||
resp.Body.Close() |
|||
// the task author should be the final user on that page |
|||
author := matches[len(matches)-1][2] |
|||
author = strings.ReplaceAll(author, "_", " ") |
|||
// add this task to the author's count |
|||
authors[author]++ |
|||
} |
|||
// sort the authors in descending order by number of tasks created |
|||
authorNumbers := make([]authorNumber, 0, len(authors)) |
|||
for k, v := range authors { |
|||
authorNumbers = append(authorNumbers, authorNumber{k, v}) |
|||
} |
|||
sort.Slice(authorNumbers, func(i, j int) bool { |
|||
return authorNumbers[i].number > authorNumbers[j].number |
|||
}) |
|||
// print the top twenty say |
|||
fmt.Println("Total tasks :", len(tasks)) |
|||
fmt.Println("Total authors :", len(authors)) |
|||
fmt.Println("\nThe top 20 authors by number of tasks created are:\n") |
|||
fmt.Println("Pos Tasks Author") |
|||
fmt.Println("=== ===== ======") |
|||
lastNumber, lastIndex := 0, -1 |
|||
for i, authorNumber := range authorNumbers[0:20] { |
|||
j := i |
|||
if authorNumber.number == lastNumber { |
|||
j = lastIndex |
|||
} else { |
|||
lastIndex = i |
|||
lastNumber = authorNumber.number |
|||
} |
|||
fmt.Printf("%2d: %3d %s\n", j+1, authorNumber.number, authorNumber.author) |
|||
} |
|||
}</syntaxhighlight> |
|||
{{out}} |
|||
As of 5th March 2020: |
|||
<pre> |
|||
Total tasks : 1237 |
|||
Total authors : 287 |
|||
The top 20 authors by number of tasks created are: |
|||
Pos Tasks Author |
|||
=== ===== ====== |
|||
1: 178 Paddy3118 |
|||
2: 71 Markhobley |
|||
3: 61 Gerard Schildberger |
|||
4: 55 Mwn3d |
|||
5: 39 NevilleDNZ |
|||
6: 33 Short Circuit |
|||
7: 30 Nigel Galloway |
|||
8: 29 Thundergnat |
|||
9: 23 Grondilu |
|||
10: 21 Dkf |
|||
11: 20 Fwend |
|||
11: 20 Blue Prawn |
|||
13: 19 CalmoSoft |
|||
14: 18 Kernigh |
|||
15: 17 ShinTakezou |
|||
15: 17 Dmitry-kazakov |
|||
15: 17 Ledrug |
|||
18: 13 Abu |
|||
18: 13 Paulo Jorente |
|||
18: 13 Waldorf |
|||
</pre> |
|||
=={{header|Julia}}== |
|||
<syntaxhighlight lang="julia">""" Rosetta code task rosettacode.org/wiki/Rosetta_Code/List_authors_of_task_descriptions """ |
|||
using Dates |
|||
using DataFrames |
|||
using EzXML |
|||
using HTTP |
|||
using JSON3 |
|||
""" Get Rosetta Code authors of tasks, output as dataframe """ |
|||
function rosetta_code_authors(verbose = false) |
|||
URL = "https://rosettacode.org/w/api.php?" |
|||
PARAMS = ["action" => "query", "format" => "json", "formatversion" => "2", "generator" => "categorymembers", |
|||
"gcmtitle" => "Category:Programming_Tasks", "gcmlimit" => "500", "rawcontinue" => "", "prop" => "title"] |
|||
DRAFTPARAMS = ["action" => "query", "format" => "json", "formatversion" => "2", "generator" => "categorymembers", |
|||
"gcmtitle" => "Category:Draft_Programming_Tasks", "gcmlimit" => "500", "rawcontinue" => "", "prop" => "title"] |
|||
titles = Pair{String, Bool}[] |
|||
dateformat = DateFormat("HH:SS, d U y") |
|||
df = empty!(DataFrame([[""], [""], [now()], [true]], ["Author", "Title", "CreationDate", "IsDraftTask"])) |
|||
for param in [PARAMS, DRAFTPARAMS] # get the titles of the tasks and draft tasks, store list in alltasks |
|||
continueposition = "" |
|||
queryparams = copy(param) |
|||
isdraft = param == DRAFTPARAMS |
|||
while true |
|||
resp = HTTP.get(URL * join(map(p -> p[1] * (p[2] == "" ? "" : ("=" * p[2])), queryparams), "&")) |
|||
json = JSON3.read(String(resp.body)) |
|||
pages = json.query.pages |
|||
for p in pages |
|||
push!(titles, p.title => isdraft) |
|||
end |
|||
!haskey(json, "query-continue") && break # break if no more pages, else continue to next pages |
|||
queryparams = vcat(param, "gcmcontinue" => json["query-continue"]["categorymembers"]["gcmcontinue"]) |
|||
end |
|||
end |
|||
for (i, title) in pairs(titles) # Get author of first revision of each page, assumed to be task creator/author |
|||
resp = HTTP.get("https://rosettacode.org/w/index.php?title=" * escape(title[1]) * "&dir=prev&action=history") |
|||
html = root(parsehtml(String(resp.body))) |
|||
xpath = "//span[@class=\"history-user\"]/a" |
|||
header = findlast(xpath, html) |
|||
author = header != nothing ? nodecontent(header) : "" |
|||
xpath2 = "//a[@class=\"mw-changeslist-date\"]" |
|||
header2 = findlast(xpath2, html) |
|||
creationdate = header2 != nothing ? DateTime(nodecontent(header2), dateformat) : missing |
|||
if author != "" |
|||
author = replace(author, r".+>" => "") # clean up from the hosting change |
|||
push!(df, [author, title[1], creationdate, title[2]]) |
|||
verbose && println("Processed author $author of $title created $creationdate: page $i of ", length(titles)) |
|||
end |
|||
end |
|||
sort!(df, :CreationDate, rev = true) |
|||
authorfreqs = sort!(combine(groupby(df, :Author), nrow => :Freq), :Freq, rev = true) |
|||
return df, authorfreqs |
|||
end |
|||
rosetta_code_authors() |
|||
</syntaxhighlight>{{out}} |
|||
<pre> |
|||
(1569×4 DataFrame |
|||
Row │ Author Title CreationDate IsDraftTask |
|||
│ String String DateTime Bool |
|||
──────┼─────────────────────────────────────────────────────────────────────────────────── |
|||
1 │ Markjreed Sieve of Pritchard 2022-08-25T19:00:09 false |
|||
2 │ Thundergnat Penta-power prime seeds 2022-08-19T20:00:59 true |
|||
3 │ Thundergnat Quad-power prime seeds 2022-08-19T20:00:23 true |
|||
4 │ Thundergnat Riordan numbers 2022-08-18T18:00:20 true |
|||
5 │ Thundergnat Pairs with common factors 2022-08-18T12:00:07 true |
|||
6 │ Thundergnat Klarner-Rado sequence 2022-08-17T22:00:36 true |
|||
⋮ │ ⋮ ⋮ ⋮ ⋮ |
|||
1564 │ Created by: X Determine if a string is numeric 2007-01-21T19:00:47 false |
|||
1565 │ MikeMol Empty program 2007-01-18T15:00:11 false |
|||
1566 │ 207.74.29.206 Window creation 2007-01-15T19:00:41 false |
|||
1567 │ MikeMol Table creation 2007-01-14T20:00:07 true |
|||
1568 │ MikeMol Hello world/Text 2007-01-09T16:00:45 false |
|||
1569 │ MikeMol File input/output 2007-01-09T14:00:45 false |
|||
1557 rows omitted, |
|||
315×2 DataFrame |
|||
Row │ Author Freq |
|||
│ String Int64 |
|||
─────┼──────────────────────────── |
|||
1 │ Paddy3118 199 |
|||
2 │ CalmoSoft 135 |
|||
3 │ Thundergnat 74 |
|||
4 │ Markhobley 71 |
|||
5 │ Gerard Schildberger 66 |
|||
6 │ Mwn3d 55 |
|||
⋮ │ ⋮ ⋮ |
|||
310 │ Til 1 |
|||
311 │ Backupbrain 1 |
|||
312 │ Fabian 1 |
|||
313 │ Vcelier 1 |
|||
314 │ Created by: X 1 |
|||
315 │ 207.74.29.206 1 |
|||
303 rows omitted) |
|||
</pre> |
|||
=={{header|Nim}}== |
|||
{{trans|Go}} |
|||
<syntaxhighlight lang="nim">import algorithm, httpclient, re, strutils, tables |
|||
let |
|||
re1 = re("""<li><a href="/wiki/(.*?)"""") |
|||
re2 = re("""a href="/wiki/User:|mw/index\.php\?title=User:|wiki/Special:Contributions/([^"&]+)""") |
|||
const |
|||
Url1 = "http://rosettacode.org/wiki/Category:Programming_Tasks" |
|||
Url2 = "http://rosettacode.org/wiki/Category:Draft_Programming_Tasks" |
|||
Urls = [Url1, Url2] |
|||
var client = newHttpClient() |
|||
var tasks: seq[string] |
|||
var matches: array[1, string] |
|||
var start = 0 |
|||
for url in Urls: |
|||
let body = client.getContent(url) |
|||
# Find all tasks. |
|||
while true: |
|||
start = body.find(re1, matches, start) + 1 |
|||
if start == 0: break |
|||
if not matches[0].startsWith("Category:"): |
|||
tasks.add matches[0] |
|||
var authors: CountTable[string] |
|||
for task in tasks: |
|||
# Check the last or only history page for each task. |
|||
let page = "http://rosettacode.org/mw/index.php?title=$#&dir=prev&action=history".format(task) |
|||
let body = client.getContent(page) |
|||
# Find all the users in that page. The task author should be the final user on that page. |
|||
var matches: array[1, string] |
|||
start = 0 |
|||
while true: |
|||
start = body.find(re2, matches, start) + 1 |
|||
if start == 0: break |
|||
let author = matches[0].replace('-', ' ') |
|||
# Add this task to the author's count. |
|||
authors.inc(author) |
|||
# Sort the authors in descending order by number of tasks created. |
|||
authors.sort(Descending) |
|||
# Print the top twenty. |
|||
echo "Total tasks: ", tasks.len |
|||
echo "Total authors: ", authors.len |
|||
echo "\nThe top 20 authors by number of tasks created are:\n" |
|||
echo "Pos Tasks Author" |
|||
echo "=== ===== ======" |
|||
var pos = 0 |
|||
for author, count in authors.pairs: |
|||
inc pos |
|||
echo ($pos).align(2), " ", ($count).align(3), " ", author |
|||
if pos == 20: break</syntaxhighlight> |
|||
{{out}} |
|||
On 2021-06-29. |
|||
<pre>The top 20 authors by number of tasks created are: |
|||
Pos Tasks Author |
|||
=== ===== ====== |
|||
1 196 Paddy3118 |
|||
2 84 CalmoSoft |
|||
3 72 Markhobley |
|||
4 66 Gerard_Schildberger |
|||
5 55 Mwn3d |
|||
6 39 NevilleDNZ |
|||
7 39 Thundergnat |
|||
8 33 Nigel_Galloway |
|||
9 33 Short_Circuit |
|||
10 23 Grondilu |
|||
11 21 Blue_Prawn |
|||
12 20 Fwend |
|||
13 20 Dkf |
|||
14 18 Kernigh |
|||
15 17 Ledrug |
|||
16 17 ShinTakezou |
|||
17 17 Dmitry kazakov |
|||
18 14 Wherrera |
|||
19 13 Waldorf |
|||
20 13 Abu</pre> |
|||
=={{header|Phix}}== |
|||
To keep the output nice and short, lists the top 5 task creators.<br> |
|||
Uses a cache: once a .hist file has been downloaded for a given |
|||
task, it is assumed to be good forever. Each task is about 20K, |
|||
so it will download around 25MB in total, for >= 1,219 tasks. |
|||
It does those sequentially, using curl_easy_ handles. I guess |
|||
if you really wanted to then using curl_multi_ handles would |
|||
properly thrash the rosettacode servers. |
|||
{{libheader|Phix/libcurl}} |
|||
<!--<syntaxhighlight lang="phix">(notonline)--> |
|||
<span style="color: #000080;font-style:italic;">-- demo\rosetta\List_task_authors.exw</span> |
|||
<span style="color: #008080;">without</span> <span style="color: #008080;">js</span> <span style="color: #000080;font-style:italic;">-- (libcurl, file i/o, peek, progress..)</span> |
|||
<span style="color: #008080;">include</span> <span style="color: #000000;">rosettacode_cache</span><span style="color: #0000FF;">.</span><span style="color: #000000;">e</span> <span style="color: #000080;font-style:italic;">-- see [[Rosetta_Code/Count_examples#Phix]]</span> |
|||
<span style="color: #008080;">constant</span> <span style="color: #000000;">history_user</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">`<span class='history-user'><a href="`</span> |
|||
<span style="color: #008080;">function</span> <span style="color: #000000;">count_tasks</span><span style="color: #0000FF;">()</span> |
|||
<span style="color: #008080;">if</span> <span style="color: #7060A8;">get_file_type</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"rc_cache"</span><span style="color: #0000FF;">)!=</span><span style="color: #004600;">FILETYPE_DIRECTORY</span> <span style="color: #008080;">then</span> |
|||
<span style="color: #008080;">if</span> <span style="color: #008080;">not</span> <span style="color: #000000;">create_directory</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"rc_cache"</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">then</span> |
|||
<span style="color: #7060A8;">crash</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"cannot create rc_cache directory"</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span> |
|||
<span style="color: #004080;">sequence</span> <span style="color: #000000;">tasks</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">dewiki</span><span style="color: #0000FF;">(</span><span style="color: #000000;">open_category</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"Programming_Tasks"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">2</span><span style="color: #0000FF;">))</span> |
|||
<span style="color: #0000FF;">&</span> <span style="color: #000000;">dewiki</span><span style="color: #0000FF;">(</span><span style="color: #000000;">open_category</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"Draft_Programming_Tasks"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">2</span><span style="color: #0000FF;">,</span><span style="color: #000000;">2</span><span style="color: #0000FF;">))</span> |
|||
<span style="color: #004080;">integer</span> <span style="color: #000000;">ntasks</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">tasks</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #004080;">sequence</span> <span style="color: #000000;">users</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{},</span> |
|||
<span style="color: #000000;">utask</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{},</span> |
|||
<span style="color: #000000;">ntask</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{}</span> |
|||
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #000000;">ntasks</span> <span style="color: #008080;">do</span> |
|||
<span style="color: #004080;">string</span> <span style="color: #000000;">ti</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">tasks</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">],</span> |
|||
<span style="color: #000000;">url</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"http://rosettacode.org/mw/index.php?title=%s&action=history&dir=prev&limit=1"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">ti</span><span style="color: #0000FF;">}),</span> |
|||
<span style="color: #000000;">contents</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">open_download</span><span style="color: #0000FF;">(</span><span style="color: #000000;">ti</span><span style="color: #0000FF;">&</span><span style="color: #008000;">".hist"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">url</span><span style="color: #0000FF;">,</span><span style="color: #000000;">i</span><span style="color: #0000FF;">,</span><span style="color: #000000;">ntasks</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #004080;">integer</span> <span style="color: #000000;">k</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">match</span><span style="color: #0000FF;">(</span><span style="color: #000000;">history_user</span><span style="color: #0000FF;">,</span><span style="color: #000000;">contents</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #008080;">if</span> <span style="color: #000000;">k</span><span style="color: #0000FF;">=</span><span style="color: #000000;">0</span> <span style="color: #008080;">then</span> <span style="color: #0000FF;">?</span><span style="color: #000000;">9</span><span style="color: #0000FF;">/</span><span style="color: #000000;">0</span> <span style="color: #008080;">end</span> <span style="color: #008080;">if</span> |
|||
<span style="color: #000000;">k</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">find</span><span style="color: #0000FF;">(</span><span style="color: #008000;">'>'</span><span style="color: #0000FF;">,</span><span style="color: #000000;">contents</span><span style="color: #0000FF;">,</span><span style="color: #000000;">k</span><span style="color: #0000FF;">+</span><span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">history_user</span><span style="color: #0000FF;">))</span> |
|||
<span style="color: #008080;">if</span> <span style="color: #000000;">k</span><span style="color: #0000FF;">=</span><span style="color: #000000;">0</span> <span style="color: #008080;">then</span> <span style="color: #0000FF;">?</span><span style="color: #000000;">9</span><span style="color: #0000FF;">/</span><span style="color: #000000;">0</span> <span style="color: #008080;">end</span> <span style="color: #008080;">if</span> |
|||
<span style="color: #000000;">k</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">1</span> |
|||
<span style="color: #004080;">integer</span> <span style="color: #000000;">e</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">match</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"</a>"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">contents</span><span style="color: #0000FF;">,</span><span style="color: #000000;">k</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #008080;">if</span> <span style="color: #000000;">e</span><span style="color: #0000FF;">=</span><span style="color: #000000;">0</span> <span style="color: #008080;">then</span> <span style="color: #0000FF;">?</span><span style="color: #000000;">9</span><span style="color: #0000FF;">/</span><span style="color: #000000;">0</span> <span style="color: #008080;">end</span> <span style="color: #008080;">if</span> |
|||
<span style="color: #004080;">string</span> <span style="color: #000000;">user</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">contents</span><span style="color: #0000FF;">[</span><span style="color: #000000;">k</span><span style="color: #0000FF;">..</span><span style="color: #000000;">e</span><span style="color: #0000FF;">-</span><span style="color: #000000;">1</span><span style="color: #0000FF;">]</span> |
|||
<span style="color: #000000;">k</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">find</span><span style="color: #0000FF;">(</span><span style="color: #000000;">user</span><span style="color: #0000FF;">,</span><span style="color: #000000;">users</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #008080;">if</span> <span style="color: #000000;">k</span><span style="color: #0000FF;">=</span><span style="color: #000000;">0</span> <span style="color: #008080;">then</span> |
|||
<span style="color: #000000;">users</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">append</span><span style="color: #0000FF;">(</span><span style="color: #000000;">users</span><span style="color: #0000FF;">,</span><span style="color: #000000;">user</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #000000;">utask</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">append</span><span style="color: #0000FF;">(</span><span style="color: #000000;">utask</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">i</span><span style="color: #0000FF;">})</span> |
|||
<span style="color: #000000;">ntask</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">append</span><span style="color: #0000FF;">(</span><span style="color: #000000;">ntask</span><span style="color: #0000FF;">,</span><span style="color: #000000;">1</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #008080;">else</span> |
|||
<span style="color: #000000;">utask</span><span style="color: #0000FF;">[</span><span style="color: #000000;">k</span><span style="color: #0000FF;">]</span> <span style="color: #0000FF;">&=</span> <span style="color: #000000;">i</span> |
|||
<span style="color: #000000;">ntask</span><span style="color: #0000FF;">[</span><span style="color: #000000;">k</span><span style="color: #0000FF;">]</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">1</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span> |
|||
<span style="color: #000000;">ti</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">html_clean</span><span style="color: #0000FF;">(</span><span style="color: #000000;">ti</span><span style="color: #0000FF;">)</span> <span style="color: #000080;font-style:italic;">-- (in case you want to show them)</span> |
|||
<span style="color: #000000;">tasks</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">]</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">ti</span> |
|||
<span style="color: #008080;">if</span> <span style="color: #7060A8;">get_key</span><span style="color: #0000FF;">()=</span><span style="color: #000000;">#1B</span> <span style="color: #008080;">then</span> <span style="color: #7060A8;">progress</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"escape keyed\n"</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">exit</span> <span style="color: #008080;">end</span> <span style="color: #008080;">if</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span> |
|||
<span style="color: #000000;">curl_cleanup</span><span style="color: #0000FF;">()</span> |
|||
<span style="color: #7060A8;">progress</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"\n"</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #004080;">integer</span> <span style="color: #000000;">nusers</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">users</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #004080;">sequence</span> <span style="color: #000000;">tags</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">custom_sort</span><span style="color: #0000FF;">(</span><span style="color: #000000;">ntask</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">tagset</span><span style="color: #0000FF;">(</span><span style="color: #000000;">nusers</span><span style="color: #0000FF;">))</span> |
|||
<span style="color: #004080;">integer</span> <span style="color: #000000;">top5</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0</span> |
|||
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">nusers</span> <span style="color: #008080;">to</span> <span style="color: #000000;">1</span> <span style="color: #008080;">by</span> <span style="color: #0000FF;">-</span><span style="color: #000000;">1</span> <span style="color: #008080;">do</span> |
|||
<span style="color: #004080;">integer</span> <span style="color: #000000;">ui</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">tags</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">]</span> |
|||
<span style="color: #008080;">if</span> <span style="color: #000000;">ntask</span><span style="color: #0000FF;">[</span><span style="color: #000000;">ui</span><span style="color: #0000FF;">]<</span><span style="color: #000000;">5</span> <span style="color: #008080;">then</span> <span style="color: #008080;">exit</span> <span style="color: #008080;">end</span> <span style="color: #008080;">if</span> |
|||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%s tasks:%d\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">users</span><span style="color: #0000FF;">[</span><span style="color: #000000;">ui</span><span style="color: #0000FF;">],</span><span style="color: #000000;">ntask</span><span style="color: #0000FF;">[</span><span style="color: #000000;">ui</span><span style="color: #0000FF;">]})</span> |
|||
<span style="color: #000000;">top5</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">1</span> <span style="color: #008080;">if</span> <span style="color: #000000;">top5</span><span style="color: #0000FF;">></span><span style="color: #000000;">5</span> <span style="color: #008080;">then</span> <span style="color: #008080;">exit</span> <span style="color: #008080;">end</span> <span style="color: #008080;">if</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span> |
|||
<span style="color: #008080;">return</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">ntasks</span><span style="color: #0000FF;">,</span><span style="color: #000000;">nusers</span><span style="color: #0000FF;">}</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span> |
|||
<span style="color: #7060A8;">progress</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"Total: %d tasks by %d authors\n"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">count_tasks</span><span style="color: #0000FF;">())</span> |
|||
<!--</syntaxhighlight>--> |
|||
{{out}} |
|||
As of 6th Jan 2020 |
|||
<pre> |
|||
Paddy3118 tasks:176 |
|||
Markhobley tasks:71 |
|||
Gerard Schildberger tasks:59 |
|||
Mwn3d tasks:55 |
|||
NevilleDNZ tasks:39 |
|||
Short Circuit tasks:33 |
|||
Total: 1219 |
|||
</pre> |
|||
As of 6th Jan 2022 |
|||
<pre> |
|||
Paddy3118 tasks:199 |
|||
CalmoSoft tasks:128 |
|||
Markhobley tasks:71 |
|||
Gerard Schildberger tasks:66 |
|||
Mwn3d tasks:55 |
|||
Thundergnat tasks:44 |
|||
Total: 1492 tasks by 307 authors |
|||
</pre> |
|||
=={{header|Raku}}== |
|||
(formerly Perl 6) |
|||
{{works with|Rakudo|2018.03}} |
|||
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 |
<syntaxhighlight lang="raku" line>use HTTP::UserAgent; |
||
use URI::Escape; |
|||
use JSON::Fast; |
use JSON::Fast; |
||
use Sort::Naturally; |
use Sort::Naturally; |
||
Line 281: | Line 422: | ||
# Friendlier descriptions for task categories |
# Friendlier descriptions for task categories |
||
my %cat = ( |
my %cat = ( |
||
'Programming_Tasks' => 'Task |
'Programming_Tasks' => 'Task', |
||
'Draft_Programming_Tasks' => 'Draft |
'Draft_Programming_Tasks' => 'Draft' |
||
); |
); |
||
my $client = HTTP::UserAgent.new; |
my $client = HTTP::UserAgent.new; |
||
my $url = ' |
my $url = 'https://rosettacode.org/w'; |
||
my $ |
my $tablefile = './RC_Authors.txt'; |
||
my $hashfile = './RC_Authors.json'; |
my $hashfile = './RC_Authors.json'; |
||
my %tasks; |
my %tasks; |
||
# clear screen |
|||
#=begin pod |
|||
run($*DISTRO.is-win ?? 'cls' !! 'clear'); |
|||
%tasks = $hashfile.IO.e ?? $hashfile.IO.slurp.&from-json !! ( ); |
|||
for %cat.keys -> $category { |
|||
sleep 1; |
|||
#=begin update |
|||
note 'Retrieving task information...'; |
|||
my %filter; |
|||
for %cat.keys.sort -> $category { |
|||
mediawiki-query( |
mediawiki-query( |
||
$url, 'pages', |
$url, 'pages', |
||
Line 304: | Line 454: | ||
:rawcontinue(), |
:rawcontinue(), |
||
:prop<title> |
:prop<title> |
||
).map({ |
).map( { %filter{.<title>} = %cat{$category} } ) |
||
mediawiki-query( |
|||
$url, 'pages', |
|||
:titles(.<title>), |
|||
:prop<revisions>, |
|||
:rvprop<user|timestamp>, |
|||
:rvstart<2000-01-01T01:01:01Z>, |
|||
:rvdir<newer>, |
|||
:rvlimit<1> |
|||
)} |
|||
).map({ |
|||
note $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'.+$/, '') |
|||
} |
|||
); |
|||
} |
} |
||
my $delete = %tasks.keys (-) %filter.keys; |
|||
%tasks.delete($_) for $delete.keys; #Tasks that have changed names or been removed |
|||
my @add; |
|||
for %filter.keys -> $title { |
|||
if %tasks{$title}:exists { |
|||
%tasks{$title}<category> = %filter{$title} # update status |
|||
} else { |
|||
@add.push: $title => %filter{$title} # New Tasks |
|||
} |
|||
} |
|||
if @add { |
|||
.say for 'Adding new tasks:', |@add; |
|||
} |
|||
for @add -> $task { |
|||
mediawiki-query( |
|||
$url, 'pages', |
|||
:titles($task.key), |
|||
:prop<revisions>, |
|||
:rvprop<user|timestamp>, |
|||
:rvstart<2000-01-01T01:01:01Z>, |
|||
:rvdir<newer>, |
|||
:rvlimit<1> |
|||
).map: { |
|||
print clear, 1 + $++, ' ', .[0]<title>; |
|||
%tasks{.[0]<title>}<category> = $task.value; |
|||
%tasks{.[0]<title>}<author> = .[0]<revisions>[0]<user>; |
|||
%tasks{.[0]<title>}<date> = .[0]<revisions>[0]<timestamp>.subst(/'T'.+$/, '') |
|||
} |
|||
} |
|||
print clear; |
|||
# 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); |
||
#=end |
#=end update |
||
# Load information from local file |
|||
%tasks = $hashfile.IO.e ?? $hashfile.IO.slurp.&from-json !! ( ); |
%tasks = $hashfile.IO.e ?? $hashfile.IO.slurp.&from-json !! ( ); |
||
# Convert saved task / author info to |
# Convert saved task / author info to a table |
||
note " |
note "\nBuilding 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>; |
||
my $draftcnt = $count - $taskcnt; |
my $draftcnt = $count - $taskcnt; |
||
# |
# Open a file handle to dump table in |
||
my $out = open($ |
my $out = open($tablefile, :w) or die "$!\n"; |
||
# Add table boilerplate and header |
# Add table boilerplate and header |
||
$out.say: |
|||
$out.say( '<table border="1" cellpadding="4"><tr><th colspan="2">As of ', Date.today, ' | Total: ', |
|||
"\{|class=\"wikitable sortable\"\n", |
|||
"$count / Tasks: $taskcnt / Draft Tasks: $draftcnt / By {+%tasks{*}».<author>.unique} Authors", |
|||
"|+ As of { Date.today } :: Total Tasks: { $count }:: Tasks: { $taskcnt }", |
|||
'<tr><th>User</th><th>Authored</th></tr>' ); |
|||
" ::<span style=\"background-color:#ffd\"> Draft Tasks: { $draftcnt } </span>", |
|||
":: By {+%tasks{*}».<author>.unique} Authors\n", |
|||
"! Author !! Tasks !! Authored" |
|||
; |
|||
# Get sorted unique list of task authors |
# Get sorted unique list of task authors |
||
for %tasks{*}».<author>.unique.sort( |
for %tasks{*}».<author>.unique.sort(&naturally) -> $author { |
||
$out.print( "<tr><td><ul>[[User:$author|$author]] [[Special:Contributions/$author|?]]</ul></td><td><ul><ol>" ); |
|||
# Get list of tasks by this author |
# Get list of tasks by this author |
||
my @these = %tasks.grep( { $_.value.<author> eq $author } ); |
|||
my $s = +@these == 1 ?? '' !! 's'; |
|||
$out.print( "<li>{$task.value.<date>} - {$task.value.<category>}", |
|||
# Add author and contributions link to the first two cells |
|||
" [[{uri-encode $task.key}|{$task.key}]]</li>" |
|||
$out.say: |
|||
$author ~~ /\d/ |
|||
?? "|- id=\"$author\"\n|data-sort-value=\"{ sort-key $author }\"|[[User:$author|$author]]\n"~ |
|||
"|data-sort-value=\"{ +@these }\"|[[Special:Contributions/$author|"~ |
|||
"{ +@these } task{ $s }]]" |
|||
!! "|- id=\"$author\"\n|[[User:$author|$author]]\n"~ |
|||
"|data-sort-value=\"{ +@these }\"|[[Special:Contributions/$author|"~ |
|||
"{ +@these } task{ $s }]]" |
|||
; |
|||
if +@these > 2 { |
|||
$out.say: "|style=\"padding: 0px;\"|\n", |
|||
"\{|class=\"broadtable sortable\" style=\"width: 100%;\"\n", |
|||
"! Task Name !! Date Added !! Status"; |
|||
} |
|||
else { |
|||
$out.say: "|style=\"padding: 0px;\"|\n", |
|||
"\{|class=\"broadtable\" style=\"width: 100%;\""; |
|||
} |
|||
# Tasks by this author, sorted by name |
|||
for @these.sort({.key.&naturally}) -> $task { |
|||
my $color = $task.value.<category> eq 'Draft' ?? '#ffd' !! '#fff'; |
|||
# add the task link, date and status to the table in the second cell |
|||
$out.say: "|-\n|style=\"background-color: $color;\"", |
|||
( $task.key ~~ /\d/ |
|||
?? " data-sort-value=\"{ sort-key $task.key }\"| [[{uri-escape $task.key}|{$task.key}]]\n" |
|||
!! "| [[{uri-escape $task.key}|{$task.key}]]\n" |
|||
), |
|||
"|style=\"width: 10em; background-color: $color;\"| {$task.value.<date>}\n", |
|||
"|style=\"width: 6em; background-color: $color;\"| {$task.value.<category>}", |
|||
} |
} |
||
$out.say |
$out.say: '|}' |
||
} |
} |
||
$out.say( |
$out.say( "|}\n" ); |
||
$out.close; |
$out.close; |
||
note "HTML table file saved as: {$htmlfile.IO.absolute}"; |
|||
note "Table file saved as: {$tablefile.IO.absolute}"; |
|||
sub mediawiki-query ($site, $type, *%query) { |
sub mediawiki-query ($site, $type, *%query) { |
||
my $url = "$site/api.php?" ~ uri-query-string( |
my $url = "$site/api.php?" ~ uri-query-string( |
||
:action<query>, :format<json>, :formatversion |
:action<query>, :format<json>, :formatversion<2>, |%query); |
||
my $continue = ''; |
my $continue = ''; |
||
Line 373: | Line 583: | ||
} |
} |
||
sub uri-query-string (*%fields) { %fields.map({ "{.key}={uri- |
sub uri-query-string (*%fields) { %fields.map({ "{.key}={uri-escape .value}" }).join("&") } |
||
sub sort-key ($a) { $a.lc.subst(/(\d+)/, ->$/ {0~(65+($0.chars)).chr~$0},:g) } |
|||
sub clear { "\r" ~ ' ' x 100 ~ "\r" }</syntaxhighlight> |
|||
{{out|Sample output}} |
|||
See full output at [[Rosetta_Code/List_authors_of_task_descriptions/Full_list]] |
|||
{|class="wikitable sortable" |
|||
|+ As of 2018-04-10 :: Total Tasks: 1080:: Tasks: 871 ::<span style="background-color:#ffd"> Draft Tasks: 209 </span>:: By 251 Authors |
|||
! Author !! Tasks !! Authored |
|||
|- |
|||
|data-sort-value="0B2powers"|[[User:2Powers|2Powers]] |
|||
|data-sort-value="2"|[[Special:Contributions/2Powers|2 tasks]] |
|||
|style="padding: 0px;"| |
|||
{|class="broadtable" style="width: 100%;" |
|||
|- |
|||
|style="background-color: #ffd;"| [[Names%20to%20numbers|Names to numbers]] |
|||
|style="width: 10em; background-color: #ffd;"| 2013-05-16 |
|||
|style="width: 6em; background-color: #ffd;"| Draft |
|||
|- |
|||
|style="background-color: #ffd;"| [[Solving%20coin%20problems|Solving coin problems]] |
|||
|style="width: 10em; background-color: #ffd;"| 2013-05-16 |
|||
|style="width: 6em; background-color: #ffd;"| Draft |
|||
|} |
|||
|- |
|||
|data-sort-value="0C12.0D175.0C32.0C19"|[[User:12.175.32.19|12.175.32.19]] |
|||
|data-sort-value="1"|[[Special:Contributions/12.175.32.19|1 task]] |
|||
|style="padding: 0px;"| |
|||
{|class="broadtable" style="width: 100%;" |
|||
|- |
|||
|style="background-color: #fff;"| [[Soundex|Soundex]] |
|||
|style="width: 10em; background-color: #fff;"| 2009-11-12 |
|||
|style="width: 6em; background-color: #fff;"| Task |
|||
|} |
|||
|- |
|||
|data-sort-value="0C12me0C21"|[[User:12Me21|12Me21]] |
|||
|data-sort-value="1"|[[Special:Contributions/12Me21|1 task]] |
|||
|style="padding: 0px;"| |
|||
{|class="broadtable" style="width: 100%;" |
|||
|- |
|||
|style="background-color: #fff;"| [[Draw%20a%20rotating%20cube|Draw a rotating cube]] |
|||
|style="width: 10em; background-color: #fff;"| 2015-05-04 |
|||
|style="width: 6em; background-color: #fff;"| Task |
|||
|} |
|||
|- |
|||
|colspan="3"|many rows omitted... |
|||
|- |
|||
|data-sort-value="zorro0E1024"|[[User:Zorro1024|Zorro1024]] |
|||
|data-sort-value="2"|[[Special:Contributions/Zorro1024|2 tasks]] |
|||
|style="padding: 0px;"| |
|||
{|class="broadtable" style="width: 100%;" |
|||
|- |
|||
|style="background-color: #fff;"| [[Perfect%20shuffle|Perfect shuffle]] |
|||
|style="width: 10em; background-color: #fff;"| 2015-04-16 |
|||
|style="width: 6em; background-color: #fff;"| Task |
|||
|- |
|||
|style="background-color: #ffd;"| [[Vector|Vector]] |
|||
|style="width: 10em; background-color: #ffd;"| 2015-03-21 |
|||
|style="width: 6em; background-color: #ffd;"| Draft |
|||
|} |
|||
|- |
|||
|data-sort-value="zzo0C38"|[[User:Zzo38|Zzo38]] |
|||
|data-sort-value="1"|[[Special:Contributions/Zzo38|1 task]] |
|||
|style="padding: 0px;"| |
|||
{|class="broadtable" style="width: 100%;" |
|||
|- |
|||
|style="background-color: #fff;"| [[Thue-Morse|Thue-Morse]] |
|||
|style="width: 10em; background-color: #fff;"| 2015-09-20 |
|||
|style="width: 6em; background-color: #fff;"| Task |
|||
|} |
|||
|- |
|||
|[[User:Русский|Русский]] |
|||
|data-sort-value="3"|[[Special:Contributions/Русский|3 tasks]] |
|||
|style="padding: 0px;"| |
|||
{|class="broadtable sortable" style="width: 100%;" |
|||
! Task Name !! Date Added !! Status |
|||
|- |
|||
|style="background-color: #fff;" data-sort-value="main step of gost 0F28147-0C89"| [[Main%20step%20of%20GOST%2028147-89|Main step of GOST 28147-89]] |
|||
|style="width: 10em; background-color: #fff;"| 2012-08-31 |
|||
|style="width: 6em; background-color: #fff;"| Task |
|||
|- |
|||
|style="background-color: #ffd;"| [[Old%20Russian%20measure%20of%20length|Old Russian measure of length]] |
|||
|style="width: 10em; background-color: #ffd;"| 2013-01-09 |
|||
|style="width: 6em; background-color: #ffd;"| Draft |
|||
|- |
|||
|style="background-color: #ffd;"| [[Transportation%20problem|Transportation problem]] |
|||
|style="width: 10em; background-color: #ffd;"| 2013-05-24 |
|||
|style="width: 6em; background-color: #ffd;"| Draft |
|||
|} |
|||
|} |
|||
=={{header|Wren}}== |
|||
{{libheader|libcurl}} |
|||
{{libheader|Wren-pattern}} |
|||
{{libheader|Wren-fmt}} |
|||
An embedded program so we can use libcurl. |
|||
Takes upwards of 80 minutes to run as the history page(s) for each task need to be downloaded and parsed to find the author. Worse still, given we are pounding a busy server pretty hard, there are lots of 'bad gateway' and other errors (94 on this particular run!) which necessitate adding tasks back to the task list until they are eventually downloaded and parsed successfully which can add several minutes to the overall time. |
|||
<syntaxhighlight lang="wren">/* Rosetta_Code_List_authors_of_task_descriptions.wren */ |
|||
import "./pattern" for Pattern |
|||
import "./fmt" for Fmt |
|||
var CURLOPT_URL = 10002 |
|||
var CURLOPT_FOLLOWLOCATION = 52 |
|||
var CURLOPT_WRITEFUNCTION = 20011 |
|||
var CURLOPT_WRITEDATA = 10001 |
|||
foreign class Buffer { |
|||
construct new() {} // C will allocate buffer of a suitable size |
|||
foreign value // returns buffer contents as a string |
|||
} |
|||
foreign class Curl { |
|||
construct easyInit() {} |
|||
foreign easySetOpt(opt, param) |
|||
foreign easyPerform() |
|||
foreign easyCleanup() |
|||
} |
|||
var curl = Curl.easyInit() |
|||
var getContent = Fn.new { |url| |
|||
var buffer = Buffer.new() |
|||
curl.easySetOpt(CURLOPT_URL, url) |
|||
curl.easySetOpt(CURLOPT_FOLLOWLOCATION, 1) |
|||
curl.easySetOpt(CURLOPT_WRITEFUNCTION, 0) // write function to be supplied by C |
|||
curl.easySetOpt(CURLOPT_WRITEDATA, buffer) |
|||
curl.easyPerform() |
|||
return buffer.value |
|||
} |
|||
var p1 = Pattern.new("title/=\"[+1^\"]\"") |
|||
var p2 = Pattern.new("cmcontinue/=\"[+1^\"]\"") |
|||
var pi = "\"&" |
|||
var p3 = Pattern.new("a href/=\"//[wiki//User:|w//index.php?title/=User:|wiki//Special:Contributions//][+1/I]\"", 0, pi) |
|||
var findTasks = Fn.new { |category| |
|||
var url = "https://www.rosettacode.org/w/api.php?action=query&list=categorymembers&cmtitle=Category:%(category)&cmlimit=500&format=xml" |
|||
var cmcontinue = "" |
|||
var tasks = [] |
|||
while (true) { |
|||
var content = getContent.call(url + cmcontinue) |
|||
var matches1 = p1.findAll(content) |
|||
for (m in matches1) { |
|||
var title = m.capsText[0].replace("'", "'").replace(""", "\"") |
|||
tasks.add(title) |
|||
} |
|||
var m2 = p2.find(content) |
|||
if (m2) cmcontinue = "&cmcontinue=%(m2.capsText[0])" else break |
|||
} |
|||
return tasks |
|||
} |
|||
var tasks = findTasks.call("Programming_Tasks") // 'full' tasks only |
|||
tasks.addAll(findTasks.call("Draft_Programming_Tasks")) |
|||
var tc = tasks.count |
|||
var authors = {} |
|||
while (tasks.count > 0) { |
|||
var task = tasks[0].replace(" ", "_").replace("+", "\%2B") |
|||
// check the last or only history page for each task |
|||
var url = "https://rosettacode.org/w/index.php?title=%(task)&dir=prev&action=history" |
|||
tasks.removeAt(0) |
|||
var content = getContent.call(url) |
|||
content = content.replace("http://www.rosettacode.org", "") |
|||
var matches = p3.findAll(content) |
|||
// if there are no matches there must have been a 'bad gateway' or other error |
|||
if (matches.count == 0) { |
|||
// add back a failed task until it eventually succeeds |
|||
tasks.add(task) |
|||
continue |
|||
} |
|||
// the task author should be the final user on that page |
|||
var author = matches[-1].capsText[1].replace("_", " ") |
|||
// add this task to the author's count |
|||
if (authors.containsKey(author)) { |
|||
authors[author] = authors[author] + 1 |
|||
} else { |
|||
authors[author] = 1 |
|||
} |
|||
} |
|||
// sort the authors in descending order by number of tasks created |
|||
var authorNumbers = authors.toList |
|||
authorNumbers.sort { |a, b| a.value > b.value } |
|||
// print those who've completed at least 9 tasks |
|||
System.print("As at 10th September 2022:\n") |
|||
System.print("Total tasks : %(tc)") |
|||
System.print("Total authors : %(authors.count)") |
|||
System.print("\nThe authors who have created at least 9 tasks are:\n") |
|||
System.print("Pos Tasks Author") |
|||
System.print("==== ===== ======") |
|||
var lastNumber = 0 |
|||
var lastIndex = -1 |
|||
var i = 0 |
|||
for (authorNumber in authorNumbers.where { |me| me.value >= 9 }) { |
|||
var j = i |
|||
var eq = " " |
|||
if (authorNumber.value == lastNumber) { |
|||
j = lastIndex |
|||
eq = "=" |
|||
} else { |
|||
lastIndex = i |
|||
lastNumber = authorNumber.value |
|||
} |
|||
Fmt.print("$3d$s $3d $s", j+1, eq, authorNumber.value, authorNumber.key) |
|||
i = i + 1 |
|||
} |
|||
curl.easyCleanup()</syntaxhighlight> |
|||
<br> |
|||
We now embed this script in the following C program, build and run. |
|||
<syntaxhighlight lang="c">/* gcc Rosetta_Code_List_authors_of_task_descriptions.c -o Rosetta_Code_List_authors_of_task_descriptions -lcurl -lwren -lm */ |
|||
#include <stdio.h> |
|||
#include <stdlib.h> |
|||
#include <string.h> |
|||
#include <curl/curl.h> |
|||
#include "wren.h" |
|||
struct MemoryStruct { |
|||
char *memory; |
|||
size_t size; |
|||
}; |
|||
/* C <=> Wren interface functions */ |
|||
static size_t WriteMemoryCallback(void *contents, size_t size, size_t nmemb, void *userp) { |
|||
size_t realsize = size * nmemb; |
|||
struct MemoryStruct *mem = (struct MemoryStruct *)userp; |
|||
char *ptr = realloc(mem->memory, mem->size + realsize + 1); |
|||
if(!ptr) { |
|||
/* out of memory! */ |
|||
printf("not enough memory (realloc returned NULL)\n"); |
|||
return 0; |
|||
} |
|||
mem->memory = ptr; |
|||
memcpy(&(mem->memory[mem->size]), contents, realsize); |
|||
mem->size += realsize; |
|||
mem->memory[mem->size] = 0; |
|||
return realsize; |
|||
} |
|||
void C_bufferAllocate(WrenVM* vm) { |
|||
struct MemoryStruct *ms = (struct MemoryStruct *)wrenSetSlotNewForeign(vm, 0, 0, sizeof(struct MemoryStruct)); |
|||
ms->memory = malloc(1); |
|||
ms->size = 0; |
|||
} |
|||
void C_bufferFinalize(void* data) { |
|||
struct MemoryStruct *ms = (struct MemoryStruct *)data; |
|||
free(ms->memory); |
|||
} |
|||
void C_curlAllocate(WrenVM* vm) { |
|||
CURL** pcurl = (CURL**)wrenSetSlotNewForeign(vm, 0, 0, sizeof(CURL*)); |
|||
*pcurl = curl_easy_init(); |
|||
} |
|||
void C_value(WrenVM* vm) { |
|||
struct MemoryStruct *ms = (struct MemoryStruct *)wrenGetSlotForeign(vm, 0); |
|||
wrenSetSlotString(vm, 0, ms->memory); |
|||
} |
|||
void C_easyPerform(WrenVM* vm) { |
|||
CURL* curl = *(CURL**)wrenGetSlotForeign(vm, 0); |
|||
curl_easy_perform(curl); |
|||
} |
|||
void C_easyCleanup(WrenVM* vm) { |
|||
CURL* curl = *(CURL**)wrenGetSlotForeign(vm, 0); |
|||
curl_easy_cleanup(curl); |
|||
} |
|||
void C_easySetOpt(WrenVM* vm) { |
|||
CURL* curl = *(CURL**)wrenGetSlotForeign(vm, 0); |
|||
CURLoption opt = (CURLoption)wrenGetSlotDouble(vm, 1); |
|||
if (opt < 10000) { |
|||
long lparam = (long)wrenGetSlotDouble(vm, 2); |
|||
curl_easy_setopt(curl, opt, lparam); |
|||
} else if (opt < 20000) { |
|||
if (opt == CURLOPT_WRITEDATA) { |
|||
struct MemoryStruct *ms = (struct MemoryStruct *)wrenGetSlotForeign(vm, 2); |
|||
curl_easy_setopt(curl, opt, (void *)ms); |
|||
} else if (opt == CURLOPT_URL) { |
|||
const char *url = wrenGetSlotString(vm, 2); |
|||
curl_easy_setopt(curl, opt, url); |
|||
} |
|||
} else if (opt < 30000) { |
|||
if (opt == CURLOPT_WRITEFUNCTION) { |
|||
curl_easy_setopt(curl, opt, &WriteMemoryCallback); |
|||
} |
|||
} |
|||
} |
|||
WrenForeignClassMethods bindForeignClass(WrenVM* vm, const char* module, const char* className) { |
|||
WrenForeignClassMethods methods; |
|||
methods.allocate = NULL; |
|||
methods.finalize = NULL; |
|||
if (strcmp(module, "main") == 0) { |
|||
if (strcmp(className, "Buffer") == 0) { |
|||
methods.allocate = C_bufferAllocate; |
|||
methods.finalize = C_bufferFinalize; |
|||
} else if (strcmp(className, "Curl") == 0) { |
|||
methods.allocate = C_curlAllocate; |
|||
} |
|||
} |
|||
return methods; |
|||
} |
|||
WrenForeignMethodFn bindForeignMethod( |
|||
WrenVM* vm, |
|||
const char* module, |
|||
const char* className, |
|||
bool isStatic, |
|||
const char* signature) { |
|||
if (strcmp(module, "main") == 0) { |
|||
if (strcmp(className, "Buffer") == 0) { |
|||
if (!isStatic && strcmp(signature, "value") == 0) return C_value; |
|||
} else if (strcmp(className, "Curl") == 0) { |
|||
if (!isStatic && strcmp(signature, "easySetOpt(_,_)") == 0) return C_easySetOpt; |
|||
if (!isStatic && strcmp(signature, "easyPerform()") == 0) return C_easyPerform; |
|||
if (!isStatic && strcmp(signature, "easyCleanup()") == 0) return C_easyCleanup; |
|||
} |
|||
} |
|||
return NULL; |
|||
} |
|||
static void writeFn(WrenVM* vm, const char* text) { |
|||
printf("%s", text); |
|||
} |
|||
void errorFn(WrenVM* vm, WrenErrorType errorType, const char* module, const int line, const char* msg) { |
|||
switch (errorType) { |
|||
case WREN_ERROR_COMPILE: |
|||
printf("[%s line %d] [Error] %s\n", module, line, msg); |
|||
break; |
|||
case WREN_ERROR_STACK_TRACE: |
|||
printf("[%s line %d] in %s\n", module, line, msg); |
|||
break; |
|||
case WREN_ERROR_RUNTIME: |
|||
printf("[Runtime Error] %s\n", msg); |
|||
break; |
|||
} |
|||
} |
|||
char *readFile(const char *fileName) { |
|||
FILE *f = fopen(fileName, "r"); |
|||
fseek(f, 0, SEEK_END); |
|||
long fsize = ftell(f); |
|||
rewind(f); |
|||
char *script = malloc(fsize + 1); |
|||
fread(script, 1, fsize, f); |
|||
fclose(f); |
|||
script[fsize] = 0; |
|||
return script; |
|||
} |
|||
static void loadModuleComplete(WrenVM* vm, const char* module, WrenLoadModuleResult result) { |
|||
if( result.source) free((void*)result.source); |
|||
} |
|||
WrenLoadModuleResult loadModule(WrenVM* vm, const char* name) { |
|||
WrenLoadModuleResult result = {0}; |
|||
if (strcmp(name, "random") != 0 && strcmp(name, "meta") != 0) { |
|||
result.onComplete = loadModuleComplete; |
|||
char fullName[strlen(name) + 6]; |
|||
strcpy(fullName, name); |
|||
strcat(fullName, ".wren"); |
|||
result.source = readFile(fullName); |
|||
} |
|||
return result; |
|||
} |
|||
int main(int argc, char **argv) { |
|||
sub uri-encode ($str) { |
|||
WrenConfiguration config; |
|||
if $str ~~ /<:!ASCII>/ { |
|||
wrenInitConfiguration(&config); |
|||
my $enc = $str.subst(/<[\x00..\x7f]-[a..zA..Z0..9_.~-]>/, *.ord.fmt('%%%02X'), :g); |
|||
config.writeFn = &writeFn; |
|||
return $enc.subst(/<:!ASCII-[\w]>/, *.Str.encode('utf8').list.fmt("%%%02X"), :g ).subst(' ','',:g); |
|||
config.errorFn = &errorFn; |
|||
config.bindForeignClassFn = &bindForeignClass; |
|||
config.bindForeignMethodFn = &bindForeignMethod; |
|||
config.loadModuleFn = &loadModule; |
|||
WrenVM* vm = wrenNewVM(&config); |
|||
const char* module = "main"; |
|||
const char* fileName = "Rosetta_Code_List_authors_of_task_descriptions.wren"; |
|||
char *script = readFile(fileName); |
|||
WrenInterpretResult result = wrenInterpret(vm, module, script); |
|||
switch (result) { |
|||
case WREN_RESULT_COMPILE_ERROR: |
|||
printf("Compile Error!\n"); |
|||
break; |
|||
case WREN_RESULT_RUNTIME_ERROR: |
|||
printf("Runtime Error!\n"); |
|||
break; |
|||
case WREN_RESULT_SUCCESS: |
|||
break; |
|||
} |
} |
||
wrenFreeVM(vm); |
|||
$str.subst(/<[\x00..\x7f]-[a..zA..Z0..9_.~-]>/, *.ord.fmt('%%%02X'), :g); |
|||
free(script); |
|||
}</lang> |
|||
return 0; |
|||
}</syntaxhighlight> |
|||
{{out}} |
|||
;Sample output |
|||
<pre> |
|||
As at 10th September 2022: |
|||
Total tasks : 1569 |
|||
<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> |
|||
Total authors : 315 |
|||
<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:12Me21|12Me21]] [[Special:Contributions/12Me21|?]]</ul></td><td><ul><ol><li>2015-05-04 - Task: [[Draw%20a%20rotating%20cube|Draw a rotating cube]]</li></ol></ul></td></tr> |
|||
The authors who have created at least 9 tasks are: |
|||
<tr><td colspan='2'><br/> Many rows omitted... <br/></td></tr> |
|||
Pos Tasks Author |
|||
<tr><td><ul>[[User:Zorro1024|Zorro1024]]</ul></td><td><ul><ol><li>2015-04-16 - Task: [[Perfect_shuffle|Perfect shuffle]]</li><li>2015-03-21 - Draft: [[Vector|Vector]]</li></ol></ul></td></tr> |
|||
==== ===== ====== |
|||
<tr><td><ul>[[User:Zzo38|Zzo38]]</ul></td><td><ul><ol><li>2015-09-20 - Task: [[Thue-Morse|Thue-Morse]]</li></ol></ul></td></tr> |
|||
1 199 Paddy3118 |
|||
<tr><td><ul>[[User:Русский|Русский]]</ul></td><td><ul><ol><li>2012-08-31 - Task: [[Main_step_of_GOST_28147-89|Main step of GOST 28147-89]]</li><li>2013-01-09 - Draft: [[Old_Russian_measure_of_length|Old Russian measure of length]]</li><li>2013-05-24 - Draft: [[Transportation_problem|Transportation problem]]</li></ol></ul></td></tr> |
|||
2 135 CalmoSoft |
|||
</table> |
|||
3 74 Thundergnat |
|||
4 71 Markhobley |
|||
5 66 Gerard Schildberger |
|||
6 55 Mwn3d |
|||
7 39 NevilleDNZ |
|||
7= 39 Nigel Galloway |
|||
9 33 MikeMol |
|||
10 27 PureFox |
|||
11 23 Grondilu |
|||
12 21 Blue Prawn |
|||
13 20 Fwend |
|||
13= 20 Dkf |
|||
15 19 Wherrera |
|||
16 18 Kernigh |
|||
17 17 Dmitry-kazakov |
|||
17= 17 ShinTakezou |
|||
17= 17 Ledrug |
|||
20 13 Paulo Jorente |
|||
20= 13 Abu |
|||
20= 13 Waldorf |
|||
23 12 Ce |
|||
23= 12 Kevin Reid |
|||
23= 12 Puppydrum64 |
|||
26 10 Bearophile |
|||
26= 10 Tinku99 |
|||
28 9 TimSC |
|||
28= 9 Petelomax |
|||
28= 9 EMBee |
|||
28= 9 Trizen |
|||
</pre> |
Latest revision as of 17:10, 3 February 2024
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:
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
The following resources for HTTP interface information for MediaWiki may prove to be useful:
- https://www.mediawiki.org/wiki/Index.php#Raw
- https://www.mediawiki.org/wiki/Index.php#History
- https://www.mediawiki.org/wiki/API:Main_page
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. For an full listing, see Rosetta_Code/List_authors_of_task_descriptions/Full_list.
Go
package main
import (
"fmt"
"io/ioutil"
"net/http"
"regexp"
"sort"
"strings"
)
type authorNumber struct {
author string
number int
}
func main() {
ex1 := `<li><a href="/wiki/(.*?)"`
ex2 := `a href="/(wiki/User:|mw/index\.php\?title=User:|wiki/Special:Contributions/)([^"&]+)`
re1 := regexp.MustCompile(ex1)
re2 := regexp.MustCompile(ex2)
url1 := "http://rosettacode.org/wiki/Category:Programming_Tasks"
url2 := "http://rosettacode.org/wiki/Category:Draft_Programming_Tasks"
urls := []string{url1, url2}
var tasks []string
for _, url := range urls {
resp, _ := http.Get(url)
body, _ := ioutil.ReadAll(resp.Body)
// find all tasks
matches := re1.FindAllStringSubmatch(string(body), -1)
resp.Body.Close()
for _, match := range matches {
// exclude any 'category' references
if !strings.HasPrefix(match[1], "Category:") {
tasks = append(tasks, match[1])
}
}
}
authors := make(map[string]int)
for _, task := range tasks {
// check the last or only history page for each task
page := fmt.Sprintf("http://rosettacode.org/mw/index.php?title=%s&dir=prev&action=history", task)
resp, _ := http.Get(page)
body, _ := ioutil.ReadAll(resp.Body)
// find all the users in that page
matches := re2.FindAllStringSubmatch(string(body), -1)
resp.Body.Close()
// the task author should be the final user on that page
author := matches[len(matches)-1][2]
author = strings.ReplaceAll(author, "_", " ")
// add this task to the author's count
authors[author]++
}
// sort the authors in descending order by number of tasks created
authorNumbers := make([]authorNumber, 0, len(authors))
for k, v := range authors {
authorNumbers = append(authorNumbers, authorNumber{k, v})
}
sort.Slice(authorNumbers, func(i, j int) bool {
return authorNumbers[i].number > authorNumbers[j].number
})
// print the top twenty say
fmt.Println("Total tasks :", len(tasks))
fmt.Println("Total authors :", len(authors))
fmt.Println("\nThe top 20 authors by number of tasks created are:\n")
fmt.Println("Pos Tasks Author")
fmt.Println("=== ===== ======")
lastNumber, lastIndex := 0, -1
for i, authorNumber := range authorNumbers[0:20] {
j := i
if authorNumber.number == lastNumber {
j = lastIndex
} else {
lastIndex = i
lastNumber = authorNumber.number
}
fmt.Printf("%2d: %3d %s\n", j+1, authorNumber.number, authorNumber.author)
}
}
- Output:
As of 5th March 2020:
Total tasks : 1237 Total authors : 287 The top 20 authors by number of tasks created are: Pos Tasks Author === ===== ====== 1: 178 Paddy3118 2: 71 Markhobley 3: 61 Gerard Schildberger 4: 55 Mwn3d 5: 39 NevilleDNZ 6: 33 Short Circuit 7: 30 Nigel Galloway 8: 29 Thundergnat 9: 23 Grondilu 10: 21 Dkf 11: 20 Fwend 11: 20 Blue Prawn 13: 19 CalmoSoft 14: 18 Kernigh 15: 17 ShinTakezou 15: 17 Dmitry-kazakov 15: 17 Ledrug 18: 13 Abu 18: 13 Paulo Jorente 18: 13 Waldorf
Julia
""" Rosetta code task rosettacode.org/wiki/Rosetta_Code/List_authors_of_task_descriptions """
using Dates
using DataFrames
using EzXML
using HTTP
using JSON3
""" Get Rosetta Code authors of tasks, output as dataframe """
function rosetta_code_authors(verbose = false)
URL = "https://rosettacode.org/w/api.php?"
PARAMS = ["action" => "query", "format" => "json", "formatversion" => "2", "generator" => "categorymembers",
"gcmtitle" => "Category:Programming_Tasks", "gcmlimit" => "500", "rawcontinue" => "", "prop" => "title"]
DRAFTPARAMS = ["action" => "query", "format" => "json", "formatversion" => "2", "generator" => "categorymembers",
"gcmtitle" => "Category:Draft_Programming_Tasks", "gcmlimit" => "500", "rawcontinue" => "", "prop" => "title"]
titles = Pair{String, Bool}[]
dateformat = DateFormat("HH:SS, d U y")
df = empty!(DataFrame([[""], [""], [now()], [true]], ["Author", "Title", "CreationDate", "IsDraftTask"]))
for param in [PARAMS, DRAFTPARAMS] # get the titles of the tasks and draft tasks, store list in alltasks
continueposition = ""
queryparams = copy(param)
isdraft = param == DRAFTPARAMS
while true
resp = HTTP.get(URL * join(map(p -> p[1] * (p[2] == "" ? "" : ("=" * p[2])), queryparams), "&"))
json = JSON3.read(String(resp.body))
pages = json.query.pages
for p in pages
push!(titles, p.title => isdraft)
end
!haskey(json, "query-continue") && break # break if no more pages, else continue to next pages
queryparams = vcat(param, "gcmcontinue" => json["query-continue"]["categorymembers"]["gcmcontinue"])
end
end
for (i, title) in pairs(titles) # Get author of first revision of each page, assumed to be task creator/author
resp = HTTP.get("https://rosettacode.org/w/index.php?title=" * escape(title[1]) * "&dir=prev&action=history")
html = root(parsehtml(String(resp.body)))
xpath = "//span[@class=\"history-user\"]/a"
header = findlast(xpath, html)
author = header != nothing ? nodecontent(header) : ""
xpath2 = "//a[@class=\"mw-changeslist-date\"]"
header2 = findlast(xpath2, html)
creationdate = header2 != nothing ? DateTime(nodecontent(header2), dateformat) : missing
if author != ""
author = replace(author, r".+>" => "") # clean up from the hosting change
push!(df, [author, title[1], creationdate, title[2]])
verbose && println("Processed author $author of $title created $creationdate: page $i of ", length(titles))
end
end
sort!(df, :CreationDate, rev = true)
authorfreqs = sort!(combine(groupby(df, :Author), nrow => :Freq), :Freq, rev = true)
return df, authorfreqs
end
rosetta_code_authors()
- Output:
(1569×4 DataFrame Row │ Author Title CreationDate IsDraftTask │ String String DateTime Bool ──────┼─────────────────────────────────────────────────────────────────────────────────── 1 │ Markjreed Sieve of Pritchard 2022-08-25T19:00:09 false 2 │ Thundergnat Penta-power prime seeds 2022-08-19T20:00:59 true 3 │ Thundergnat Quad-power prime seeds 2022-08-19T20:00:23 true 4 │ Thundergnat Riordan numbers 2022-08-18T18:00:20 true 5 │ Thundergnat Pairs with common factors 2022-08-18T12:00:07 true 6 │ Thundergnat Klarner-Rado sequence 2022-08-17T22:00:36 true ⋮ │ ⋮ ⋮ ⋮ ⋮ 1564 │ Created by: X Determine if a string is numeric 2007-01-21T19:00:47 false 1565 │ MikeMol Empty program 2007-01-18T15:00:11 false 1566 │ 207.74.29.206 Window creation 2007-01-15T19:00:41 false 1567 │ MikeMol Table creation 2007-01-14T20:00:07 true 1568 │ MikeMol Hello world/Text 2007-01-09T16:00:45 false 1569 │ MikeMol File input/output 2007-01-09T14:00:45 false 1557 rows omitted, 315×2 DataFrame Row │ Author Freq │ String Int64 ─────┼──────────────────────────── 1 │ Paddy3118 199 2 │ CalmoSoft 135 3 │ Thundergnat 74 4 │ Markhobley 71 5 │ Gerard Schildberger 66 6 │ Mwn3d 55 ⋮ │ ⋮ ⋮ 310 │ Til 1 311 │ Backupbrain 1 312 │ Fabian 1 313 │ Vcelier 1 314 │ Created by: X 1 315 │ 207.74.29.206 1 303 rows omitted)
Nim
import algorithm, httpclient, re, strutils, tables
let
re1 = re("""<li><a href="/wiki/(.*?)"""")
re2 = re("""a href="/wiki/User:|mw/index\.php\?title=User:|wiki/Special:Contributions/([^"&]+)""")
const
Url1 = "http://rosettacode.org/wiki/Category:Programming_Tasks"
Url2 = "http://rosettacode.org/wiki/Category:Draft_Programming_Tasks"
Urls = [Url1, Url2]
var client = newHttpClient()
var tasks: seq[string]
var matches: array[1, string]
var start = 0
for url in Urls:
let body = client.getContent(url)
# Find all tasks.
while true:
start = body.find(re1, matches, start) + 1
if start == 0: break
if not matches[0].startsWith("Category:"):
tasks.add matches[0]
var authors: CountTable[string]
for task in tasks:
# Check the last or only history page for each task.
let page = "http://rosettacode.org/mw/index.php?title=$#&dir=prev&action=history".format(task)
let body = client.getContent(page)
# Find all the users in that page. The task author should be the final user on that page.
var matches: array[1, string]
start = 0
while true:
start = body.find(re2, matches, start) + 1
if start == 0: break
let author = matches[0].replace('-', ' ')
# Add this task to the author's count.
authors.inc(author)
# Sort the authors in descending order by number of tasks created.
authors.sort(Descending)
# Print the top twenty.
echo "Total tasks: ", tasks.len
echo "Total authors: ", authors.len
echo "\nThe top 20 authors by number of tasks created are:\n"
echo "Pos Tasks Author"
echo "=== ===== ======"
var pos = 0
for author, count in authors.pairs:
inc pos
echo ($pos).align(2), " ", ($count).align(3), " ", author
if pos == 20: break
- Output:
On 2021-06-29.
The top 20 authors by number of tasks created are: Pos Tasks Author === ===== ====== 1 196 Paddy3118 2 84 CalmoSoft 3 72 Markhobley 4 66 Gerard_Schildberger 5 55 Mwn3d 6 39 NevilleDNZ 7 39 Thundergnat 8 33 Nigel_Galloway 9 33 Short_Circuit 10 23 Grondilu 11 21 Blue_Prawn 12 20 Fwend 13 20 Dkf 14 18 Kernigh 15 17 Ledrug 16 17 ShinTakezou 17 17 Dmitry kazakov 18 14 Wherrera 19 13 Waldorf 20 13 Abu
Phix
To keep the output nice and short, lists the top 5 task creators.
Uses a cache: once a .hist file has been downloaded for a given
task, it is assumed to be good forever. Each task is about 20K,
so it will download around 25MB in total, for >= 1,219 tasks.
It does those sequentially, using curl_easy_ handles. I guess
if you really wanted to then using curl_multi_ handles would
properly thrash the rosettacode servers.
-- demo\rosetta\List_task_authors.exw without js -- (libcurl, file i/o, peek, progress..) include rosettacode_cache.e -- see Rosetta_Code/Count_examples#Phix constant history_user = `<span class='history-user'><a href="` function count_tasks() if get_file_type("rc_cache")!=FILETYPE_DIRECTORY then if not create_directory("rc_cache") then crash("cannot create rc_cache directory") end if end if sequence tasks = dewiki(open_category("Programming_Tasks",1,2)) & dewiki(open_category("Draft_Programming_Tasks",2,2)) integer ntasks = length(tasks) sequence users = {}, utask = {}, ntask = {} for i=1 to ntasks do string ti = tasks[i], url = sprintf("http://rosettacode.org/mw/index.php?title=%s&action=history&dir=prev&limit=1",{ti}), contents = open_download(ti&".hist",url,i,ntasks) integer k = match(history_user,contents) if k=0 then ?9/0 end if k = find('>',contents,k+length(history_user)) if k=0 then ?9/0 end if k += 1 integer e = match("</a>",contents,k) if e=0 then ?9/0 end if string user = contents[k..e-1] k = find(user,users) if k=0 then users = append(users,user) utask = append(utask,{i}) ntask = append(ntask,1) else utask[k] &= i ntask[k] += 1 end if ti = html_clean(ti) -- (in case you want to show them) tasks[i] = ti if get_key()=#1B then progress("escape keyed\n") exit end if end for curl_cleanup() progress("\n") integer nusers = length(users) sequence tags = custom_sort(ntask,tagset(nusers)) integer top5 = 0 for i=nusers to 1 by -1 do integer ui = tags[i] if ntask[ui]<5 then exit end if printf(1,"%s tasks:%d\n",{users[ui],ntask[ui]}) top5 += 1 if top5>5 then exit end if end for return {ntasks,nusers} end function progress("Total: %d tasks by %d authors\n",count_tasks())
- Output:
As of 6th Jan 2020
Paddy3118 tasks:176 Markhobley tasks:71 Gerard Schildberger tasks:59 Mwn3d tasks:55 NevilleDNZ tasks:39 Short Circuit tasks:33 Total: 1219
As of 6th Jan 2022
Paddy3118 tasks:199 CalmoSoft tasks:128 Markhobley tasks:71 Gerard Schildberger tasks:66 Mwn3d tasks:55 Thundergnat tasks:44 Total: 1492 tasks by 307 authors
Raku
(formerly Perl 6)
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.)
use HTTP::UserAgent;
use URI::Escape;
use JSON::Fast;
use Sort::Naturally;
# Friendlier descriptions for task categories
my %cat = (
'Programming_Tasks' => 'Task',
'Draft_Programming_Tasks' => 'Draft'
);
my $client = HTTP::UserAgent.new;
my $url = 'https://rosettacode.org/w';
my $tablefile = './RC_Authors.txt';
my $hashfile = './RC_Authors.json';
my %tasks;
# clear screen
run($*DISTRO.is-win ?? 'cls' !! 'clear');
%tasks = $hashfile.IO.e ?? $hashfile.IO.slurp.&from-json !! ( );
sleep 1;
#=begin update
note 'Retrieving task information...';
my %filter;
for %cat.keys.sort -> $category {
mediawiki-query(
$url, 'pages',
:generator<categorymembers>,
:gcmtitle("Category:$category"),
:gcmlimit<350>,
:rawcontinue(),
:prop<title>
).map( { %filter{.<title>} = %cat{$category} } )
}
my $delete = %tasks.keys (-) %filter.keys;
%tasks.delete($_) for $delete.keys; #Tasks that have changed names or been removed
my @add;
for %filter.keys -> $title {
if %tasks{$title}:exists {
%tasks{$title}<category> = %filter{$title} # update status
} else {
@add.push: $title => %filter{$title} # New Tasks
}
}
if @add {
.say for 'Adding new tasks:', |@add;
}
for @add -> $task {
mediawiki-query(
$url, 'pages',
:titles($task.key),
:prop<revisions>,
:rvprop<user|timestamp>,
:rvstart<2000-01-01T01:01:01Z>,
:rvdir<newer>,
:rvlimit<1>
).map: {
print clear, 1 + $++, ' ', .[0]<title>;
%tasks{.[0]<title>}<category> = $task.value;
%tasks{.[0]<title>}<author> = .[0]<revisions>[0]<user>;
%tasks{.[0]<title>}<date> = .[0]<revisions>[0]<timestamp>.subst(/'T'.+$/, '')
}
}
print clear;
# Save information to a local file
note "\nTask information saved to local file: {$hashfile.IO.absolute}";
$hashfile.IO.spurt(%tasks.&to-json);
#=end update
# Load information from local file
%tasks = $hashfile.IO.e ?? $hashfile.IO.slurp.&from-json !! ( );
# Convert saved task / author info to a table
note "\nBuilding table...";
my $count = +%tasks;
my $taskcnt = +%tasks.grep: *.value.<category> eq %cat<Programming_Tasks>;
my $draftcnt = $count - $taskcnt;
# Open a file handle to dump table in
my $out = open($tablefile, :w) or die "$!\n";
# Add table boilerplate and header
$out.say:
"\{|class=\"wikitable sortable\"\n",
"|+ As of { Date.today } :: Total Tasks: { $count }:: Tasks: { $taskcnt }",
" ::<span style=\"background-color:#ffd\"> Draft Tasks: { $draftcnt } </span>",
":: By {+%tasks{*}».<author>.unique} Authors\n",
"! Author !! Tasks !! Authored"
;
# Get sorted unique list of task authors
for %tasks{*}».<author>.unique.sort(&naturally) -> $author {
# Get list of tasks by this author
my @these = %tasks.grep( { $_.value.<author> eq $author } );
my $s = +@these == 1 ?? '' !! 's';
# Add author and contributions link to the first two cells
$out.say:
$author ~~ /\d/
?? "|- id=\"$author\"\n|data-sort-value=\"{ sort-key $author }\"|[[User:$author|$author]]\n"~
"|data-sort-value=\"{ +@these }\"|[[Special:Contributions/$author|"~
"{ +@these } task{ $s }]]"
!! "|- id=\"$author\"\n|[[User:$author|$author]]\n"~
"|data-sort-value=\"{ +@these }\"|[[Special:Contributions/$author|"~
"{ +@these } task{ $s }]]"
;
if +@these > 2 {
$out.say: "|style=\"padding: 0px;\"|\n",
"\{|class=\"broadtable sortable\" style=\"width: 100%;\"\n",
"! Task Name !! Date Added !! Status";
}
else {
$out.say: "|style=\"padding: 0px;\"|\n",
"\{|class=\"broadtable\" style=\"width: 100%;\"";
}
# Tasks by this author, sorted by name
for @these.sort({.key.&naturally}) -> $task {
my $color = $task.value.<category> eq 'Draft' ?? '#ffd' !! '#fff';
# add the task link, date and status to the table in the second cell
$out.say: "|-\n|style=\"background-color: $color;\"",
( $task.key ~~ /\d/
?? " data-sort-value=\"{ sort-key $task.key }\"| [[{uri-escape $task.key}|{$task.key}]]\n"
!! "| [[{uri-escape $task.key}|{$task.key}]]\n"
),
"|style=\"width: 10em; background-color: $color;\"| {$task.value.<date>}\n",
"|style=\"width: 6em; background-color: $color;\"| {$task.value.<category>}",
}
$out.say: '|}'
}
$out.say( "|}\n" );
$out.close;
note "Table file saved as: {$tablefile.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("&") }
sub sort-key ($a) { $a.lc.subst(/(\d+)/, ->$/ {0~(65+($0.chars)).chr~$0},:g) }
sub clear { "\r" ~ ' ' x 100 ~ "\r" }
- Sample output:
See full output at Rosetta_Code/List_authors_of_task_descriptions/Full_list
Author | Tasks | Authored | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2Powers | 2 tasks |
| ||||||||||||
12.175.32.19 | 1 task |
| ||||||||||||
12Me21 | 1 task |
| ||||||||||||
many rows omitted... | ||||||||||||||
Zorro1024 | 2 tasks |
| ||||||||||||
Zzo38 | 1 task |
| ||||||||||||
Русский | 3 tasks |
|
Wren
An embedded program so we can use libcurl.
Takes upwards of 80 minutes to run as the history page(s) for each task need to be downloaded and parsed to find the author. Worse still, given we are pounding a busy server pretty hard, there are lots of 'bad gateway' and other errors (94 on this particular run!) which necessitate adding tasks back to the task list until they are eventually downloaded and parsed successfully which can add several minutes to the overall time.
/* Rosetta_Code_List_authors_of_task_descriptions.wren */
import "./pattern" for Pattern
import "./fmt" for Fmt
var CURLOPT_URL = 10002
var CURLOPT_FOLLOWLOCATION = 52
var CURLOPT_WRITEFUNCTION = 20011
var CURLOPT_WRITEDATA = 10001
foreign class Buffer {
construct new() {} // C will allocate buffer of a suitable size
foreign value // returns buffer contents as a string
}
foreign class Curl {
construct easyInit() {}
foreign easySetOpt(opt, param)
foreign easyPerform()
foreign easyCleanup()
}
var curl = Curl.easyInit()
var getContent = Fn.new { |url|
var buffer = Buffer.new()
curl.easySetOpt(CURLOPT_URL, url)
curl.easySetOpt(CURLOPT_FOLLOWLOCATION, 1)
curl.easySetOpt(CURLOPT_WRITEFUNCTION, 0) // write function to be supplied by C
curl.easySetOpt(CURLOPT_WRITEDATA, buffer)
curl.easyPerform()
return buffer.value
}
var p1 = Pattern.new("title/=\"[+1^\"]\"")
var p2 = Pattern.new("cmcontinue/=\"[+1^\"]\"")
var pi = "\"&"
var p3 = Pattern.new("a href/=\"//[wiki//User:|w//index.php?title/=User:|wiki//Special:Contributions//][+1/I]\"", 0, pi)
var findTasks = Fn.new { |category|
var url = "https://www.rosettacode.org/w/api.php?action=query&list=categorymembers&cmtitle=Category:%(category)&cmlimit=500&format=xml"
var cmcontinue = ""
var tasks = []
while (true) {
var content = getContent.call(url + cmcontinue)
var matches1 = p1.findAll(content)
for (m in matches1) {
var title = m.capsText[0].replace("'", "'").replace(""", "\"")
tasks.add(title)
}
var m2 = p2.find(content)
if (m2) cmcontinue = "&cmcontinue=%(m2.capsText[0])" else break
}
return tasks
}
var tasks = findTasks.call("Programming_Tasks") // 'full' tasks only
tasks.addAll(findTasks.call("Draft_Programming_Tasks"))
var tc = tasks.count
var authors = {}
while (tasks.count > 0) {
var task = tasks[0].replace(" ", "_").replace("+", "\%2B")
// check the last or only history page for each task
var url = "https://rosettacode.org/w/index.php?title=%(task)&dir=prev&action=history"
tasks.removeAt(0)
var content = getContent.call(url)
content = content.replace("http://www.rosettacode.org", "")
var matches = p3.findAll(content)
// if there are no matches there must have been a 'bad gateway' or other error
if (matches.count == 0) {
// add back a failed task until it eventually succeeds
tasks.add(task)
continue
}
// the task author should be the final user on that page
var author = matches[-1].capsText[1].replace("_", " ")
// add this task to the author's count
if (authors.containsKey(author)) {
authors[author] = authors[author] + 1
} else {
authors[author] = 1
}
}
// sort the authors in descending order by number of tasks created
var authorNumbers = authors.toList
authorNumbers.sort { |a, b| a.value > b.value }
// print those who've completed at least 9 tasks
System.print("As at 10th September 2022:\n")
System.print("Total tasks : %(tc)")
System.print("Total authors : %(authors.count)")
System.print("\nThe authors who have created at least 9 tasks are:\n")
System.print("Pos Tasks Author")
System.print("==== ===== ======")
var lastNumber = 0
var lastIndex = -1
var i = 0
for (authorNumber in authorNumbers.where { |me| me.value >= 9 }) {
var j = i
var eq = " "
if (authorNumber.value == lastNumber) {
j = lastIndex
eq = "="
} else {
lastIndex = i
lastNumber = authorNumber.value
}
Fmt.print("$3d$s $3d $s", j+1, eq, authorNumber.value, authorNumber.key)
i = i + 1
}
curl.easyCleanup()
We now embed this script in the following C program, build and run.
/* gcc Rosetta_Code_List_authors_of_task_descriptions.c -o Rosetta_Code_List_authors_of_task_descriptions -lcurl -lwren -lm */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <curl/curl.h>
#include "wren.h"
struct MemoryStruct {
char *memory;
size_t size;
};
/* C <=> Wren interface functions */
static size_t WriteMemoryCallback(void *contents, size_t size, size_t nmemb, void *userp) {
size_t realsize = size * nmemb;
struct MemoryStruct *mem = (struct MemoryStruct *)userp;
char *ptr = realloc(mem->memory, mem->size + realsize + 1);
if(!ptr) {
/* out of memory! */
printf("not enough memory (realloc returned NULL)\n");
return 0;
}
mem->memory = ptr;
memcpy(&(mem->memory[mem->size]), contents, realsize);
mem->size += realsize;
mem->memory[mem->size] = 0;
return realsize;
}
void C_bufferAllocate(WrenVM* vm) {
struct MemoryStruct *ms = (struct MemoryStruct *)wrenSetSlotNewForeign(vm, 0, 0, sizeof(struct MemoryStruct));
ms->memory = malloc(1);
ms->size = 0;
}
void C_bufferFinalize(void* data) {
struct MemoryStruct *ms = (struct MemoryStruct *)data;
free(ms->memory);
}
void C_curlAllocate(WrenVM* vm) {
CURL** pcurl = (CURL**)wrenSetSlotNewForeign(vm, 0, 0, sizeof(CURL*));
*pcurl = curl_easy_init();
}
void C_value(WrenVM* vm) {
struct MemoryStruct *ms = (struct MemoryStruct *)wrenGetSlotForeign(vm, 0);
wrenSetSlotString(vm, 0, ms->memory);
}
void C_easyPerform(WrenVM* vm) {
CURL* curl = *(CURL**)wrenGetSlotForeign(vm, 0);
curl_easy_perform(curl);
}
void C_easyCleanup(WrenVM* vm) {
CURL* curl = *(CURL**)wrenGetSlotForeign(vm, 0);
curl_easy_cleanup(curl);
}
void C_easySetOpt(WrenVM* vm) {
CURL* curl = *(CURL**)wrenGetSlotForeign(vm, 0);
CURLoption opt = (CURLoption)wrenGetSlotDouble(vm, 1);
if (opt < 10000) {
long lparam = (long)wrenGetSlotDouble(vm, 2);
curl_easy_setopt(curl, opt, lparam);
} else if (opt < 20000) {
if (opt == CURLOPT_WRITEDATA) {
struct MemoryStruct *ms = (struct MemoryStruct *)wrenGetSlotForeign(vm, 2);
curl_easy_setopt(curl, opt, (void *)ms);
} else if (opt == CURLOPT_URL) {
const char *url = wrenGetSlotString(vm, 2);
curl_easy_setopt(curl, opt, url);
}
} else if (opt < 30000) {
if (opt == CURLOPT_WRITEFUNCTION) {
curl_easy_setopt(curl, opt, &WriteMemoryCallback);
}
}
}
WrenForeignClassMethods bindForeignClass(WrenVM* vm, const char* module, const char* className) {
WrenForeignClassMethods methods;
methods.allocate = NULL;
methods.finalize = NULL;
if (strcmp(module, "main") == 0) {
if (strcmp(className, "Buffer") == 0) {
methods.allocate = C_bufferAllocate;
methods.finalize = C_bufferFinalize;
} else if (strcmp(className, "Curl") == 0) {
methods.allocate = C_curlAllocate;
}
}
return methods;
}
WrenForeignMethodFn bindForeignMethod(
WrenVM* vm,
const char* module,
const char* className,
bool isStatic,
const char* signature) {
if (strcmp(module, "main") == 0) {
if (strcmp(className, "Buffer") == 0) {
if (!isStatic && strcmp(signature, "value") == 0) return C_value;
} else if (strcmp(className, "Curl") == 0) {
if (!isStatic && strcmp(signature, "easySetOpt(_,_)") == 0) return C_easySetOpt;
if (!isStatic && strcmp(signature, "easyPerform()") == 0) return C_easyPerform;
if (!isStatic && strcmp(signature, "easyCleanup()") == 0) return C_easyCleanup;
}
}
return NULL;
}
static void writeFn(WrenVM* vm, const char* text) {
printf("%s", text);
}
void errorFn(WrenVM* vm, WrenErrorType errorType, const char* module, const int line, const char* msg) {
switch (errorType) {
case WREN_ERROR_COMPILE:
printf("[%s line %d] [Error] %s\n", module, line, msg);
break;
case WREN_ERROR_STACK_TRACE:
printf("[%s line %d] in %s\n", module, line, msg);
break;
case WREN_ERROR_RUNTIME:
printf("[Runtime Error] %s\n", msg);
break;
}
}
char *readFile(const char *fileName) {
FILE *f = fopen(fileName, "r");
fseek(f, 0, SEEK_END);
long fsize = ftell(f);
rewind(f);
char *script = malloc(fsize + 1);
fread(script, 1, fsize, f);
fclose(f);
script[fsize] = 0;
return script;
}
static void loadModuleComplete(WrenVM* vm, const char* module, WrenLoadModuleResult result) {
if( result.source) free((void*)result.source);
}
WrenLoadModuleResult loadModule(WrenVM* vm, const char* name) {
WrenLoadModuleResult result = {0};
if (strcmp(name, "random") != 0 && strcmp(name, "meta") != 0) {
result.onComplete = loadModuleComplete;
char fullName[strlen(name) + 6];
strcpy(fullName, name);
strcat(fullName, ".wren");
result.source = readFile(fullName);
}
return result;
}
int main(int argc, char **argv) {
WrenConfiguration config;
wrenInitConfiguration(&config);
config.writeFn = &writeFn;
config.errorFn = &errorFn;
config.bindForeignClassFn = &bindForeignClass;
config.bindForeignMethodFn = &bindForeignMethod;
config.loadModuleFn = &loadModule;
WrenVM* vm = wrenNewVM(&config);
const char* module = "main";
const char* fileName = "Rosetta_Code_List_authors_of_task_descriptions.wren";
char *script = readFile(fileName);
WrenInterpretResult result = wrenInterpret(vm, module, script);
switch (result) {
case WREN_RESULT_COMPILE_ERROR:
printf("Compile Error!\n");
break;
case WREN_RESULT_RUNTIME_ERROR:
printf("Runtime Error!\n");
break;
case WREN_RESULT_SUCCESS:
break;
}
wrenFreeVM(vm);
free(script);
return 0;
}
- Output:
As at 10th September 2022: Total tasks : 1569 Total authors : 315 The authors who have created at least 9 tasks are: Pos Tasks Author ==== ===== ====== 1 199 Paddy3118 2 135 CalmoSoft 3 74 Thundergnat 4 71 Markhobley 5 66 Gerard Schildberger 6 55 Mwn3d 7 39 NevilleDNZ 7= 39 Nigel Galloway 9 33 MikeMol 10 27 PureFox 11 23 Grondilu 12 21 Blue Prawn 13 20 Fwend 13= 20 Dkf 15 19 Wherrera 16 18 Kernigh 17 17 Dmitry-kazakov 17= 17 ShinTakezou 17= 17 Ledrug 20 13 Paulo Jorente 20= 13 Abu 20= 13 Waldorf 23 12 Ce 23= 12 Kevin Reid 23= 12 Puppydrum64 26 10 Bearophile 26= 10 Tinku99 28 9 TimSC 28= 9 Petelomax 28= 9 EMBee 28= 9 Trizen