In every project I've developed that included a new technology or tool, I've had to do some research to overcome the challenges that are intrinsic to facing new things. In many cases, the research had to be intensive and time consuming. The process was: Google some stuff, find various answers (some wrong, some right, and some incomplete), find a solution out of the several answers, repeat this a lot of times with new problems.
In the end, you master the new technology and your need for research decreases, but you have accumulated lots of knowledge that you can share.
Your journey to doing this consisted on you asking yourself some questions as problems to be solved, and solving them. But these questions will never be the same ones you find in dedicated FAQs or anywhere else. These have been questions of your own that finally led you to mastering a technology and solving your problems. So those questions and their answers are a proven path to successfully facing that new thing. And the best thing is that your path is unique, so its worth sharing.
It turns out that I haven't documented my path, and I haven't been able to share it accurately because time has passed, like when I did some work to include support for both PostgreSQL and SQLite seamlessly in a framework of my own.
Furthermore, I've come to realize that a FAQ-based format for documenting your journey is better than a long explanation. It's as simple as writing the question you asked yourself and writing the answer you came up with. Like:
Question: My app hangs when I execute a command like:
Process p = Runtime.getRuntime().exec(command);
int result = p.waitFor();
The process you are executing might be generating some output long enough to overflow your app's output/error buffers. What you need to do is to empty the buffers as the process generates its output by using a StreamGobbler .
It's so easy. Let's start to write our own FAQs on any topic and share them.
NOTE: Your FAQs don't have to belong to one specific topic only, but questions may be very diverse. What you put in one FAQ should belong to one research sprint, in which you could have investigated about many topics at once; they should all be in your FAQ.
The example I put above is part of a research I did to create a daemon to execute multiple Apache Ant tasks in a chained manner . I could have mixed Ant stuff with that example in the same FAQ, even when they don't necessarily belong together.