### -is-this-fft-'s blog

By -is-this-fft-, 20 months ago,

I wanted to suggest some improvements for the blog system. Some of these things have probably been said before. Some of these things should be pretty easy to implement, others are harder and might require a complete rework. I tried to put the easy things first. $~$

#### Let's do something about necroposting

This is probably my biggest pet peeve about Codeforces blogs. Most of the time, Recent Actions is filled with very old blogs, some of which have been brought up for pretty much no reason at all. Currently, we have useful C++ "library from 2013 in Recent Actions, where the recent comment answers an old question which has already been answered better. Similarly, there is How to add friends? which was brought up to make some joke that has already been done.

The thing is though, a lot of the time these blogs are not brought up by trolls or anything like that. They are brought up by helpful people who simply did not notice that the blog is old and the question has already been answered. Sometimes people reply to those guys with angry comments, but that doesn't do much because people don't make that mistake more than once — we just have a constant stream of new users doing that. And it isn't good to chastise people for trying to be useful. My suggestion is to just prevent people from accidentally doing that. I propose that if you are replying to an old blog with no activity in the last 6 months, you get a popup saying something like

The most recent activity in this blog was X years ago. Are you sure you want to write a reply? It's not recommended to reply to old blogs without a good reason.

There are a few types of necroposting that I find annoying but can be argued to have a good reason:

• replying to an old tutorial with "thank you" (because these tutorials can be useful now and if they are in Recent Actions, they are seen by younger people);
• replying to an old editorial with "please debug my code" (because posting a new blog is pretty much equivalent).

In my ideal world, these replies wouldn't be necessary, but more about that later.

#### Don't allow users to delete blogs

The issue here is that if you delete a blog, then you delete all the discussion that happens in the comments. In my opinion, once you have posted a blog, it's not really yours to control anymore. It "belongs" to the community. Sometimes there is some important discussion in the comments that just gets deleted on the author's whim. Sometimes I put hard work and effort into writing a comment, only to discover the next day that the author of the blog has undone all that with the click of a button. We already can not delete comments. Why should we be allowed to delete blogs?

There can be some reasonable reasons to delete blogs, but they can be handled in other ways.

• if a blog is against the rules, it will be moved to drafts by CF moderation (this is already being done).
• if a blog is just spam, it will get downvoted and will disappear from Recent Actions (this is also already being done).
• if you are ashamed of the blog or something along these lines, you can edit the blog and disallow viewing history, but you won't delete other people's thoughts by doing that.
• if you have a really serious reason for deleting the blog, you can reach out to CF administration.

I also suggested that in a comment yesterday, but the blog got... deleted.

#### Have a separate place where beginners can ask questions

There have been attempts to create some megathreads for that, but they have always been unofficial and they have always eventually just disappeared, and beginners have gone back to making new blogs or posting under old editorials. For this to work, it needs to be official and there needs to be an official access point.

Also, it needs to have some sticky posts. There are a few recurring points that will solve a large part of the problems beginners have. For example, we have Codeforces Round #FF(255) Editorial and Codeforces Round #134 in Recent Actions currently, and both of them are there because a beginner asked a question of the type "my solution prints different output on Codeforces". Almost always, the solution to that is "You have undefined behavior, use tools like -fsanitize=address to find out where it is. There are two other typical problems:

• "I have WA and I can't find a reason" — the solution is to write a very simple and naive solution, a program that generates small random tests and a program that compares the output of the two solutions.
• "I have TLE" — the solution is to learn what the words "time complexity" mean.

Beginners need to see these things before asking a question. And the only way to ensure that is to have some kind of sticky or readme before you ask a question.

#### Have a separate place for educational resources

This was once suggested here, but it is not implemented. Again, there have been some unofficial attempts to create "lists of tutorials" but they will get similarly buried and updating them depends on the author. Again, for something like this to work, it needs to be official and it needs to have an official access point. Otherwise, it will get buried and obsoleted. EDU is somewhat like that, but it's a bit different — EDU is more like an online course platform, while tutorials can be all kinds of community-created resources that need not follow the EDU format.

#### Make the blog system into a forum system

This is the ultimate one and it would solve the two previous problems automatically. The real problem is that Codeforces has a blog system, but it has grown into a stage where the blog system is practically used as a forum system, except it doesn't have typical forum features. Currently Recent Actions is the only access point to the blog system, and it is very inflexible.

If we had a forum system, we could have sub-forums "Contest announcements", "Contest editorials", "Beginner questions", "Tutorials", "General discussion" etc. In each of them, you could sort the threads by most recent action, allowing you the same experience as Recent Actions currently has, but with none of the annoying blogs that you don't want to see. Sub-forums could have sub-forums of their own, allowing us to create a separate discussion thread for every problem in every contest (something that has been requested several times). Or to create different sub-forums for different difficulty levels of tutorials, allowing "ODE and differential technique" to not be buried in a sea of "DP for beginners, part 7". You could create sticky threads, solving the problem of beginners asking questions that have a standard solution. And so on.

• +432

 » 20 months ago, # |   +46 The idea itself is nice but I hope the implementation won't be terrible (see Codechef discuss as a negative example). I don't think we need forums, actually, that would mix very different things. I believe we should have long-term blogs and short-term questions, akin to StackOverflow. Breakdown: Contest announcements (blog): that's where people discuss some technical details or just joke before the contest starts. I think contest announcements can be closed [for commenting] after the editorial is posted. Contest editorials (blog): that's where people share their unofficial or unintended solutions, hacks, etc., and asks questions if they don't understand something in the editorial, so that the editorial is polished and easy to understand. Some low-rated people ask what's wrong with their code, I think such comments should be transformed into questions and closed after the question is answered. Beginner questions (question): something along the lines of 'why did my $\mathcal{O}(n)$ solution get TL, $n$ is very small, it's only $10^{18}$' or 'why do I get RE when deleting elements from set while iterating'. We should have a common pitfalls list, like a FAQ, and generally link people to this FAQ when they have such a problem, or write a long answer if it's uncommon. Basically: question is opened, question is answered, question is closed. Tutorials (blog): as a sidenote, to be honest I don't like this name, because tutorials and editorials can be confused, what about 'algorithm descriptions'? Anyway, there should be a hierarchical view on tutorials, preferably wiki-like and collaborative. That would be similar to https://cp-algorithms.com except that it'd cover more topics and be easier to contribute to. We shouldn't review the articles very hard, maybe even simple tricks should be allowed, not just algorithms. General discussion (blog): nuff said. I assume you mean discussions like this post, i.e. feature requests, olympiad announcements, etc. Just make a public blog.
•  » » 20 months ago, # ^ | ← Rev. 2 →   -9 Basically: question is opened, question is answered, question is closed. not really. a lot of the times, the accepted answer on stack overflow is not necessarily detailed and insightful. comments posted later can be much more helpful too
•  » » » 20 months ago, # ^ | ← Rev. 2 →   0 I'm not so sure. Let's do some brainstorming.The goal is to create a knowledge base. Preferably, in short question--short answer form, because we want it to be searchable and universal.Ideally, this should be a one-to-one mapping. If we allow one-to-many mappings, people may post hacky solutions and someone will use them because they seem 'easier' than the correct one but have pitfalls. Usual Q&As provide a one-to-many mappings. At the same time, there are of course many people who can write answers.Solution: Questions can be marked as 'knowledge base'. Questions without this mark can be answered by anyone. They are closed a month after last message. They may be converted to 'knowledge base' by choosing the best answer, this would only be allowed for high-rated users. 'Knowledge base' represents our joint opinion on the problem, they have a single best solution and everyone recommends to use it. These questions don't expire and don't get deleted. The 'best' answer can be edited, like a community wiki on StackOverflow, probably by high-rated users only.Timeline for dumb questions: Someone asks a question People comment on the question if it was stated ambiguously People answer the question like '$10^{18}$ is too many operations for one second' No one cares about this particular user's solution, so the question gets archived in one month Timeline for good questions: (Insert points 1-3 from above here) Say, a red user answers the question, maybe merges others' answers into his one and marks it as 'best solution'. The question gets added to 'knowledge base'
•  » » » » 20 months ago, # ^ |   +35 Hope to see your handle black soon.
•  » » » » » 20 months ago, # ^ |   -36 what color's my handle?
•  » » » » » » 20 months ago, # ^ |   +30 If I'd ever have an option to block you, I wouldn't have been seeing your edgy posts all the time. You're getting too cringe.
•  » » » » » » » 20 months ago, # ^ | ← Rev. 2 →   -44 but u do have the option. get off codeforces blog. and yeah admit it, my handle color is black, and u are just jealous u can't reach this color anymore
 » 20 months ago, # |   +26 Whatever you have written does makes sense . I also wrote a blog in which one part was Don't allow users to delete blogs but it got heavily down voted .I think it's not that CF headquarters are not aware of these issue .Some of thing you mentioned has already been mentioned a lot of time in comments by users . It's just they either want to focus on things more important than this (Like related to contests , submission queue) . They also do changes from time to time : 1.Blog in recent action now disappear after getting -15 votes .2.People with negative contribution can comment only limited number of times.I am sure that if someone from developer community volunteers to develop all these things , Mike will accept that.
•  » » 20 months ago, # ^ |   +28 I won't fall for this mistake again. People ask for a feature, the site owner doesn't reply, I develop the feature myself, everyone says 'Awesome!', I ask the site owner to at least add the link to my site or something, they ignore me. That's just lost time and nerves.Hey MikeMirzayanov. We're not just competitive programmers here, there are industrial programmers here too. There are lots of people who like this idea, and there are lots of people among them who can develop it. If you like the idea but don't want to implement it -- please say that. Don't make us wait for a dozen years without any progress information.
•  » » » 20 months ago, # ^ |   +30 MikeMirzayanov has lot of responsibilities too. In several contest announcements i have read that he has worked whole night to solve some bug.Also implementing additional features must be done with care and coordination with people who are working on it . It requires additional time and efforts . Seeing comments of Mike , It seems like he alone holds lot of responsibility . Last time a DIV3 got unrated because he had some other work.Most of the money from sponsorship or fund raising is utilized for paying the contest makers. It might not be possible right now to hire lot of good developers to do that job along with maintaining frequency of contests .
•  » » » » 20 months ago, # ^ |   -7 I know. I love Codeforces which is the best of all competitive programming sites. I love this community and I love how Mike made all of that possible. Without a doubt he spends a lot of time working on Codeforces, and he just doesn't have enough time to work on blogs too. Yes, then just say 'I don't have time', it's easy! We can do that for you, just give us carte blanche.
•  » » » » » 20 months ago, # ^ |   +30 Yes , In my opinion also Codeforces is best competitive programming website in world and one of the important reason is frequency of contests and no bugs during most of the contests.MikeMirzayanov is alone responsible for most of the development related work and i am optimistic that codeforces will have features mentioned in the blog in future . We need to be have patience for it. He doesn't ignore us , I have seen some of his comments giving hint that he sometimes goes through blogs in recent action .
•  » » 20 months ago, # ^ | ← Rev. 2 →   0 The thing that actually motivated me to write this blog was necroposting. After that it kind of just developed from there. And to be honest, I have not seen any suggestion related to necroposting. Necroposting and blog deletion are also relatively easy to implement compared to the other three.Anyway, this isn't really about "being aware of the issue" because it is not a bug report, it is a feature request. In this situation, I think it can be worth it to show demand. All kinds of features are theoretically possible and of course someone at CF may have already thought of it, but if there is a blog requesting something and it is upvoted etc, then it communicates that people actually want this. This doesn't guarantee anything of course but I think it at least increases the probability of CF administration considering this.
•  » » » 20 months ago, # ^ |   0 And to be honest, I have not seen any suggestion related to necroposting. imachug suggested a lot to avoid necroposting in each scenario here.
•  » » » » 20 months ago, # ^ |   0 Which is like a completely different suggestion. Ok, I should have said that I haven't seen anything similar to my suggestion.
•  » » » » » 20 months ago, # ^ | ← Rev. 2 →   0 Don't get me wrong. There's still people(including me) that violates, The debates reached maximal permitted depth, so your message and the message you are replying will be displayed on the same level. Are you sure you want to reply to the message? You may edit your comment only for fixing grammar mistakes or small changes. Do not change the main idea of your comment. All previous revisions are available for others. Are you sure you want to edit comment?
•  » » » » » » 20 months ago, # ^ |   0 I think the first one is not really an "don't do this", it's more like "heads up, the comment may not appear as you expect it to".People will violate all kinds of things, it's more about reducing the number of people who make unnecessary necroposts. I have seen a lot of discussions that go like:Person A: makes pointless replyPerson B: Dude wtf? This blog is 7 years old!Person A: Oh sorry, I didn't notice.The point is, a lot of people reply to old threads simply because they don't notice. And if we can divert their attention to that before they reply, they will not post an unnecessary comment.
•  » » » » » » » 20 months ago, # ^ |   0 Locking old threads also does the same thing but in a strict manner.
•  » » » » » » » » 20 months ago, # ^ |   0 I don't think a strict measure is needed, though. I don't think we should prevent all necroposting. Sometimes there are good reasons to reply to old blogs, and there's nothing wrong with that. I just want to prevent situations where people reply to them by accident.
•  » » » » » » » » » 20 months ago, # ^ | ← Rev. 2 →   0 Sounds good. I think that might be a quick fix to necroposting but still some of the necroposts are pointless and annoying(I think which made you make this blog). So, We can still lock some threads.
 » 20 months ago, # |   +18 Have a separate place where beginners can ask questions that would clear a lot of mess from recent action,I hope mike implement it
•  » » 20 months ago, # ^ | ← Rev. 2 →   -15 Some times beginners also have astonishing ideas . It would just be unfair and will contribute more to ratism . every one should have equal rights here. Punish them for wrong but don't take away for rights.
•  » » » 20 months ago, # ^ |   +5 No, I think you got it wrong, it's not about rating limitation. If something is wrong with my solution and I can't debug it, I'd also ask my questions on the beginner place. It's just to separate short-term questions from long-term blogs.
•  » » » 20 months ago, # ^ |   +5 His suggestion has nothing to do with ratism.
 » 20 months ago, # |   +1 While we're at it, how about this feature."Filter Recent Actions based on rating of the person who posted or commented"I think this is important because if some LGM or IGM posted or commented anywhere, I would like to read it. Also it would give users an easy way to filter spamming done by beginners.
•  » » 20 months ago, # ^ |   +14 I think this is important because if some LGM or IGM posted or commented anywhere, I would like to read it. say what now?
•  » » » 20 months ago, # ^ |   +12 LGM or IGMs typically produce better content than newbies/pupils/etc.
•  » » » » 20 months ago, # ^ |   -11 so did i just read garbage?
•  » » 20 months ago, # ^ |   +37 Blatant ratism.Anyways this is something you could probably do yourself. The easiest solution is going here and then writing a script to delete all entries where the user isn't red or black-red. If you wanted to take it farther you could look at API.
 » 20 months ago, # |   +3 Add to Favorites for blogs and there should be option to make entries of your favorites to be public or private.This section should allow users to create multiple lists with some heading and links as entries(with option of private and public for every entry).By this we can save blogs which we think are good.BONUS: making some entries public will help your followers(they will not span your chats for some good resources).
•  » » 20 months ago, # ^ |   0 The basic functionality of "add to favorites" exists, although it is very easy to miss. Click the little star next to the upvote and downvote buttons.
 » 20 months ago, # |   -52 please don't take the blogs seriously. nothing valuable was ever brought from the discussions.
•  » » 20 months ago, # ^ |   0 ok
 » 20 months ago, # |   +58 "Don't allow users to delete blogs" — YES, YES, YES AND ONE MORE YES! It is so annoying to see your comment that you put effort into and worthy discussion disappear since its on author's mercy.My main concern with blogs is that it becomes really hard to find blog once it gets out of Recent Actions, you need to either remember the author and find the blog in his blogs or search it using Google, that's basically a "death" for a blog then. I wouldn't mind scrolling through lazily displayed long list of blogs to finally get one that I am interested in
•  » » 20 months ago, # ^ |   0 It is so annoying to see your comment that you put effort into and worthy discussion disappear since its on author's mercy. of-course they should not be deleted . But what about blogs which has been asked by beginner and gets -20 votes . If he/she don't delete it then -20 will turn into -40 . Why -40 ? Just asking for doubt which is known to many people . Do you have any suggestion for that ?
 » 20 months ago, # |   0 Codeforces can make it to be like the USACO forums except with some tweaked categories. Then it'll just be the recent actions on the side but we can choose the category of blogs we wanna see. I think that'd be pretty cool.
 » 20 months ago, # |   0 Is that possible — the gym submissions become opened for all...
•  » » 20 months ago, # ^ |   -10 so u are saying1) hide newly created blogs as they have low interaction and keep display old controversial blogs2) keep spam blogs which have a lot of downvotes on top by viewing it as interaction
•  » » » 20 months ago, # ^ |   +28 No
•  » » » 20 months ago, # ^ |   0 He's not saying to keep it on top/bottom. He's just saying to display the stats.
•  » » 20 months ago, # ^ | ← Rev. 2 →   +10 i feel like this would clutter up the UI, and in majority of cases there isn't a needit would be a bit unusual to have 2 numbers (esp. since you would have to label which is which), but having this number in a tooltip would be fine i think that interaction can be judged by amounts of comments for a blog or amount of child comments in any case
•  » » 20 months ago, # ^ |   +4 Sounds good...Completely Agree!
•  » » 20 months ago, # ^ |   +3 Yeah, I think it would be helpful. But first priority should be given to latest blogs and then based on what u mentioned above.
 » 20 months ago, # |   +2 More features can downgrade popularity of website because of it's complexity. CF interface is easier that codechef's and that's why more popular.
•  » » 20 months ago, # ^ |   0 I think there are a lot of other reasons why CF is more popular too...In some sense I agree with you. But it doesn't mean features can't be implemented, it's more about being smart about what you implement and how you implement it.
 » 20 months ago, # |   0 Currently Recent Actions is the only access point to the blog system
•  » » 20 months ago, # ^ |   -10 Yeah , and similarly you can see that not all blogs are related to necroposting in recent action . Also what is problem if someone has doubt in some old blog ?A blog for reporting all such matters are already made here but then also -is-this-fft- made a blog instead of posting there . He is teaching beginners to how to behave and he himself doesn't go through all blogs.
•  » » » 20 months ago, # ^ |   0 Why necroposting is generally not encouraged. Some argument can be made to allow it (like on editorials), I think there should at least be a contribution lower bound to do so.The problem he is talking about by saying its the only access point, is that it is very tough to find old blogs that you found useful unless you can effectively Google them (never found Codeforces search useful), or perhaps discussion on a particular topic. Hence it is inflexible, as is the Top section which generally is full of contest announcements and editorials. I didn't even know about the blog you mentioned, which is a testament to how ineffective it is.
•  » » » 20 months ago, # ^ |   +5 He is teaching beginners to how to behave and he himself doesn't go through all blogs. ?????Where have I said that beginners must go through all blogs (is that what you are implying here?)? Also, I can't find anything I have said that would suggest I should have posted this blog under that topic instead of here.Actually, I think the blog you linked is another reason why a forum system would be good. If this blog would be stickied, people would actually use it. But now, it gets buried and people will forget about it. Also what is problem if someone has doubt in some old blog ? And I specifically said that this one can be argued to have a good reason.
 » 20 months ago, # |   0 Codeforces should also have something like the Arch Linux Code of Conduct or the equivalent for Stack Overflow. I think (trusted) members of the community would be happy to moderate based on this set of rules. It would really clean up the blogs of pointless arguments (and trolls) and encourage people to actually Google and do their research before asking questions (or at least frame them better). Honestly, the end goal should be something like the Arch Linux Forums.
•  » » 20 months ago, # ^ |   +15 Thank you Mike for your reply . I knew that you don't ignore us . You are like one man army keeping everything good on this website.Related to blog deletion , if we implement blog deletion on this website , we can do one thing is not decreasing the contribution of person who made the blog after blog gets votes less than -10 . This is because many times some new people and even some good blogs get downvoted and saving the contribution is one of the reason why people delete the blogs.Also , i read in one of your comment that you are going to implement account deletion . If you implement it , you can convert all blogs/comments of that person as anonymous instead of removing them.