Sparked by this question and this comment, I'm confused to what development stuff here is on-topic and what isn't.

The FAQ says:

Development on Ubuntu.

Well, that on leaves room for wider interpretation here. My interpretation: see answer.

Others seem not to share my opinions about it and as long as you run a tool (e.g. patch) on your Ubuntu powered machine it's already on topic.

My view and some examples in an answer. Post yours if you have another view. Feel free to use my examples. Feel free to add more examples for me to give my opinion on.

Related Meta-Qs:


Below is my opinion, my interpretation of the FAQ by example. Rather than writing "I think it would be...", "I prefer..." I write it like facts for the readability.

The FAQ means that it has to be Ubuntu related


  • How can I write a simple "Hello World" application? off

    Too broad for Ubuntu. SO would be way more ontopic.

  • How can I write a simple "Hello World" application in Quickly? on

    On topic because of Quickly, being it something Ubuntu specific.

  • Where can I store configuration files of my application? on

    Most probably on-topic, because Debian/Ubuntu has specific locations for configuration files, for both /home dot-dirs and /etc files.

  • How can I create these .deb files? on

    No doubt about it.

  • How can I link to libabc? unsure

    I'm pretty sure that pkg-config, linker and such are not Ubuntu specific. However, it could be related about the location of files or Ubuntu-specific package.

  • How do I use the APT Python API? I'm getting ImportErrors from this example (on the Ubuntu wiki). on

    Most probably obsolete information and needs clarification on a change since version X.Y of Ubuntu. Could also be a general Python user error, but then it's still useful for other developers running into the same issue.

  • How do I apply patches? I downloaded sources of libabc here (external source) and want to apply this patch (external source). off

    I fail to see what about it is Ubuntu specific, apart from the Ubuntu-packaged version of patch. SO is the place.

  • How do I apply patches to Ubuntu packages? on

    No doubt. dget, source packages, quilt, use of SCM with packaging, etc. Great Q here.

  • How do I create a Unity lens? on

    No doubt. May be an answer like get the -dev package, link like this, and then here's something to get started about reading APIs, but still Unity is a Ubuntu thing and this is encouraging the Ubuntu crowd to develop.

  • Can I rely on Qt4 libs to be installed by default? on

    No doubt. It's very much Ubuntu-related to whether something is shipped or not.

  • How do I fix "undefined reference to ..." when compiling? depends

    Unless the body contains clues for why this should be Ubuntu related, this is off-topic.

  • Even though some of the point on the list would be better off in SO, all of the ones I see are on-topic for Ask Ubuntu. It is the user's choice where he can ask, and none of those are off-topic. Development under Ubuntu should be read using Ubuntu to develop, the basic check is always: Are you using Ubuntu? If the answer is yes then you should be clear to ask most of the stuff on that list. – Bruno Pereira Jan 10 '13 at 11:42
  • 1
    @BrunoPereira That's an answer people should be able to upvote, I guess? And do you see a way to get this cleared up in the FAQ? – gertvdijk Jan 10 '13 at 12:06
  • I see little benefit to being too prescriptive about these things. The sheer complexity of this answer demonstrates quite clearly what a nightmare it would be to enforce; one that would likely result in a far greater expenditure of time, effort and comment clutter than simply answering the questions in the first place. – IlluminAce Jan 19 '13 at 22:36

In my opinion, questions about using programming tools should be considered on-topic. Questions about the art of programming should be considered off-topic unless they are about Ubuntu or about something that's different in Ubuntu.

This can alternatively be enumerated with two "buckets." If a question fits into at least one it's on-topic; if it fits into none it's off-topic.

  1. The OP is asking for support using tools (or what tool they should use, what tools can and cannot do, etc.), and this is on Ubuntu.

    For example, this would make virtually any question about how to run the patch command on-topic. Questions about what lexical changes to a file a particular diff (patch) makes are on-topic.

    Questions about what changes ought to be made when crafting a patch would not be on topic by this principle. "What diff will make this OpenGL shader more computationally efficient?" is not a question about the patch utility.

    Questions about how to use patch to change the lines of limericks are on-topic, so long as it's really about patch use. Questions about how to write better limericks ("and by the way, then I'll use diff and patch to distribute the changes") are off-topic.

    Questions about how to compile a program, or an error in the arguments passed to gcc, are on-topic. Compile-time errors generated because gcc did not link libraries that other compilers on other platforms may link automatically (libm comes to mind) are on-topic.

    Compile-time errors generated when gcc runs as you expected it to are not on-topic by this principle.

  2. The question is otherwise specific to Ubuntu in a fundamental way, or is platform specific in a fundamental way such that Ubuntu behaves differently from other platforms.

    Questions about why code builds with one compiler but not another (and at least of them is being used on Ubuntu) are on-topic. Questions about why code doesn't build at all are off-topic. (Thus, questions about why one cannot #include <iostream.h> and compile with g++ are just on-topic.)

    Questions about how to write a program to facilitate Canadian cross-compilation would be on-topic. (Questions about how to build Canadian-cross would be on-topic by fitting into the first "bucket," above.)

    Questions about what GCC #pragmas perform the same task as particular MSVC++ or other compiler #pragmas are narrowly on-topic. Questions about how to write a #pragma that performs a particular task, without any indication of why the OP might be asking us, should be referred to Stack Overflow.

    Questions about how to to make a program interact with Ubuntu's UI elements are on-topic. As for questions about how to make a program interact with UI elements present in Ubuntu and other OSes, where the techniques used wouldn't differ between OSes ...that would probably have to be taken on a case-by-case basis. (If that question can be answered in a way that's seen as appropriate for our site, it should be considered on-topic, and off-topic otherwise.)

    Questions about how to write applications in accordance with guidelines for Ubuntu developers, or so they make sense to Ubuntu users, are on-topic. Questions about UI design should be referred to UX when they're clearly more appropriate there, however.1 It is possible, however, that some such questions might be considered primarily opinion-based and closed for that reason.

Programming is an activity unto itself, and this parallels the we way we'd treat other activities:

  • Questions about how to make a call with Skype are on-topic; questions about good conversational etiquette are off-topic.
  • A question about how to open the Martian Buddy lockers when playing Doom 3 on Ubuntu is off topic...unless they're opening fine in Doom 3 on another platform and the question is Ubuntu-specific.
  • A question about getting AbiWord to format short story manuscripts in accordance with William Shunn's guide is on-topic. A question about what the guide means (e.g., "What spacing to use for stories consisting largely of frame narratives in the style of a dramatic script?") is off-topic. Questions about how a particular magazine applies the guide are super-duper off-topic.
  • Questions about how to report a bug in Ubuntu are on-topic. Questions about cultural differences in bug handling are on-topic. Questions about why bugs on Launchpad are expected to be written in English, and what that means for non-anglophone projects or developers, are on-topic (to the extent to which Launchpad is on-topic here). Questions about how to write English ("so I can report an Ubuntu bug") are off-topic.

1 I've crossed that out because, as written, (a) it goes against this official network-wide policy that says not to close questions based on the scope of other sites (which I actually do very much agree with), and (b) it would support migrating questions that are low in quality, or that UX users themselves do not consider good for their site, to UX. However, for questions about user experience and design issues that are already off-topic here, I do still think it is helpful for us to suggest that users consider posting a question there.


The currently accepted practise is that any and all programming questions are on-topic, as long as the programmer is using Ubuntu.

For example:

  • How can I write a regular expression to validate an email address, on Ubuntu? on-topic

  • How can I merge two Python dictionaries, on Ubuntu? on-topic

  • Why does Python code run faster in a function? on-topic, if the asker mentions they're using Ubuntu.

  • Why does Python code run faster in a function? off-topic, if the asker mentions they're using Linux Mint.

When you see a questions like these, you probably should leave a comment, recommending Stack Overflow instead. But as long as the programmer is using Ubuntu, the question is on-topic, and should be answered if possible, and up-voted if it is clear, detailed, well-researched and atomic.

Remember that the asker chose Ask Ubuntu for a reason. We expect that they are aware of Stack Overflow, so they must have a reason to choose Ask Ubuntu instead.

  • 1
    This is my genuine interpretation of the FAQ and of currently held best practises, although I don't agree with it myself, so I'm interested to see what the community thinks! – Flimm Jan 10 '13 at 13:03
  • 4
    +1 for "We expect that they are aware of Stack Overflow, so they must have a reason to choose Ask Ubuntu instead." Yet, I think they should mention why they chose to post it here. – gertvdijk Jan 10 '13 at 13:07
  • I don't think this is actually the currently accepted practice. When a programming question is not platform specific at all, and is not particularly related to Ubuntu, it is usually closed. Even when a programming question is platform-specific in a way that makes Ask Ubuntu a particularly good place to ask it, it often gets close votes if it's not answered or commented on fast enough. (The exception seems to be when it's about creating graphical interfaces with Python. We seem to keep those open whether or not they are about Ubuntu or even platform-specific in any way.) – Eliah Kagan Jan 10 '13 at 20:19
  • @EliahKagan: are you saying that this is a good thing or a bad thing? – Flimm Jan 10 '13 at 20:28
  • 2
    I was hoping that my answer would get downvoted to oblivion, but it hasn't got a single downvote yet! Can't people see that example question three really is not appropriate for our community? If the only thing that makes a programming question on-topic is that the programmer happens to run Ubuntu, but it could be any other OS, it really shouldn't be here, but on SO. – Flimm Jan 10 '13 at 20:30
  • @Flimm Neither, I was just trying to figure out what we currently do. Here's what I think we should do. – Eliah Kagan Jan 10 '13 at 21:56
  • You got a downvote from me - none of those questions are an appropriate fit for this site. – Nathan Osman Jan 11 '13 at 4:12

I am using Ubuntu and need help compiling this code / There is an error while doing so / Code is not running (...)
Don't care about what language he is using, dont care about what he is trying to do.

This will be the most extreme borderline cases where one might think the question would be better off on a SO, or a similar programming only oriented site.

Why is it on topic then?

User is using Ubuntu, user decided to post on Ask Ubuntu, user did not cross post to another SE site on attempt to get an answer.

These questions are just fine and + associated language tag will cover them.

What would it take to close a programming related question then?

Not clear if the user is using Ubuntu or not, or if the user has cross posted. If the user cross posted a nice request would be sent to the moderators on the other site and together we would find a sweet spot that would make everyone happy.

(That is it about this matter as far as I am aware!)

  • Clear statement (though not agree), thanks. Would the same apply for other topics like networking? I see a lot of plain port forwarding questions on a non-Ubuntu router burried deep in "My LAMP server is not working", which should fit better on SU. – gertvdijk Jan 14 '13 at 11:04
  • Same for me, if the user is using Ubuntu and did not cross post I would not touch it unless necessary. – Bruno Pereira Jan 14 '13 at 11:05

Very simple way of putting it by summarizing Flimm's answer and merging it with my comment:

Development is ontopic, provided...

  • it's about or related to Ubuntu (to at least some extent)


  • the user has a valid substantive reason not to post it on SO and mentions why.

Note: users are expected to be aware of the existence of StackOverflow.

  • Just "have some reason to not post it on SO" sounds like a strange 'rule' ? At least make it "a good reason", but then it's a bit trivial: you're ontopic if you have a good reason.. well duh :) (example: "I didn't want to post this on SO, because I was banned there" sounds like .. well.. you know :) ) – Nanne Jan 14 '13 at 9:40
  • @Nanne updated answer with a more specific "rule". This answer is merely here to see if the community wants short/basic answers to this or a more complicated one. – gertvdijk Jan 14 '13 at 9:50
  • 1
    There is no need to justify posting in Ask Ubuntu, ever! Its the user's choice I will not take parts on it. If the user has posted his question on Ask Ubuntu just because he thought it was the best place for it that is good enough for us I would say. If its it not about programming theory, ie: algorithms or programming languages discussion, I am fine with it. Are you using Ubuntu? Yes: that is fine. No: then you are on the wrong place. – Bruno Pereira Jan 14 '13 at 10:14
  • @BrunoPereira "Justifying" is probably not the right term here I would say. I see it as part of the "research effort" and should therefore be clear in the question already "the reason why". Like for example "This compiler error only happens on Ubuntu, yet it runs fine on my Fedora box." <-- valid reason. "Ubuntu ships with several versions of gcc, and this is how to select an older one..." <-- Ubuntu answer. – gertvdijk Jan 14 '13 at 10:33
  • I would be fine with "Am using Ubuntu and this is failing to compile (...)", dont care if it works or not on other systems. This is actually very clear. – Bruno Pereira Jan 14 '13 at 10:37

You must log in to answer this question.

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