HN user

qohen

1,152 karma
Posts18
Comments492
View on HN
news.ycombinator.com 6y ago

Tell HN: Skiena's “The Algorithm Design Manual” currently free from publisher

qohen
106pts9
news.mit.edu 7y ago

World-class diagnostics for low-income communities in sub-Saharan Africa

qohen
1pts0
www.youtube.com 9y ago

Star Wars / Sgt. Pepper Mashup

qohen
2pts0
www.packtpub.com 9y ago

“Mastering Python for Finance” Ebook FREE Till Friday 4PM PST (midnight UTC)

qohen
1pts0
arstechnica.com 9y ago

Lawyers: New court software is so awful it’s getting people wrongly arrested

qohen
9pts0
news.ycombinator.com 11y ago

Microsoft selling 50 boxed CD sets (as MP3) at $1.99/ea., via “Music Deals” app

qohen
1pts0
www.usatoday.com 11y ago

Hidden defects linked to small-aircraft crashes over five decades

qohen
6pts0
www.cnn.com 12y ago

Estella's Brilliant Bus: tour bus becomes mobile computer center for the poor

qohen
2pts0
www.techdirt.com 12y ago

Feds Use Fake Mexican Constitution Article To Deport US Citizens For 35 Years

qohen
3pts0
www.washingtonian.com 13y ago

Shortages forcing US hospitals to ration essential nutrients, even for preemies

qohen
3pts1
www.blastr.com 13y ago

Why Michael O'Hare left Babylon 5

qohen
90pts37
www.youtube.com 13y ago

Must-See new Audi commercial: Zachary Quinto vs. Leonard Nimoy

qohen
1pts0
twitter.com 13y ago

5:40AM EDT: all Boston MBTA Service suspended till further notice

qohen
1pts1
boingboing.net 13y ago

Dread Cthulhu Leads His Cult to Milestone Year

qohen
5pts1
www.giantitp.com 13y ago

"The Order of the Stick" web-comic has returned (after author injury)

qohen
1pts1
www.nytimes.com 16y ago

Turning Cellphones into Microscopes

qohen
28pts4
news.ycombinator.com 17y ago

Amazon deal (Apr. 1): $0.99 for William Shatner album, "The Transformed Man" (MP3 dwnld)

qohen
1pts3
hop.perl.plover.com 17y ago

"Higher Order Perl" book now available free online (PDF is 2nd ed.) -- kudos to Mark Jason Dominus

qohen
5pts5

The toll was significantly higher -- this is from a 2017 BBC article [0]:

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.

[0] https://www.bbc.com/news/world-asia-china-42465516

And one other thing: just because early Prolog interpreters were implemented on punchcards doesn't mean that Prolog programs run by those interpreters needed to be. It's quite possible that basically nobody ever wrote Prolog programs using punchcards, given that Prolog has the ability to read in files of code and data.

By 1979 at the latest -- probably closer to 1975 -- the primary Prolog implementation of the day (Warren's DEC-10 version) had an interpreter, where you could load files of code in and modify the code and you had a REPL with the ability to do all kinds of things.

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.

[0] https://news.ycombinator.com/item?id=46664671

The following is from David H.D. Warren's manual for DEC-10 Prolog, from 1979 [0]. It describes how Prolog development is done interactively, by being able to load code in dynamically into an interpreter and using the REPL -- note that the only mention of using paper is if the developer wants to print out a log of what they did during their session:

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...

Languages like Prolog just don't offer that sort of freedom.

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.

[0] https://www.paulgraham.com/avg.html

ROFL.

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/

...these things were mostly written(and rewritten till perfection) on paper first and only the near-end program was input into a computer with a keyboard.

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.

That's not likely to be a problem since these days every board game has a number of instructional videos (and that's in addition to video reviews, which typically show how a game works, though not in as much detail).

From the Leo Frank Wikipedia page [0]: "In modern times, despite strong evidence pointing to Frank's innocence, the case has become a modern focal point for neo-Nazis and anti-Semites. This is partly because it led to the creation of the Anti-Defamation League but also because it fed into anti-semitic conspiracy theories claiming Jewish control of the media. As a consequence, in recent years a number of websites have been established by white supremacists disputing the prevailing consensus of Frank's innocence."

[0] https://en.wikipedia.org/wiki/Leo_Frank#Later_consensus:_a_m...

Just a reminder that HN's official "Who is Hiring?" post is put up on, or about, the first of each month. So the September post should be up by next Tuesday at the latest (i.e. assuming it's postponed till after the weekend and the Labor Day holiday).

In the meantime, in case it helps, here's last month's post, with around 450+ entries: https://news.ycombinator.com/item?id=41129813

Well, for starters, you don't have to have your apps containerized to work with Nomad (though it can handle containers as well as executables).

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...

"Ungart’red, and down-gyved to his ankle" -- seems pretty clear that it means something to the effect that his unfastened stockings have fallen down to his ankles, no? And the context seems clear, that Hamlet's clothes are in disarray, as is his emotional-state.

[dead] 2 years ago

To be clear, per the article, Comstock wasn't the accused -- he was the accuser; the accusee was one LeGrange Brown.

(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...

First of all, as of January, Elixir has gotten its own type-system[0][1]. And, even before, one could annotate Erlang and Elixir with typespecs and then run a tool called dialyzer over the code for type-checking[2]. (And let's not forget that, even without using actual annotations, BEAM languages have pattern-matching, which can give you a kind-of poor-man's typing, if you will).

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...