I came across http://www.reddit.com/r/programming/comments/9w0yk/how_many_of_you_actually_look_at_the_code_of/ and was curious to find out how HN users/hackers would respond.<p>Indicate what type of user you are, followed by the names of the project (5 max)<p>'Active' - Active contributor/committer<p>'Patcher' - Not an active contributor but have submitted occasional patches/bug fixes<p>'One-off' - Modified code but did not submit as patch as it was too specific to your purpose and not generic enough to benefit others<p>'Guilty' - Modified code but did not submit any patches to the community<p>'Curious' - Looked at the code out of curiosity/to understand but haven't modified anything<p>My FOSS involvement:
One-off - Maven, Forrest
Guilty - CruiseControl, Struts2
Curious - Apache HTTP Server, Firefox, Spring, Shindig, Lucene
Depends on the package, if it's a compiler or a big subsystem, not likely. If it is something that I plan on integrating then there is a much bigger chance.<p>I always wonder how easy it would be for someone to slip a security hole in to one of those packages that I 'make install' blindly, one day I'll be bitten, that's for sure.<p>But you can't really audit each and every piece of software that you install and a well hidden exploit would only have to be a few lines long, or in the case of an intentional overflow bug somewhere, it could be '0' lines.<p>Packages: apache, have looked at the source extensively long ago, not since 2.x, varnish, looked at it recently in some depth, heavy user of php, mysql, never looked at the source of either, newbie user of python/django, looked at django but not at python.<p>Usually my digging in to something is triggered by a bug, I usually will submit a detailed bug report in that case but not send in a patch unless it is well within my expertise. Submitted some for drupal modules.<p>Wished I had more time to spend on the 'curious' department.
Active: Cupboard (<a href="http://github.com/gcv/cupboard" rel="nofollow">http://github.com/gcv/cupboard</a>), an embedded database for Clojure. I wrote and open-sourced it, I guess that's about as active as it gets. :)<p>Patcher: Samba. I work with it extensively, so I look at its code all the time. Found a bug once. :) All joking aside, Samba is a really nice piece of work IMO, and a great example of clear, understandable, and maintainable C.<p>One-off: Apache/Jakarta Slide. That project died, and good riddance. It had some of the worst code I've ever seen: designed by architecture astronauts who never met a "design pattern" they didn't like, and it sported exponential-time algorithms for things like adding entries to ACLs. I had to hack it extensively just to make it barely usable. Thinking of Slide makes me want to go shower.<p>Curious: Git. Want to look more closely at it, but don't have the time.
Active: Webmin, Virtualmin GPL, Usermin<p>Patcher: Squid, various Drupal modules, Joomla and several modules, OpenACS and a few modules, Zope and a few modules, yum, SARG, a couple of CPAN modules, and at least as many more that I can't remember (a dozen years of Open Source involvement leads to a long list of project involvement, even though I don't write a lot of code, relatively speaking). A number of RPM spec files from various Linux distros.<p>One-off: Drupal, and too many others to name. Tons of RPM and deb packages; I maintain a couple dozen packages, so this happens every week or so.<p>Curious: nginx, mod_rails, RoR, Django, Catalyst, way too many to name.
One-off: Twitter Python API, Wordpress and some other PHP OSS cruft.<p>Curious/Guilty: Most other things I've played with. Have occasionally emailed developer(s) or commented on threads/mailing lists without submitting a formal patch. Lucene is something I've looked at fairly recently. Have modified and extended bits of NLTK.<p>Active: couple of OSS licensed projects I wrote or was involved with years ago; 'active' is a fairly generous term!<p>I think it's mostly because I tend to do things to fix the problem I have right now, not to make other people's lives better. I don't really have the right attitude, do I ;)
Guilty: I had an issue with Jaxer requiring a head element in HTML5 despite me not wanting the jaxer framework being pushed to the client side.<p>Curious: I'm supposed to do a six month placement with an open source project next semester (I'm a bachelors student on my second year), so I've been trying to figure out what to work on. I'd love to find something that is both interesting and not to terribly scary at the same time if anyone has suggestions.<p>@jlees - That's an excellent idea, thanks! :)
My involvement:<p>Patcher - Thrift
One-off/Guilty - Lucene
Curious - Django
One-off - Log4j<p>Did not like what I saw in Log4j, was really a mess, far more complex than necessary.<p>I really need to polish up some of my code and submit them as patches, however that takes time and I've got a product to ship (I'll have to do it after my 1.0 is out)
Active: Really only my own projects, sadly.<p>Patcher: Nemerle, Boo, MOSA.<p>One-off: Linux, NT (lots of random patches), Pylons, Python, Mono.<p>Guilty: DTrace, GCC, LLVM.<p>Curious: Pretty much everything I use that's interesting. Not enough hours in the day.
Active - Only my own projects<p>Patcher - Doctrine ORM, symfony framework, Gearmand<p>One-off - Drupal, Wordpress, Trac<p>Curios - Many different projects. Some recent examples: Apache, Git, PHP