23
\$\begingroup\$

Related.

Earlier today, AdmBorkBork posted this question on TNB, asking whether or not PPCG was dying. In the following discussion, I have suggested we, as a community, could start "reviving" (for lack of a better term) select challenges, based on suggestions given by us.

The reasoning behind it is that PPCG has, at the time I'm posting this, 459 challenges with one or less answers that have been posted more than 60 days ago, and that are neither closed nor locked and have no accepted answers. Naturally, this could be for any number of reasons, including uninteresting or trivial challenges. Some of them, however, could be potentially very interesting challenges that have been overlooked by the community, or that have been posted early on in PPCG's 'life' and been subsequently buried by thousands of other posts.

My Suggestion:

Once every [period of time, tbd later], the community would suggest (in a meta-post or chatroom created for this purpose) challenges that fit parameters similar to the ones mentioned in the search above [those parameters are also tbd later].

The challenge(s) with the most votes could then be "revived":

  • First, check whether the challenge fits our current standards for challenges. This is important, especially for older challenges, so that there's no confusion regarding rules that are no longer in effect.

  • If the challenge doesn't fit current standards, we edit it in a way that keeps the objective of the challenge unchanged. Of course, this might not be possible for every challenge, which would be one of the criteria we as a community should observe when suggesting and/or voting on suggested challenges.

  • After that edit, the challenge should be bumped to the first page. I'd also suggest adding a bounty to give some more incentive for new answers to be posted, but that is, of course, optional.

There is also the issue with non-competing answers for languages (or specific functions of a language) developed after the challenge has been posted1. Not relevant since this post.

Keep in mind that this is still a very crude suggestion, since the main objectives of this post are to see whether the PPCG community is on board with the idea of reviving older challenges that currently get almost no visibility, and if so, to gather more suggestions on how to do this properly.

So, my main questions for now are:

  • Is this feasible?
  • Would it be possible to do this in a recurring fashion, such as the language of the month post?
  • If we determine that it is possible, should we do this for a single challenge, or should there be a fixed amount of challenges to be chosen each period?
\$\endgroup\$
  • \$\begingroup\$ The search should include -[tips]? \$\endgroup\$ – user202729 Oct 6 '18 at 13:51
  • 2
    \$\begingroup\$ I've just look through the list of challenges (in the search query), most of them are too hard. \$\endgroup\$ – user202729 Oct 6 '18 at 14:28
  • 1
    \$\begingroup\$ If this is adopted, I would recommend against having a specific chatroom where people can suggest challenges, as these tend to get a significantly lower amount of traffic, compared to TNB, and are very likely to get frozen early on. Posting suggestions in TNB, avoiding oneboxes, seems like a better way to engage chat users. \$\endgroup\$ – caird coinheringaahing Oct 7 '18 at 17:39
  • \$\begingroup\$ @cairdcoinheringaahing agreed. \$\endgroup\$ – J. Sallé Oct 8 '18 at 14:55
  • \$\begingroup\$ @user202729 the search query is merely an illustration of what would be our filter. The details of it would be discussed when we decide wheter or not to do this at all. \$\endgroup\$ – J. Sallé Oct 8 '18 at 14:56
7
\$\begingroup\$

This answer does not address the primary question of should we?, but rather the subsidiary question of if so, how to do this properly.

  • First, check whether the challenge fits our current standards for challenges. This is important, especially for older challenges, so that there's no confusion regarding rules that are no longer in effect.
  • If the challenge doesn't fit current standards, we edit it in a way that keeps the objective of the challenge unchanged. Of course, this might not be possible for every challenge, which would be one of the criteria we as a community should observe when suggesting and/or voting on suggested challenges.

Although when we post a question we legally surrender some control (because we're releasing it under CC-BY-SA), emotionally we tend to regard the question as ours. So to avoid friction, OP should be invited to take the lead in updating the question, even if they haven't been active on the site recently. A comment on the question is quite clearly the best way to do this in almost all cases.

Either the OP or, if they don't respond to the invitation after a few days, the lead editor should take the question to the sandbox, indicating clearly at the top of the sandbox question that this is a revision to an existing question to bring it in line with current standards. That should avoid people who vaguely recognise the question wasting time by searching for the dupe.

As far as possible the changes should aim not to invalidate existing answers. If this seems impossible, the authors of the answers should be notified by comments so that they can participate in the process. They may have ideas for ways to avoid the invalidation, or they may be willing to rework their answer so that it becomes valid again.


If we determine that it is possible, should we do this for a single challenge, or should there be a fixed amount of challenges to be chosen each period?

I seem to recall that this has been done once or twice in the past, but I'm not aware of any post-mortem analysis. If there is a team of three or more people who want to take it on as an active project, I would suggest that you choose a single challenge to do as a trial, gather feedback (at least on chat, and probably on meta), and then decide whether and how to continue.

Rather than fixing a number of challenges per time period, it might be better to limit the number of rewrites which are active in the sandbox at any one time.

\$\endgroup\$
  • \$\begingroup\$ I agree with every point you made, and had thought of the emotional attachment to the challenges we post as a possible setback, but your suggested workaround seems very fair to me. Not invalidating answers is also a concern, which is why re-sandboxing the challenge also seems sensible. \$\endgroup\$ – J. Sallé Oct 8 '18 at 15:01
  • 2
    \$\begingroup\$ @J.Sallé, actually the prime concern with re-sandboxing is to update the question once, rather than updating it and then addressing a stream of comments pointing out flaws. Essentially it's the same reason that we use the sandbox for new questions. \$\endgroup\$ – Peter Taylor Oct 8 '18 at 15:15
  • 1
    \$\begingroup\$ Re-reading, I feel that the mention of a team is badly phrased, and I'll think about how to improve that. I didn't mean to imply that you shouldn't go ahead without a team, but I think that the answer could be interpreted that way. What I want to express is that if various people want to do this, it would be better to coordinate rather than to each go forward independently. \$\endgroup\$ – Peter Taylor Oct 8 '18 at 15:18
  • \$\begingroup\$ I did a brief post-mortem in chat as to why mine didn't really work. In essence, I was looking for 25 questions, and I didn't get 25 suggestions, let alone 25 upvoted suggestions. (Sure, we could make it smaller, but the smaller something is, the less effect it has) \$\endgroup\$ – Nathan Merrill Oct 8 '18 at 15:56
4
\$\begingroup\$

Let me start by saying that I agree with every point made by @PeterTaylor. Here are some additional opinions / arguments why we should indeed revive older challenges, and in some cases simply update the existing challenge:

Why? (1)

Let's start with the why? What are reasons we want to revive older challenges.

When we look at past challenges, in general I see four categories:

  1. The (very) good ones will usually have quite a few upvotes as well as answers, and even today people will post in it. Golf you a quine for great good! from 2011, one of the very first challenges and "Hello, World!" from 2015 are two examples where answers are still posted in on a weekly basis.
    The earliest challenges are from the start of 2011, but there is even one from December 2008 (migrated from Stackoverflow.com to PPCG). But, even though it's this old, the specs are clear; there are test cases; and the newest answers for the challenge are from only a couple of months ago (Christmas last year). So, no problems for these kind of challenges.
  2. Challenges which were also good at the time, but are now closed due to updated PPCG specs. This mostly consists of and challenges, to name two categories, which are closed as Too broad and aren't really allowed to be posted anymore these days.
  3. The very hard, and usually unanswered challenges. The specs of the challenge are in most cases clear, but the challenge is very tough to answer, which is why no one did so yet.
  4. The in general good concepts, but which would be downvoted and/or closed as unclear due to lack of, well.., things we'd want to see today (clear rules; test cases; flexible I/O rules; etc.)

It's this last category which I would personally want to see revived in most cases. Let's start by giving an example of an old challenge which has been revived, and why it was revived.

Example of successful revival:

In September 2012 the following challenge was posted: Generate a Kolakoski sequence. The challenge was actually entirely clear. We are given clear specs, test cases (in the form of the first x items of the sequence), even references to useful sources. So, why does this challenge fall in the fourth category, and not in the first? Here is the relevant quote why:

Input will be provided as a single command line argument n. Please write a full program that will print the first n elements of the Kolakoski sequence (in order) to STDOUT, with each element separated by your favorite whitespace.

Full program; input as command-line argument; output printed to STDOUT with space/tab/newline delimiter. Bleh.. Very cumbersome I/O specs which make it impossible for some languages to even compete because they don't support command-line inputs.

Because of this part of the challenge, @MartinEnder revived it in March 2018: Compute the Kolakoski sequence. Now we have a very loose spec (including for sequences in general), giving every language their own choice of the most reasonable spec:

You may choose one of three formats to do so:

  1. Take an input n and output the nth term of the sequence, where n starts either from 0 or 1.
  2. Take an input n and output the terms up to and including the nth term of the sequence, where n starts either from 0 or 1 (i.e. either print the first n or the first n+1 terms).
  3. Output values from the sequence indefinitely.

In the second and third case, you may choose any reasonable, unambiguous list format. It's fine if there is no separator between the elements, since they're always a single digit by definition.

In the third case, if your submission is a function, you can also return an infinite list or a generator in languages that support them.

You may write a program or a function and use any of our standard methods of receiving input and providing output. Note that these loopholes are forbidden by default.

Verbose programming languages like Java or .NET C# will of course use a lambda function instead of a full program. In some languages outputting the first \$n+1\$ items newline separated is shortest, so they'll use that; and in other languages returning just the \$n\$th value is shortest, so they'll use that.

Note that there has been a meta-discussion about this challenge in particular: Should we repost the Kolakoski challenge? A Sandbox post was created for it; discussions has been going on; and the original OP has been contacted (and in the end gave his consent). I think if we want to revive old challenges to update the spec; make it more clearer; or any other valid reason, a similar scenario should take place where opinions are asked and compared and the original OP will be contacted.

Of course there are many different reasons why we'd want to revive. In the example above it was the extremely restricted I/O ruling, which made it for a lot of languages impossible to compete in an otherwise good challenge.

What challenges should we improve instead of revive?

Sometimes there are challenges which are good, but instead of very strict ruling / I/O, they lack almost everything and consist only of a few lines. In something like this challenge: Find the largest value of power, I/O is not mentioned at all, so we can assume the default can be used. However, due to the lack of test cases, and a clear spec of what are the possible inputs, I initially completely misunderstood the challenge (reading it again, this might be mainly my own fault and I was also a bit sleepy..) Regardless, would there have been more test cases for the edge cases, I would have seen my mistake right away. Also, it is not clear what the possible inputs are. What to do with negative integer inputs; 0; 1; etc.? So although the concept of the challenge is clear, because it is so succinct and lacks test cases, I personally had trouble completely grasping what was being asked and therefore made a mistake initially.

I think in this case we should also contact the OP and update the existing challenge instead. Add test cases (especially for edge cases). Add perhaps an example. And perhaps explicitly mention the now implicit rules regarding I/O and loopholes.

Why? (2)

One step back to the why again. Lately I've, and many others as well, noticed that fewer and fewer challenges are being posted. Since we've already have more than 10,000 posted challenges, it is of course harder and harder to come up with a good challenge concept that isn't a duplicate of an existing challenge.

Reviving good older challenges by updating their specs solves this problem as well. Now, I know these challenges are already available, and people can just pick an (old) challenge to write an answer in. But with 10,000 challenges you sometimes don't know where to begin to pick one to write an answer for.
Personally I write an answer for a challenge usually for one of three reasons: 1. The challenge has just been posted (I regularly look at the newest challenges). 2. Someone recently posted an answer for an existing challenge, and it's visible at the active tab of the home page. Or 3. I had an idea of a challenge in mind and wanted to make sure it wasn't a dupe yet, and noticed that someone else already posted something similar or related, so I write an answer for that challenge instead (if it doesn't contain an answer in my preferred programming languages to codegolf in yet).

I almost never just randomly browse through older challenges, check if no one has posted an answer in my preferred programming languages yet, and then write an answer for it. I (maybe falsely) assume this is the case for almost all people at PPCG. Reviving older challenges will mean that it's posted as a new challenge, and more people will see and compete in it.

All in all I think we should create some kind of action flow diagram we can follow with all the steps, and then either post the revised challenge in the Sandbox (and later to main), or edit the existing challenge (with consent from OP of course).

\$\endgroup\$
  • \$\begingroup\$ You know from our discussion last night that this gets my +1. Didn't get the time I hoped today to formulate my thoughts and ideas into a post - hopefully will on Monday. \$\endgroup\$ – Shaggy Feb 8 at 23:06
-3
\$\begingroup\$

Reviving KOTHs seems a good temporary solution

I mean, not all types of challenges are meaningful enough to revive - especially those kolmogorov-complexity challenges.

Restarting a KOTH with a fresh set of entries gives different results, and if the KOTH has random elements, even the exact identical set of entries can give different results. Of course I am not encouraging participants to copy the entries from the old KOTH, but since KOTHs must have a cutoff time, it'd be beneficial to restart a KOTH to receive new entries, or even let new entries compete with the original ones.

Moreover, since KOTHs usually have a large number (say tens) of entries, it may render a temporary illusion that the site is still as active as before.

Of course sustaining the site only by reviving KOTHs is not a long-term solution. We still need new challenges and maybe pop-cons. BTW are we having fewer and fewer pop-cons nowadays?

\$\endgroup\$
  • 1
    \$\begingroup\$ Pop-con is a type of challenge that is considered off-topic and probably the reason this answer is getting some negative reactions. I'll give a +1 for the KOTHs, though. \$\endgroup\$ – Draco18s Oct 6 '18 at 16:38
  • 1
    \$\begingroup\$ It is not the case that "KOTHs must have a cutoff time". This is a decision taken by the challenge author per challenge. \$\endgroup\$ – trichoplax Oct 7 '18 at 10:17
  • 3
    \$\begingroup\$ If the challenge author has chosen to stop running tournaments for a given KotH, then it cannot be revived unless someone else takes on the role of running tournaments, and excluding existing entries would seem to require making a new challenge post, which would require a specific exception to our duplicate rules. \$\endgroup\$ – trichoplax Oct 7 '18 at 10:19
  • 2
    \$\begingroup\$ (I'm not entirely against reviving old KotHs, but I'm uncomfortable with excluding existing players, and I'd expect in most cases a new KotH that is sufficiently different to not be a duplicate would be more interesting.) \$\endgroup\$ – trichoplax Oct 7 '18 at 10:23
  • \$\begingroup\$ @trichoplax I see the points on retaining old entries. That's a good idea actually and I do consider this in let new entries compete with the old ones, but this would need a redirection or manual migration of the data from the old post in my opinion. \$\endgroup\$ – Shieru Asakoto Oct 7 '18 at 12:16

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .