1,585 karma · joined January 21, 2012
Since Python 2 does not have any form of type annotation, this made the task hard to do automatically and error-prone.
However, Italy also abolished all noble titles with the fall of the monarchy in 1946 -- I would have also expected that fiefs and any associated claims had been extinguished at the same time...
Another tool that I wrote (and have used quite a lot) is ElastiCluster: https://elasticluster.readthedocs.io/ It's a CLI tool to deploy compute clusters (of different types (well, it's basically a large collection of Ansible playbooks with a Python wrapper), but mostly focused on batch-queueing systems) on IaaS clouds. There's now multiple tools for doing the same but I think this one is still one of the few (if not unique) to be able to deploy multiple types of clusters on multiple clouds.
- knot [1]: tangles source code from a text file formatted using plain markdown syntax, can use any markdown converter for weaving into a printable document
- snarl [2]: extends markdown code blocks with syntax used for tangling, its "weave" steps just removes the additional syntax and outputs plain markdown
- pylit [3] [4]: a bidirectional converter: code to formatted text and back. Uses reST for formatting, and preserves line numbers which is useful when debugging. Not an LP tool strictly, as it doesn't define/rearrange code blocks so you have to write your script in the order the compiler wants it, not in the order that would make the best exposition.
Both seem to preserve relative indentation of chunks, so would be useful for Python too.
[1]: https://github.com/mqsoh/knot [2]: https://blog.oddbit.com/post/2020-01-15-snarl-a-tool-for-lit... [3]: https://github.com/gmilde/PyLit [4]: https://github.com/slott56/PyLit-3
- I had to take care of writing each Python code chunk with the amount of indentation appropriate for where it had to end up, since Noweb does (did?) not respect relative indentation of chunks when tangling.
- Debugging the resulting script was more painful than plain Python sources, as all the debugging info (line numbers, etc.) referred to the tangled code and not to the actual noweb source file I was editing.
[^1]: Looking at the website, it doesn't seem to have changed much since then.
In other words, static typing is pointless. It has, maybe,
some documentary value, but it does not substitute
documentation on other invariants. For example, your
invariant might be something like I’m expecting here a
monotonically increasing array of numbers with a mean
value of such and such and a standard deviation of such
and such. The best any static type checking will let you
do is “array[float]”. The rest of your invariant must be
expressed in words as a documentation of that function.
I wonder if "design by contract" [1] tooling would help here? It seems to me one could express the stated invariants of the array as pre- or post-conditions on any function processing that array.Whether the survey respondents are a representative sample of the general emacs population is a different question, and one which is very hard to answer given that we have no other data about people's preferences in emacs. Hopefully, the survey will become more popular with time, so we'll see results approaching the "true" values.
I agree that the MP3 streaming server example in PCL looks outdated, but so are many topics in PAIP as Norvig himself points out at the end of his retrospective [1]. (And I still think that the MP3 parser in PCL is a really good example for showing Lisp I/O, binrary processing abilities, and subtleties of CLOS, despite not being something that anyone would code as a side project nowadays.)
(I agree it's a nitpick, but since your comment is likely directed to people who do not know the condition system, it's better to be precise.)
(HN discussion: https://news.ycombinator.com/item?id=19216077 )
Some of it, certainly not.
A (larger IMHO) part of typography wisdom has really been distilled from experience making text easier and prettier to read over generations, and should not be thrown away lightheartedly because "screen is different from paper". Yes it is, but human eyes and brain are the same ;-)