I'm working on modernizing Rosetta Code's infrastructure. Starting with communications. Please accept this time-limited open invite to RC's Slack.. --Michael Mol (talk) 20:59, 30 May 2020 (UTC)

User talk:Paddy3118

From Rosetta Code


zkl "Aliquot sequence classifications" incomplete[edit]

Hi - you flagged this as incomplete due to lack of 140737488355328 check. Actually, it is there as (2).pow(47). So I added a comment and removed the flag. Hopefully OK now. Thanks, Craig


Sad, but I like to see how my tasks are faring over time:

Archived to User talk:Paddy3118/Vanity Search

Vanity Search Updated[edit]

After the 4th of July RC updates, My RC Vanity Searcher needed to be updated due to HTML changes. I decided to add a modification, that shows the movement between the order a page was created in, vs the max views order called +/-.

Moved to User talk:Paddy3118/Vanity Search Updated ...

Yet more Vanity searches[edit]

Forgive me for I have sinned. It has been many months since posted my Vanity search data due to a site update causing my script to need updating, and I just couldn't be *rsed.

Poly thanks[edit]

Thanks but if you needed you see the example to get it clearer... it means the pseudocode is not too much clear:D More over, implemeting Octave solution, I've discovered it's more convenient to keep the higher power first (in the "vectors"), so likely I am going to rewrite the pseudocode ;) ... --ShinTakezou 16:31, 18 June 2009 (UTC)

Ethiopian Multiplication[edit]

Chalk one up to your vanity search; Ethiopian Multiplication has been the single biggest landing page for Sunday and Monday this week. There's been a huge influx of traffic to it via StumbleUpon. --Short Circuit 02:13, 25 August 2009 (UTC)

Yah!! (I hope the traffic is OK on your servers though)?
Lets hope some stay for a browse around the whole site... --Paddy3118 03:48, 25 August 2009 (UTC)
According to the analytics the bounce rate for stumbleupon referrals for the last three days is about 70%. So some did stay to look around. --Mwn3d 18:32, 25 August 2009 (UTC)

It is great that people are staying to look around, but I am puzzled? I can't find what is sending people to the Ethiopian Multiplication page on the Web. Any links? --Paddy3118 18:21, 26 August 2009 (UTC)

http://www.stumbleupon.com/url/rosettacode.org/wiki/Ethiopian_Multiplication --Mwn3d 18:22, 26 August 2009 (UTC)
That one mention means so many hits? Wow. I thought only /. and reddit had that kind of affect. --Paddy3118 18:48, 26 August 2009 (UTC)
Well that link is from a while ago. Someone else must have found it and put a link to that SU link somewhere else. I'm not sure how to figure out where though. --Mwn3d 18:56, 26 August 2009 (UTC)
It wasn't slashdot, digg or front-page-reddit level. Those would have resulted in tens of thousands of visits over a day. Peak traffic so far was Monday, where Google Analytics claims as much as 7.7 page views per minute. (Which is actually a bit off, as GA won't register raw, json or css page requests, so the requests would have been much more clumped, or bot edits, which it wouldn't see at all.) There were 368% more visits Monday(3,768) than the previous Monday(804). Each visit monday averaged 1.79 pages/visit, while the previous Monday averaged 3.56. These wouldn't be hard loads for most setups, but we've been riding close to the limits of the Slice under bursty loads for quite a while. I've got an offer to be pretty much the sole occupant of a 4-core Xeon box with 16GB of RAM, but It'll be a gradual transition, if it goes through at all; I won't have root, and I'm uncertain about the current admin's reaction time. Otherwise, I need to find an income source for RC. My number one desire would be to sell content-derived books, but selling t-shirts and the like, even at $5 markup each, would easily make the site pay for itself as it currently sits; Five t-shirts a month would do it. The next most likely option is a donation link, but I hate asking for handouts. And I hate banner ads even more. --Short Circuit 21:22, 26 August 2009 (UTC)

Um... I have just seen one of the last pages I created jump to the HEAD of my vanity list, and by a huge margin! After seeing the figures (below), I'm gob-smacked!

   22   7261 +31 Ethiopian Multiplication
   71   3276 +11 Knapsack Problem
   90   2910  -1 Monty Hall simulation
  104   2698  +4 Conway's Game of Life
  121   2350  +0 Anagrams
  197   1486  +1 One dimensional cellular automata
  206   1388  -4 Web Scraping
  209   1317  -2 Max Licenses In Use
  220   1263  -8 Spiral
  235   1112 +10 Y combinator
  260    994  +3 Yuletide Holiday
  261    989  -8 Sequence of Non-squares
  262    983  -2 Column Aligner
  272    928  +5 First-class functions
  288    836  -6 Data Munging
  297    814  -6 Data Munging 2
  300    803  -5 Probabilistic Choice
  304    794  +7 Bulls and Cows
  306    783  -1 Command Line Interpreter
  310    772  +4 Mutual Recursion
  338    682  +0 Functional Composition
  371    605  -5 Integer literals
  386    554  -8 Common number base formatting
  395    533  -1 Look-and-say sequence
  418    473  -9 Octal
  443    428  -4 Exceptions Through Nested Calls
  466    344  +2 Average/Simple moving average
  490    298  -2 Testing a Function
  492    297  -1 Sort stability
  524    249  -3 Select
  529    244  -1 Send an email
  562    199  -1 Topological (dependency) sort
  666    118  +3 Simple Random Distribution Checker
  678    103  +0 First-class Numbers
  680    101  +0 Seven-dice from Five-dice
  685     87  +1 List Flattening
 99999      0  -4 Russian Peasant Multiplication

--Paddy3118 04:28, 25 August 2009 (UTC)


Ethiopian Multiplication jumps to be the most popular page behind the Main Page, and I can find no evidence of a 'buzz' around it. No blog entries, no group discussions. I would have expected something more? --Paddy3118 06:55, 1 September 2009 (UTC)

It's all coming through StumbleUpon. I'd like to write a blog post on exactly what I think happened, but it's going to take a while, and I need to look into it more. A simplified explanation would be that a SU user discovered the page, liked it or reviewed it, leading to both his subscribers (and their subscribers) to see it, as well as increasing the page's general ranking in SU's page selection algorithm. This would be made easier to show if I could identify a trend around the phrase "ethiopian multiplication" in blogs and searches over the last month. The functionality is there in Google's advanced search, but it requires time and opportunity. --Short Circuit 14:33, 1 September 2009 (UTC)

Ethiopian Multiplication: Missing function names[edit]

What's the problem with the SNOBOL4? It works (I just tested it!). Is it because the half/double/even functions aren't there? I didn't write it, mind. I could tweak it to suit, but then it makes it less terse, less efficient, less SNOBOL4. --Axtens 04:32, 25 February 2010 (UTC) And can you point out where the half/double and even are in the SNUSP version? --Axtens 04:39, 25 February 2010 (UTC)

The halve add and double functions in the SNUSP example are actually where it says "halve", "add", and "double". Other languages have had to conform to the separate function requirement, so I don't think we should allow a special case for SNOBOL4. --Mwn3d 04:47, 25 February 2010 (UTC)
I purposefully turn a blind eye to the SNUSP] versions' idiosyncrasies, but that is because I treat it and Brainf*ck as like the Monster Raving Loony party in British elections - it is there, it can be a good laugh, but taking them seriously would lead to a happy dementia :-)
The problem with the SNOBOL4 is that it doesn't use the function names for functionality as expressed in the task description and followed by the other 'language' examples. --Paddy3118 05:10, 25 February 2010 (UTC)
Okay, then, I'll have a go at the SNOBOL4, unless the original author gets there first. As for SNUSP ... hmmm, show's how good I am with esolangs :\ . --Axtens 06:11, 25 February 2010 (UTC)
On a slightly related note...is there a particular reason to insist on "function" when "routine" couple be appropriate? Take assembler languages, for example. The type of code structure offered by functions is available in any language with goto, but without explicit language support for arguments and return values. --Michael Mol 14:22, 25 February 2010 (UTC)
Hi Michael, The task refers to "functions/methods/procedures/subroutines" I guess I could have followed it by three dots: ..., but I thought most languages would be able to work out what was needed, and the problem seems to be with their omission when the language does have those facilities. I think if I point out the omission, Someone could say that their is no such construct in their language that is normally used, but I don't think it will come to that, except maybe with calculator languages that might not have named subroutines? --Paddy3118 17:46, 25 February 2010 (UTC)
I think the inclusion of incorrect code is better than no code at all, so long as there is an explicit understanding of why the code is marked incorrect, and suggestions are made for how it can be corrected. With simple removal, the unobservant and rushed (and I must count myself among these) might just see a lack or unexplained removal of code, and make the same mistake that the original contributor did. Worse, the original contributor might see the code has been removed, without understanding why. See the mess around the editing of the Proof task, for an extreme example. (I saw the creator of that task say he wished he'd never created the task in the first place, because nobody "got" the task enough to give a correct response. I'd rather avoid that degree of despondency and cynicism happening to frequent contributors.)
What it boils down to is that my reasoning isn't technical or linguistic, but rather done from the perspective of how contributors will interact with the resulting circumstances in the future. Well, that, and trying to maintain the utility of the spirit of the task without getting too focused on particular language features. Does that make sense? --Michael Mol 19:10, 25 February 2010 (UTC)
How about flagging code as incorrect and deleting it after say a month of inactivity? You give a reasonable time for corrections to be made, but eventually don't litter the page with abandoned, buggy code. --Paddy3118 21:01, 25 February 2010 (UTC)
I like the idea, but wouldn't know how to effectively automate the cleanup (or, at least, a maintain a listing of pages that require urgent cleanup). If it could be done right, though, it could be incorporated into the Unimpl page template such that "needs attention within a week" and "needs attention within two weeks" could be placed higher in the page than the general Unimpl, ENA and Omit sections. (I suppose a lot of the pain could be dealt with by having epoch deadlines, such as End-of-[Jan-Dec], and setting the deadline for each required correction to end-of-next-month. That way, we would only need twelve categories for tracking deadlines, rather than finding and parsing arbitrary timestamps.) If code goes uncorrected, it could be marked as Omitted (with an explanation given in the omit usage), or removed entirely, with a placeholder HTML comment for the next person to come along. --Michael Mol 22:03, 25 February 2010 (UTC)

Note from a HS math instructor[edit]

I forwarded you an email I got from a math instructor who was pleased to see a task that fit into his CS-into-HS-math curriculum ideas. At least, I think I forwarded it to you; I don't remember how that email address wound up in my contacts list, but it looked correct from my recollection. :) --Michael Mol 17:52, 17 April 2010 (UTC)

Michael, Thanks for forwarding it - it's great to get positive feedback from a lecturer. (Maybe the site needs a "visitors book")? --Paddy3118 01:18, 18 April 2010 (UTC)


Thanks for finding the new location for the BBC Video. Too bad it isn't visible around the world without some network expertise. The Beeb could take a lesson from the Khan Academy.
GarveyPatrickD (talk) 14:14, 10 May 2021 (UTC)

Hmmm, It's a difficult choice of some or none. There are other references however, and the task description seems complete in itself.
Thanks for catching the staleness :-)
--Paddy3118 (talk) 14:22, 10 May 2021 (UTC)

Evolutionary algorithm[edit]

I've had the dreaded Flu the past week, and am still getting over it. To test my faculties I took a look at what tasks were requested and took on Weasel algorithm.

I wasn't quite happy with the results, and wrote that up in a blog entry. One of the commenters there, (thanks Steve), used the phrase 'evolutionary algorithm', which turned out to fit a WP page, that re-introduced me to all the proper nomenclature. I decided that a re-write using the proper terms, would then make a better RC task.

I tried to word the RC task so that people could experiment and slot in different algorithms for things like the fitness and mutation functions and I'm pleased to see that already the C language solution has done just that. (I do like the way the C is coded too; very nice).

After the coding, what gets me is the amount of controversy that was caused by such programs, especially the original quoted in a book by Richard Dawkins (that I have not read). It seems so little to be controversial about, but then I guess RD's delivery might inflame some.

--Paddy3118 04:28, 7 October 2009 (UTC)

Great little task you added here. rldrenth 7-oct-2009

Sorting Using a Custom Comparator - C# incorrect[edit]

By that measure, the ADA solution would also be incorrect? Sorting Using a Custom Comparator#Custom_Comparator.adb

Thanks, I've tried to point that out now. --Paddy3118 06:45, 20 November 2009 (UTC)

Series out of control[edit]

In reply to [1]: see [2] (ugh, what a horrific URL!). I'm not gonna change it back, because that would feel too much like edit-warring to me (and heaven forbid I should edit-war over grammar), but I think most professional editors would prefer my version. —Underscore (Talk) 20:53, 16 December 2009 (UTC)

I thought I was taught that A, B, C, and D; was to be preferred over A and B and C and D. My partner concurs? P.S. I do try to be cautious over edits, but I thought i was on solid ground. Is this possibly an English vs American English thing? --Paddy3118 21:08, 16 December 2009 (UTC)
You're quite right that "A, B, C, and D" is in general better than "A and B and C and D", but that's not the issue here. Look closer at the explication I linked to and at your own sentence. Here's the latter with the irrelevant parts removed:
This regexp is multi-line, verbose and uses named groups.
Clearly, this is equivalent to:
This regexp is multi-line. This regexp is verbose. This regexp is uses named groups.
So you see, without noticing it, you're making "and" perform two functions at once:
  1. separating two complements of "is" ("multi-line" and "verbose"), and
  2. separating two predicates of "This regexp" ("is multi-line and verbose" and "uses named groups").
This is a no-no because it leads to nonsensical implications such as the "is uses" above. (P.S. I'm American; dunno about you.) —Underscore (Talk) 23:56, 16 December 2009 (UTC)

Thanks Underscore for pointing out my error. Mea culpa. I did try your reference before, but the google book search did not show the details for some reason. I have now done my own search with your term "series out of control" and got that full explanation. I will of course change the edit. --Paddy3118 03:28, 17 December 2009 (UTC)

Edited! --Paddy3118 03:32, 17 December 2009 (UTC)
Any time. :) —Underscore (Talk) 23:43, 17 December 2009 (UTC)

Hi Paddy, I'm Wolf[edit]

Sorry to approach you like this, if I would know your preferred way of communication, I would use it. You may remember me from 19.May 2010, you send me (within minutes of my posting of inferior code) a note pointing out the problem.

I might be totally off track here, but who do you recommend to involve in a discussion about a faulty code? An AHK forum user has discovered a "misleading" pseudo-code regarding CombSort Algorithm, and I want to help fix that. My first steps were starting a discussion on Comb_sort, then posting to Village_Pump. In over a week, there was no answer, no hints for me what to do, so I decided to ask someone who keeps an eye on quality (such as yourself).

Could you please check out my example of numbers-to-be-sorted with the Python code that is posted, and kick me hard if I deserve it. I am a fairly new member here, and try to cause as little upset as possible. But there should be a procedure (informal or otherwise) to ensure a certain level of quality.

BTW, the pseudo-code is (maybe) copied from wikipedia, where it is also wrong (if I am right).

--Wolf 21:00, 26 May 2010 (UTC)

Hi Wolf, my own, sorry, excuse was that I do have some areas of algorithms that don't excite me to contribute and sorting algorithms is on the edge of that as only a few (of the many, many) sorting routines have interested me of late; and mainly because of their close links to other things that I am more interested in. I took a look and gave a tech. reply on the Talk:Sorting algorithms/Comb sort page. --Paddy3118 05:35, 27 May 2010 (UTC)

Averages/Root mean square[edit]

Regarding the edit here: What exactly does that paragraph add to the page? Isn't the final size of the executable rather irrelevant? And if it only works with a specific compiler version, there is always {{works with}}. Or am I missing something here? —Johannes Rössel 18:18, 23 June 2010 (UTC)

Sorry Johannes, I just did a minor edit of removing a single space. It's not my text. --Paddy3118 19:55, 23 June 2010 (UTC)
Argh, sorry. I'm reading too many diffs a day and MediaWiki automatically marking compete paragraphs red if only a single byte changed is a bit confusing. Apologies. —Johannes Rössel 22:57, 23 June 2010 (UTC)

The XML link[edit]

The XML link at the top of XML/Output comes from it (technically) being a subpage of XML. I looked for a bit on the MediaWiki help sites but couldn't find a way to remove it for a single page. They can be turned off for the whole site, but sometimes they're useful. --Mwn3d 01:27, 7 August 2010 (UTC)

Thanks. I'll ignore it then. --Paddy3118 01:28, 7 August 2010 (UTC)

More privs.[edit]

Use them sparingly and wisely. :) --Michael Mol 20:33, 7 August 2010 (UTC)

You must have noted my anger :-)
Thanks, I'l use them as advised. --Paddy3118 20:48, 7 August 2010 (UTC)


Have you heard of this craziness? It says Python uses it. I can't find a non-long-winded explanation of the algorithm though. --Mwn3d 21:12, 8 August 2010 (UTC)

This seems easy enough to follow. I read through it a few weeks ago. This reads easier, though. --Michael Mol 22:16, 8 August 2010 (UTC)
Hi. Yep, I remember the buzz when Tim Peters introduced it. I don't have the time to google in comp.lang.python to find the first threads after its release, but rest assured, it was heavily tested when it was released, as well as when it was adopted as the sort routine for Jython (which I could find). I have heard that it will be added as the Java sort routine too. I never did go fully into the algorithm though as sort routines give me only a little algorithm "buzz".
Another link --Paddy3118 08:26, 9 August 2010 (UTC)
I saw a link that said it was added to openjdk, but obviously that code has so much extra stuff going on to keep track of other stuff in the JRE that the algorithm kind of gets lost. Did you see something saying it would be added to the Sun JRE? --Mwn3d 12:52, 9 August 2010 (UTC)
That must have been what I saw too as I would not have known the difference. I did find this though which makes me think that it has not been ratified as yet (but neither does it seem to have been rejected). --Paddy3118 13:08, 9 August 2010 (UTC)

I have tracked down a version of timsort written in subset of Python called RPython and used for the PyPy project. I am not sure of the license but you can view it for reference by downloading from here and extracting file pypy-1.3/pypy/rlib/listsort.py out of file pypy-1.3-src.tar.bz2.

It doesn't seem like a simple sort algorithm and, no doubt, will be sensitive to small changes. --Paddy3118 11:16, 10 August 2010 (UTC)

You might contrast the Python with this Java implementation. --Paddy3118 11:20, 10 August 2010 (UTC)

The original thread (Pointing to an informative msg not at the head of the thread. --Paddy3118 13:27, 10 August 2010 (UTC)

Symmetric Difference for MATLAB[edit]

I don't understand the error you found with the MATLAB solution to the problem. It gives the proper output given an arbitrary input for sets containing arbitrary members of arbitrary types. Also, is the problem with the first example or the second?Cferri 22:40, 10 August 2010 (UTC)

Hi Cferri, its your second example and how it would work with the info in the note:
Note: If your code uses lists of items to represent sets then ensure duplicate items in lists are correctly handled. For example two lists representing sets of a = ["John", "Serena", "Bob", "Mary", "Serena"] and b = ["Jim", "Mary", "John", "Jim", "Bob"] should produce the result of just two strings: ["Serena", "Jim"], in any order.
I haven't run your ccode but you need to make sure it would give the right answer if their were these type of duplications if you are indeed implementing the behaviour on top of lists/tuples rather than a set type. --Paddy3118 02:56, 11 August 2010 (UTC)
Oh, Ok. I'll check that. Cferri 04:27, 11 August 2010 (UTC)

Filling out Rosetta Code:Add a Task[edit]

Could I get you, Rdm and Rdm to give Rosetta Code:Add a Task a thorough treatment of examination, debate and filling? Of the cross section of current users, I think you three are probably the most likely to be familiar with the general pattern and concerns of creating tasks. I added a bunch of my own thoughts in HTML comments in-line, and left a note in the talk page. --Michael Mol 17:15, 21 September 2010 (UTC)

Variations on a theme[edit]

I noticed you removed the pipe-based PowerShell solution to Ethiopian multiplication. Is that really necessary? Near as I could see, the relevant example had the necessary code, and only lacked functions demarcating the separate processes. Marking the task with Template:Incorrect might have been more appropriate, in that case. --Michael Mol 18:18, 1 November 2010 (UTC)

Umm, you're right. I was too harsh. I can do that now. I see that changes have already been made. --Paddy3118 19:44, 1 November 2010 (UTC)
Thanks for helping RC keep a positive tone. :) --Michael Mol 20:59, 1 November 2010 (UTC)
(Concerning another Rosetta Code task, but in the same vein.) --- Thanks for your input and advice (Egyptian Fractions) talk page, and also at other times and places.   It may be not for you to understand why, but it came just at the right time, the whys and whyfors aren't germain in a public forum such as here.   Your tone (and demeanor) were much appreciated at that time and helped me along with improving the task verbage and task clarification(s); I was beginning to feel like a brown shoe at a tuxedo party.   I wish there was a good way to review a new task, other than to make it a draft task, say, to be able to have it be amongst some kind of peer panel to iron out the wording and whatnot.   Even after (many?) years of entering task solutions/examples, I never expected such wrath, ire, and name-calling here on Rosetta Code ... and so it goes; perhaps I'm getting too thin-skinned as my temperament ages and I don't suffer fools gladly.   Anywhoooooose, I appreciate your concerns and suggestions with regarding to the new (draft) tasks that I've been entering.   It's fast becoming more and more of a chore, and my longish list of new topics may not see the light of day, so I may have to whittle it down to the simpler topics and quit while I'm ahead and while it's still fun working on Rosetta Code tasks (either unsolved or entering new one).   -- Gerard Schildberger (talk) 00:28, 5 April 2014 (UTC)
Thanks for the kind words Gerard, but I am only one of the many, yourself included, that help set the tone of RC. I like to think that in some ways I am sitting in front of a flat plane of glasswith coloured patterns on it, having a "conversation" with something that gives very little feedback - no unconscious threat, or hint of mood. I guess a lot of conversation skills are based on feedback from natural situations and putting some people in front of a keyboard is likely to loose empathy. There is not much to do but cull the most flagrant abuses - of which there are very few - we set the line (I think), at wanting to maintain a site that would pass if vetted by some "liberal" school board.
Much respect to all fellow task writers. It is the harder path! I do "gird my loins" after posting that first draft because some criticisms hurt and too many people have a dismissive and/or abrupt writing style - especially when they are right! And when they think they are right!
I know that being polite is harder so at times thinking "but I'm more polite" than whoever gives me a smirk and keeps me going. (Plus the fact that task writing is a difficult skill that I use at work - together with the criticism lmitigation strategies).


Thanks for fixing up (removing) the CPU timing stuff from the (Classic) REXX example in the Rosetta Code task Sieve of Eratosthenes;   It was getting to be a bit of a sticky wicket, and I sure didn't want to remove the inappropriate timings and open up another can of worms, especially since it was Classic REXX programs that were being executed/timed under the ooRexx interpreter, and it probably should've been posted under the ooRexx language (as that's what it was apparently translated for and executed under).   Anyway, thanks again. -- Gerard Schildberger (talk) 01:44, 25 July 2014 (UTC)

Well RC isn't set up to do performance comparisons, so we might (on rare occasions), stoop to generalization about orders of magnitude differences in execution time, but those were not really helpful. --Paddy3118 (talk) 08:33, 25 July 2014 (UTC)

Ordered words[edit]

Please see Talk:Ordered words#Output. —Kevin Reid 18:37, 1 February 2011 (UTC)

N-Queens Edit[edit]

You edited down my (clearly overboard) output for the N-Queens problem. I'm not sure where the cutoff is but several hundred lines was obviously way too much. Sorry. I was very slightly annoyed that you completely eliminated my N=8 output, since that is the prototypical case, an 8x8 chessboard. OTOH I could have avoided the problem in the first place by showing some restraint, so I'm more annoyed at me.

In any case, I added additional code to winnow the solution sets and also to cut down the output on the largest case. The result is some what larger than your edit but still under 50 lines total, much shorter than the programs themselves. I also re-added the scrollbar to avoid taking up too much vertical real estate. Is this reasonable? --Balrog 19:57, 20 March 2011 (UTC)

Hi Balrog, sorry about not getting the edits right, I should have taken a bit more time. Instead I decided to show some of the smaller cases and the summary of the last. I had a look at your current edits and they seem fine to me. I hope this won't stop you editing - I'm still learning too! --Paddy3118 22:00, 20 March 2011 (UTC)
In general (for me at least) moving an example to a new page or adding output isn't a matter of the number of lines (we have the scrollbars to deal with that), it's about a number of bytes. We don't have super-servers here and anything we can do to lighten the load on them is good. There shouldn't be any problem with storing lots of data, but there might be problems with retrieving and sending lots of data at once. When one example starts to get into the 10KB range I usually consider shortening it or breaking it out into a new page. Like most things here, though, it's a little touchy-feely. --Mwn3d 22:18, 20 March 2011 (UTC)
Servers are fine, as is my available bandwidth. I'd be more concerned about page load times for slow and/or congested end-user connections. Similar concerns apply, of course. --Michael Mol 12:23, 21 March 2011 (UTC)

Y Combinator[edit]

Sorry if I write in a wrong place. I'm Trap D. I notice that you removed my contribution to the task Y combinator. I send a mail to U. Neumerkel to know his opinion about the reasons you gave me. If you look at my code and the code written on this page it's not exactly the same. I deduce what I think is the Y combinator of the code written on "page 106".User:Trap D 20:31 11 April 2011

I read your answer, Ok. I'm waiting for the reply of U. Neumerkel before posting my contribution again. User:Trap D 23:15 11 April 2011

My mail :


First I apologize for my bad English.

I'm fond of Prolog and I recently found this page : http://www.complang.tuwien.ac.at/ulrich/Prolog-inedit/ISO-Hiord where you explain how to improve high order programming in Prolog with your implementation of lambda.

I was very interested by that :

lists_mod(Member, List) :-

   Me =     \X^L^R^ ( L = [X|_]
                    ; L = [_|Xs], call(R, X, Xs, R)
   Member = Me +\Xr1^Lr1^ call(Me, Xr1, Lr1, Me),
   Li     = \Lr1^P^Rr1^ ( Lr1 = []
                        ; Lr1 = [X|Xs], call(P,X), call(Rr1,Xs,P,Rr1)
   List   = Li +\Lr2^Pr1^call(Li,Lr2,Pr1,Li).

main_list(Xss) :-


main_list2(Xss) :-


I extract this code that I think it could be a Prolog Y combinator.

- use_module(lambda).

y_combinator(P, Arg, R) :-

   Pred = P +\In^Out^call(P,In,Out,P),
   call(Pred, Arg, R).

test_y_combinator :-

   Fib   = \NFib^RFib^RFibr1^(NFib < 2 ->
                    RFib = NFib
                    NFib1 is NFib - 1,
                    NFib2 is NFib - 2,
                    RFib is RFib1 + RFib2
   y_combinator(Fib, 10, FR),
   format('Fib(~w) = ~w~n', [10, FR]),
   Fact =  \NFact^RFact^RFactr1^(NFact = 1 ->
                       RFact = NFact
                       NFact1 is NFact - 1,
                       RFact is NFact * RFact1
   y-combinator(Fact, 10, FF),
   format('Fact(~w) = ~w~n', [10, FF]).

with output :

?- test_y_combinator.

Fib(10) = 55 Fact(10) = 3628800 true.

Do you agree with my interpretation ?

I publish this code on this site : http://rosettacode.org/ It is a site about tasks to solve using languages. I solve few tasks with Prolog and I thought that I could publish this code to solve the task about the Y combinator. Of course, I gave your name for the module lambda and the link to the page above. I thought I could do that because there was a link to the code of the module lambda. This site RosettaCode decides to remove my contribution arguing that the site where is the page (www.complang.tuwien.ac.at) is not "non-profit", and I have not your permisssion.

Are they right ? Do you mind if I publish this code ?

Thanks anyway for your answer.

Best regards.

Joel Foutelet.

Here is the answer of Ulrich Neumerkel :

I essentially agree with you.

However, please note that I *only* transcribed the code which was originally written by Hermenengildo et al. Please refer to Reference 6.

Cordialement, Ulrich

So, I'll published my contribution with the notes of U. Neumerkel User:Trap D 14:10 12 April 2011

Ela (Y combinator)[edit]

I am not sure why you added this comment to Ela sample: "This example is incorrect. fac and fib seem to be directly recursive functions without the use (or definition), of the Y combinator. Please fix the code and remove this message."

fac and fib are clearly not directly recursive functions and use fix-point combinator which code is provided at the end of the sample. --Disregard, I misread the task.


If you really intend to mark all (hundreds of) entries that don't give output, you might consider creating a new template for that purpose. {{Incomplete}} is ill-suited.

CRGreathouse 23:24, 7 May 2011 (UTC)

Thanks CRGreathouse,
I have created a new "output?" template that looks like the following, (missing the first parameter which would be the language name):
This example does not show the output mentioned in the task description on this page (or a page linked to from here). <Optional explanatory text>. Please ensure that it meets all task requirements and remove this message.
Note that phrases in task descriptions such as "print and display" and "print and show" for example, indicate that (reasonable length) output be a part of a language's solution.

This is my first template so I read a little, then shamelessly copied from template incomplete! --Paddy3118 11:13, 8 May 2011 (UTC)
It looks good. It has already ameliorated some of my (unfortunately misdirected) anger. :)
CRGreathouse 06:20, 9 May 2011 (UTC)

In the future, it will save a lot of eyerolling if people could run some examples on codepad if they do print the output but the author just didn't add it to the example. It doesn't support every language, but it could help a little bit. --Mwn3d 20:41, 22 June 2011 (UTC)

Why Permutations/Derangements?[edit]

I wanted some info on permutations and went first to Mathworld rather than wikipedia, where the word 'deranged' stuck out and just had to be followed up!

The wp articles generalizations section mentioned anagrams which then lead to me creating Anagrams/Deranged anagrams. --Paddy3118 21:00, 14 May 2011 (UTC)

It is an awesome name for a task subject. When I saw it in the RSS feed, it caught my attention and I shared it with a couple people in the room. :) --Michael Mol 11:47, 15 May 2011 (UTC)
Who says mathematicians don't have a sense of humour :-)
--Paddy3118 11:54, 15 May 2011 (UTC)

Quaternion type[edit]


The task said "If your language has built-in support for quaternions then use it.". And I see nowhere in the task that it is required to use the form (a,b,c,d). However, the implementation in gap is incomplete : I didn't write -q, q1+q2, etc. which are trivial. But I will, I swear :o)

Toucan 08:20, 13 June 2011 (UTC)


For case 3 the function is built-in. Do you mean I have to rewrite it ? Well, why not... Toucan 09:09, 13 June 2011 (UTC)

Hi Toucan, a note explaining that it is built-in then use your built-in function would suffice. (It's amazing what languages can have in their libraries). --Paddy3118 13:21, 13 June 2011 (UTC)
I made {{eff note}} for just this occasion. --Mwn3d 13:43, 13 June 2011 (UTC)
GAP is very very good at algebra and combinatorics, so it's not too surprising to find it here. It has a huge library for almost everything about discrete mathematics. On the other hand, floating-point support is almost absent, as well as networking, and many things one would like to see in a general purpose language (which it is not, of course). See http://www.gap-system.org/ for explanations on what it really is. I *love* it for quick programs for recreational mathematics ;-)

Python discousion with now Tonyjv[edit]

You had approached me about Python code. Now I am registered. --Tonyjv 22:41, 13 June 2011 (UTC)

It's going back someways, but I think you replaced Pythons REPL input with the same code but as if it were in a file. Thereby losing the notion that the example was easy enough to develop/display output in the Python shell. In a comparison of languages, Pythons shell can be a good plus point. --Paddy3118 23:18, 13 June 2011 (UTC)

It is true, that shell is nice, but you also be carefull with difference of behaviour the IDE environment brings. You should never forget to prepare ready program to file and run it properly from OS prompt/File manager.

My expertise which brought me here for visit is anagram generation, which I used as training project for learning Python. It still makes me wonder that trying the Go language by coding my anagram program (based on fast enough philosphy), the psyco version was completely unbeatable and pypy is also terrible in file IO. Anagram result from those programs: Go

>timeit anagrams.exe "tonyveijalainen"
Name tonyveijalainen
352 candidate words found.

Version Number:   Windows NT 5.1 (Build 2600)
Exit Time:        6:29 pm, Friday, June 17 2011
Elapsed Time:     0:00:03.234
Process Time:     0:00:03.093
System Calls:     26551
Context Switches: 6836
Page Faults:      1785
Bytes Read:       1131190
Bytes Written:    173240
Bytes Other:      134532

pe 17.06.2011 18:29:01,76 C:\Go\programs

Python2.6 psyco:

>timeit c:\python26\python.exe Recursive_anagrams.py "tonyveijalainen" >nul:

Version Number:   Windows NT 5.1 (Build 2600)
Exit Time:        6:31 pm, Friday, June 17 2011
Elapsed Time:     0:00:00.718
Process Time:     0:00:00.718
System Calls:     8946
Context Switches: 2060
Page Faults:      3696
Bytes Read:       1494996
Bytes Written:    40407
Bytes Other:      40078

pe 17.06.2011 18:31:56,20 C:\Go\programs
Hi Tonyjv, I regularly write, use, then toss away small programs written at Pythons command line shell. Especially when I am exploring other stuff and the Python is there as the support. When I need to be innovative elsewhere and keep that other train of thought. Most of the time, I make the correct call and can recall code used if I want to re-use it. Its just one point on the surface of ways of using Python - from calculator to tested, packaged, logged, configuration-managed large application. --Paddy3118 06:02, 19 June 2011 (UTC)
I agree with you on not underestimating Python speed. I have replaced a C++ application by what turned out to be a faster version in pure Python - Pythons in-built datastructures are very fast and compiled languages can't make up for bad algorithm choices. --Paddy3118 06:02, 19 June 2011 (UTC)

Minor edits[edit]

Ok, I didn't think of that ;-) Toucan 19:28, 1 July 2011 (UTC)


RC sets out to be a comparison site for whatever tools users apply the effort of comparing. One of the earliest pages I created tried to document typical invocation of a C compiler. I can't find it, now, though. --Michael Mol 11:45, 6 September 2011 (UTC)

Hi Michael, does this apply to my comment on preferably not adding detailed timings to solo program runs? If so, then maybe we need a Rosetta Code:Village Pump/Run times on examples? page to evolve some consensus? I, as you probably know, am a bit wary as you need to specify a huge amount of probably obscure information to get repeatable timings from different people and would prefer a maximum of:
  • Not mentioning stand-alone program timings that are less than two minutes and making other comments vague such as approx 5, 10 20 minutes or aprox 0.5/1/2/5 hours
  • When there are two or more solutions in the one language then mentioning just a rounded comparison i.e. X is approx. 1/2/5/10/100/1000/... times as fast as Y.
  • Discouraging timing comparisons between different languages.
  • Allowing detailed timings, if someone wants to; in the talk pages.
We don't have the infrastructure of The Computer Language Benchmarks Game, which is one of the best sites for comparing language run times, and even they tell users don't jump to conclusions.
Yeah, I jumped the gun by responding without seeing the context of your original discussion (I misunderstood it to refer to, e.g. different compilers' run-time support libraries). I agree 100%. --Michael Mol 12:45, 6 September 2011 (UTC)

Hi, thanks for the feedback! Yeah it entirely makes sense what you wrote on my talk page. Was that in reference to Hamming_numbers#Alternative_version? I only edited that section to add remarks about memory usage, and left the timing remark in, that was already there before me - it compared I thought with the subsection above it for the same language, that talks about "couple of seconds". Or was it something else? Could you give me a pointer please so I could fix it. Thanks.

OTOH I like using Ideone.com for testing; I think its timings could reasonably be mentioned as it's a uniform platform. Wouldn't it be neat if all code snippets added to RC had a requirement of actually running on Ideone, and be run there automatically by the system and show its produced output and times on RC pages, automatically? Say, requiring of a posting user to provide a runnable link into Ideone entry and show its text on RC, instead of plain textual posting that it is now? The code that won't run wouldn't get accepted, for one. All kinds of comparative reports could be then automatically produced via its API (it has one), etc. Just a vague thought. :) WillNess 01:05, 7 September 2011 (UTC)

RC supports several hundred lanaguages. We've got links to codepad (for a few languages), and I've got an invite from CodeEval (for a few languages) to try having them execute code by proxy. Given enough time, I can automate just about anything serverside. However, I would be shocked and awed if there were an online site like CodeEval, IdeaOne or CodePad which could handle all the languages RC has, and would add more as they show up on RC. That said, comparative performance measurement is hard and rightly criticized for technique, and I really don't expect to see it automated any time in the near future. --Michael Mol 01:30, 7 September 2011 (UTC)
Comparative performance measurement is not my primary motivation here. Mainly it would make sure the code posted on RC conforms to the task spec, and output is shown (if specified in task description). But showing times automatically is also nice, and also knowing they are all tested on same platform so the OS/PC specs/ etc. differences are taken out of the picture. The languages that aren't supported would be postable as they are today, as text source not executable source. The execution platform for every executable code snippet would be clearly identified, so if one runs on Codepad and another on Ideone, that would be clearly seen by anybody.
When testing different solutions in the same language it would indeed let us compare algorithms performance. For an example take a look at this, at the bottom. I've ran all the tests for all the code snippets in there manually at that entry, and manually gradually inserted the timings back into the source comments; to have this kind of thing done automatically would be awsome and ensure all timings are true and current. There is a tool in Haskell that would run (client-side) tests and take statistical measurements automatically, but I can't remember how it's called right now. :) WillNess 10:03, 7 September 2011 (UTC)
Hi WillNess, apart from the need to support a vast array of languages, I think comparative timings would skew the examples to produce faster code as a kind of unwritten extra task requirement. Fast code is often un-idiomatic for a language and we hardly ever state what is fast enough in tasks which is very important when timing code. Being the fastest is pretty meaningless in itself - The fastest may not be fast enough; the fastest could be too fast, if the system expects to wait a certain time for a component to finish; the fastest might be too hard to maintain; the fastest might take to long to develop... --Paddy3118 11:46, 7 September 2011 (UTC)
If you'd like to compare algorithmic efficiency, there are probably better ways to do it that clock time. For example, have key, regularly repeated aspects performed by a function which pokes an accumulator, and count how many times the function was called. That puts focus on the algorithm, and not on shortcuts and optimizations that detract from code clarity. --Michael Mol 13:42, 7 September 2011 (UTC)
As for showing output, as I noted, CodeEval has offered to provide an execution environment for at least some of the code snippets. I will eventually get that working in an automated fashion, and I hope to define and implement some kind of API to allow any language community to offer an execution environment for RC's use. --Michael Mol 13:42, 7 September 2011 (UTC)
I hope to define and implement some kind of API to allow any language community to offer an execution environment for RC's use
Oooh! I like the sound of the API route. You can get timings if you want; but they don't have to appear by default. Mind you, People love to optimise for runtime for some reason, so it will always be hard to control - Maybe a warning about the normal optimisation being for idiomatic code whenever you select to generate run times...? --Paddy3118 15:36, 7 September 2011 (UTC)
"You can get timings if you want; but they don't have to appear by default. " Cool. This could be done also with kind of collapsable sections. Users would click on "Show" to actually show what is there. The contents could be cached so each user's click wouldn't cause the actual run each time, but only say once a month or after a change was made. WillNess 12:40, 9 September 2011 (UTC)
(I don't have a pony in this race, but Ideone.com already has an API, or so they say.) Yes, there is a danger of the race for speed, but I think naturally we'd just end up with several versions for same task/language combo. The more the merrier. :) Kinda like Hamming_numbers#Haskell which now has three versions - nicest, simplest and fastest. I prefer to know more, not less, to have more information, not less information. If it's misleading, then we'd need to expound some more on that in each specific case. And if someone views this as a competition between languages, it's their choice. But if not to compete, then at least to compare, right? It may not be as clearcut as comparing timings, but timings are still a part of comparison. If some task is 10 times slower on language X, I want to know about it, and if it's 100 times shorter and faster to develop I want to know about that too. WillNess 17:21, 7 September 2011 (UTC)

Overwrote my responses.[edit]

You overwrote my responses on User talk: Please fix, so we don't have an edit conflict again? --Michael Mol 19:27, 20 September 2011 (UTC)

Yea, I just posted the fix and got your message. Sorry. Should be OK now. --Paddy3118 19:30, 20 September 2011 (UTC)


I see that you're a 'crat; would you delete this file?

I inadvertently uploaded it with a typo. The correct version is at File:Langton-pari.png.

CRGreathouse 02:04, 28 November 2011 (UTC)

It's gone :-)
--Paddy3118 05:00, 28 November 2011 (UTC)
Thanks! CRGreathouse 18:55, 28 November 2011 (UTC)


"If you're ever looking for a template, try Category:Example attention templates and Category:RCTemplates first."

- Thanks -Mwn3d

There's this nifty page too. --Mwn3d 20:06, 5 December 2011 (UTC)


Just wanted to say thanks for being hot on dealing with spam. At this point, I have to think RC is a specific target by spammers. I'll find time to deal with it, it's just slow going right now. --Michael Mol 20:17, 23 May 2012 (UTC)

You're welcome. They're not! --Paddy3118 21:41, 23 May 2012 (UTC)
Adding THANKS (for all you do tirelessly here on RC) --Walterpachl 16:51, 14 July 2012 (UTC)
Aw shucks. You got me blushing. Which is pretty hard to see on a black guy :-) --Paddy3118 20:50, 14 July 2012 (UTC)
Agreed on the benefits of your efforts. If I had one small nit to pick, I would prefer that you find a more gender-neutral four-letter word to use on the spammers in the log. :-) --TimToady 18:50, 6 November 2012 (UTC)
(British English meaning of cretins or imbeciles. :-)
--Paddy3118 21:30, 6 November 2012 (UTC)

It looks like Bengeorge and Justgerrardz are two spamming accounts which should be blocked (both are posting spam links on Category:Gambas) --Andreas Perstinger (talk) 17:27, 4 June 2015 (UTC)

Rdm zapped them both. Thanks guys. --Paddy3118 (talk) 06:16, 5 June 2015 (UTC)

Empty Program[edit]

Thanks for fixing --Walterpachl 18:53, 30 June 2012 (UTC)

Your welcome :-)
--Paddy3118 21:56, 30 June 2012 (UTC)

Sudoku Code for RPN / HP-15C[edit]

I updated the entry to have the code on your site.

I realize that programming languages that are intended for a single calculator are not really general purpose and might not belong on this site. On the other handm variations of RPN have been pretty widely used and this is an example an algorithm that most people would not consider RPN suitable for, and in that respect it is interesting. Your call.

Hi Marcel. Thanks for adding the code :-)
P.s. It's not my site - I just contribute. Like yourself. --Paddy3118 19:39, 30 January 2013 (UTC)

explanation re: include files[edit]

-- Moved to one place.

Links in your user page[edit]

Hi. It does not matter much, but you use external links in your user page, where internal links would do. Example: Monty Hall problem instead of Monty Hall problem.--Grondilu (talk) 09:30, 4 May 2013 (UTC)

Hi Grondilu, The user page gets read ;-)
A combination of sloppiness, forgetfulness, and design. I used the prog that generated the table originally to produce a table for a web page that was not on RC so used full paths and did not change things when generating the wikitable. --Paddy3118 (talk) 11:12, 4 May 2013 (UTC)

Re: OOCalc[edit]

I am a newbie to Excel. Found out how mundane and repetitive tasks can be done in no time when I was playing around with it. My true love is C, but I am open to all languages since I believe there is much to learn from each and everyone.

Great! --Paddy3118 (talk) 16:18, 9 August 2013 (UTC)

Re: Xmerl a language?[edit]

Hi Paddy3118,

xmerl is a Erlang Library. I used the libheader to indicate that the code was using the library, and then, as it creates a internal link, I followed it and I edited the page shown (a new one). I was suspicious that it wasn't the correct way to do it. Should I leave the library page empty?

Thanks! :)


Now that encryption is in every news would it be reasonable to ask for encrypting algorithms? Of course I have one in REXX which I think is quite good but I'd love to know what others think about it Regards Walter And thanks once more for your careful moderation!!! ( 20:32, 6 September 2013‎ Walterpachl )

First, the thanks are welcome! I'll accept on behalf of all the moderators :-)
Unfortunately encryption is out of my field (so far), but I, like you, think it would be good to have a disturbingly easily cracked by the NSA algorithm on RC ;-)
--Paddy3118 (talk) 22:46, 6 September 2013 (UTC)

Who created a solution?[edit]

Paddy, I can't find who created the ooRexx Entry in http://rosettacode.org/mw/index.php?title=Synchronous_concurrency&offset=&limit=250&action=history can you? You're always opposed to putting the authors their name into theit slotion. Why? --Walterpachl (talk) 16:22, 14 October 2013 (UTC)

Hi Walterpachl, about not putting names in the source: That is because it is generally a good thing for people to improve examples if they can and often improvements are from people other than the initial author. The page history is a better way of finding out who did what. A name on the source would convey ownership when improving is encouraged. It is analogous to author names not appearing on Wikipedia pages - just the discussion pages.
On the OORex thing: I had to do a binary search by hand to find this. Have fun :-)
--Paddy3118 (talk) 17:23, 14 October 2013 (UTC)
Thanks Paddy, I was looking for ooRexx -- should have looked for Rick (whom I happen to know) --Walterpachl (talk) 22:52, 14 October 2013 (UTC)

Please use a unicode capable browser when make changes[edit]

C.f. this edit. I'm assuming you didn't intentionally made those changes in Haskell and J. --Ledrug (talk) 21:20, 16 January 2014 (UTC)

Thanks for catching that. I don't usually have that kind of issue, and I cannot remember what browser I might have used at the time.
Using html symbols instead of UTF-8 characters in the first place avoids this problem. Here's a test:

Right arrow →
Subset ⊂
I found JEdit capable of respecting Unicode characters. --Walterpachl (talk) 06:49, 17 January 2014 (UTC)

If people don't write code in HTML escape sequences, they shouldn't be required to post code here in them. Having to convert anything non-ASCII into escapes is an undue burden and error-prone. Plus if you plan to read and post text in unicode, what's the reason to choose a text editor or browser that can't write it properly? --18:51, 17 January 2014 (UTC)

Hopefully this will remain a one-off on my part. Sorry. --Paddy3118 (talk) 10:27, 18 January 2014 (UTC)

hi paddy this is Sxpert[edit]

I am still here and am working on java and objectivec implementations of the own password algorithm. please see my answers in the relative talk pages

Link injection[edit]

Hi, Paddy. When I submitted a Java code just now, a link was injected into the code. Could you have a look at it? http://rosettacode.org/wiki/Sutherland-Hodgman_polygon_clipping#Java

Hi. I had a word with Michael who started this fine site. He got back to me and said that a feature of the highlighter is to link into some languages official documentation. In fact, he was wondering why it was not creating documentation links for Python! --Paddy3118 (talk) 06:58, 9 June 2014 (UTC)
It's mutilated the code, so that it's no longer correct and compilable.Fwend (talk) 10:09, 9 June 2014 (UTC)
Does Michael realize that the autolink may fail and mangle the code instead? See http://rosettacode.org/mw/index.php?title=Sutherland-Hodgman_polygon_clipping&diff=183768&oldid=181794#Java (towards the bottom) Fwend (talk) 14:26, 9 June 2014 (UTC)
I changed it to use "java5" instead. It's a little better anyway since it's a Java 7 example ("java5" recognizes more of the Collections and things like that added in Java 1.5). In any case "d" was definitely wrong. If you use any highlighting you should use one that applies to the language you wrote it in. Using another language could introduce weird behavior if the highlighting for that other language changes at all in the future. if you want no highlighting just put no argument in the lang tag. --Mwn3d (talk) 12:48, 9 June 2014 (UTC)
I only changed the tag to D to get rid of the autolink, I used the java tag earlier. I didn't know about the java5 tag, by the way, that's even better. Thanks. Fwend (talk) 13:39, 9 June 2014 (UTC)

[email protected][edit]

Is there any plans on reinstating the (above) e-mail address?
Other than me addressing a particular admin (or opening it up to general discussion on its talk page ...)

Sorry. I don't know about that email? --Paddy3118 (talk) 23:15, 31 July 2014 (UTC)

The Rosetta Code entry   Reverse words in a string   probably should be renamed to
Reverse words in multiple strings   or possible variations on that.

It's a small difference, but is it worth it for a non-draft task?   I'm hesitant to change the title at this late date, and for other reasons, I'd prefer it that a Rosetta Code admin do the rename (if at all). -- Gerard Schildberger (talk) 20:23, 31 July 2014 (UTC)

I guess "Reverse word order on lines of a string" might be more descriptive, but I, personally, am OK with leaving it as it is. --Paddy3118 (talk) 23:15, 31 July 2014 (UTC)

Unlucky rollback of Power Set[edit]

Admin 40 Percent of the task description of Power set is about what the result are with empty sets. For my as a mathematician it is quite clear that the following examples also are explicitly given:

() = { } and ({}) = { , { } }

So why the erasure including my Scala contribution? In the first place you could deleted the templates only and in the second the empty set were in my opinion asked. And finally my contribution is erased. Please explain.--Siskus (talk) 18:32, 31 August 2014 (UTC)

Themed edits. I told you about this at the time. --Paddy3118 (talk) 07:23, 1 September 2014 (UTC)

P.S. What happened to your talk page? --Paddy3118 (talk) 07:23, 1 September 2014 (UTC)

"We tend to omit timings"[edit]

You wrote:

"we tend to omit timings on RC or restrict them to orders_of_magnitude comparisons..."

I'd like to make the case that the time has come for timings to be encouraged, at least on some pages such as Text_processing/Max_licenses_in_use. There are two basic reasons for this, one having to do with the way RC has evolved; and the other having to do with the nature of certain tasks.

Of course I realize that a language is not to be confused with the interpreters and compilers that may be available at a particular time, but as a practical matter, many people need information about what kind of performance can be expected if a particular language is chosen. With this understood, here are the two reasons:

1) For better or worse, RC showcases 535 languages, and probably the number will grow. More and more RC pages are including large numbers of these languages, but very few people will have the time to read, understand and assess more than a few entries, so some guidance as to which languages are appropriate to the task at hand would be extremely useful. More generally, as interesting as many of the languages represented on RC may be, many people visiting RC will at some point probably want to know which languages are most appropriate for them. Some may also want to gather information to determine which languages are really "toy languages" and which are heavyweights in general or in a particular domain. An important criterion in this regard is performance, and given the nature of RC and its authors, it seems to me that the only reasonable way for comparative performance information to be given is for authors to give both one or more performance metrics and some context, such as the CPU MHz rating for CPU times.

2) Some tasks, by their very nature, call out for performance comparisons. Text_processing/Max_licenses_in_use specifically requires that a large text file be used. This is a Good Thing, because it raises two questions:

a) Is there a compiler or interpreter for the target language that can manage a large volume of data?

b) What are its performance characteristics for that data?

Finally, I would like to emphasize that I was not the first to add performance data on the Text_processing/Max_licenses_in_use page. In fact, the very first entry (Ada) includes the elapsed time. I think this at least confirms the validity of the second point (2) above.

In summary, I encourage you to rethink this issue in light of the way RC has evolved. Should the task description of some pages include some specific performance metrics? What is the best way for performance-related information to be presented in a way that makes it somewhat comparable, without imposing excessively onerous obligations on authors? --Peak (talk) 13:19, 20 September 2014 (UTC)

Hi again Peak. I should point out from the beginning that:@
  1. It's not the first timethat this has been debated on RC (and by other long-term users too).
  2. The problem is the meaninglessness and depth of the problem when you try and do it right, that leaves sites like The Computer Language Benchmarks Game, with all of its resources geared specifically to timing comparisons specifically puts game in its title because of the problems in finding meaning in comparing the figures - yes, you can compare the figures they give, but their are many caveats - such as timings varying due to what Linux may happen to schedule as an OS task; cache, cache, and caches - they give warnings on the site such as here.
Yep, it would be good to get timings right, but seeing the effort put into the CLBG site, and their admonitions on timing, I think it better that with the state of any comparitive timing setup on RC, the best we should do is leave timings out, except for the occasional, obfuscated, local comparitive timing.
Obfuscated timings: If, in the process of converting a C solution to Awk, stating that the C returned almost immediately and the Awk solution after eating half a sandwich" emphasises that the you expect the C to always be faster, but that the Awk solution does not take too long. An alternative of using Unix time is bad because it presumes that those milliseconds of precision can be duplicated by anyone - including by the by the author on his box, a week later when his partner has moved their music collection onto the machine or installed a critical update.
What happens when a second user puts timings for C vs ADA and a third does ADA vs AWK, and a fourth ...; and you end up with multiple relative timings between languages? In an attempt to marshall that you might try for more information; stating your machine characteristics for example, but I am in the chip industry and manufacturers like Intel will ship improved parts with the same part number (as seen by normal consumers); firmware can change; ...
What happens when compilers change - do you trust that "update to fix the windows installer" not to slip in some "innocuous to the developer"change such as a slight difference in build options that make timings change for this same "release"?
Do your timings depend on your process of timing? Does running it all from unix make give the same timings as from an IDE for example?
  1. You can't just slap time in front of an invocation and believe in its result.
  2. Why you can't is involved.
  3. (Much) more infrastructure and a site geared to comparing timings Teaches you more about timing vaguaries.
I would tend to use a mix of the RC and CLBG sites if I wanted initial coarse comparisons but even then, you must be wary - Python, for example, is an interpreted language with probably slow timings when used by the average Python programmer, and yet many compute intensive tasks in fields including particle Physics, IC design, genome research, and statistics, successfully use Python. In a lot of these cases you have to understand that Python is giving access to best in class libraries written in C, Fortran, C++, C#, Java, ... - What the user programmes in is Python for accessibility and what he sees is great speed and the ability to harness large compute farms or supercomputer clusters but in a manageable way from "Python".
In my experience timings are usually a tertiary concern behind getting that component I am writing correct and in a reasonable development time. If working on an embedded system then timing may become more important (or less if as power and memory footprint can also rear their heads). When you know timings are tight then this can and does distort programming style, (such as the use of xor swapping), and which can be highly machine, OS, and network specific. Do we want non-idiomatic, timing optimised, machine specific code on RC? I think we would loose clarity.
--Paddy3118 (talk) 07:05, 21 September 2014 (UTC)

Thank you for taking the time to convey your rationale. I was already familiar with all the points you make, and I am disappointed that you don't seem to be able to see the forest for the trees. The nice thing about RC compared to CLBG (Computer Language Benchmarks Game) is that RC has so many more languages, so many more tasks, and presumably many more contributors (or at least, it's more open to contributions). Thus some of your points I see as arguing for having more timings. One of the things I think you overlook is that a simple timing is objective -- if it's there, users can interpret it, misinterpret it, or ignore it if they wish. Also, since RC is relatively open, if a timing seems "off" by someone, the additional objective information can be added.

One of the important points you make is that there has been discussion about this topic before. I think that is a sign that instead of censorship, some creativity is required. It was in that spirit that I suggested that on *some* pages, the task description should invite a brief, objective indication of performance (space and/or time as appropriate). I invite you to think "outside the box".--Peak (talk) 03:57, 22 September 2014 (UTC)

On objectivity (a slight aside)
Hi Peak, I would hope that others might join in as they have done in the past to reach a consensus. If your meaning of objectivity is something like:
"(of a person or their judgement) not influenced by personal feelings or opinions in considering and representing facts."
then no, at this point I am stating my case, (that was discussed before). I have read, and listened to your points however, but I still fear that yes, although we do have a lot of languages, we have no infrastructure to put in place anything like what CLBG has and I think that more than CLBG is needed.
(And back)
Note that I don't say no timings; just that more effort should be put into fuzzing timings to represent their true use for comparisons: saying that "algorithm A is approx 10x faster than Algorithm B for the givin inputs" is much better than just leaving behind the result of Unix time (with or without Machine and OS versions).
--Paddy3118 (talk) 06:56, 22 September 2014 (UTC)

capitalization of thingys named after people[edit]

Every place I looked, I noticed that Heronian triangles are capitalized.   Naturally, I didn't look everywhere, but if your time is short, I could modify (if you approve) the Rosetta Code task Heronian triangle   (primitive) to capitalize that name. -- Gerard Schildberger (talk) 11:41, 7 January 2015 (UTC)

Please do. Thanks. --Paddy3118 (talk) 17:11, 7 January 2015 (UTC)

Python Roots of a quadratic function[edit]

Hi Paddy, You may have noticed I've made a few Python contributions recently. I was just looking at this roots task and it has some issues. It was marked incorrect (back in 2009) and you fixed it by removing the first of two solutions. But both solutions had the problem cited by the incorrect tag, which was that they did not "do it better" as required by the task. I've coded up some "better" versions, a version using each of the two better methods mentioned in the description, and also a call to numpy.roots. (It's interesting to compare the three.) My question is what to do with the present solution. I could toss it entirely, put it under a subheading, or incorporate it into my comparison. It has a couple of other differences--it's Python 2 whereas I've been working with Python 3, and it returns an extra bit of information categorizing roots as same, different, real, and so on. If it were moved under a subheading it could stay about as it is, except I would like to add the b=-1e9 case to show that it loses all precision. —Sonia (talk) 17:57, 1 April 2015 (UTC)

I guess if it is wrong then it should only stay as an example of how not to do things. I am happy either way Sonia. :-)
(Gosh I've used a smiley several times this morning - I'm in a good mood). --Paddy3118 (talk) 05:19, 2 April 2015 (UTC)

Cholesky/Pascal identity[edit]


Cholesky decomposition of a symmetric matrix A is a lower triangular matrix L such that A=LL', where L' is the transpose of A. I don't know what you mean by "cholesky(pascal_upp(i)) == identity(i)", what software do you use? If L is the identity matrix, then LL' is also the identity matrix, certainly not A.

It's highly likely that you used a routine that does not check matrix symmetry, and that uses only the lower part in the process (as the upper part is supposed to be the same). This would make sense: if you forget the upper part, pascal_upp(i) is the identity, thus L is indeed the identity. But it's just plain nonsense, of course, to say that this is the Cholesky decomposition of pascal_upp(i).

May I suggest a good reference if you don't know much about numerical analysis? Golub & Van Loan "Matrix Computations" is really good. "Numerical Methods in Matrix Computations" by Ake Bjorck is also a nice choice.

Arbautjc (talk) 19:46, 28 April 2015 (UTC)

I see you have noticed one boundary in my maths knowledge :-)
Ifyou consider the Python solution to both tasks and add the following identity matrix generator function, then I was refereing to what is tested in the assert statement below. It looks like an identity holding for all positive integer n and is tested for afinite range of integers to be true but I don't have the maths to prove or disprove it. Maybe I should have stated it as "Paddy's conjecture".

Here's the code:

>>> def identity(n):
... return [[1 if j == i else 0 for j in range(n)] for i in range(n)]
>>> for row in identity(3): print(row)
[1, 0, 0]
[0, 1, 0]
[0, 0, 1]
>>> for row in identity(5): print(row)
[1, 0, 0, 0, 0]
[0, 1, 0, 0, 0]
[0, 0, 1, 0, 0]
[0, 0, 0, 1, 0]
[0, 0, 0, 0, 1]
>>> for n in range(2, 300):
... assert cholesky(pascal_upp(n)) == identity(n), "Whoops"
... if not n % 20: print(n)

"This task has been flagged for clarification."[edit]

Dear Paddy3118: You recently reverted some minor edits I made to the introduction of Text_processing/1 without any comment, so I'm not sure what your objections were, but I would like to point out that the page has a "This task has been flagged for clarification." notice, and I was trying to improve the clarity of the text, which was (and is again now) written in rather poor English. I realize that you have a long history of contributions to RC and perhaps have a preference for "leaving well enough alone" in task descriptions, but as I mentioned, someone else (besides me) tagged the article specifically with respect to the section I edited. Since you have gone to the trouble of reverting the text, I invite you to improve the task description yourself. Thanks. Peak (talk) 02:28, 29 April 2015 (UTC)

duplicate links in Hofstadter Figure-Figure[edit]

On the discussion/talk page for the Hofstadter Figure-Figure task, you stated:

When I had finished the Python version I checked it with tables of the first 1000 values refered to from Sloane: here for R and here for S, although the table for S has an off-by-one error. --Paddy3118 ...

... the   here and here   (both links)   point to the same web-page. -- Gerard Schildberger (talk) 22:21, 21 May 2015 (UTC)

Fixed thanks. --Paddy3118 (talk) 05:52, 22 May 2015 (UTC)

Huge addition to Ledrug's page[edit]

Hi, unless Ledrug specifically asked for the data, it seems impolite to dump so much on his page and I would urge you to remove it as it can only cause offense. --Paddy3118 13:01, 27 October 2012 (UTC) That's Nigel Galloway being Nigel Galloway. The content was from Talk:Kaprekar numbers, which he somehow felt very strongly the urge to remove, probably because I said something not very flattering to him there. I undid that change because deleting 30k+ talk without even a word of explanation was basically vandalism, so he decided that those should go on my talk page instead (and of course it was removed from the original place again). Come to think of it, I kinda suspect this paragraph won't survive very long, either. --Ledrug 13:47, 27 October 2012 (UTC)

The above paragraph seems to be a reference at least in part to these two edits on the part of Nigel Galloway: A big addition and A big deletion. It is perhaps also a copy and paste of some bit of discussion from almost 3 years ago?
Anyways, the lack of adequate attribution made me curious and this represents my current best guess. --Rdm (talk) 15:07, 23 May 2015 (UTC)


Hi... I am glad you are helping shut out whoever is abusing our registration process. (And I think we are supposed to have email confirmation required before people can update pages, and I think that that does not currently function...)

But I also noticed that you are leaving "autoblock" active? I was told that we should leave that alone because it only winds up blocking the cloudfront cdn proxies. Or has that been fixed? --Rdm (talk) 21:05, 5 July 2015 (UTC)

Rdm, unfortunately I know very little about the inner workings and just try and remove spammers and their detritus when I see it. Is there something else I should be doing? Short Circuit is the guy who knows the most I'd guess. --Paddy3118 (talk) 06:54, 6 July 2015 (UTC)
In that case, maybe best to un-check the second box when blocking a user (so you do not block the IP Address) and leave a note for Short Circuit asking for clarification? If those IP blocks are incorrect, they'll need to be cleaned up. If they are correct, perhaps I should be doing that also.
That said, it would be interesting if you had been blocking entire geographic regions containing spammers. But it'll probably be messier than that... --Rdm (talk) 10:47, 6 July 2015 (UTC)
Yes, Autoblock will break with Cloudflare. I don't have time to fix that right now. --Michael Mol (talk) 15:20, 21 October 2015 (UTC)

Correction to Ceylon Y Combinator[edit]

Can you please clarify what is incorrect about the first Ceylon Y Combinator solution? AFAICT, your note is referring to "class RecursiveFunction", but this is just a container. The solution, overall, is very similar to others including Java 8, Scala, and Swift.

It seems odd to have a comment to say that the example does not fulfil the task without also stating why it deserves to be there. If its as OK as others then that needs to be said - or omit the comment altogether? --Paddy3118 (talk) 20:06, 18 August 2015 (UTC)

Oh, I guess you mean the third variation. I was simply following the pattern of the others - there are about 13 instances of "The usual version using recursion, disallowed by the task". If this is what you are referring to, and you think it would be better without the third version, I certainly have no problem removing it. Let me know.

HI. It isn't so much the code it is the comment - it seems to read as "this doesn't fit the task". Maybe the comment should go but leave the code as it is very like others. --Paddy3118 (talk) 07:44, 19 August 2015 (UTC)
Or maybe those other implementations should get a similar comment? Though perhaps the wording of the comment should also be changed - I'll do that. --Rdm (talk) 13:11, 19 August 2015 (UTC)

early promotion[edit]

I noticed that you promoted a Rosetta Code draft task (after one day), namely:


Normally, I would bring up issues in that particular Rosetta Code draft task's discussion page, but since it is already a full-fledged task, it would be difficult (I think) to resolve the wording (and/or requirements) of that task at this (late) date.   I never got to address my concerns during the short interim of it being a draft task.

So, I'm bringing my concerns here so as to not have a discussion that can't be resolved there   (or the possibility of that not happening here as well).   But, this issue should be addressed somewhere, namely, that not all computer programming languages use the same lexicons nor do they necessarily share the same definitions and/or nomenclatures, --- or to get technical:   stuff.

I may be way out on a limb here, so this would be a good place for me to see if my thoughts are on-topic or ... not.

So ... let's start sawing on that tree limb:

An   array   has different meanings to programmers of different computer languages.   (As an E.E., I think of antennae arrays, but that's me.)

To some, it is a program variable (or   thingy   if you want to get technical), denoted by a single (program variable) name (but it may have aliases) which have addressable (elements) to access/address each element.   Most people are familiar with one-dimensional arrays, and to keep things simple, let's just stick with a single dimension.   Most single-dimension arrays have a numeric index (almost always an integer, which could be zero or negative).

To others, an   array   may be a single (program) variable, with multiple elements (items) in it, or what some programmers would call a   list   or a   table   or some other name like   bag   or somesuch.   The elements/items are usually separated by blanks or some other well-known/well-defined separator token(s) such as commas, colons, or the like.   --- or (ugh)   tabs.

And still others may think an   array   as a type of hash table (array) that doesn't have a sequential addressing mode   (such as in the case of some types of associated arrays, as in the family of REXX languages and others).   The REXX language calls them   stemmed arrays.

But, back to a simple (one-dimensional) array such as in old-time FORTRAN, where the 1st element is number 1, and (say) continued upwards to element 100.

Of course, in the newer Fortrans, one could define/declare the array with   N   elements, where   N   is known only at run-time.   In this context, I can see the validity of asking the programmer to find the number of elements elsewhere in the program.   Most high-level languages have BIFs to return the low- and high-bound element (indices).

Of course, most languages allow the programmer to specify the starting element (number) and the ending element (or perhaps, the number of elements, starting at   N).

Clearly, in this (FORTRAN) case, there are exactly 100 elements in the array, even though, at this point in this discussion, the array hasn't been assigned any values, although they may have been assigned (or cleared) to zero   (or some other defined value as specified by the computer language).

This has nothing to do with   how many elements of the array have been assigned   values   (at least, by the program itself).

Some languages have a facility to detect if a variable (or element of an   array)   has a "value" that isn't assigned (i.e.,   undefined).

With REXX, it's more complicated.   If we use the traditional (as I understand it) definition of an   array,   (let's call the array   A)   then we could assign:


and the   A   array would appear to have two elements (assigned and defined).

Now; lets try something different:


and as with the 1st program, the   A   array would appear to have (again, as before) two elements (assigned and defined).

And, now for the fly in the ointment:


So, now we have (as previously) exactly two elements of the array defined, one element identified as   50   (two decimal digits or characters), and another element identified as   fly   (three lowercase letters).

And, if the two assignments were performed elsewhere (say, some subroutine or function), then there isn't really a handy or viable method to find out how many elements there are in the   A   array.   If the range of values for the elements is known, and the range is reasonable, one method is just to traipse through all the possible elements and determine how many of them are defined.   For the most part, this isn't a viable nor practical method.   Most programmers, when assigning a value to a new element, keep a list of all the (unique) element names (or indices, as that would be what people would call them if the elements are integers).

Note that nowhere does the REXX programmer tell/inform/declare how many elements that the   A   array has (or can have).   Indeed, there is no way for anything in REXX to be declared/defined/allocated/etc.

Well, OK, OK,   labels   are defined by ... er, ... defining/using them, and functions (or subroutines, routines, et alii) are kinda defined by usage, that is, when referenced in REXX statements.   Another thing are   conditions   (or subroutines) that handle exceptions, but all of these require a   label   which is identified by a colon after a symbol (statement label).

[Yes, yes, this train of thought has a caboose.]

I would like (besides world peace and the end to world hunger) to (possibly, kind of, maybe)   define   what an   array   is and for that matter, what an element of an array is   ---   at least, as far as the aforementioned Rosetta Code task.

By the way, no matter how it is defined, finding the number of elements of an array is problematic for the REXX language, but of course, we REXXers have a way to deal with this problem.   Some REXX implementations have a method to vary a   do   loop (structure) index to each of the defined elements, but it's not part of the Classic REXX language definition.

-- Gerard Schildberger (talk) 00:31, 8 October 2015 (UTC)

You are right; but in my defence...
The task was very popular and gained ten language examples by the time I promoted it with their editors not having much trouble finding a comparable interpretation of the task description. I usually look for at least four, and no unresolved issues in the talk page; but I now realise that there should be (more of) an element of "time-served as a draft" in my loose equation of when to promote from draft.
On your specific language questions, you bring up a point that I think Perl might share, as at least with hashes their is a method of providing a list of keys and creating a hash out of them with all the vales set to undefined. you then have the ability of a key existing in the hash but its value being undefined. Some languages might explicitly allow sparse arrays where possibly non-contiguous ranges of indices are allocated in memory making the concept of number of elements even more complicated.
I suggest you first attempt to interpret the task in the manner of the other examples then write about possible differences concisely with small example(s) in the task page or point to a larger exposition in the talk page?
--Paddy3118 (talk) 07:13, 8 October 2015 (UTC)
P.S. I have just seen that Array_length#J does this kind of extra explanation I mentioned. --Paddy3118 (talk) 07:19, 8 October 2015 (UTC)

Be careful with the IP blocks![edit]

WilliamNess reported on IRC that he's blocked because of an IP block that he didn't recognize. That means he's behind Cloudflare, and you inadvertently blocked at least one Cloudflare reverse proxy. :( ... and from the sound of it, you got a good chunk of Europe. --Michael Mol (talk) 18:45, 3 January 2016 (UTC)

I cleaned it up. MW doesn't make it easy to do through the web interface, so I went DB delving and disabled all autoblocks and cleared all outstanding IP blocks. --Michael Mol (talk) 19:10, 3 January 2016 (UTC)


There's quite a bit of spam visible at Special:RecentChanges. (I started to work on it but without delete privileges it's not very effective.) I tried to tell Mike but User talk:Short Circuit seems to be protected.

CRGreathouse (talk) 20:00, 20 January 2016 (UTC)

massive and erroneous editing[edit]

Since you are the creator of the Rosetta Code task "Heronian Triangles", I thought it should be brought to your attention that user   CRGreathouse   has done massive (global) editing for that task, and among other things, he made the Rosetta Code task preamble less readable (especially the math formulae, as I had made them larger to make the italics and superscripts more readable).   Now, that's a subjective thing, so I won't push that any further, I think a task's editing and re-editing of the preamble would just be counterproductive.

However, he removed a substantial amount of the REXX (programs) preambles which explains what and how the REXX programs worked and why the REXX programs made certain (logic) decisions.

Also, the 2nd REXX program (which is the version that is seven times faster) was removed without comment or discussion.   I thought that what the   discussion page   was for.

I also thought the numerous changes made to the REXX programs were for the worse, and it seemed those changes weren't beneficial nor made the reading of the program and/or comments any better.

Not the least of which, the Ring language was removed in its entirety, and I couldn't easily find who added that entry.

Because of the massive changes, I couldn't just undo the changes he made, it would've undone too many other changes.

If you could track down the author of the Ring author and inform him to re-enter that programming entry along with any comments and output, I'm sure it would be appreciated.

I spent over an hour restoring my comments, the two original REXX programs, their output, and the prologues of the two programs and an epilogue.   It seems such a pity to waste this much time undoing these massive damaging changes.

I do not want to address   CRGreathouse   directly, as I don't want to start an editing war.   But this massive change was the straw that broke the camel's back.   I think I used up my silver bullets, so I only restored what I thought was an excessively damaging change to the one language entry that I know extremely well (plus, I was the original author).   I have no idea why he removed the better of the two REXX versions, but both versions have their merits, the the 1st REXX version is the simplest (and shorter) and easier to understand, the 2nd REXX version is the preferred and robust version meant for   prime-time   execution.

Lastly, I also have no idea why the Ring programming entry was removed without so much as a comment, perhaps it wasn't worthy?   Or perhaps the baby was thrown out with the bathwater.   -- Gerard Schildberger (talk) 21:31, 8 July 2016 (UTC)

Multi-dimensional array[edit]

Hello, I added a question on storage order to this task, as it's a very important thing to know when calling libraries from another language, or even when programming in only the given language, in order to optimize memory access. There is an ongoing discussion about Fortran in the talk page, by the way. As this discussion shows, misconceptions are common. I don't know if there is a specific task on RC for this question, however I think it's the right place in a task about multi-dimensional arrays.

Arbautjc (talk) 12:27, 25 October 2016 (UTC)

previously deleted REXX subroutine entry[edit]

Sometime in the past, you moved (and then deleted the original) an entry (page) of the REXX subroutine $ERR.REX.

 18:58, October 3, 2014 Paddy3118 (Talk | contribs) deleted page $ERR.REX (Moved.)

(Yeah, yeah, I know, about a thousand days ago ···)

It is, as I believe, what "you" guys call an   orphan page.   A better word (I think) would be a   common   subroutine or function, that is, a page that belongs to   (but not owned by)   multiple Rosetta Code examples/entries/solutions.   The creation of mine which was to save space within a (REXX) example (as well as the overall space on individual Rosetta Code task's space).   That is, instead of including it in a (small, er, smallish) REXX example, it (the subroutine/function) would just be pointed to by a link (in a comment usually immediately after the source program).   These functions/subroutines are not one or two lines, no siree-bob.   There doesn't appear to be a way for a computer programming language entries to point to (the same language) subroutine for inclusion (within the programming entry).   I chose to use add a comment with a link (after the programming entry) that points to the (commonly used) subroutine.

To see this "error", see the Rosetta Code page $SPELL.REX, an altered Rosetta Code name for the actual program (function) which is named $SPELL#.REX.

The sentence (link) that doesn't work is:

 The   $ERR.REX   REXX program is included here   ──►   $ERR.REX.

The above page can be seen here:   http://rosettacode.org/wiki/$SPELL.REX

There are others (links) that also fail similarly.

Now, most (if not almost all) Rosetta Code users don't have any sophisticated subroutines/functions of the type that I code up (mine intend to be super-sized versions of general programs.   A case in point is my $SPELL# REXX function that spells any number you can enter (well, any number up to around   600   3,000   decimal digits), along with options for spelling currency symbols, exponentiated numbers, use of commas in the translated number, "saying" of decimal points, decimal fractions, exponents, leading signs, American or English spelling (well, more than spelling, the English have a different system that uses milliards and the such), and many other options.   One options, expressing numbers as an ordinal (which I intend to add as a Rosetta Code task soon).   The use of ordinal numbers will, in turn, become another new Rosetta Code task (also, to be entered soon).   I could've just removed (very very very carefully) all the options that weren't needed, but that seemed like a lot of work (crippling of features), and worse, now there would exist multiple versions of the same function (by name), and that would surely be confusing whenever somebody comes across a version that doesn't work (compared to another version of the same name).   The program (subroutine/function) that was deleted was a general-purpose error routine that issued a myriad of error conditions (and does some minor fix-ups like enabling console output), as well as insuring that the error message was actually seen by the end-user (i.e., not suppressing error messages), as well as displaying the error message in red   (if the terminal supports color).   Other features are to add whitespace to the error text (making the error easier to see), as well as what program is issuing the error message, and then set the return code (R.C. or RC) in REXX   (or the host environment).

That deleted (subroutine) entry was pointed to by a number of REXX entries that used that subroutine.

There are numerous other entries that utilize the same mechanism;   REXX entries that use a common subroutine, and the subroutine was large enough to move it to it's own page instead of cluttering up multiple REXX examples.

The only one that was broken (as far as I know) was the link to   $ERR.REX;   all the other links (fortunately) are intact (again, as far as I know) and still work as intended.

I have tried to edit the original (that was deleted), but I received an error message that stated that the entry has been deleted.   I hate things that one can't fix.

One problem with moving (and deleting) the REXX subroutine   ($ERR.REX)   to a page that used it (invoked it) is that you didn't know that other REXX entries that also used the exact same subroutine and also had a link pointing to it, and now those links are now dead (that is, they don't work as they are pointing to an entry that no longer exists.

Could the original file/entry (that was deleted) be restored to enable those links that were made invalid?   Either that, you could put in place a re-direct thingy so that the other links would work again.   I believe that would be the easiest (and lest work) that would enable the broken links to work.

I never noticed the failing links until someone mentioned to me that one of my comments mentioned the location (via a link) to one of my REXX subroutines, but it is no longer functional.

There are a few handfuls of these types of links, and I no longer know where they all are.   I think re-instating the original link (that worked) would be the easiest to make thinks work again, ... the original entry (now broken), and all the others that are currently broken. nbsp; Because of the way it was removed (I think), the   what links here   thingy doesn't function.   -- Gerard Schildberger (talk) 04:07, 6 September 2017 (UTC)

By the way, it isn't an   orphan page,   as   What links here   shows that it isn't an orphan.   -- Gerard Schildberger (talk) 23:35, 6 September 2017 (UTC)

As a followup, the REXX language doesn't have any trigonometric functions, nor for that matter, even a   sqrt   (square root) function.

There are two ways to handle this   (the lack of some common functions, in particular, sqrt).

  •   Code (in-line) a sqrt function
  •   Code an external function named SQRT

(For the external name, the actual file extension name would be operating system dependent;   the reasons why it should be in capital letters is in the way REXX was developed many many years ago.)

Now, when one enters a REXX program in Rosetta Code, you can write the code either way, but the 2nd method does not lend itself easily here on Rosetta Code.

Fortunately, the   sqrt   function   (or others of the same ilk, but not-so-much for trig functions and the log functions)   can be coded fairly small, but an efficient   sqrt   function   (the kind that I like to write)   ain't so small   (but it runs fast, and supports the returning of   complex   results).   I choose to just condense (compact) my version of the   sqrt   function instead of supplying an external version.   I also chose to not comment the compacted REXX statements, as explaining how the sqrt function works isn't/wasn't part of the Rosetta Code task(s).

I did the same for other (rather small) REXX functions, and it does add REXX code to the end of the REXX programs and detract from the readability of the REXX entries somewhat.   But at that time, I didn't know much about the ways and means of entering   common   REXX functions/subroutines in/on Rosetta Code examples   (and, as far as I know, there still isn't a means).   Hells bells, I didn't even know enough to create a new page.   -- Gerard Schildberger (talk) 04:54, 6 September 2017 (UTC)

Hi Gerard. It was a long time ago! I have skimmed your comment and went looking through my past contributions list and:
  • Yes, I was moving a REXX entry on that day.
  • I have no displayed edit at that time. I jump from edits at 14.49 to 23:00.
Note that this isn't really a REXX entry per se;   it's a stand-alone page that isn't   directly   a part (an entry/example) of a Rosetta Code task, but it is a common subroutine/function that is referred to by several bona fide REXX entries.   -- Gerard Schildberger (talk) 22:02, 6 September 2017 (UTC)
I also can't see any mention around then of file ERR.REX in my contributions log?
It's named:
STOP PRESS: A search has found http://rosettacode.org/wiki/$err.rex . Could it be that you forgot the name? --Paddy3118 (talk) 18:43, 6 September 2017 (UTC)
No, I didn't forget the name.     $ERR.REX
-- Gerard Schildberger (talk) 22:02, 6 September 2017 (UTC)

Did you go to the Rosetta Code   $SPELL.REX   page   [that was mentioned above, it's in the 2nd light-blue box (on my browser)]?     ... re-quoting text from above ...

To see this "error", see the Rosetta Code page $SPELL.REX, an altered Rosetta Code name for the actual program (function) which is named $SPELL#.REX.

The sentence (link) that doesn't work is:

 The   $ERR.REX   REXX program is included here   ──►   $ERR.REX.

The above page can be seen here:   http://rosettacode.org/wiki/$SPELL.REX

and once there, try to click on that:   The $ERR.REX REXX program is included here ──► $ERR.REX thingy.

I tried to get you to take the grand tour so you can see an actual "failure" instead of one of my own contrivance.   -- Gerard Schildberger (talk) 22:02, 6 September 2017 (UTC)

Hi Guys, Sorry to butt in to the conversation but I may be able to help. Paddy3118: That page did get deleted. It shows up in the deletion log and if you try to go to http://rosettacode.org/wiki/$ERR.REX you get the message quoted above. The message says it was moved but I can't find where. $err.rex was added in 2016.

Some questions for Gerard: Is the $err.rex essentially a duplicate of $ERR.REX? Could you just change the links to point to $ERR.REX? If I restore $ERR.REX can we convert $err.rex to a redirect page or does it have different content?

The page was supposed to be named in capital letters (as that is what the REXX program name is, and the original name was).   Renaming the original file isn't helping to clarify the naming problem, or the linking issue).   However, I wouldn't be adverse to having it both ways, that is, install a   re-direct   thingy so it can be found any which way.
As to changing the links ... I don't know where they all are.   Because of the broken link, I can't use a   What links here   tool.   But why does anybody have to change all the links (wherever they may exist) when they were working correctly in the first place?   This is just a symptom, and the cure shouldn't be worse than the disease.   If a file (or entry, or whatever) gets moved, make sure all the links to it remain in working order, even if a re-direct is needed.

  Some of those links were entered far to long ago for me to remember where they all are.   -- Gerard Schildberger (talk) 23:35, 6 September 2017 (UTC)

Also, it may be useful to make a category page to attach these REXX files to so this doesn't happen again. How do you refer to these pages(as a collection) REXX libraries? REXX NBIFs? REXX Subroutines? --Thundergnat (talk) 22:51, 6 September 2017 (UTC)

This won't happen again if they stay put, that is, don't get moved and/or renamed --- if it works, don't fix it.   If it does get fixed, then fix everything that refers (links) to it.   I know it's easy to "fix" something, and have somebody else take care of the follow-out.   But, to answer your question:   I don't refer to those pages (as a collection), for the main reason, they aren't a collection --- a loose hodge-podge or assorted REXX functions/subroutines/routines that are individually referred (invoked) by various REXX programs, most of which a user wouldn't care (or even have knowledge of) --- this kind of stuff happens   behind the curtain   and shouldn't be looked at or be concerned about).   The   $ERR.REX   is just one (internal wolf in an external sheep's clothing?) support (REXX) program that is used by several other REXX programs (Rosetta Code entries/examples), and REXXers don't have a   library   as such (although they may be stored in something like a library/directory/folder), they are just (REXX) programs that happen to reside in such a place that the REXX interpreter can (and must) locate them when invoked/called.   Most REXXers place these support programs (for a lack of a better name) in the same place (directory, folder, or mini-disk) as all their other REXX (mainline) programs.   The REXX language doesn't support a DLL library type thingy.   This is the closest thing to making those programs appear as if they were a (regular REXX) BIF (built-in function).   Also, I don't know what a   NBIF   is, and a search on the google-net didn't help any.   -- Gerard Schildberger (talk) 23:35, 6 September 2017 (UTC)

Just in case it wasn't obvious:   REXXers   are REXX programmers.   -- Gerard Schildberger (talk) 23:42, 6 September 2017 (UTC)

Ah. So this won't happen again as long as it doesn't happen again. Somehow I don't take much solace in that. BIF - built in function; NBIF non - built in function. No? ok, no. Well whatever you do or don't call them, since you have no opinion I'm going to call them REXX library routines.
But, but, but, but, they ain't   library   routines.   I realize you can choose to call them anything ya want, but that would be a misnomer, and   library   carries with it many notions and distinctions.   -- Gerard Schildberger (talk) 23:54, 6 September 2017 (UTC)
I asked for your input and I got "a loose hodge-podge or assorted REXX functions/subroutines/routines that are individually referred (invoked) by various REXX programs" [sic]. Perhaps '[Category:Rexx library routines]' is not as precise, but it isn't as flippant. If it makes you unhappy and you want to change it, feel free. It is a public wiki. Other than undeleting $ERR.REX, there is nothing I did that you couldn't. --Thundergnat (talk) 00:48, 7 September 2017 (UTC)
Sorry that you misunderstood my reply.   I was trying to   describe   what those thingys were, not   name   'em,   but in any case, what you choose for a name is OK, as it's just a place-holder name (as I understand it), not necessarily a description.   No flippancy was intended.   I don't fully understand what a   category   does, but if it helps "place" and/or "name" the stuff, then it's a good thing, of course.   By the way, I'm not unhappy, --- I was trying to think of a more (and/or accurate) name of such an animal, but I couldn't come up with one.   If there was any unhappiness, it was my failure to come up with a better name.   -- Gerard Schildberger (talk) 01:08, 7 September 2017 (UTC)
I understand that I could've added a   category,   (I think), but I didn't even know that was an option, nor did I even think that would solve the problem (with $ERR.REX and others).   I tried several things, I thought that merely changing the deleted entry would work, but I apparently didn't have the privileges needed for that to happen.   If you told me that merely added a   category,   would've fixed the problem, I could've done that --- well, with a little (or more than a little) help in setting up the   category   page.   The use of a   Template:Category   wasn't mentioned, I thought you were looking for descriptive/definitive name for such an animal for some other purpose.   -- Gerard Schildberger (talk) 01:40, 7 September 2017 (UTC)
Just an aside, how does one add a   category   page?   -- Gerard Schildberger (talk) 01:40, 7 September 2017 (UTC)
Sigh. Let me Google that for you --Thundergnat (talk) 02:17, 7 September 2017 (UTC)
Because these REXX pages are not "standard" could they have a prominent comment added on their purpose on RC after they are "tidied up" so they will remain good, tidy, RC pages? That comment might also include mention of the consequences of them being moved (or how best to move them if they do need moving). Thanks. --Paddy3118 (talk) 06:17, 7 September 2017 (UTC)
Actually, nothing was moved.   The main fix   (that I couldn't perform, I didn't have the authority, and it was a lack of knowledge about that restriction that stymied me in trying to fix the problem)   was to "un-delete" the deleted page   (either $T.REX or $t.rex   --- or something to that effect), and (I think) one   re-direct   was added   (for $T.REX or $t.rex).   All the other REXX pages just had a   category   added.   If you could write something that would be acceptable to all the powers-that-be, I'll add it to all those "non-standard" entries that I have entered.   All the REXX routines already have a comment stating what the subroutine/function/routine is supposed to be used for and by what (or whom?) it is invoked for.   I'll gladly add whatever paragraph would be suitable.   However, the text at the top of the   category   (Category: REXX library routines)   that was added has a very good explanation of what's what.   -- Gerard Schildberger (talk) 06:57, 7 September 2017 (UTC)

erroneous creation of a Rosetta Code task[edit]

Paddy (or any other administrator).

I erroneously created a Rosetta Code task instead of a (new) discussion page for the Rosetta Code task:   Eertree.

The erroneous Rosetta Code task name is:   Suffix trie.
Note that it is   trie.

Somehow, when I thought I had clicked on the   Discussion   tab in the Eertree task, I had instead, created a new Rosetta Code task.

The text of which was that the   Eetree   task use a URL that was misspelled or just plain missing (or some other explanation).
See the   Discussion   page for the   Eertree   task.

One bad fallout is that the defunct or misspelled URL (or whatever) now points to a valid page on Rosetta Code.

That erroneous Rosetta Code task   (Suffix trie)   needs to be deleted as soon as it is convenient.
-- Gerard Schildberger (talk) 21:42, 13 October 2017 (UTC)

erroneous modification of the Wikipedia entry for Rosetta Code entry[edit]

Paddy (or any other administrator, particularly Michael Mol, if you could contact him, as he entered the original at Wikipedia):

The user "Siskus" has been making erroneous and incorrect updates to the Rosetta Code entry on Wikipedia.

I know this may not be the place for this discussion, but if someone could get hold of Michael Mol and inform him of what is happening on that site regarding the Rosetta Code entry.

In particular, Siskus has incorrectly updated the programming languages to reflect what Siskus called the top 25 computer programming languages, and in addition, has added broken links, or more specifically, non-existent links (to computer programming languages).

I believe the changes could be construed as malicious, but I leave that judgement to others.

The original computer programming list (and somewhat modified/expanded/updated by me to reflect the current state of Rosetta Code as far of the number of tasks, computer programming languages, and the total number of programming entries/solutions) had computer programming languages that were widely known by the general public, and now, some of those names of popular programming languages have been removed.

I have un-did (rolled back) the three erroneous changes made by Siskus, but an edit war is the last thing that Wikipedia needs (concerning Rosetta Code).

I do not know how to raise this issue at Wikepedia about this issue (or even if I should), so I'm relying on Michael Mol (or some other person) to look into this problem and hopefully, find a solution.     I am hoping that this isn't the beginning of worse things to come.   -- Gerard Schildberger (talk) 17:17, 16 July 2018 (UTC)

I have been in contact with Michael Mol (via regular e-mail), and he has asked me to ask some Rosetta Code admins   (and, oh joy, I picked you)   and/or heavyweights to help Michael Mol understand what is probably needed to flag   (Mol's word)   a certain user (and his two or more sock puppets) on Wikipedia).   This concerns many massive malicious and damaging changes on the Rosetta Code entry on Wikipedia.   The original Rosetta Code entry was created my Michael Mol, ... then, apparently, the original was removed/deleted as not being "noteworthy", and apparently, it was then later re-instated or the deletion was un-done.   Since then, I have been updating various Rosetta Code statistics (number of tasks, draft tasks, number of computer programming languages on Rosetta Code, and the number of programming entries/solutions)   and such things like creating a (bullet) list of some commonly well-known names of the computer programming languages entered on Rosetta Code.   This has, in addition to facts concerning Rosetta Code, makes it known that Rosetta Code is noteworthy and is is indeed active and thriving with almost 60,000 programming entries/solutions.   In any case, Siskus (and later, two sock puppets) have been un-doing my un-doing of his un-doing, and the latest un-doing was done by a user named   MichMol   (another sock puppet).   At this point, I e-mailed Michael Mol   (the real one)   and he asked me to help find out who would know about addressing this issue and what would be needed to try to find or create a solution to this problem(s).   Michael will be looking for somebody at Wikipedia that might know how to fix this situation.   I'm hoping that the Rosetta Code entry on Wikipedia could be frozen (or locked),   and that would mostly solve the problem with the vandalism.   I hate to discuss this on this Rosetta Code forum, so I would appreciate some form of communication other than here, unless you'd require this discourse to be here instead of e-mail.   Michael Mol has my e-mail address if you need it.   I will await for your advice or somebody else to help us with this problem.   -- Gerard Schildberger (talk) 09:55, 25 July 2018 (UTC)

Hi Gerard. I was fighting with the awful wikipedia system to stop them removing the RC entry and trying to get it reinstated. I gave up. I wasn't the only one facing the awful WP moderation of that time - there were others with similar gripes, and I think it also had column inches in national newspapers. I'm done with that stress. I now hardly ever edit anything on WP and had just wished the contributors, such as yourself, luck with WP.
If you do talk to a WP person and they are looking for someone who can give another view, then you could put my name forward; but I thought WP editors were dicks with power at one time, and I am loath to stoop in again. --Paddy3118 (talk) 07:39, 28 July 2018 (UTC)
Paddy, I don't see your point. https://en.wikipedia.org/wiki/Rosetta_Code is visible for me. I did not check Gerard's points though. --Walter Pachl 11:04, 28 July 2018 (UTC)
Walter:   The sock puppet for Siskus (the fake userid MichMol) stated that   "Bad html makes this page partial invisible in e.g. Opera"   (the summery from the history page)   was incorrect and was intentionally misleading, and it was just used as a bogus reason to undo the un-doing of the un-doing of the un-doing of the un-doing of the ...       -- Gerard Schildberger (talk) 19:22, 28 July 2018 (UTC)
Paddy:   yes, I agree with you that the Wiki moderation is next to awful, and it also seems very capricious.   I was reading about one person that they banned, and it took   forever.   Pages and pages of discussion, and that was a cut-and-dried case of bigotry and hatred speech.   Wikipedia does not seem to have an effective way of dealing with abusive and destructive editing.   Perhaps a freezing (or locking) of the Rosetta Code entry on Wikipedia would work, but then, there would be no viable recourse for legitimate updates/edits to be made   (except by administrators or others of suitable authority).   -- Gerard Schildberger (talk) 19:22, 28 July 2018 (UTC)


Hi Paddy3118, I just deleted 9 tasks that were entered by Calmosoft where a Google search returned a Leetcode task as the top result with essentially identical task descriptions and test values. I've banned him for a week. See User_talk:CalmoSoft under "Copying tasks from other sites". He has been warned before. --Thundergnat (talk) 14:41, 28 July 2018 (UTC)

If it is that many, then that seems fair.

wording in the preamble of the task Mind boggling card trick[edit]

Hi, Donald McCarthy:

I had a few suggestions and concerns, I thought this would be the best place to address them.

Some people get quite attached to their task's prose, and I don't know you well enough on how you'd take to so many   (what may appear as trivial or nitpicking)   suggestions.

Instead of pack,   it could just be called a   normal deck of cards.

I think (round) bullets could be used for the four main points,   and numbers under those.   But I'm pretty soft on this.   This would make it easier to read and discuss (or refer to) the numerous points.

   1. Create a normal deck of playing cards  (half of which are red,  half are black).

or better yet:

   Create a normal deck of playing cards  (half of which are red,  half are black)   and give it a good shuffle.

Call it a shuffled deck   (instead of an assembled pack),   and the word piles could be used instead of the word stacks,   as stacks means/suggests something different to computer programmers,   and stack also suggests or implies that cards could be added to the top of the stack,   whereas it doesn't matter how the cards are placed into piles.   Also, those stacks are also called piles elsewhere currently in the text.

   2.  Deal from the shuffled deck, and place them into one of three piles.

Consistent wording   (and alignment) &nbsp' could be used for   Also, since the red pile isn't really red,   I put double quotes around it to indicated that it's just called "red", and not, in fact, composed of just red cards.   Indeed, the colors   (colours   if you want to use the British spelling)   of the unseen playing cards are unknown.   Ditto for the "black" pile.

For 2.1.1:

            1.  if it's a black card, then add the next card (unseen) to the "black" pile.
            2.  if it's a  red  card, then add the next card (unseen) to the " red " pile.

For 2.2:

   2. Repeat the above for the rest of the shuffled deck.

(instead of assembled pack.)

3.2   It says to choose ... out of each stack.   There are, in fact, three stacks.
3.1   Says the number.
3.2   Says that number.   So ...

   2. Randomly choose that number of cards out of the "red" and "black" piles.

Use   nobody   instead of   we   at the end of 3.2   (slightly gooder Englush).

      ... nobody knows).

If a bullet point has only one entry, then that single entry shouldn't be numbered.

For 4.1: (also, the red pile isn't composed of red cards (ditto for the black pile), so I included double quotes around the pile named red and black   (this may not be enforced strictly in the rest of the task's preamble, but I think it should):

    Check the mathematician's assertion that:
      The number of black cards in the black pile equals the number of red cards in the red pile. 

(It's hard to guess   how   or if)   the mathematician enunciated/stressed the above annotated red and black).   I thought it was a much more clearer when talking about the number of red cards in the red pile ...       If there are ten cards in the red pile, then there're ten cards in the red pile, some of which are red   (but not read, as they are unseen).   Sometimes, written language gets in the way of what's intended to be meant   (or understood).

I've already corrected a misspelling and added other whitespace to the (draft) task's preamble.

What do you think? Should I go ahead and implement any of the above?

I could update a copy of the task's preamble and show it to you here, so you see the whole thing and discuss/review the changes here first.   -- Gerard Schildberger (talk) 06:27, 26 August 2018 (UTC)

Hi Gerard.
  • Attachment: Yep I'm human; but I need to learn to let go :-)
  • Deck vs Pack: Pack seems natural to me. If Matts video says pack then we could leave it that way. (I don't play many card games, but pack came first to me rather than deck).
    • He says deck!
  • He says pile!
  • Double quotes seems right as it is the name he uses but each "pile" can contain either colour.
Yes, I know, that is why I included the double quotes, to make it clearer.   -- Gerard Schildberger (talk) 09:04, 26 August 2018 (UTC)
  • Numbering: I would like someone to be able to refer to point x.y.z unambiguously. I wouldn't want a mixture of numbered and plain bullet points to make things worse. I had to experiment with the wiki layout and this is what I could do, but I'm no expert :-).
  • I like gooder English :-)
  • "If a bullet point has only one entry, then that single entry shouldn't be numbered. " I'll need convincing on that one. See comment on numbering above.
I would just ask you to be careful of doing any changes that might affect previous solutions; but without critique I can't get better. Thanks again Gerard, --Paddy3118 (talk) 07:47, 26 August 2018 (UTC)
OK.   I take it that you'd prefer that I don't make any changes then.   None of the changes that I proposed should no way negate any programming examples.   But it does read strangely to my American eyes.   As an ancient programmer, I like clear and succinct descriptions and directions (I guess I'm too old to change now).   I used to write tons of documentation in a previous life, and I got (me thinks) pretty good at it.   It was fun and enjoyable when it was part of what I did so many years ago.   Well, it was the last century, and I miss the   IBM 3211's   with the   TN   chain.   But I do wish that stacks wouldn't also be referred to as piles later in the task's preamble (towards the end of the preamble).   -- Gerard Schildberger (talk) 09:04, 26 August 2018 (UTC)
As far as numbering a single bullet point, I read that somewhere on a (real) book of how to write (gooder) English, and that book had a whole, er ...,   chapter on writing outlines and chapter headers and sub-headers, and this one of the rules that I remember clearly.   -- Gerard Schildberger (talk) 09:04, 26 August 2018 (UTC)
I know how it is when someone re-writes (or worse, completely re-writes) a task's preamble.   Lucky numbers was one that was butchered almost beyond comprehension.   I still think that it is one of the worst descriptions of how to generate lucky numbers   (and even lucky numbers).   Someone wrote a macro-like   er ...,   "generating" generic general macro thingy,   and it reads just awful.   Not a good Rosetta Code task description to read and comprehend/understand if you already have a headache, if not, you'll get one.   I also had another task changed to something that contradicted what the task's intent was, and I had to just walk away from "ownership" of those two tasks;   ya can't have an editorial fight with people who buy ink by the barrel.   (I hope you know the meaning of that (American?) expression).   As used here, I mean people with admin authorities.   -- Gerard Schildberger (talk) 09:04, 26 August 2018 (UTC)
Actually, the better way of annotating headers is to use:
                     1.  toothpaste
                          1.1  toothpaste creams
                          1.2  toothpaste pastes
                                1.2.1 commercial pastes
                                1.2.3 homemade pastes
                          1.3  other forms of toothpastes 
                     2.  toothbrushes
                          2.1  manual
                          2.2  mechanical (motorized)   
which solves the problem of not having unique headers.   Everything is explicitly numbered (uniquely).   ─── But of course, the Wiki that Rosetta Code uses doesn't support those types of chapter headers (automatically)   (at least, that I know of).     [I had a fleeting thought of using Roman/Greek dildos (types) instead of tooth tools, but humor can only be stretched so far.]       -- Gerard Schildberger (talk) 09:04, 26 August 2018 (UTC)

I might as well as tell ya a story,   kinda related to my ole days or yore whilst writing a tome on (VM) CMS usage waaaaaay back in the late 70's ...

I was writing a user introduction on how to use the CMS system and take advantage of some of the services;   the "users" were experienced programmers, but not quite used to using CMS and VS/1, most came from MVT/TSO backgrounds.   It was a labor (for you, labour)   of love and showed my passion for technical writing;   I did most of it after hours.   One of the gals (yeah, I am quite provincial at times)   at the documentation group knew Script quite well, and her skills were sorely needed as the others just barely knew the fundamentals of that language,   and I was stretching their skills of the Script language).   So, she took on the project as she wanted a bit of a challenge on the different indentations and numerous illustrating examples and some other neat things that I was wanting to do.   She enjoyed working on the project so much, she would take it home and proofread the hard copies, (as it turned out, most often in bed).   The plot thickens.   Sometime later, a few weeks as I recall, we had a department party (after hours), and that gal walked up to me and introduced her husband.   He   (all macho and all of 6' 5" or so)   gave me the once-over, and said, "so you're the guy that keeps me up at night, losing sleep and   ...     whatnot."   Yeah, it sounded like he underscored it for a reason.   Various and wild swirling thoughts leapt to mind as he could've snapped me like a twig, and he did not sound like a happy camper, no siree, Bob.   She explained that when she got to some really funny parts of my tome, she would nudge her husband   (who was, of course, sleeping),   to wake up and read this great funny pun.   As it turned out, he had a very wry sense of humor, which I did not recognize on him at all.   Ahhhhhhh, the good ole days.   That tome was sure worth the time I spent on it.   There were a lot of humorous   Easter eggs   in the examples.   -- Gerard Schildberger (talk) 09:44, 26 August 2018 (UTC)

No. Please go ahead and make some updates. I have confidence that we can work things out between us and RC to get the task description right. Now we know that we have American and British English to work around as well as connecting with the Video.
I just re-watched the video and this time, was careful to note which words he said, and he did (more or less consistently) use the word piles instead of stack,   and he also used the phrase deck of cards instead of pack.   so I was thinking about doing a revision here (on your talk page) before I make the changes, so it wouldn't needed to be changed that much on the real task page (hopefully just once).   We can make more transparent changes (to a working version here).
Thanks for the anecdote. Like you and the Script lady, I too, often take the interesting part of work home with me - I find I understand things better after trying to program some minor detail of an issue. --Paddy3118 (talk) 10:08, 26 August 2018 (UTC)

working copy of the draft task: mind boggling card trick[edit]

I didn't quite love the wording concerning the swapping, so I added a step (separating the taking of cards from the two piles ("red" and "black").   Also added was the concept of a "bunch" as the taking of a random number of random cards from two other piles and putting (swapping) those bunches (back) into the "other" pile(s)   ---   it was getting my mind a bit foggy (after all, this is a trick, and I really want to understand the intention here).   I hope it's clearer.   As the ole saying goes, it may be muddy, but it covers the ground.

I also thought that telling the dealer to "hold" the top card, and, as the dealer will also be taking another card (to be placed into the "red" or the "black" pile), and then the dealer has to place the card (that's being held) into a third pile (the discard pile) was a bit "heady".   --- Hopefully, this is less confusing.   As I said in other words, this is a "trick", and readers will be reading quite carefully and be looking for different ways to interpret what is being commanded of them to perform.

I spent some time on aligning a few statements that benefited from an over/under comparison.

One thing I didn't like about the YouTube video is that the dealer put the   top card   into   two   discard piles instead of just one pile.     Don't do as I say, do as I do     type of thingy.     Grrrrr.

Also, I had some trepidations, but I Americanized the British words.   If you want it back into your "flavor",   er ..., I should say,   "flavour",   no problem, it can be changed back tout suite if you prefer the wording for the east side of the pond:   mimicks,   colour,   randomising,   and perhaps some other verbiage like   pack of cards instead of deck of cards, ...       -- Gerard Schildberger (talk) 16:07, 26 August 2018 (UTC)

I generally like the re-wording, except for the loss of the Britishisms, after all, both Matt and I are British.
Crucially, your section 3 describes the Python way of doing things, and one of the existing solutions just swaps X times and so would need to be updated.
If I am correct on the effect of your changes then why not make them. The task is still draft and it makes for a better task. (But try and leave leave in some of the Britishisms - please :-)
--Paddy3118 (talk) 16:55, 26 August 2018 (UTC)
There is no Americanisms of any Britishisms, except for mimicks and Maths.   I thought (and also the Rosetta Code wiki) that was a misspelling.   I put the British word back.   And I thought that Maths was part of a title, so it was left intact.   There is no longer any mention of colour, as the words red and black don't need specifying as red colour and/or black colour.   As an aside, it seems that most of the Britishisms are treated by Wiki (on my computer) as misspellings.   Perhaps because of some wiki setting?   Anyways, no big deal.   Please let me know if missed any other words that I had Americanized.     Two countries, separated by a common language.   -- Gerard Schildberger (talk) 17:49, 26 August 2018 (UTC)
I don't quite follow you on the re-wording of section 3.   Since I wrote it, I'm probably blind to the difference.   By the way, I don't know a Python "way", as I don't speak Python.   Could you elaborate a bit?   -- Gerard Schildberger (talk) 17:49, 26 August 2018 (UTC)
As I understood the swapping, if one of the programming solutions (entry) swaps   X   times (instead of all at once, so to speak),   then the same card (chosen randomly) might be the next random card (also chosen randomly)   and put back into the original colored pile.   Now, in the global scheme of things,   this won't effect the validity of what happens,   but it isn't what the video narrator (Matt Parker) said to do.   I re-listened and then re-re-listened to the video, and he said to take   5   random cards from each pile and swap them for   5   random cards from the other pile,   not to take a random card from each pile and swap a card from the other pile   5   times.   -- Gerard Schildberger (talk) 17:49, 26 August 2018 (UTC)
By the way, I like to see embedded URLs (links) as being underlined, so I showed the YouTube video link as such.   My eyes can't tell that much difference between black text and blue text, so the underlining helps make it clear that it's a link.   -- Gerard Schildberger (talk) 17:49, 26 August 2018 (UTC)
Boy, it seems that most of the 820 reviews/comments (for the video) were not kind.   For some reason, a number of people fixated on the (awful) die that he rolled   (complaining about the props?).   -- Gerard Schildberger (talk) 17:49, 26 August 2018 (UTC)
So, give me the high sign when I should "move" this working copy to the real McCoy, assuming we iron out the remaining kinks first.   (Also, I'm a railroad buff, and there is an interesting story about   the real McCoy.)   -- Gerard Schildberger (talk)
Does the wording of the (draft) task meet with your approval?   -- Gerard Schildberger (talk) 08:38, 28 August 2018 (UTC)

draft task <--- (this is boogied up thingy so not to actually cause a draft task to be created in Rosetta Code land, we certainly don't need two of 'em.)

Matt Parker of the "Stand Up Maths channel" has a   YouTube video   of a card trick that creates a semblance of order from chaos.

The task is to simulate the trick in a way that mimics the steps shown in the video.

1. Cards.
  1. Create a common deck of cards of 52 cards   (which are half red, half black).
  2. Give the pack a good shuffle.
2. Deal from the shuffled deck, you'll be creating three piles.
  1. Assemble the cards face down.
    1. Turn up the   top card   and hold it in your hand.
      1. if the card is   black,   then add the   next   card (unseen) to the "black" pile.
      2. If the card is     red,    then add the   next   card (unseen) to the   "red"  pile.
    2. Add the   top card   that you're holding to the discard pile.   (You might optionally show these discarded cards to get an idea of the randomness).
  2. Repeat the above for the rest of the shuffled deck.
3. Choose a random number   (call it X)   that will be used to swap cards from the "red" and "black" piles.
  1. Randomly choose   X   cards from the   "red"  pile (unseen), let's call this the   "red"  bunch.
  2. Randomly choose   X   cards from the "black" pile (unseen), let's call this the "black" bunch.
  3. Put the     "red"    bunch into the   "black" pile.
  4. Put the   "black"   bunch into the     "red"  pile.
  5. (The above two steps complete the swap of   X   cards of the "red" and "black" piles.
    (Without knowing what those cards are --- they could be red or black, nobody knows).
4. Order from randomness?
  1. Verify (or not) the mathematician's assertion that:
     The number of black cards in the "black" pile equals the number of red cards in the "red" pile. 

(Optionally, run this simulation a number of times, gathering more evidence of the truthfulness of the assertion.)

Show output on this page.

table of contents comes here, followed by, of course, the computer programming languages examples. -----

curious about the number of userids on Rosetta Code[edit]

Paddy:     I'm a more than a bit curious about all the userids that are being added   (apparently each and every day, and almost all of them have no contributions, apparently).   Is there a place on Rosetta Code that states how many userids there are, and also, how many of those have any contributions?   It would be nice to see how many userids there have been created for each year of Rosetta Code's existence.

There must be a butt-load of 'em by now   (a truly scientific term if I ever heard one).

-- Gerard Schildberger (talk) 23:17, 12 August 2019 (UTC)

Sorry Gerard, but I've never found such a page. I occasionally look up mentions of Rosetta code online, and I know that
1. More Coding challenges and Coder training sites are apt to use RC examples.
2. There are more Programming language communities mentioning Rosetta Code.
3. RC gets mentioned in science papers. Usually by authors wanting a routine, or a corpus of multi-language code.
I would guess that people join as a statement of support for what RC has and does - but that's my optimistic side :-)
--Paddy3118 (talk) 16:00, 17 August 2019 (UTC)
Don't you guys ever check out any of the other links on the site? These are all publicly accessible, don't even need to be logged in. User creation log --- User list --- Active users (in the last 30 days) --- Users that have made edits
I doubt if there is going to be much of a username <=> locality correlation. The IP addresses of users are not available; (except maybe to Short Circuit), that would be a much more reliable (though still suspect) indicator of a users location. --Thundergnat (talk) 17:26, 17 August 2019 (UTC))
Where are these links mentioned of Rosetta Code?   If (old/experienced/has-been-around-forever) Paddy3118 never found it, how would most people find it?  ?   Once I found out what the page was called, a search didn't help.   I then looked under   special pages   and I finally located the   user list.   The first page of the list of users (pointed to above) has users up to   "AI..."   on the first page, which has around 1,000 users;   that gives me a clue (but not a number) of how many users actually exist, as I can only extrapolate the total number based on one letter of the alphabet.   All of the   A's   have about 4,900 userids.   Getting the rest of the names would be a chore (doing 1,000 userids at a time).   By the way, I wasn't trying to find out   where   the users are from, but I wanted an inkling where they are being created (added) from.   If that user (userid) list was readily downloadable, I was thinking about adding (somewhere) a histogram plot of the growth of users on Rosetta Code (plotted maybe by month and/or by year, and stuff like that there.     -- Gerard Schildberger (talk) 19:44, 17 August 2019 (UTC)
Replies to several inquiries:
Where are these links mentioned of Rosetta Code?
Under Special Pages.
If (old/experienced/has-been-around-forever) Paddy3118 never found it, how would most people find it?
Hmm. I'll quote myself.
Don't you guys ever check out any of the other links on the site?
That's how I found them.
...that gives me a clue (but not a number) of how many users actually exist,... Getting the rest of the names would be a chore...
Or a matter of writing a short program that queries the Mediawiki API.
By the way, I wasn't trying to find out where the users are from, but I wanted an inkling where they are being created (added) from.
If you aren't looking for a geographic location I would suspect the answer would be "the Internet". ¯\_(ツ)_/¯ --Thundergnat (talk) 20:01, 17 August 2019 (UTC)
I know a guy that fell overboard from a cruise ship (he wasn't harmed).   If you would ask, "where?"   I could answer, "in the water".   ... Not very helpful.     -- Gerard Schildberger (talk) 16:16, 28 August 2019 (UTC)
Ooo!, Here's another link you might find interesting. Special:Statistics Under Special pages -> Admin links-> General-> Statistics. --Thundergnat (talk) 20:10, 17 August 2019 (UTC)

"Functional" versions in py of 99 Bottles of Beer[edit]

The previous versions was the first example to how to "personalize" the song. And this was fantastic. It's the unique funny code in that page, apart the Go Typoglycemic version... :-D

I was inspired by these py codes, but, modesty apart, I think my solution is better. It's more simple and more readable.

Do you think we can move the two old functions to "Other solutions" and cite/link them?

Hm,probably somone will complain. I usually try and keep the first solution as the fist unless there are reasons not to; and only remove code with good reason (and rarely). Not much help, I know... --Paddy3118 (talk) 00:19, 20 January 2020 (UTC)
Ok, no problem... even if the Haskell version translated in Python is really terrible :-D
Marco Sulla (talk) 00:49, 20 January 2020 (UTC)
 :-) Your 'Simplified' version will be of more Rosetta value (as defined by the RC landing page - to aid a person with a grounding in one approach to a problem in learning another) next to versions taking a differing approach, than on its own.
Quality is not an inherent property of code, but a function of how well optimized it is for a particular operational and institutional context. Brevity and speed are seldom good proxies for how well code really works in a given context (reliability will often tend to be a slightly better proxy, but even then, readability will depend as much on local conventions and experience as on general guidelines).
Definitions of 'functional' composition tend, incidentally, to focus on building blocks that are immutable as well as pure, so you will find that many functional programmers would be a little surprised to see that label attached to the 'Simple' version's for loop, with its mutable variables.
But no matter – the value of Rosetta code lies not in claims to canonicity, but in insight yielded by comparison. Hout (talk) 01:36, 20 January 2020 (UTC)
Yes, well... I used the term "functional" because it was already used by the py version of the Haskell translation. Maybe "flexible" is more correct.
Marco Sulla (talk) 01:56, 20 January 2020 (UTC)

Problems with 99 d****d bottle of beer in Py[edit]

Okay, I'm sorry to disturb you for this... but evidently I can't find a compromise with the user Anonymous31415927.

1. He targeted my simple version as copied by http://www.99-bottles-of-beer.net/language-python-573.html . And yes, I first wrote a simple version myself, I saw the www.99-bottles-of-beer.net version and I modified it, clearly inspired. I also explicitly linked the original code. But the code is different. I simply copied the *concept* of not repeating "bottles of beer on the wall", but to use it in a variable.

2. He continue to rename my version. Now is "Python 2, short version". Okay:

a. "Python 2" is useless and inexact. It's useless because I wrote the target version before the code. It's not exact because it works also for Python 3 (I tested it on Python 3.9 alpha... :-D).
b. He also changed the target version! I wrote "2.6+" and he removed the plus!

The name I would give to my code is "(Currently) the simplest version". Probably is also the shorter, but who cares. I think it's the simplest because it does not manage special cases of 0 and 1, as allowed in the task. It simply do one string assignment, a loop and a print inside the loop. Stop. More simple than that can only be printing the entire song :-D

Sorry for the disturb, and Happy new Year, with a *little* retard :-D

Marco Sulla (talk) 17:44, 26 January 2020 (UTC)

Hi Marco.Best to ask him to converse with you and explain his reasoning, politely. Explain what you would want to see, as well as point out factual innaccuracies (such as what Python versions it can run under). Be polite, and ask for similar explanation from the other user. If the other user just indulges in a mute edit war then steps can be taken, but first try and give them a chance to explain themselves, and maybe a compromise will evolve. --Paddy3118 (talk) 19:28, 26 January 2020 (UTC)
Well, the problem is the user seems to be not very open to a normal discussion... We started a discussion on my talk page, and a certain point he removed all the contents and posted only its reply. I wrote to him "I hope this is done by mistake", I restored the page, added its reply and replied. Well, it cleared the page another time. So I simply restored the page and stopped to talk to him.
...Well, anyway, I'll try to reason with him. But I'm not so happy and positive :-|
Marco Sulla - talk - GitHub 22:54, 26 January 2020 (UTC)
Oh, and try and be courteous - let your argument persuade on RC. --Paddy3118 (talk) 23:52, 26 January 2020 (UTC)

Perl 6 Fairshare marked incomplete?[edit]

Um. Why exactly did you mark the Perl 6 Fairshare example as incomplete? It already computes the sequence at 11, and did so before you changed the task requirements. What else can I do to make it not incomplete?. Am I just not seeing something? Did you even glance at the code before flagging it? --Thundergnat (talk) 18:30, 1 February 2020 (UTC)

I needed to change the task to use 11 instead of 7, and although I had at one stage read your Perl 6 example, I also had more than one tab open and might have got confused. I can only apologise if I marked a perfectly good example of yours in error. It wasn't meant, and I hope to do better. "My bad" I think is the phrase that fits. Sorry Thundergnat. --Paddy3118 (talk) 00:07, 2 February 2020 (UTC)

liquify image[edit]

Hi Paddy3118 why did you delete my task? dice according

"I don't see how this could be accomplished on RC."

there are many ways to show this in RC for example a link to a video where it shows how to deform the image. Restore the page please

As you demonstrate, there is no way to show output on RC. Programs are likely to be huge, or trite, (do you have an example we can look at)? It looked as if it were too far from the norm to even be draft.
I decided move it to your own space. --Paddy3118 (talk) 07:31, 5 March 2020 (UTC)


Paddy, Could you please send me the code of login: href="/mw/index.php -> pachl(at)chello.at I forgot how to "sign" entries :-) Walter

Hi Walter, unfortunately I am not sure of what you are requesting? --Paddy3118 (talk) 05:54, 2 April 2020 (UTC)
pls send me an email so that I can explain "privately"

order of addition of new talk sections[edit]

Is there an accepted protocol (or generally accepted) order of adding new talk/discussion entries (sections)?   I always thought that you add new entries at the end of list.    

Yep. 99.9% of the time. An exception is major, like notice of task removal. --Paddy3118 (talk) 20:26, 24 June 2020 (UTC)
Thanks.   I will move a top-posting to the bottom for the discussion of the task:   Determine if a string is collapsible.     -- Gerard Schildberger (talk) 08:05, 25 June 2020 (UTC)

concerning the raw.githubusercontent, English words dictionary[edit]

I'd thought you'd like to know that the dictionary that you used for finding a better (higher) solution for a specific (optimized) word wheel (grid), in particular:


isn't in alphabetic order.

Namely, --- and I haven't looked further then this ---   that the   Ys   are out of order, and also scattered throughout the dictionary   (throughout   may be too strong a word here).

Later, I found out that there were a lot   (well, a significant number) of   Y   words mixed in with the   I   words.   I don't know if there is a systemic reason for this.     -- Gerard Schildberger (talk) 15:12, 8 July 2020 (UTC)

I just wanted you to know in case you're doing research/searches/whatever,   and you're depending/expecting that the dictionary being in an alphabetic order.     -- Gerard Schildberger (talk) 21:47, 5 July 2020 (UTC)

By the way,   I'm in the process of merging the words from that dictionary with "my" personal ultra-fat dictionary.     -- Gerard Schildberger (talk) 21:47, 5 July 2020 (UTC)

Thanks Gerard for the notice. It seems that there are and should be word lists for different applications; some having easier or more specialised words; swearing, slang,...
The more I look, the more there is to see ☺️--Paddy3118 (talk) 06:07, 6 July 2020 (UTC)

I finished up the merging of the words from the (above) mentioned "GitHub user content" (English dictionary),   and it added over   32,000   words in "my" dictionary.   As the new words were being merged,   I noticed a whole she-bang of hyphenated words being added.   "My" dictionary now has   947,359   words in it.   Maybe   "words"   isn't the correct word to use,   "entries"   would be a better fit.       Thanks again for informing me of that English dictionary.     -- Gerard Schildberger (talk) 15:12, 8 July 2020 (UTC)

natural sorting, less spaced out[edit]

I noticed that you stated that your latest edit   (for the  Sample input)   was less spaced out, and that, in part, is true.   It was spaced out wider   (but didn't require horizontal scrolling),   and took advantage of the horizontal real estate,   but it was much shorter so that   Sample input   section would fit on one screen without vertical scrolling.

However,   it is now quite a bit   longer   (vertically).   My intent to was to make the   Sample input   easier to read (on one screen) without vertical scrolling,   and not have the reading of the sub-fields interfere with that visual scanning.   Also, one could read the three major headers (sections?)   without having to visually compete with the secondary title entries, Text strings:,     and its tertiary entries,   the examples themselves which are for the most part,   literals   (cluttered with their own sub-fields, necessarily so)   which read better when having them in their own column.   That section of the task's preamble is now eighteen lines longer and the whole is a lot harder to peruse to my eyes,   forcing me to now read all the sub-fields.   I was going for a more columnar look rather than a vertical/stacked list for a shorter vertical presentation where the primary and secondary/tertiary fields have their own columnar locations.   I'm not arguing that it should be changed once again,   but I thought you should be aware what was intended and I was trying for a more Wiki-look approach in presenting multiple fields of information that fitted on one screen instead of forcing the reader to vertically scroll to enable to perusing the presented fields of the Sample input.     -- Gerard Schildberger (talk) 08:53, 7 July 2020 (UTC)

For easier comparisons, the older presentation is shown below so viewers can do a side-by-side comparison   (using two windows).

(I was also thinking about   not   using the abbreviation   Equiv.   (two sections)   but I wasn't sure if that was legitimate to use the full uncapitalized word instead.
Also, the   m.a.s   abbreviation should be replaced with   MAS   which could further reduce the width of the   Sample input   section.)

The older presentation below is   44   lines deep,   the newer revised view is   62   lines deep.

Sample input
# Ignoring leading spaces.                           Text strings:   ['ignore leading spaces:  2-2',
                                                                      'ignore leading spaces:  2-1',  
	                                                              'ignore leading spaces:  2+0',
                                                                      'ignore leading spaces:  2+1']
# Ignoring multiple adjacent spaces (m.a.s).         Text strings:   ['ignore m.a.s spaces:  2-2',  
	                                                              'ignore m.a.s spaces:  2-1',  
	                                                              'ignore m.a.s spaces:  2+0',  
	                                                              'ignore m.a.s spaces:  2+1']
# Equivalent whitespace characters.                  Text strings:   ['Equiv.  spaces:     3-3',  
	                                                              'Equiv. \rspaces:    3-2',  
	                                                              'Equiv. \x0cspaces:  3-1',  
	                                                              'Equiv. \x0bspaces:  3+0',  
                                                                      'Equiv. \nspaces:    3+1',  
	                                                              'Equiv. \tspaces:    3+2']
# Case Independent sort.                             Text strings:   ['cASE INDEPENDENT:  3-2',  
	                                                              'caSE INDEPENDENT:  3-1',  
	                                                              'casE INDEPENDENT:  3+0',  
	                                                              'case INDEPENDENT:  3+1']

# Numeric fields as numerics.                        Text strings:   ['foo100bar99baz0.txt', 
# Title sorts.                                       Text strings:   ['The Wind in the Willows',  
	                                                              'The 40th step more',  
	                                                              'The 39 steps',  

# Equivalent accented characters (and case).         Text strings:   [u'Equiv. \xfd accents:  2-2',  
	                                                              u'Equiv. \xdd accents:  2-1',  
	                                                              u'Equiv.  y accents:    2+0',  
                                                                      u'Equiv.  Y accents:    2+1']
# Separated ligatures.                               Text strings:   [u'\u0132 ligatured ij',  
	                                                               'no ligature']
# Character replacements.                            Text strings:   [u'Start with an \u0292:  2-2',  
	                                                              u'Start with an \u017f:  2-1', 
	                                                              u'Start with an \xdf:    2+0', 
	                                                              u'Start with an  s:      2+1']

(Editorial note:   the above   Sample input   has been shortened and elongated, plus other changes made.)

The above chart would be presented better as an HTML table,   but that might start an edit war/tiff.     -- Gerard Schildberger (talk) 08:53, 7 July 2020 (UTC)

Hi Gerard. The main cleanup is your edit that I then shortened the line lengths of. Your points are valid.Thanks for pointing out the increase in line lengths. I'll revert my edits with a smile, either are better than what you straightened out :-)
--Paddy3118 (talk) 09:59, 7 July 2020 (UTC)
Thanks, you can't possible know how much I appreciate the restoration.   It takes a well-centered person (they used to be called a "big man")   to see both sides of such a situation.   I too am a big man,   but it's mostly fat,   er,   ...   I mean table muscle,   but still ···                       I'll get to work and elide some of the horizontal spacing as well as changing the the abbreviation     m.a.s.     will forthwith be reduced to   MAS.       -- Gerard Schildberger (talk) 13:13, 7 July 2020 (UTC)

Paddy:   I replaced the hash marks (#) with bullet points, but I'm not 100% sure that it's an improvement.   The bullet points look nicer, but they don't have the size.   From some reason, Wiki doesn't display the bullet point glyph the correct size,   it should be more of the     size instead of the   •   size.   I'm more used to the size bullet that the IBM fonts used for the TN print chain   (ya, too long in the tooth).     But there ya have it.   I also would like world peace and an end to world hunger.     -- Gerard Schildberger (talk) 13:50, 7 July 2020 (UTC)

Hash vs bullet - I agree, it's a hard call. I did see that the opening single quotes for the ligature/no ligature lines are alligned which emphasises the initial u which is only on one of the lines. I like that :-)

--Paddy3118 (talk) 15:34, 11 July 2020 (UTC)

adding a thingy for prime numbers as there is for sorting (algorithms)[edit]

Paddy:   I was thinking about adding a thingy for prime numbers and factorization,   very much like that thingy that Rosetta Code sorting algorithms have at the top right of every Rosetta Code task (the preamble)   that does some sort of sorting.   It's that box that shows readers what other Rosetta Code tasks deal with sorting (algorithms).

I would include (maybe) these sections:

  •   "regular" primes
  •   kinds/types of primes
  •   factorization of integers
  •   tasks that make use of primes
  •   miscellaneous prime stuff     ... I don't know what to call this catch-all stuff   ...     other ?

This addition would be not so much for the casual reader,   but for Rosetta Code coders who, once they start programming for various prime tasks and other types of primes,   would naturally delve into (integer) factorization and possible some related fields.   I've been added adding the category   Prime numbers   to any Rosetta Code task that deals with primes or (integer) factorization, or tasks that make use of primes.     -- Gerard Schildberger (talk) 14:21, 7 July 2020 (UTC)

By the way,   I think there should be another category added,   Primes   that re-directs to   Prime numbers,   but I'm not sure quite how to enter it,   or even if it   should   be created.     -- Gerard Schildberger (talk) 14:21, 7 July 2020 (UTC)

I agree with you, primes are a natural grouping. On the name for "others" it might be best to see what gets put there and name it afterwards?

--Paddy3118 (talk) 15:39, 11 July 2020 (UTC)

«math» HTML tags not rendering correctly[edit]

In a Rosetta Code task   (that I entered,   namely the task:   Leonardo numbers),   I tried to use the   exact   <math>   HTML tag that is used on Wikipedia   (for Leonardo number),   but on Rosetta Code,   it produces a big red error message.

Here is the Wikipedia code, as-is   (from the   Leonardo number   entry on Wikipedia):

  L(n) =
    1                       & \mbox{if } n = 0 \\
    1                       & \mbox{if } n = 1 \\
    L(n - 1) + L(n - 2) + 1 & \mbox{if } n > 1 \\

{I also have the (above) code "inside" the   Leonardo numbers   Rosetta Code task as an HTML comment.}

The error messages produced are   (the original error message is one big long sentence):

Failed to parse (MathML with SVG or PNG fallback (recommended 
for modern browsers and accessibility tools): Invalid 
response  ("<p>There was a problem during the HTTP request: 
503 Service Unavailable </p>") from server 
L(n) = \begin{cases} 1 & \mbox{if } n = 0 \\ 1 & \mbox{if } 
n = 1 \\ L(n - 1) + L(n - 2) + 1 & \mbox{if } n > 1 \\ 

The (above) messages are very similar to the error messages produced when there are leading and/or trailing whitespace in the   <math>   HTML tags elsewhere on Rosetta Code.

Now, the (failing) text does have leading and trailing blanks,   but it does work on Wikipedia,   but not on Rosetta Code.   You may recall the tiff that ensued when I used leading and trailing blanks on various   <math>   HTML tags,   (it worked for FireFox, but not some other web browsers),   and the ensuing stone throwing.   Apparently, it's easier to cast stones than address the real problem.   I had found/mentioned a fix that I read about after searching in the dark   (this was because the error is caused in an "area" of HTML rendering that I newer heard or knew of),   but the fix (not a program fix, but some kind of specification)   was never implemented as far as I know;   the fix is outside of my knowledge of such things.

I have elided the leading, trailing, and embedded superfluous whitespace,   but no matter what combination I used, it always produced an error message.

In trying to debug the (above) error,   I had taken the   <math>   HTML tag that is used within the preamble of the Rosetta Code task   Bernoulli numbers,   and I changed (on the Rosetta Code task   Bernoulli numbers)   the bold   B   within the   <math>   HTML tag text to an   S,   and that also produced the same error!!     Just an attempted single character change.   I also tried various other character (letter) substitutions,   all produced the same error message.   No whitespace was changed.   What's going on?   A caching problem, perhaps?     -- Gerard Schildberger (talk) 19:10, 11 July 2020 (UTC)

Also   (and you might want to burn this paragraph after reading, least I propagate vandelous information),   I have found that when those particular red bold error messages are produced,   and     left     there   (without clearing the display of the error),   and then,   in another (FireFox or Internet Explorer) window,   trying to access the Rosetta Code website (any page),   I essentially received a (I think) a   505   (504?) error saying that the Rosetta Code website isn't responding.   Now, it could be that only I couldn't access the Rosetta Code site, not others.   In essence, I may have stumbled on a method for a denial-of-service.   This is one reason that I think this problem should be addressed and fixed.     -- Gerard Schildberger (talk) 19:10, 11 July 2020 (UTC)

Response has been posted to your raslbg|talk comment.[edit]


a Rosetta Code task is scrambled[edit]

The Rosetta Code task   Spelling of ordinal numbers   is messed up
(the text on the task page appears a bit scrambled with another Rosetta Code task).

The task page now has the content of something to do with   "twin primes",   and the other part seems to have the content of the original page,   namely the spelling of ordinal numbers.

Also, at the top of the page,   something is complaining about:

                 Template loop detected: Template:Task 

(the 1st three words are in red color, the last word (with the colon inside it) is a link,   apparently to a task template.

I thought you should know about this problem ASAP so that it can be fixed, undone/undo/retrograded, or something.     -- Gerard Schildberger (talk) 06:08, 26 July 2020 (UTC)

The page looks like:

Template:Twin Prime Conjecture

Twin primes are pairs of natural numbers(P1 and P2) that satisfy the following:

    P1 and P2 are primes
    P1 + 2 = P2

Write a program that displays the number of twin primes that can be found under a user-inputted number.

Examples below:


> Search Size: 100
> 8 twin prime pairs.

> Search Size: 1000
> 35 twin prime pairs.

............................................... end of the "bad" stuff,  and the start of the "good" stuff (original stuff) ... 

Ordinal numbers   (as used in this Rosetta Code task),   are numbers that describe the   position   of something in a list.

It is this context that ordinal numbers will be used, using an English-spelled name of an ordinal number.

The ordinal numbers are   (at least, one form of them):  

............................................... the rest looks normal ..............................................

However,   when I "edit" the page to view the source,   it appears normal,   so the errant text seems to be "coming from" a template of some kind.     -- Gerard Schildberger (talk) 06:15, 26 July 2020 (UTC)

Never mind,   the problem has been fixed (apparently).     -- Gerard Schildberger (talk) 09:26, 26 July 2020 (UTC)

Apparently, the   template   for a   task   was modified, and then fixed.     -- Gerard Schildberger (talk) 22:12, 26 July 2020 (UTC)

super_d numbers Python example[edit]

When I run it, the Python code in the Super_d numbers task does not produce the output it shows - the d = 8 line is not actually calculated. --Steenslag (talk) 11:43, 21 August 2020 (UTC)

Yep, you're right. Corrected now, Thanks 👍--Paddy3118 (talk) 15:33, 21 August 2020 (UTC)

some general comments of too-quick task deletions and more[edit]

I do believe that the deletion of tasks should be discussed first.       But ...

I have had a discussion  (not fruitful nor pleasant)  about the uniqueness of recently entered (draft) tasks and their value  (on being on Rosetta Code)  and it did not go well for the lone Indian.   When challenged,   the discourse just got inflammatory, along with strawman arguments, and silly  (So?)  rebuttals,   and the stating of opinions as facts,   and the use of capitalized use of supposedly shouting     is completely besides the point,     whenever I try to make a point which is either disagreed upon or dismissed,   and so on and so on and ...       Rosetta Code (discussions/talks) has become a pretty unfriendly place, and in my opinion, toxic.   Yeah, I know, I know, a strong word.   Whenever challenged,   the challenger just doubled-down,   and went downhill from there.   I had entered a solution to the draft task   Similar words,   and it was summarily deleted,   along with the (draft) task.   I think that that (draft) task definitely had a uniqueness to it and wasn't just another version of finding an   xxx   string in a list of words in a dictionary.   Far from it.   As a matter of fact,   the other deleted tasks also had their merits,   but there is no sense in me trying to defend those merits,   as defending something (lately) just means the defender gets rebuffed with a lot of sarcasm and acidic rhetoric ... and worse.   If one can't have a polite discourse on the merits of a task without all that vitriol and ad-holmium attacks,   then why bother having "talk" discussions?   Something has to be done   (or should be done).   Not to mention that someone needs to define what "spam" is so that term is used correctly.   Not to mention janitorial services.   A janitor doesn't throw the furniture out,   just the dust and junk on the floor.   I think the use of words like "dump"   (does it really matter if someone adds draft tasks at a certain speed?)   is so condescending and judgemental.   ... And the use of words like   "vomiting",   "low quality",   and numerous other words/phrases of that ilk.   And the statement of opinions as fact ... hard to argue with a closed mind (or gawd-like).   These are some of the reasons (regarding wording and phrasing and "it's true 'cause I say it's true ...)   that I call toxic to opening a discussion.   It may appear to anyone that the wording is toxic,   but it doesn't sink home unless YOU get defamed, then it's a story of a different color).   I fear that this sort of rhetoric will quell (or discourage) others from joining it or offering/opening a new discussion.   Why have to suffer the slings and arrows from offering one's opinion on a Rosetta Code discussion?   I wish I could go on and write about some of the (draft) tasks that were deleted.   Each task had   (bless their departed souls)   their merits and different ways/methods of solving them   (not to mention their solutions),   and it wasn't just variants of find   xyz   words in a dictionary.   Some were   like   anagrams,   others needed a somewhat different method(s).   Every chef, er, ...   programmer can bring a new recipe for solutions here at (old) Rosetta Code.   For what I've observed,   the discussion of deletion of tasks is like asking five wolves and a sheep on what's going to be for supper?   (Deleting Voting on tasks isn't a democracy.   Ya can't execute delete someone by counting votes.   There   should be   a discussion/debate).   There are always people who think word searches are all alike.   Well, they ain't.     Anyone who thinks otherwise should be banned blocked for a week or more.   Boy oh boy!!   That'll teach 'em from trying to to participate in the culture at Rosetta Code!!       --- By the way, I wish  any  other dictionary would be used that mimics a true dictionary:   duplicate words, capitalization (God and god), word phrases, hyphenated words, etc.).   Someone actually said, the   xxx   word isn't in the   unixdict.txt   (or whatever it's called)   file,   so it isn't a word (!!!).     OMG!     Having ALL words in lowercase defeats the purpose of a dictionary.   Searches should be caseless,   unless specifically requested that they be not.   At this point,   I might as well rant a bit   (with my tongue firmly and humorously in cheek).     Why have all those (vomited?) types of sorts?   You've seen one type of sort if you've seen 'em all.   Does Rosetta Code really need all those types/categories of sorts?   My oh my,   the sorts!   The sorts!.   All those sorts!!     And all those kinds of primes.   Yikes!   And all those types of sequences.   To borrow a phrase:   Sheesh!!       (Use of the that exclamation should prove my point beyond all possibility of any and all rebuttals       ...   'cause I said so).     And all those types of trivial   DO/FOR   loops.   I wonder what Dr. N. J. A. Sloane thinks or all those thousand and thousands and thousands of integer sequences in OEIS.   Oy veh!!     The mind boggles on what a janitor with unlimited power (or ego) could do.     End of silly rant.           Well, at least I feel better.   None of the above needs responding,   that way I can actually think I made a point or two.     -- Gerard Schildberger (talk) 02:51, 9 December 2020 (UTC)

  • These discussions, were they deleted too?
  • Who did the deletions?
I read your vent. Text wrangling is an important part of work done on the Unix command line for example, made less visible because, for a large number of users, it is "just what you do" in some script or one-liner to prepare data to or from more expansive/expensive programs.
Deleting tasks without adequate discussion and/or warning should not be done. --Paddy3118 (talk) 10:26, 9 December 2020 (UTC)
P.S: Can vents be punctuated? --Paddy3118 (talk) 10:26, 9 December 2020 (UTC)

Gerard, please see this reply from Thundergnat. He explains the task is from a "serial dumper" leading to his actions. If so, then the root problem is that serial dumper. --Paddy3118 (talk) 10:37, 9 December 2020 (UTC)

Yes, I had already read it,   and yet I wrote all this.   But, I believe the real root problem is:   deleting tasks without adequate discussion and/or warning should not be done.   The baby got thrown out with the bathwater.     Wait, where have I read that?     If everyone agrees   (two people, three people?)   that it was a case of "serial dumping",   then it is what it is.   Can't argue with that logic.     But, I want to hear anything/something from the other side first.   Calling it "dumping" is part of the problem.   And, to top it off, it was "serial".   Maybe we should call it very sudden stupid and mindless serial dumping unto innocent Rosetta Code victims of nearly identical tasks with nearly exactly the same programming solutions taken from a maze of twisted and twisting passages, all alike.   Oh my.     Oh well, I sympathize with the guy banned blocked (even for a few days).   It makes it hard to have a discussion with a guy who can't give his side,   and I have a suspicion that English is his second (or third) language,   and that he may have a hard time expressing himself adequately,   or maybe he doesn't feel it's worth the effort to explain his motives or actions   (heaven knows how that can work out,   I can attest it does no good).   But once banned blocked, I doubt that he'll be forth coming.   I remember my first foray at Rosetta Code, I knew not of what templates were (that could be used to flag an incorrect programming solution (as I had never seen a flag at that early time at Rosetta Code), nor did I know where people were trying to contact me on my user page, which I really didn't know existed.   Thankfully, Michael Mol wrote me an e-mail   (very politely and courteously worded, that guy has got class)   clued me in where things were.   That was a little over a decade ago.       Any-a-whose, just a thought as I have no proof either way ya look at it.   Just ignore my stuff (above),   it's just like a fart in the wind.   (Nice movie, made in 1939.)   Gone in a few seconds, and nothing is noticed.     -- Gerard Schildberger (talk) 12:09, 9 December 2020 (UTC))

By the way, the "stress" that you said that I have been enduring is not from the Calmosoft user,   but the characterizations   (by others)   of his actions and the summarily actions taking against that user and some of his draft tasks,   especially with the lack of communication to/from that said user.   Maybe he has other time or health issues, or whatever.   I know I was out-of-pocket more than once (away from Rosetta Code) for various reasons and/or for lengthy time periods.   Or maybe some other kind of communication breakdown or difficulty is the culprit.   But who knows what's happening "over there" at the other end.   I know for certain that -I- don't know.   I'm not that quick to judge when there isn't two-way communications.   I was on that same side of that fence once myself,   so I guess I sympathize more with guy being hanged then most people.   This is why I was helping out with those draft tasks and added verbiage to Calmosoft's draft tasks   (as well as others, here and there).   Once Calmosoft saw how to include URL's and my somewhat more verbose way of asking for task requirements,   he was adding the "extra" stuff (wording) on his own.   A little bit of help here and there   (and there and here)   goes a long way instead of beating the poor guy over the head with a large stick.   I believe that is (or should be) one of the core beliefs at Rosetta Code.   Treat others like you'd like to be treated yourself.   Sorry to quote Biblical.   But sometimes,   ya gotta do what ya gotta do.   (Waaaaaaaaaaaaaay back when maybe you were that inexperienced   ---   I know I certainly was.   ---   It was Michael Mol who helped me out   (there were a lot of arrows stuck in my back at the time,   but I didn't know it as "they" were leaving messages on "my" talk page which I never knew that there was such a thing),     without Mol's kindness and time spent,   I wouldn't go on to enter over a thousand examples).     Ha!     I hope that that experience won't stop Mol from helping others out.   Meanwhile, back at the ranch  ...  the earth's horizon keeps lowering and I must get some sleep.      
So,   the beatings shall continue until moral improves!
    -- Gerard Schildberger (talk) 12:59, 9 December 2020 (UTC)
Gerard, you seem to be ignoring the lack of communication, and repeated posting of problem posts by CalmoSoft over many months. This seems to have culminated in a posting of several problem posts in a very short time, with little to no interaction with people querying them. I think it is reasonable for first authors to stick around and answer queries on draft posts - it seems that that is not forthcoming from CalmoSoft, and his tasks are questioned.
Check CalmoSofts talk page, people have attempted to converse with him there, and on the tasks he starts, before. The lack of work CalmoSoft puts into them is wearying to others.
Gerard, you seem to state that CalmoSofts circumstances may not allow him to do better, but surely his ability to start tasks is enough ability to defend or improve them in comments over the years in which that dialogue would have been welcomed?
--Paddy3118 (talk) 13:31, 9 December 2020 (UTC)
I agree with you almost 100%.   (If I agreed with everyone 100%,   there would not be a need for a conversation, and you would never hear of my forays into humorous minutia   ...   well at least one of us thinks they're humorous.)   Any-a-whose, continuing on ...     There is a lack of communication,   and some (maybe most by some opinions)   posting of his Rosetta Code tasks are problematic,   some of which muchly favor brevity,   which is a one way to put it.   And that several postings were, indeed, posted in a short time,   even in a very short time,   depending upon what one would consider normal for creating/posting Rosetta Code (draft) tasks.   ---   (I think if I had written/created all the flavors of the various type/kinds of primes tasks that I did eventually create/write/enter,   would the same uproar be heard?   Most likely, assuredly and probably so, me thinks.   Worse, some or most would've been rejected and then deleted, and Rosetta Code would be lessor for it.)   And it appears that CalmoSoft has not made many (or any) responses to some (or most) queries about his draft tasks.   However, many of his tasks have had programming solutions entered without having the need for further explanation.   I would've entered more programming solutions   (and addressed each of the draft tasks)   if they weren't deleted.   I try to create solutions that address the nuances of the best way to approach/solve/meet the requirements and use idiomatic REXX code,   and treat the dictionary as if it were a true dictionary,   not just an incomplete all lowercase words, especially those words that should be capitalized.   Thus the reason I mention that my REXX programs meet the requirements and perform caseless searches/finds,   and also present the answers in the   case   (same manner)   that the word is in the dictionary.   Not all of those tasks that required the reading of a dictionary needed a common method to assimilate the dictionary words,   and I could've used some boilerplate code to do exactly that,   but that would've been inelegant.   And homey don't do inelegant.   Yes, I did state that there   may   be circumstances that may not allow him to do better,   and certainly there may be circumstances that I have not thought of or know of.   And yes, it appears that he could put more time into the structure and wording of the draft tasks.   I have added (sometimes) quite a bit of verbiage to my own draft tasks,   and I still have overlooked or omitted vital details and/or specifications and/or requirements,   it usually takes someone helpful to peruse the wording and tell me (or even correct) the obvious stuff that I overlooked,   and I'm very thankful and appreciative for that help.   Others have gone the other route which made it more difficult to change/alter/fix the wording of the specifications,   or make a compromise that didn't invalidate existing programming solutions.   Saying that it stinks to high heaven  (or other such phrases/words)  doesn't facilitate a fruitful conversation or repair.   And, yes, of course a dialogue would've been welcomed,   no matter how succinct.   This is probably always the case,   as long as the dialogue is constructive, and that, of course, begs a definition of "constructive";   there's a fine line between helpful and not helpful, depending upon how the "advice" is interpreted,   sometimes filtered through social   mores   and customs   (as I eluded to before on my suspicions,   possibly even unfounded suspicions).   I won't throw stones at him,   I still await to hear his side   (if he intends to tell it or not),   and I do insist that he has one, albeit almost fully unheard so far.   So, I hope we agree on these points, even if only 99%.     -- Gerard Schildberger (talk) 18:39, 9 December 2020 (UTC)
Forgot to mention:     the Merriam-Webster site defining   mores   leaves cookies.   It seems that most web dictionaries do so.     -- Gerard Schildberger (talk) 18:39, 9 December 2020 (UTC)

question on numbers for the hourglass puzzle[edit]

I have a question about your flagging of the REXX solution for the hourglass puzzle.   Is it your concern that words were used instead of Arabic numerals?   The output was almost identical of the Python entry   (as noted by the trans tag).   Which computer programming entry would be better emulated?   Would changing it to exactly match Python's output be OK?   (Except for the misspelling error).     -- Gerard Schildberger (talk) 18:04, 30 December 2020 (UTC)

Python is using string interpolation there so an expression such as {t4//4} will be replaced by its actual value (4) when the string is printed. Does REXX have a similar facility? --PureFox (talk) 20:15, 30 December 2020 (UTC)
Ah, now I see the light.   I was thinking that the characters   {t4///4}   were just that and I didn't realize that they were meant to be substituted.   I will correct it ASAP.   Thanks for finding my (glaring) omission.     -- Gerard Schildberger (talk) 20:27, 30 December 2020 (UTC)
Sorry for being vague :-)
--Paddy3118 (talk) 20:34, 30 December 2020 (UTC)
Naw, my bad.   If I had been paying more attention to Python's output,   I would have noticed that there was string

interpolation going on.   I need better eyes or I need to do less programming when my eyesight begins to get the best of me.     -- Gerard Schildberger (talk) 02:31, 31 December 2020 (UTC)

Fibonacci numbers definition for Padovan task[edit]

Concerning the   Padovan   task,   the Fibonacci numbers definition for the first two terms may need re-doing,   F(0) = 0,   F(1) = 1.   Of course, this depends where you start the Fibonacci series.   But ten terms were listed starting with zero,   so then F(0) has to be zero.     -- Gerard Schildberger (talk) 10:35, 27 February 2021 (UTC)