3,487 karma · joined May 5, 2016
Topics of Interest:
Compilers
Programming Languages
Functional Programming
Optimal Lambda ReductionHere's the abstract.
We argue that objects that interact in a distributed system need to be dealt with in ways that are intrinsically different from objects that interact in a single address space. These differences are required because distributed systems require that the programmer be aware of latency, have a different model of memory access, and take into account issues of concurrency and partial failure. We look at a number of distributed systems that have attempted to paper over the distinction between local and remote objects, and show that such systems fail to support basic requirements of robustness and reliability. These failures have been masked in the past by the small size of the distributed systems that have been built. In the enterprise-wide distributed systems foreseen in the near future, however, such a masking will be impossible. We conclude by discussing what is required of both systems-level and application-level programmers and designers if one is to take distribution seriously.
Ask HN: Is this CCPA-related spam? - https://news.ycombinator.com/item?id=29539266 - Dec 2021 (4 comments)
This seems closer to the mandate of heaven[0] than an explanation of how governments work or why they are overthrown.
Here's another explanation based on The Dictator's Handbook: Why Bad Behavior is Almost Always Good Politics by Bruce Bueno de Mesquita and Alastair Smith. The 18 minute video The Rules for Rulers[1] has a great summary of the principles from this book.
Dictators and elected representatives have the same problem; they must keep control of key supporters and reward them in order to remain in power.
Dictatorships have only a few key supporters - heads of the army, secret police, treasury, etc. Popular support isn't required; if these people are content with your rule, you will remain in power. If they aren't, you will be replaced.
Democracies have many more key supporters; we normally call them voting blocs - suburban voters, Hispanic voters, non-college voters, evangelic Protestants, etc. Popular support from these groups is required and this difference is why democratic governments change between parties so often.
The US legal system is quite different; litigants are responsible for their own legal fees[0] and frivolous lawsuits[1] are common.
[0] https://en.wikipedia.org/wiki/American_rule_(attorney's_fees)
[1] https://www.azag.gov/press-release/serial-litigant-permanent...
Engineering education in the 19th century was a crucible; only the best and brightest successfully graduated. The following excerpts are from a blog entry[0] on the book The Great Bridge.
In three years’ time he had also to master nearly a hundred different courses, including, among others, Analytical Geometry of Three Dimensions, … Calculus of Variations, Qualitative and Quantitative Analysis, Determinative Mineralogy, Higher Geodesy, …, Orthographic and Spherical Projections, Acoustics, Optics, Thermotics, Geology of Mining, Paleontology, Rational Mechanics of Solids and Fluids, Spherical Astronomy, … Machine Design, Hydraulic Motors, Steam Engines, Stability of Structures, Engineering and Architectural Design and Construction, and Intellectual and Ethical Philosophy.
A century later, D.B. Steinman, a noted bridgebuilder and professor of civil engineering, would write, “Under such a curriculum the average college boy of today woul be left reeling and staggering. In that earlier, era, before colleges embarked upon mass production, engineering education was a real test and training, an intensive intellectual discipline and professional equipment for a most exacting life work. Only the ablest and the most ambitious could stand the pace and survive the ordeal.
… Of the sixty-five students who started out in [Roebling’s class], only twelve finished. And among those who did not finish there had been some rather severe breakdowns, it appears, and one suicide.
[0] https://philip.greenspun.com/blog/2006/01/26/favorite-extrac...
[0] https://www.dimastr.com/redemption/home.htm
It's a bit dated but has a lot of helpful advice - I wish I had read it when I started my career.
Removing or redesigning the Control Panel would break third-party apps that rely on the existing structure; Raymond Chen's blog[0] has mentioned apps doing this.
The following is an excerpt from Performance of Checksums and CRCs over Real Data[0].
The TCP checksum is a 16-bit ones-complement sum of the data. This sum will catch any burst error of 15bits or less[8], and all 16-bit burst errors except for those which replace one 1’s complement zero with another (i.e., 16 adjacent 1 bits replaced by 16 zero bits, or vice-versa). Over uniformly distributed data, it is expected to detect other types of errors at a rate proportional to 1 in 2^16.
If you're deeply interested in this topic then I would recommend Jonathan Stone's Phd thesis.
[0] https://www.researchgate.net/publication/3334567_Performance...
[0] https://www.jetbrains.com/help/idea/structural-search-and-re...
[0] https://www.jetbrains.com/help/idea/structural-search-and-re...
Every extension proposal should be required to be accompanied by a kidney. People would submit only serious proposals, and nobody would submit more than two. — Jim Waldo
[0] https://www.adacore.com/gems/gem-140-bridging-the-endianness...
[0] https://toolmonger.com/2008/12/08/utility-knife-revolver/
It's often substantially cheaper to settle lawsuits than go to trial. This says more about our legal system and the American rule[0] than anything else.
[0] https://en.wikipedia.org/wiki/American_rule_(attorney's_fees)
Historians long ago formed an abstraction about different theories of value: The Spanish Theory, for one, held that only a fixed amount of value existed on earth, and therefore the path to the accumulation of wealth was to learn to extract it more efficiently from the soil or from people’s backs. Then there was the English Theory that held that value could be created through ingenuity and technology. So the English had an Industrial Revolution, while the Spanish spun their wheels trying to exploit the land and the Indians in the New World. They moved huge quantities of gold across the ocean, and all they got for their effort was enormous inflation (too much gold money chasing too few usable goods).
The Spanish Theory of Value is alive and well among managers everywhere. You see that whenever they talk about productivity. Productivity ought to mean achieving more in an hour of work, but all too often it has come to mean extracting more for an hour of pay. There is a large difference. The Spanish Theory managers dream of attaining new productivity levels through the simple mechanism of unpaid overtime. They divide whatever work is done in a week by forty hours, not by the eighty or ninety hours that the worker actually put in.
[0] https://blog.bryanbibat.net/2009/08/31/spanish-theory-of-val...
It's not just teething problems.
Using OpenOffice and Linux means that you're opting out of the substantial ecosystem of legal-specific Word add-ins - document templates for court filings, semantic analysis for contracts, metadata scrubbing, etc. Most of these tools are only available for Windows although some of them support Macs. A small practice can get away with using Linux but a large firm would be foolish to do so.
That's just the tip of the iceberg. Using Google Docs means that you're opting out of the substantial ecosystem of legal-specific Word add-ins - document templates for court filings, semantic analysis for contracts, metadata scrubbing, etc.
Here's an excerpt from an old Stratus presentation[0] on writing robust software.
Add TYPE, SIZE, VERSION, and OWNER to data structure
TYPE: Unique number for each different structure
SIZE: in bytes
VERSION: Changed whenever structure declaration changes
OWNER: Unique ID of owner, must be independent of structure contents; can be UID, least significant bits of clock, etc.
[0] https://web.archive.org/web/20170303065858/http://ftp.stratu...
The Taiwanese military has had decades to prepare for a Chinese invasion; it would be surprising if they didn't have a similar setup in place.
[0] https://github.com/microsoft/terminal/issues/10528#issuecomm...
We develop succinct data structures to represent (i) a sequence of values to support partial sum and select queries and update (changing values) and (ii) a dynamic array consisting of a sequence of elements which supports insertion, deletion and access of an element at any given index.
For the partial sums problem on n non-negative integers of k bits each, we support update operations in O(b) time and sum in O(logb n) time, for any parameter b, lgn/ lg lg n ≤ b ≤ nƐ for any fixed positive Ɛ < 1. The space used is kn+o(kn) bits and the time bounds are optimal. When b = lgn/ lg lg n or k = 1 (i.e., when we are dealing with a bit-vector), we can also support the select operation in the same time as the sum operation, but the update time becomes amortised.
For the dynamic array problem, we give two structures both using o(n) bits of extra space where n is the number of elements in the array: one supports lookup in constant worst case time and updates in O(nƐ) worst case time, and the other supports all operations in O(lg n/lg lg n) amortized time. The time bound of both these structures are optimal.
[0] https://www.newyorker.com/magazine/2006/09/04/dealers-choice...