297 karma · joined September 20, 2012
To make this concrete, in programming, type checking eliminates all the programs which would have a type error so they are good constraints. But some languages constrain you in arbitrary way which hurts. For example, Java doesn't let you do any functional programming and has a weak type system, which means introduces design patterns.
Ian Bogost wrote a good piece on this called "Shit Crayons" comparing games like Spore to Photoshop, where even though Photoshop is more powerful, most of the stuff you can produce is bad, supporting the idea of constraints. But then he took apart Minecraft for being overly restrictive, causing many things like houses to be dull. http://bogost.com/writing/shit_crayons/
The explanation for why "The present king of France is bald" is the example Russel gives, where it might be hard to say this statement is false when there is no current king of France.
Another interesting example is "The average woman has 2.2 children." If you intuitively think that noun phrases refer to things (rather than sets), you'd have to admit the existence of some sort of an "average woman" and the property of having 2.2 kids.
twosheds still needs some work to get POSIX compliance, but it's already usable enough that I've replaced bash with my custom shell, Shell, which I've hacked to, among other things, print a ton on information on Git's status and the file system-- I never type git status or ls anymore. [2] If this sounds interesting, I encourage you to fork it and give it a try.
How do you resolve conflicts? I think that an interesting problem with lots of interesting solutions.
staticjinja is an extremely minimal static page generator. It's less that 130 lines of code, and really is hardly more than a useful wrapper on top of jinja. Perfect though for writing Github Pages sites if you're not a fan of Ruby.