We have a question that might help illustrate the line we draw on programming questions:

It was closed for being off-topic, and I understand much of the setup is relating to potential or exclusive developer turf, but the actual question as I see it is about parsing kext and things that kernel hackers and admin/users familiar with unix will know is simply hardware details of the OS.

Let's go over the plusses and minuses of this specific question as well as document were the line on "programming" might be drawn.


Questions about "programming" or "development" are typically tricky, because there are a lot of borderline cases and we don't have enough questions on the site yet to show consistency. My key guideline when moderating these kind of questions is

  • Keep open if it is
    • focused on tool issues (e.g. usage or problems with XCode or accessing Apple's developer documentation
    • primarily concerned with using homebrew, macports and friends to install software from source
  • Close it if
    • Objective C code (or compilable code in general) is required in the question or the answer
    • a design or framework issue is raised (e.g. how do I update the Notification Center from my application)

What triggered me to close the question which led us to this thread here was primarily the context of "I'm developing something and run into some linking issues due to missing symbol". My kernel hacking days are long over (and it wasn't OS X either) but I doubt whether a non-programmer does have the faintest clue what this all is about. And even an administrator (who might run into issues with missing symbols while compiling/installing 3rd party software) probably doesn't need kernel symbols (or will get back to the software provider/developer for help).

Having said that, the question probably could be rewritten into a more generic form of "How do I find the library a missing symbol is in" or similar. But given the very specific nature of the issue at hand, any solution to that problem might not answer the original issue at all.

  • 3
    I agree entirely with your framework, but I'd go on to say that if a question is cast as aimed at a developer issue but it's obvious how a non-developer could use the same information, great. If that's not so obvious, the question should be closed, but reopened if it can be edited to include non-developer use cases. – Daniel Jun 18 '13 at 22:36
  • 1
    Patrix - you were totally right here and I was wrong. I wanted to make it work, but it needs a big edit to save it as opposed to being even somewhat on topic as it stands today. Thanks for working it out here. – bmike Jun 22 '13 at 15:05

Here are my 2 cents on this:

Philosophically, all moderators generally shouldn't unilaterally close a question with a single vote if we are not 100% sure (or maybe 88% sure) that it's off-topic or the question already has issues with confusion, divisiveness, or is actively harming the site.

I try not to assume something is unsaveable, unanswerable or off topic when I'm in the review queue or not reacting to a specific flag.

Now, if 4 site members had voted to close a question the presumption of it being truly off-topic is more likely and I would want to be able to make an edit or point out a clear flaw in the close reason before unilaterally re-opening it.

Now - as for this question in specific. Yes, there is clear mention in the setup that a developer happens to be the user, but in the specifics no code (Objective C, Xcode compiling or API) are actually involved in the topic. It is pure terminal commands that are accessible to each and every Mac that ships. You don't need to be a developer to answer the question, you don't need to install Xcode, you don't need anything except for knowing that terminal exists and that Apple's OS exposes hardware details to shell scripters and that the GNU tool nm lets you map the details of a file.

So, if we are to allow questions about "homebrew", "gcc", and other open source tools that rely only on the terminal - it seems odd to throw out this question that uses open source tools to look at Apple's hardware. Similarly, you can use command line tools to check GateKeeper status, code signing status, whether the network connection is wireless, ethernet or something else and I see this question as fundamentally about how someone can know what hardware is installed by using OS X to get at hardware details.

I happened to know all this, so I was able to flag this question for re-opening, but I wanted a meta thread to explain the difference between closing something that we knew as asked was off-topic versus something that might get edited or answered in an off-topic manner.

Despite all that, this question doesn't have enough details to make it "system-admin friendly" in that the specific problem isn't with loading or unloading a kext but with finding an API that's declared in the kernel (totally fine for this site) and looking for the development portal to access that undocumented internal API. (totally not fine for here)

I'll close this again which is what the first moderator did unless it gets edited to be more on-topic for admins as opposed to developers.

  • 1
    I don't see a problem with promptly closing a post and inviting edits to make it on-topic. If a post doesn't seem to have a use case for non-developers, closing it and inviting the OP to explain what problem the question would help answer that isn't a problem unique to developers seems no different than closing a question because it's unclear and inviting edits to make it clearer. – Daniel Jun 22 '13 at 22:10

The post opens

I am trying to develop a MAC(Mandatory Access Control) policy module…

I think closing it as developer-centric is a reasonable first response. I'd be very interested in hearing a use case of how a non-developer could use this information.

It's way outside my area of competence (which admittedly doesn't say a whole lot, because my area of competence isn't that big).

I'd say this question is off-topic as written, but could very well be edited into a form with the same "payload" question but a different premise that would be quite on-topic, but the burden would fall on those who want to keep it open to build a use case for how this could solve an actual problem for non-developers.

You must log in to answer this question.

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