Motivations for entering projects:
- solves a problem I have.
- has an algorithm or source code is "beautiful" or "elegant".
- has good documentation and technical notes, for those projects I join after they have started.
- Solving puzzles. I create deep, smart searches of the problem space to figure out, for example, all the puzzles in the Gameboy Pokemen Puzzle pack.
Simulations of systems, I use StarLogo, and Stella to simulate and analyze behaviorial problems. I think that this type of simulation is a great learning experience, lots of ah-ha's.
- Algorithmic art, kind of an extension of simulations. Try to build algorithms that can create interesting music, pictures or poetry. Most of these fail to be aesthetically pleasing but some are interesting, so this builds an appreciation for art.
- If I enjoy working with the people involved and feel like I can make a contribution, the subject matter and technology matter much less.
- When the project seems possible.
- When the problem is well-defined (even though the solution might not be). For example, I find it much more enjoyable to develop the "fastest" network library than the "most user-friendly". User-friendly is too fluffy for me.
- When I will learn something useful/interesting at the end of the project.
- I also like mathematical modelling projects. For example, a system that simulates different elevator algorithms to see which moves most people per minute.
- Elegant, minimal projects that somehow leverage something that already exists out there. I really like heavy leverage when that is possible.
- Feasable
- Fun
- Useful
- Interesting