1,152 karma · joined December 10, 2008
The Chinese army crackdown on the 1989 Tiananmen Square protests killed at least 10,000 people, according to newly released UK documents.
The figure was given in a secret diplomatic cable from then British ambassador to China, Sir Alan Donald.
The original source was a friend of a member of China's State Council, the envoy says.
I posted an excerpt of the manual, with a link to a PDF of it, in a reply to another comment [0]
(And, since even the earliest versions of Prolog were interpreted, they may've had features like this too).
And, as far as editors are concerned, people still use versions of vi (and, of course, emacs) to this day by people who don't necessarily do lots of planning and correctness before deciding to input the code into the computer.
Interactive Environment Performance is all very well. What the programmer really needs is a good inter-active environment for developing his programs. To address this need, DEC-10 Prolog provides an interpreter in addition to the compiler.
The interpreter allows a program to be read in quickly, and to be modified on-line, by adding and deleting single clauses, or by updating whole procedures. Goals to be executed can be entered directly from the terminal. An execution can be traced, interrupted, or suspended while other actions are performed. At any time, the state of the system can be saved, and resumed later if required. The system maintains, on a disk file, a complete log of all interactions with the user's terminal. After a session, the user can examine this file, and print it out on hard copy if required.
[0] https://softwarepreservation.computerhistory.org/prolog/edin...
Yes, they do -- that's why people have enjoyed using such languages.
It might help to think of them as being like very-high-level scripting-languages with more rigorous semantics (e.g. homoiconicity) and some nifty built-ins, like Prolog's relational-database. (Not to mention REPLs, tooling, etc.)
Read, for example, what Paul Graham wrote about using Lisp for Viaweb (which became Yahoo Store) [0] and understand that much of what he says applies to languages like Prolog and Smalltalk too.
Like Lisp and Smalltalk, Prolog was used primarily in the 1980s, so it was run on Unix workstations and also, to some extent, on PCs. (There were even efforts to create hardware designed to run Prolog a la Lisp machines.)
And, like Lisp and Smalltalk, Prolog can be very nice for iterative development/rapid prototyping (where the prototypes might be good enough to put into production).
The people who dealt with Prolog on punchcards were the academics who created and/or refined it in its early days. [0]
[0] https://softwarepreservation.computerhistory.org/prolog/
Not if you were working in a high-level language with an interpreter, REPL, etc. where you could write small units of code that were easily testable and then integrated into the larger whole.
As with Lisp.
And Prolog.
From less than 2 weeks ago: "How MongoDB Atlas’s Forced Upgrades and Support Policies Drove Us to PostgreSQL" [0] -- TL;DR: MongoDB lost a $50K/yr Atlas contract due to the way they do things.
[0] https://medium.com/@inkwash_70850/how-mongodb-atlass-forced-...
[0] https://en.wikipedia.org/wiki/Leo_Frank#Later_consensus:_a_m...
In the meantime, in case it helps, here's last month's post, with around 450+ entries: https://news.ycombinator.com/item?id=41129813
But for some deeper details, I'd suggest checking out the comments in this reddit thread[0] (as well as some of the linked articles therein).
E.g. From a comment by /u/Golden_Age_Fallacy: A great use of Nomad is on reduce the burden of on-boarding a team(s) of developers who are unfamiliar with cloud native deployments / systems(even containers!).
Nomad jobspecs are very simple and straight forward, as compared to the complexity and pure option overload you get in k8s and helm.
From /u/neutralized: It's much easier to use than k8s. Easy to setup, easy to manage, much more shallow learning curve. Nothing super fancy. Just works. I migrated a startup I was at off of a self-managed k8s setup to Nomad a few years ago and they've never looked back.
From /u/esity: My team is currently building out a fully automated nomad cluster service offering internally(fortune 10)
It's super awesome. Easy. Little headache. Integrates with consul and vault. We are literally planning to replace thousands of vms for K8s with nomad. Containers are faster, more resilient and writing hcl is actually fun once you learn it
Now, there is a rather more lengthy comment, by /u/thomasbuchinger, that goes through the pros and cons he experienced in trying Nomad out and his conclusion is that, while he wouldn't discourage anyone from using it, "k3s and a few well-known simple projects give you 80% of Nomands [sic] features. Are as easy to operate, afford you more options in the future and have a ton of documentation/tutorials...available."
There are more comments in the thread and again links to a bunch of blogposts/articles/etc., including one from fly.io that seemed pretty detailed, discussing the Googly origins of both k8s and Nomad (fly.io used Nomad but found that it wasn't the best fit for them, which is also discussed in their post -- actually, I'm going to put the link to their post below[1], since I think it is worthwhile).
Hope all this helps.
[0] https://old.reddit.com/r/devops/comments/11nsxo3/opinions_on...
[1] https://fly.io/blog/carving-the-scheduler-out-of-our-orchest...
Book description: https://paulgraham.com/onlisp.html
Download page: https://paulgraham.com/onlisptext.html
(BTW, Anthony Comstock[0] is the namesake of the Comstock Act of 1873[1], concerning the sending of obscene materials, contraception and abortion drugs via the US Postal Service; it has been mentioned recently in the news due to the attempt by anti-abortionists to use it to prevent drugs like mifepristone being sent via the mail[2][3]).
[0] https://en.wikipedia.org/wiki/Anthony_Comstock
[1] https://en.wikipedia.org/wiki/Comstock_Act_of_1873
[2] https://www.pbs.org/newshour/politics/what-does-comstock-act...
[3] https://www.kff.org/womens-health-policy/issue-brief/the-com...
https://hollandspiele.com/products/the-field-of-the-cloth-of...
More info:
https://boardgamegeek.com/boardgame/309752/the-field-of-the-...
https://www.gofundme.com/f/support-patricks-fight-for-stabil...
Second, the point of "let it crash" is not that you can then login to the running VM, but rather that your GenServers, etc. would be part of a "supervision tree", i.e. your processes would be monitored by a Supervisor which would have a "restart strategy" that you wrote to deal with crashed processes. So, you can write code using the "happy path" in cases where you expect things to usually work and, if there's an error, you can let the process crash because it'll get restarted, in a matter of microseconds, by its Supervisor.
It's almost a cliche to hear stories about people running Erlang or Elixir who didn't realize they had a bug in their system for months until they happened to look at the logs and see notifications of a supervised-process getting restarted often.
(And, btw, in cases where you might expect to have lots of potential errors, e.g. from getting data from an external API, you can use exception).
[0] https://elixirforum.com/t/jose-valim-elixir-is-officially-a-...
[1] https://www.irif.fr/_media/users/gduboc/elixir-types.pdf
[2] https://fly.io/phoenix-files/adding-dialyzer-without-the-pai...
Here's a link to the Google Translate version of the page:
https://www-vrt-be.translate.goog/vrtnws/nl/2024/03/30/marvi...
[0] https://www.kickstarter.com/projects/mrbgames/ace-of-aces-po...