I had my answer to this question deleted by a moderator and converted to a comment. Prior to the deletion, it had earned a couple of negative comments and a downvote.

The original text of my answer:

The hard part (the mesh partitioning) is already done. Frankly, you're asking for help on the easy part, although this type of bookkeeping coding can be tedious. I wouldn't consider it "reinventing the wheel" as much as just another part of the day-to-day unglamorous work that many of us do.

What you're trying to do looks rather mundane, but custom enough that it seems unlikely to me that you would find that exact functionality in an existing library. Even if you did find what you needed, it might take longer to port your data structures to the library's data structures than to just implement it yourself.

I strongly disagree with the downvoter and the negative comments I received, but my question here is about the decision to delete my answer altogether, which very much surprised me. I had intended to edit my post to address some of the comments by (1) fixing some language that came off sharper than I originally intended and then (2) to reinforce my argument that OP shouldn't waste time seeking a third-party library. Since my answer was so quickly deleted, I'm posting here instead.

The criteria for deleting answers is here. I presume my answer was deleted under the clause not even a partial answer to the actual question. My answer, of course, does not directly answer the question, instead, it challenges the nature of the question itself. In this case, OP is primarily seeking a third-party solution, and my answer is essentially saying that they won't find a third-party solution and this problem is easy enough that they should spend the effort to implement it themselves.

My experience on this site has been that we have the latitude as answerers to challenge the premise of the questions themselves. A really old example is this one in which OP asked for help using LAPACK and two answers said to not use LAPACK directly. I'm sure I could find more examples if I spent more time.

I am requesting that my answer be restored as an actual answer since I feel it's at the very least a partial answer to the question. More importantly, I think my viewpoint, while likely unpopular, is an important part of a larger discussion about when it makes sense to seek out third-party solutions. If people disagree with me then by all means downvote me to oblivion, but I stand by my original answer and think it has a place here. I'm also interested in constructive opinions from a wider audience on both the quality of my answer and the moderator's decision to delete it.

As an aside: There's been a lot of talk about being nice to those who ask questions since we want to foster a sense of community, which I completely agree with. Frankly, we need more activity altogether. If my words were offensive, I apologize directly to OP. I think it's completely acceptable that OP sought out a third-party solution to this problem. In the same vein, however, I put a fair amount of thought into how I worded my answer, and the feedback that I got was "This answer is unhelpful" and "This isn't even an answer" (probably paraphrased since these comments didn't get moved). Later comments informed me that my language was "unusual". Ironically, none of these comments are themselves constructive or helpful to me who is someone who genuinely wants to help others.

I still don't understand specifically what they think was wrong about what I wrote. I think we should extend some civility to all question-askers and answer posters. I know that I am personally oversensitive to criticism, but the negative feedback that I received over this hurt me quite a bit more than I expected it to.

  • 1
    $\begingroup$ I deleted (technically, converted to a comment) the answer. I will get a reply here today, and let's see what we can/should do. Thanks for posting here. $\endgroup$
    – Anton Menshov Mod
    Dec 23 '20 at 16:13
  • $\begingroup$ In my opinion, there is a pretty obvious different between your answer and the one that you linked here about using LAPACK and that is: you disagree with the OP and try to challenge him/her (in my opinion with an unusual language) but you don't give any apparent solution. Of course, I could write a partial answer as you defined it here to all the questions here and challenge people without giving them any solution. $\endgroup$ Dec 23 '20 at 18:08
  • $\begingroup$ Also, here is a Q&A website not a challenge one. I mean people don't come here to be challenged destructively as you did it in your answer, but if the challenge or disagreement is constructive like the one that you linked about using LAPACK, you see it's pretty welcomed here if I want to solely judge based on upvotes. $\endgroup$ Dec 23 '20 at 18:11
  • $\begingroup$ @LedHead As the OP, I can assure you that you were not offensive. $\endgroup$ Dec 24 '20 at 8:08
  • $\begingroup$ @ZoltánCsáti Thanks for that feedback. I was really worried that I had offended you. $\endgroup$
    – LedHead
    Dec 24 '20 at 13:29
  • $\begingroup$ @AloneProgrammer If you could be more specific on which parts of my language you find unusual and destructive, I would be appreciative. $\endgroup$
    – LedHead
    Dec 24 '20 at 13:31
  • $\begingroup$ I find the downvotes on this Meta question surprising. If only there was a Meta on this Meta for me to ask why :) /s $\endgroup$
    – LedHead
    Dec 24 '20 at 13:34
  • $\begingroup$ @LedHead on Meta, people also use downvotes on the question to express disagreement, not necessarily that it was not well researched. So, don't take those the wrong way. $\endgroup$
    – Anton Menshov Mod
    Dec 24 '20 at 16:08
  • $\begingroup$ I am one of the downvoters. But I should mention that downvotes in Meta mean that somebody does not agree with the OP. $\endgroup$
    – nicoguaro Mod
    Dec 24 '20 at 16:13
  • $\begingroup$ @AntonMenshov That's fine, I was mostly joking anyway. I'm getting used to all the downvotes. $\endgroup$
    – LedHead
    Dec 24 '20 at 17:17


The situation can be described using the following bullet points:

  • This answer was deleted by me as a result of a "Not an answer" flag.
  • At least one of the users raised a flag, with which I agreed with.
  • I based my agreement on my judgment that that answer was neither wrong nor a partial answer to the question. I will elaborate on in the next section.
  • I did not find anything offensive in the answer; thus, converted it to a comment to an original question. I also moved the comments from other users that were discussion-related.

Answer vs Not-an-Answer

In this particular case, I do not see how the answer addresses any of the points in the question. It is tangential only to Note 2 (out of 6), and still does not offer feedback on what to do to avoid using a 3rd party library.

Now, sometimes, it is very easy to decide that a particular post is "Not an answer". Sometimes, it is more vague, and in this particular situation at least 2 users decided that it is not.

Moderation Action

You correctly pointed out the Help Center article on deleted answers. The relevant section (emphasis is mine):

Answers that do not fundamentally answer the question may be removed. This includes answers that are:

  • commentary on the question or other answers
  • asking another, different question
  • “thanks!” or “me too!” responses
  • exact duplicates of other answers
  • barely more than a link to an external site
  • not even a partial answer to the actual question

From the fineprint point of view, "this includes" does not limit the deletion to only the listed bullet points, even though I consider that in this particular case, the points of "commentaty on the question" and "not even a partial answer" are at least partially applicable. However, in my interpretation "do not fundamentally answer the question" is more important, for which I think I justified my opinion in the previous section.

Alternative Moderation Action

Community also has an ability to cast delete votes, and with 3 delete votes the post would have been deleted. In this case, the contents would not have been converted to a comment at all.

What can we do now?

In the current form, I still strongly consider that this is a comment. I also do not see that the community here supports an opposite point of view.

If you intend to edit your answer to actually answer the question, provide the sources/formulas/ideas on how to develop this functionality by yourself (basically, align your answer with that had been asked) -> I am more than willing to restore your answer for editing.

You also can post a totally new answer, which might be a good idea since the original version has to be revised to actually be an answer.

You can leave a comment under this post or ping me in chat. Note, that the new revision or new post is subject to the same criteria and code of conduct.

Reaction on deletion

I thank you for writing this question on Meta and expressing your opinion here. This is exactly how it should be handled, and I am happy to try to resolve the situation and\or explain my actions.

I am sorry to hear that the feedback you got hurt you. I strongly believe that none of the commenters had this intention — and neither did I. Simply, some people aligned in the opinion that a particular post is more suited to be a comment rather than the answer. That is it.

  • $\begingroup$ The way I read the question, Note 2 (asking for a third party solution) was the primary request, and I still feel like my answer addresses that request directly by explaining why such a resource is unlikely to exist. Some of the differences in opinion here might arise from the fact that OP didn't actually ask a question. I think my interpretation of what OP was looking for was at the very least understandable, if not accurate. Had OP actually asked how to solve their problem instead of asking for a resource, I would not have posted my answer. Do others here think that was implied? $\endgroup$
    – LedHead
    Dec 24 '20 at 13:26
  • $\begingroup$ @LedHead, since questions are open to interpretation it is useful to have a comments section. In this case, if you read the reply to your answer (now comment) the OP expanded what was the point. $\endgroup$
    – nicoguaro Mod
    Dec 24 '20 at 16:10
  • $\begingroup$ @nicoguaro Are you referring to when OP said Indeed, I was not asking someone to write the code for me. I wanted to get suggestions whether this type of problem has already been solved. ... ? If anything that comment reinforces my point that OP was asking for a resource not for an explanation of how to write their own solution. When questions are open to interpretation as this one apparently is, why does it make sense to close answers that simply interpreted the question differently? $\endgroup$
    – LedHead
    Dec 24 '20 at 17:23
  • $\begingroup$ @LedHead, I agree with Anton that your answer was not satisfactory. And, even if we were not moderators, that would mean that 3 people voted this. That's how this site works. That being said, I fail to see the "resource" that you provide, I only see that you're saying that the endeavor of the OP is (somewhat) pointless. $\endgroup$
    – nicoguaro Mod
    Dec 24 '20 at 17:29
  • $\begingroup$ At this point, I'm fine to just let this whole thing go, because I've already spent too much time worrying about it. Despite there clearly being a significant contingent of people that disagree with me, I maintain that I answered the question as it was posed and it was an incorrect and inconsistent decision to close it. I think it's irrelevant how many people collectively made that decision. I feel like I made convincing and salient points to defend my position, so at this point all I can really do is take my downvotes and let my words stand for themselves. $\endgroup$
    – LedHead
    Dec 24 '20 at 17:34
  • $\begingroup$ @nicoguaro That's exactly what I'm saying. In the comparison question I linked to, OP wanted help learning LAPACK and other answers simply told them not to do it themselves and instead use other resources. If that's acceptable, then how is the reverse not also acceptable? -- Don't use another resource (because it doesn't exist), just write it yourself. $\endgroup$
    – LedHead
    Dec 24 '20 at 17:41
  • $\begingroup$ @LedHead, so you're saying that Wolfgang answer is wrongly interpreting the question and that the OP wrongly accepted the answer? $\endgroup$
    – nicoguaro Mod
    Dec 24 '20 at 17:55
  • $\begingroup$ @nicoguaro Actually, yes. I think WolfgangBangerth answered a question that wasn't asked. And i think that if OP did want that answer they should have asked a clearer question. At the very least, I shouldn't be penalized for addressing the actual question as posed. $\endgroup$
    – LedHead
    Dec 24 '20 at 18:05
  • 1
    $\begingroup$ @LedHead I don't see any penalization, though. $\endgroup$
    – Anton Menshov Mod
    Dec 24 '20 at 18:08
  • 1
    $\begingroup$ @LedHead, there are two different things. One, it is really common for people not knowing how to ask and that's what the comment section is for. You ask for clarification and help the OP to shape the best question they can. Second, you're not being penalized, quite the opposite, I would say. As an answer your reply has the potential to be downvotes, and that takes some reputation from you. As a comment you're helping into the purpose of the site. Remember that this is a Q&A site. We want to come back to the questions later and use the answers. $\endgroup$
    – nicoguaro Mod
    Dec 24 '20 at 18:12
  • $\begingroup$ @AntonMenshov Fine, penalized is the wrong word. If someone spends the time to write an answer and it gets closed, it's a little insulting. (Of course, I'll live). That's what I meant. $\endgroup$
    – LedHead
    Dec 24 '20 at 18:17
  • $\begingroup$ @LedHead I am sorry you feel this way. It should not be like that, and no insult is implied at all. I hope that does not discourage you from contributing! $\endgroup$
    – Anton Menshov Mod
    Dec 24 '20 at 18:18
  • $\begingroup$ @nicoguaro I've been around this site for a while now, which was why I felt that my answer was a valid answer, and also why I'm defending it so vigorously. I'm under no delusions that that answer was going to change someone's life, I didn't expect any upvotes on it. I wrote it specifically because I see too many people, especially those just getting started, spend too much time looking for third party solutions when it doesn't make sense. I think that's an unpopular view, but one that needs said. Maybe someone comes across my answer and realizes "this isn't that hard, I'll just do it myself" $\endgroup$
    – LedHead
    Dec 24 '20 at 18:24
  • 1
    $\begingroup$ @LedHead, I understand that. But 3 people, besides me, thought your answer was not useful. So, unless you reword/refactor your answer there is no point in continue the discussion, in my opinion. Maybe you could ask Alone Programmer, Wolfgang and the OP to answer in this post and mention if they consider your answer to be useful. $\endgroup$
    – nicoguaro Mod
    Dec 24 '20 at 18:43

Here, I'm going to analyze your answer line by line to show you that actually your writing doesn't convey any useful information to solve OP's problem.

The hard part (the mesh partitioning) is already done.

Not necessarily. I'm aware of complex mesh and graph partitioning algorithms implemented in the famous libraries like METIS or SCOTCH, but obtaining adjacency graph is not necessarily much easier or more trivial task to do. At least, based on Wolfgang's answer, it seems it needs some efforts to make it work.

Frankly, you're asking for help on the easy part, although this type of bookkeeping coding can be tedious.

I don't think writing a code to obtain adjacency graph and visualization (as it is mentioned in Wolfgang's answer) is a bookkeeping coding. I define bookkeeping tasks as something that is already available in several general libraries and somebody that is a novice tries to implement it himself/herself from scratch. Example: trying to implement an efficient data structure for arrays, tensors, etc. in Python while we know that NumPy is a globally accepted library that provides such data structure in a very efficient way, which is tested and validated several times.

I wouldn't consider it "reinventing the wheel" as much as just another part of the day-to-day unglamorous work that many of us do.

Yes, lots of questions here in this SE are about unglamorous day-to-day works which people might encounter them as issues or problems. But, that doesn't mean we should ignore them or even try to remind people that their questions are unglamorous. We try to help and answer questions regardless of their excitements as long as they are on-topic and worded clearly.

What you're trying to do looks rather mundane, but custom enough that it seems unlikely to me that you would find that exact functionality in an existing library.

Again, you are repeating that OP's question is not exciting, which I'm not sure why. You wrote 4 lines without diving into the actual answer to target the requested points by the OP, and still complaining that OP's question is not exciting. OK, if it's not exciting in your opinion, so what's the point of writing an answer for it? You are claiming that it's unlikely that OP would be able to find that exact functionality in an existing library. Did you search it or you just think it's not available already? I don't see anything on that.

Even if you did find what you needed, it might take longer to port your data structures to the library's data structures than to just implement it yourself.

Not necessarily. OP mentioned somewhere that works with Python and I think in Python data structures could be converted to each other more easily in comparison to C/C++. But, still it's not something general or at least in any measure directed to solve the OP's problem.

So, that's the answer you are claiming that it is much better than Wolfgang's answer. In conclusion, if I'm going to be fair, I would say that even it's not an useful comment based Anton’s measurements in his answer, cause we saw that in none of the parts of your answer you tried to solve OP's problem and just complained how mundane and unglamorous is the OP's question and finally claiming that OP is looking for someone to write the code for himself/herself, which is clearly wrong based on OP's himself/herself comment right underneath of your answer.

You asked to elaborate on why I think your language is unusual. My answer is that: complaining about that the OP's question is mundane or unglamorous, is pretty unusual for me, cause I'm not saying I don't feel the same way when I read lots of questions here, but I don't write an answer to tell people that your questions are quite boring for me. Cause that won't help people in any measure and I don't think people come here to know what is interesting for me or what is not.

  • 1
    $\begingroup$ I (the OP), would have found @LedHead's answer useful if he had given me some explanations on why he thinks that I would not find the functionality that I am looking for in an existing library (or would not be worth using a library even if it existed). Since this topic is not my expertise, I wanted to know whether something similar has already been implemented. Yes, I could come up with a brute-force method, but why waste my time on something that is not appreciated (i.e. I cannot publish), when an expert can point me to the right direction? $\endgroup$ Dec 24 '20 at 23:02

You must log in to answer this question.

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