Getting Answers on Cocoa Mailing ListsThere's no shortage of people asking questions on macosx-dev and cocoa-dev, but shockingly few people are writing the type of messages that will result in useful responses. Here are a few guidelines to work from.
Show Your Work
When asking a question on a Cocoa mailing list, the most important thing you need to do is demonstrate that you've made a reasonable effort to find your own answers.
People are more than willing to help out where documentation falls short or the right documentation is just plain hard to find. What you don't want to do is ask others to do your work for you. It's obvious when a poster hasn't made a reasonable attempt on their own, and the result is usually silence or heckling. Here's a fictional example of what not to do:
I need help writing a program that can edit videos and burn DVDs. How do I do this?
This type of post will not go over well. The poster doesn't demonstrate that he/she has made any initial effort to figure out the basics.
The answers to these questions are not difficult for an experienced Mac programmer, but writing out responses takes time, and it's unfair to ask others to sacrifice their time unless you have actually hit a wall of some sort. Being a newbie is not a valid excuse in itself. Cocoa programmers tend to be very supportive of novices, but only if they demonstrate to the veterans that they are making a real attempt. Here's a slightly better version of the same fictional post:
I need help writing a program that can edit videos and burn DVDs. I think I need to use QTKit and the DiscBurner framework. How do I do that?
This is better because the poster has proved that they have an least done some high-level research. It still won't be well-recevied, though, because the question is extremely open-ended. The message essentially asks for high-level/conceptual design work to be done for free, possibly for a commercial product. Let's go a step further:
I'm writing a program that can edit videos and burn DVDs. I think I need to use QTKit and the DiscBurner framework, and I've read these documents:
These are helpful, but I'm having trouble understanding how to extract sections of clips into separate movie objects. I've looked for sample code on ADC that covers this but keep coming up empty-handed. Can anyone suggest a good place to look for this sort of thing?
Now this is a good post. The author took time to consider a specific problem area (extracting content), mentioned existing material that he/she found, and asked for a specific solution -- relevant sample code. This post is very likely to be answered because the author has made it as easy to do so.
Make the Subject Line Tell
Make a point of choosing informative subject lines. They should describe, oddly enough, the subject of the post. It shouldn't describe your social status or level of achievement (newbie, starving student, accomplished programmer). Instead, describe the content of your question.
If you're asking a question specific to a specific framework, it might make sense to call that out. An even better approach is to describe the specific class you're interested in. Here are some good examples
Core Data: Manual Faulting
Managing Memory for Core Foundation objects
CFNetworking - issues with non-blocking API
Avoid writing subject lines like this:
Please help! Important!
Cocoa and Xcode
As a simple rule of thumb, aim to write subjects lines that contain both nouns and verbs. This will help other list members see what you're working with as well as how you're trying to use it.
Clarity, Clarity, Clarity
Other than asking reasonable questions, the best tactic for getting help is communicating your challenge clearly. Do whatever you must to get the context of your post across. A three page post with no paragraph breaks and rambling language will not be answered quickly.
Ideally, put a sample project on a web site that illustrates your issue and include the URL to the download in your post. If possible, work up a simple line diagram in OmniGraffle to explain the relationships in your question. If you can't do either of these, at least put together some crude outline-format ASCII diagrams right in the email.
When it comes to the text, don't ramble -- get to the point immediately. If you're having issues with a certain block of code, post the code. There might be issues with the block that you're not aware of.
Share Your Solutions
Once you've solved an issue, pay it forward by posting a follow-up to the same mailing list. This will enable other people to avoid asking the same question later because they can find answers via Google or the mailing list archives. It will also make those who assisted you feel good because they know that their time went to a good cause.
If you are asking people to do you a favor and take time out of their day to help you, be respectful and thankful when they do so. You're more likely to get an answer next time you need help if you spread some good vibes.
Updated: added some notes about subject lines and newbies at the suggestion of mmalc. Thanks!
Getting Answers on Cocoa Mailing Lists
Posted Nov 21, 2005 — 14 comments below
Posted Nov 21, 2005 — 14 comments below