We have decided we are no longer willing to continue censoring our results on Google.cn, and so over the next few weeks we will be discussing with the Chinese government the basis on which we could operate an unfiltered search engine within the law, if at all. We recognize that this may well mean having to shut down Google.cn, and potentially our offices in China.
The not so subtle subtext of the post is this: why should Google play nice for the Chinese government and operate a special, censored version of Google, while Google’s infrastructure is under attack from what are probably Chinese government agencies?
benefit of contributing > benefit of not contributing + cost of contributing
In my experience with Ubuntu, this formula does not hold true. The benefit of contributing is often zero, as patches are not accepted and bugs are not fixed, or close to zero, as it can take years for a bug to be fixed. And the benefit of not contributing is similarly zero. And of course, the cost of contributing, in terms of time spent filing bugs, is greater than zero. The cost of contributing is often very high, requiring arguing for the validity of a bug, re-reporting the same bug multiple times, or attempting to recreate a bug from several releases prior.
I’ve moved PottyMouth to BitBucket.org, where you can keep up to date with PottyMouth releases, subscribe to feeds, request features, and contribute patches. (It’s also on PyPi.)
In the last few months, I’ve fixed a bunch of poor design decisions on my part around encoding and repr() within PottyMouth, and added new syntax suggested by users. The latest version is 1.2.0.
#1, #2, #4, and #5 in these Five Rules for Writing Good Code are right on the money, but the edict against comments in #3 is shortsighted. A concise, five-line function following language and framework conventions can still benefit from a comment explaining why the function works a certain way, when it should be used, and what other related functions should be looked at. Sometimes your audience is unfamiliar with the language or the framework or the project and needs to make a change quick; inline comments will help them make it the right change.