78 karma · joined June 11, 2012
I did give up on WYSIWYG tools for this, though. PlantUML support in VSCode is pretty good.
Such dismissiveness is unwarranted. There's a lot of intriguing research on the topic that indicates that it may be a cost-effective replacement for the byzantine social support systems of modern governments, with benefits for both recipients and taxpayers. It only seems like a broken model if you /start/ with an overly simplistic model of the current situation, e.g one that ignores both the existence and desirability of social support systems.
Unfortunately much of the research is frustratingly incomplete. Search e.g. for information on Mincome.
It also seems like a reasonable transition mechanism, from the market economies that have brought us increasing productivity, to a hoped-for post-scarcity future.
From a security point of view, I am skeptical about the ACLU's recommendation in this report to provide open WiFi access points. Due to the danger of MITM attacks, I don't think it's a good idea to promote the use of open APs.
This sounds exactly like what MySQL development looked like to me early in its rise to popularity.
In Michigan, it's a bit more complex. The assessor calculates a State Equalized Value (SEV) on which the tax is based, and that cannot rise faster than the rate of inflation, or 5%, whichever is less. I assume lots of states have odd property tax quirks.
The conventions are even mentioned in the Common Lisp specifications: http://www.lispworks.com/documentation/HyperSpec/Body/02_ddb...
Exceptions do not "explode your call stack", and any function can fail in ways both documented and undocumented. Consistent use of exceptions that derive from a small and well-chosen set of base classes means that callers can choose where and how to respond to categories of errors, instead of being forced to litter all code with error handling conditionals. I have worked on large applications that made the transition to using exceptions, and when combined with strict RAII and other best practices, the effect is absolutely to make code easier to understand and much more robust.
There's no compelling reason to introduce odd, non-idiomatic code patterns when they don't confer a significant benefit. Some people here argue that the "intent" of exceptions in a language design is not relevant compared to what can be done with them. In general, I disagree with this. Language designers' intent informs the expectations of readers of code, and your readers' expectations are important. Code is a form of writing for communications, both with the computer and with maintainers; it's not artistic writing, where you might deliberately violate expectations or norms in order to delight or surprise your audience.
That said, using exceptions as a method of transferring control to a non-local, dynamically-bound location is a powerful technique for which few languages offer an explicit alternative. It's also difficult for readers to analyze, so it should be used sparingly. For instance, I can think of reasons that one might use this technique within a container or algorithm library, but I can't think of a good reason for a container library to force this control flow idiom on callers by throwing exceptions to signal common situations.
(As usual, Common Lisp is unusual here. It has a throw/catch feature which is explicitly a flow control mechanism, and not just an error-handling mechanism. The standard documentation is interesting in that the Notes section suggests exactly when one would want to use this mechanism: http://www.lispworks.com/documentation/HyperSpec/Body/s_thro...)
If you really think that "four different kinds of equality" in Common Lisp is a wart, then I recommend that you read "The Best of Intentions" (http://www.nhplace.com/kent/PS/EQUAL.html) by Kent Pitman. The article explains why that situation is quite intentional, and why it is very rational, and why it is in fact ill-advised to expect a single meaning for "equal" ... or, in fact, other "obvious" concepts like "copy" ... to be sufficient.
That article was one of the many over the years that helped me refine the way I think about programming and programming languages.