The Pentagon has ordered Stars and Stripes to shut down - <AUTHOR> https://www.usatoday.com/story/opinion/2020/09/04/trump-and-stars-and-stripes-attacking-american-icon-column/5706859002/ <comment><USER2> From a bipartisan group of Senators:

> We understand that DoD plans to cease publication of Stars and Stripes on > September 30, 2020 and completely dissolve the organization by January 31, > 2021 as a result of the proposed termination of funding in the fiscal year > 2021 President's budget. We urge you to take steps to preserve the funding > prerogatives of Congress before allowing any such disruption to take place, > for the following reasons.

> First, the House-passed version of the Department of Defense Appropriations > Act, 2021, contains additional funding not requested by the Administration > to continue operating Stars and Stripes. Second, the Senate has not yet > released a defense appropriations bill, nor had an opportunity to conference > with the House position, leaving it as a real possibility that Congress may > not agree with the proposal to eliminate this funding. Third, the standard > text of a continuing resolution – that funds are provided "at a rate of > operations… for continuing projects and activities" as provided for in the > previous year's Department of Defense Appropriations Act – places a legal > obligation on the Department to not act on a termination of a program until > a full-year appropriations bill is enacted. We seek your written assurance > that the Department will comply with this obligation and avoid steps that > would preempt the funding prerogatives of Congress.

[https://www.boozman.senate.gov/public/index.cfm/2020/9/boozm...](https://www.boozman.senate.gov/public/index.cfm/2020/9/boozman- colleagues-urge-dod-to-reinstate-stars-and-stripes-funding)

Additional coverage:

[https://www.military.com/daily-news/2020/09/02/senators- espe...](https://www.military.com/daily-news/2020/09/02/senators-esper- reverse-your-decision-kill-stars-and-stripes.html)

[https://www.stripes.com/news/us/bipartisan-group-of- senators...](https://www.stripes.com/news/us/bipartisan-group-of-senators- urges-esper-to-keep-funding-stars-and-stripes-1.643650)

</comment><comment><USER3> One thing I've always wondered about when it comes to the temporary nature of US presidential terms and their respective administrations - why does it seem like it's so much easier to dismantle things than to create them in the first place?

Especially for things that took a substantial amount of time and effort to build, shouldn't we require much more scrutiny before considering an action that effectively dismantles/dissovles/destroys them? Instead it feels more like we are at the mercy of the whims of whoever is the current temp-employee- in-chief.

<comment><USER4> > why does it seem like it's so much easier to dismantle things than to create > them in the first place?

it's because it's incredibly difficult to get anything passed, the US legislative system has too many checks and balances. Every "check and balance" is another group that has to reach consensus for a proposed action and another point for an adversarial opponent to grind everything to a halt.

I contend that it is better to have a government that can reach consensus easily and act, and that is easy to change if they no longer reflect public consensus, than to have "checks and balances" where absolutely 100% of the government needs to be in consensus to do anything. Gridlock should not be a design feature of a government but that's how the system was engineered (deliberately - it dates from a time when states didn't view themselves as federal subjects but independent states, and this was supposed to help get everyone on board that "no, really, we're just going to do the things that absolutely everyone agrees on", there were many groups who were afraid of being steamrollered without their own special little body and checks on other authorities).

Unicameral parliamentary systems are better - one house to pass legislation, one PM who is a member of the majority in parliament, so everyone is on the same page. Snap elections if they do something that nobody likes, if they don't want to listen to the public then the queen can dissolve parliament and call for new elections.

(the queen actually is a very interesting role in the UK, she is kind of an "oracle" that decides deadlocks between the public and the parliament. When the two are in disagreement about whether to call elections she can resolve the stalemate. She really doesn't do much normally but in times of constitutional crisis can serve as a trusted independent authority - a very interesting safety mechanism that evolved almost by accident.)

<comment><USER5> I disagree and view this more as recency bias.

It is better to have scrutiny in government - even if it isn't quite as agile.

<comment><USER4> the faster rate of technology change makes agility in government more important. Sure, it's recency bias, but under exponential growth most history is "recent".

You can still have scrutiny with agility. That is in fact what I am suggesting.

</comment></comment></comment></comment><comment><USER6> Hard to mourn the demise of a propaganda publication, no matter how old it is. I know they supposedly have editorial independence, but that's hard to take seriously.

</comment><comment><USER7> The link is the usual... stuff, so it's obvious why I cannot treat seriously any words of this "opinion contributor". So I don't have anything better than to ask HN: for those unaware of the situation, what can be considered the _real_ reason to shut down this newspaper?

It seems like unusual thing to do, and considering the circumstances will surely cause some discontent (and, what's more importantly, if I'm not mistaken: discontent of some subset of Trump's supporters), so there _must_ be some important reason to issue such an order. So what is it?

<comment><USER8> It seems to be related to a recent poll of US troops on their preferred presidential candidate.

[https://www.militarytimes.com/news/pentagon- congress/2020/08...](https://www.militarytimes.com/news/pentagon- congress/2020/08/31/as-trumps-popularity-slips-in-latest-military-times-poll- more-troops-say-theyll-vote-for-biden/)

It seems Donny is trying to take out his frustration with lackluster polling on _Star and Stripes_ , despite that not having been the publication that conducted the poll. It is a more widely read US armed forces publication, though.

To note on the poll, officers would rather have another Commander in Chief by about a 3-2 margin.

<comment><USER9> The Republicans and the Administration are pissed because they ordered the military to break the black lives matters protests and the army told them to get stuffed. So they are throwing a tantrum because they always assumed they'd have the army to back them up and it turns out they don't.

<comment><USER6> Unless you've got a source for that, I think you're mistaken. The Army wouldn't operate on US soil, that sort of thing would be the job of the National Guard. The Posse Comitatus Act specifically forbids the US Army from doing that sort of thing. If you told me Trump is upset at the National Guard for this reason, I'd believe that. I think I recall reading headlines to that effect.

<comment><USER9> One half of what you're demanding

[https://www.nytimes.com/2020/06/03/opinion/tom-cotton- protes...](https://www.nytimes.com/2020/06/03/opinion/tom-cotton-protests- military.html)

After that was published editor of The New York Times' editorial page James Bennet was forced out.

[https://www.cnn.com/2020/06/07/media/james-bennet-new- york-t...](https://www.cnn.com/2020/06/07/media/james-bennet-new-york-times- resigns/index.html)

<comment><USER6> That article does not seem to contain the claim that Trump asked the Army to break up protests, and it's not clear which 'half' you're refering to. As far as I can tell, the claim is simply false.

<comment><USER10> These are Trump's words:

 _I am mobilizing all available federal resources, civilian and military, to stop the rioting and looting, to end the destruction and arson and to protect the rights of law-abiding Americans, including your Second Amendment rights_

The piece continues:

"He said he was already dispatching "thousands and thousands of heavily armed soldiers, military personnel and law enforcement officers" to Washington to stop the violence that has been a feature of the protests here."

[https://www.nbcnews.com/politics/white-house/trump- consideri...](https://www.nbcnews.com/politics/white-house/trump-considering- move-invoke-insurrection-act-n1221326)

Later the Army realized he couldn't do that:

 _Hundreds of combat soldiers with the 82nd Airborne were ordered to leave Washington, D.C, Thursday after retired generals and the nation 's top officer rebuked Donald Trump over his use of the military.

Members of the elite unit had been deployed to the nation's capital to back up National Guard soldiers ordered onto the streets by Attorney General Bill Barr in a show of force._ ... _While the capital is under federal control, the removal of hundreds of combat troops was a highly-visible sign that Trump had been forced into retreat on his threat to deploy soldiers under his control in protest-hit cities._

[https://www.dailymail.co.uk/news/article-8389743/Generals- WI...](https://www.dailymail.co.uk/news/article-8389743/Generals-WIN-battle- Donald-Trump-82nd-Airborne-soldiers-REMOVED-D-C.html)

I chose the Daily Mail reporting because no one could accuse it of being a left wing mouthpiece. There are plenty of other sources if you google

If you prefer, you could take Trump's former Defense Secretary James Mattis' comments on the use of troops in Washington DC:

 _Militarizing our response, as we witnessed in Washington, D.C., sets up a conflict—a false conflict—between the military and civilian society. It erodes the moral ground that ensures a trusted bond between men and women in uniform and the society they are sworn to protect, and of which they themselves are a part. Keeping public order rests with civilian state and local leaders who best understand their communities and are answerable to them._

[https://www.theatlantic.com/politics/archive/2020/06/james-m...](https://www.theatlantic.com/politics/archive/2020/06/james- mattis-denounces-trump-protests-militarization/612640/)

I'd further note that Trump has recently been talking publicaly about using the Insurrection Act to enable him to call out troops, again.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> The actual title of this article is "The Pentagon has ordered Stars and Stripes to shut down for no good reason". The second half of that title, which you removed, is the entire point of the article. Altering that title does not make it more objective, it fundamentally obscures the entire point of the article. Moderators, please stop editorializing via manipulation of post titles. You are not making them "less inflammatory", you are inserting your own perspective and misleading HN readers into thinking the article is about something that it's not.

</comment><comment><USER12> "No good reason" is subjective. Was there any reason given?

Looked at the article, but didn't see any. Perhaps it was cost? Does the Pentagon budget break out the cost of Stars & Stripes?

<comment><USER13> > Looked at the article, but didn't see any. Perhaps it was cost? Does the > Pentagon budget break out the cost of Stars & Stripes?

From the article:

> The eagerness to kill Stars and Stripes is hard to fathom. As the senators > note in their letter to Esper, the $15.5 million saved by eliminating the > newspaper's subsidy would have a "negligible impact" on the Pentagon's $700 > billion budget.

That's 0.0022% of the Pentagons budget, i.e. essentially _nothing_.

<comment><USER14> The average American pays about $10k in federal income taxes each year. Assuming they do this for fifty years, this means the average American might pay $500k in federal income taxes over their lifetime. So this propaganda rag consumed the lifelong social contributions of 31 people, every year. It isn't nothing.

<comment><USER15> The "average" American doesn't pay federal income taxes. Only 47% do.

<comment><USER16> I'm not sure you are parsing what "average" means.

<comment><USER17> "average" usually means "mode" or "median" when used as "average person". The meaning can be inferred from context or clarified.

"Mean" is almost never correct for distributions that aren't near uniform, and never correct for distributions that aren't even near normal and not near symmetric.

</comment></comment></comment></comment></comment></comment><comment><USER18> Completely off topic but - the US today "EU experience" is amazing. Just a simple clean page you can read.

</comment><comment><USER19> Trump just tweeted that he won't let this happen.

[https://twitter.com/realDonaldTrump/status/13019688734875648...](https://twitter.com/realDonaldTrump/status/1301968873487564802)

<comment><USER20> This should be top by now.

And how did this article get out he was cutting it?

His base is in part military and family's it's not something he would logically do 3 months before an election.

<comment><USER21> Neither is calling Vietnam vets "suckers," but here we are.

Perhaps he's not a good strategist. Evidence seems to suggest.

<comment><USER20> Yes, also fake news it seems. So outlandish, but the suckers just believe it. I don't think the media even has a source willing to say they directly heard it but they are still running it.

So it seems the media is attacking him on the military front.

<comment><USER21> I think it's understandable why sources would want to remain anonymous when criticizing this President.

The key question is: will he sue for libel or defamation? I expect he won't, and I expect he won't because truth is always an affirmative defense against those accusations in US law.

</comment></comment></comment></comment></comment><comment><USER22> So sad. S&S is one of the best ways to turn locals.

</comment><comment><USER23> "Stars and Stripes embodies that most American of values: the right to speak truth to power."

Which is the last the thing current administration wants anyone to be able to do.

<comment><USER24> Show me one in the last generation or two that did?

Who harassed more journalist and whistle blowers during their time in office, Trump or Obama. Neither was great but the prior administration set new standards for threatening those who would make government justify its actions. The difference is one was a media darling and the other is a media flashpoint

<comment><USER25> No contest: Trump harasses journalists at every rally – by now, hundreds or thousands of them. And whistle blowers? He fired Lt. Colonel Alexander Vindman _and his brother_ after Vindman testified. His lackeys in the House exposed the IRS whistleblower by name.

<comment><USER26> I don't really have a stake here, and voted for Obama but he and his justice department prosecuted a record number of journalists. To quote the Washington Post "Of the 13 people who have" (ever) "been prosecuted under the Espionage Act for leaking secrets, eight were arrested under Obama's administration"

<comment><USER27> Anyone have a full list of who they are counting as either the 8 or 13 in that quote? According to Wikipedia, the number of people who have been charged under the espionage act is much higher than 13. For example, there are 52 pages of people convicted under the act.[1] I guess it depends on your definition of "leaking". The relevant dictionary definition of leak is "to give out (information) surreptitiously".[2] Giving information to a foreign government should seemingly be classified as leaking so I'm not sure we should necessarily link it to either journalistic endeavors or whistleblowing.

[1] - [https://en.wikipedia.org/wiki/Category:Persons_convicted_und...](https://en.wikipedia.org/wiki/Category:Persons_convicted_under_the_Espionage_Act_of_1917)

[2] - [https://www.merriam-webster.com/dictionary/leak](https://www.merriam- webster.com/dictionary/leak)

<comment><USER26> *For leaking secrets to journalists

<comment><USER27> Ok, don't you think that is a pretty big qualifier to leave out? It also leads us to a question of what is a journalist? Reasonable people can look at Assange and see him as either a journalist or an agent of a foreign government.

<comment><USER26> It's in the quote, except for "to journalists" which is in the article I pulled the quote from. I suppose I could have included the next two sentences.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER28> It seems there's a very simple reason.

[https://www.stripes.com/news/us/trump-denies-reports-that- he...](https://www.stripes.com/news/us/trump-denies-reports-that-he- disparaged-us-war-dead-as-losers-suckers-1.643839)

A few days ago they also ran a story about a poll showing Trump lagging Biden among the military.

<comment><USER29> Ah, thank you. I was pretty sure it would be something like this, but couldn't find details anywhere else.

<comment><USER6> Check the dates involved, this explanation doesn't hold water. However there may be another story from months ago that prompted this.

</comment></comment></comment><comment><USER30> I'd be willing to bet that it's because they printed something that criticized Trump, and it was mentioned on a TV program Trump watches.

</comment><comment> TheGrim-888 Whatever the actual situation is, and whether it's good or bad, this is the absolute worst form of journalism. It just screams bias; the author injects their own political opinions, they tell the reader what to feel and believe, they twist words and exaggerate in order to sell their political message, it pulls the usual tricks around trying to imply that Trump was directly responsible, and that you should hate Trump like the writer does - this is the complete opposite of any sort of respectable impartial journalism, it's a blatant political hit piece.

In my mind this type of journalism, this article itself, is one of the biggest threads to our country, it's so ironic. Note that I'm not saying we shouldn't have freedom of speech, or that they shouldn't be able to write what they want. I'm just saying it's possible to write horrible, damaging, biased, political hit pieces, and that is what this is.

</comment><comment><USER31> I wonder if this qualifies as violating the 1st Amendment, since it's basically the government shutting down another voice in the government.

</comment><comment><USER32> Never heard of "firemen first"?

That's what this sounds like.

Whenever there's a budget fight, there's brinkmanship, and this is a common tactic. Government, industry - it doesn't matter. Respond to cuts or proposed cuts by putting something on the cut pile that is unacceptable.

<comment><USER33> It's not. This administration has increased the defense budget by $200 billion, cumulatively.

<comment><USER34> Yet if you wanted to increase it by $300B, you could still throw something unacceptable on the cut list as pressure to raise the budget further.

This is a second-derivative tactic; it can be employed even if the first- derivative is positive.

</comment></comment></comment><comment><USER35> For those who are against this move, in general are you _in favor_ of government journalism in general? Do you think the US would be better with _more_ government journalism? Should there be a a US postal service newspaper, a bureau of land management newspaper, possibly a US Customs and immigration service newspaper? If not, what's so special about having a government-run military newspaper that you think it should exist, but not the others?

<comment><USER6> PBS and NPR are generally okayish, they certainly look good when compared to their commercial equivalents anyway... though that might be damning with faint praise. I'm not sure of these are valid comparisons to Stars and Stripes though.

<comment><USER36> NPR and PBS both receive the majority of their funding from private sources, so I don't think its a valid comparison.</comment></comment></comment>


GNU sort is now multicore aware - <AUTHOR>

The ubiquitous sort utility used on Linux, FreeBSD and OS X etc. now automatically takes advantage of available processors.
The code: http://git.savannah.gnu.org/gitweb/?p=coreutils.git;a=commit;h=9face836
A performance plot: http://lists.gnu.org/archive/html/bug-coreutils/2010-07/msg00144.html <comment><USER2> This is good news.</comment>


Ask NH: Are people hacking hacker news? - <AUTHOR>

In recent days, I have seen a lot of stories/urls/questions, which do not deserve to be on first page of HN, but they are.
It is obvious that the story will gradually move down the list if its content has no worth, but to be on first page gives enough exposure.
If I ask some of my friends to vote my submission up within minutes of submission, it will bring the story on first page and then if I ask them to keep voting in batches, the story will stay there.
I am not sure whether HN algorithm checks for such voting patterns or not. If it does not, how can it or we prevent such acts? <comment><USER2> Unfortunately your questions has now become meta, i.e. it doesn't belong on first page, but alas, as of now it is.

I normally do not comment on the "recently I've noticed HN is going down the drain" type posts and questions, since I think doing so is akin to a reply-all with a "please remove me from this list" message to an email posted to the wrong list: it just makes a bad thing perpetuate (man, this happened recently in my company, and it took _three_ days for the idiotic removal requests to die down).

Getting worked up about the quality of this or that newsgroup is, I think, similar to language police mentality, i.e. trying to get rid of (generally English) loan words. Canada (Quebec), France, and now China is trying to do it, but (i) it's futile, since language (and newsgroups) are dynamic entities, shaped chaotically by a large group of people and (ii) you look ridiculous in trying to do what cannot be done.

Why is this so hard to understand?

</comment><comment><USER3> This comment by pg should answer your question:

<http://news.ycombinator.com/item?id=1035206>

</comment><comment><USER4> > If I ask some of my friends to vote my submission up within minutes of > submission

If you and everyone else stopped doing things like that, the front page might start to mean something again.

<comment><AUTHOR> The reason for asking this question was to know whether HN has implemented such features or are they working on such features?

Did I screw the message up? Or was it difficult to comprehend?

<comment><USER4> > Did I screw the message up? Or was it difficult to comprehend?

I chose to ignore the main question, which yes, I did comprehend and no, you didn't screw up - it just doesn't interest me. The sub-point I was interested in - the broader picture - is the one I responded to, hence the quote in my reply.</comment></comment></comment>


Ask HN: In 2020, what do CSS frameworks offer that is attractive? - <AUTHOR> <comment><USER2> Im no expert here, but I still turn to CSS frameworks for ease of implementing mobile-first / responsive interfaces. Tons of screen sizes out there, so very nice to have a boost from something with sane defaults.</comment>


PostgREST - <AUTHOR> https://postgrest.org/ <comment><USER2> Related graphql implementations with similar concepts:

\- [https://www.graphile.org/postgraphile/](https://www.graphile.org/postgraphile/)

\- [https://hasura.io/](https://hasura.io/)

Love the idea of having APIs flow out of a single set of schema definitions. The Rails style of speccing a model, migrations, and controller/serializer or graphql types feels overly verbose and repetitive.

To me the biggest thing these groups could do to speed adoption is flesh out the feature development / test story. For instance, the postgraphile examples have development scripts that constantly clear out the DB and no tests. Compared to Rails, it's hard to imagine how you'd iterate on a product.

Are there other reasons this hasn't seen more widespread adoption? Is there some inherent architectural flaw or just not enough incremental benefit?

<comment><USER3> I think the approach is fine for prototyping, but the architectural flaw that can make it a bad choice for production systems is that it ties your APIs to your data model. When you need to evolve your API or extend your data model, you get to choose between dealing with potentially massive data migrations and downtime, or having a third layer of glue in the form of database views. You probably would need to adopt a rule of no direct-to-table access, and a separate schema per API version containing views, and dealing with the pain of rewriting the views for all the supported API versions when you need to change your data model. Or scale the database horizontally, with views on foreign data wrappers that pull from the real data sources. Which I think this sort of solution is marketed as a way for a Database Administrator (singular) to expose an API, rather than a scalable approach to application development.

<comment><USER4> > You probably would need to adopt a rule of no direct-to-table access

That's like one of the oldest RDBMS best practices: no direct to table access, with every application (or class of business user with direct access to the DB) having access through a tailored selection of views so that apps/users are largely isolated from DB changes.

> and a separate schema per API version containing views

You'd probably only need a separate schema for semver-major API versions, minor versions would necessarily be supersets which could be accommodate by backwards-compatible schema extension.

> and dealing with the pain of rewriting the views for all the supported API > versions when you need to change your data model.

With a well-designed normalized relational model, most changes to the base model are adding attributes or tables, which will have zero impact on view definitions to maintain an existing API. The next most common is factoring an existing attribute out to a different table because what was conceived of as a 1:1 relationship becomes 1:N, which requires adding a join to view defs where that attribute is involved.

<comment><USER5> How do you deal with writing operations in this approach?

<comment><USER4> > How do you deal with writing operations in this approach?

The same as read operations, with views, which can be, in Postgres, automatically updatable if they are a simple thin layer over base tables, and otherwise can be made updatable by means of appropriate triggers defining the meaning of INSERT/UPDATE/DELETE on them just as the view definition defines the meaning of SELECT.

</comment></comment></comment></comment></comment><comment><USER6> Somebody in our team put this on production. I guess this solution has some merits if you need something quick, but in the long run it turned out to be painful. It's basically SQL over REST. Additionally, your DB schema becomes your API schema and that either means you force one for the purposes of the other or you build DB views to fix that.

<comment><USER7> > or you build DB views to fix that.

That's what VIEWs are for! Well, one use-case of VIEWs, anyways.

There's nothing wrong with the schema as the API since you can use VIEWs to maintain backwards compatibility as you evolve your product.

Put another way: you will have an API, you will need to maintain backwards compatibility. Not exposing a SQL schema as an API does not absolve you or make it easier to be backwards-compatible.

You might argue that you could have server-side JSON schema mapping code to help with schema transitions, and, indeed, that would be true, but whatever you write that code in, it's code, and using SQL or something else is just as well.

<comment><USER8> How do you do CRUD with views? I know Reads are what views do.

<comment><USER9> You can have insert/update trigger on views. You shouldn't but you can.

More realistically, stored procs would do the CUD parts.

<comment><USER4> > You can have insert/update trigger on views. You shouldn't but you can.

You can, and there is no reason you shouldn't.

> More realistically, stored procs would do the CUD parts.

Why are stored procs more realistic?

<comment><USER10> Triggers are implicit, have side effects and are not deterministic. They are confusing and surprising.

A procedure call is explicit, a trigger is implicit. You don't call a trigger, it just happens as a side effect of something else. People tend to forget implicit things. Suddenly you notice that something is acting strangely or slowly in your application. You can look at your functions and procedures and try to find the problem. But if your application has triggers all over the place, how do you know what is going on? A trigger can change a dozen rows, which in turn can change other rows, so changing a single row can fire thousands or millions of triggers. Also, triggers are not fired in a particular order, the database is free to change the query plan according to what it thinks is best at the moment, so triggers are not deterministic. Triggers can sometimes work and sometimes not.

Almost everything that can be done with a trigger can be done with a procedure, but explicitly, deterministically and in most cases without side effects.

<comment><USER4> > You don't call a trigger

You call an instead of trigger implementing updatability of a view, or the select query defining a view, just as much as you call property setters or getters in OOP languages.

With the DB triggers, as in many OOP languages (C#, Python), this is an implementation detail obscured from the calling site, which is good for loose coupling, modularity, etc.

Your objections, while IMO still overblown, have relevance to some uses of triggers (they are particularly applicable to AFTER triggers and BEFORE triggers other than those implementing constraints, but least applicable to INSTEAD OF triggers implementing view updatability, which is what we are discussing here.)

<comment><USER10> > much as you call property setters or getters in OOP languages

Good design is obvious and orthogonal[1]. If you write _setters_ in an OOP language in such a way that they do surprising things, i.e. not just _setting_ a value, then I would call that bad design.

> which is good for loose coupling, modularity, etc.

What do you gain by using triggers in this case? All you get is mental overhead, because whenever you use DML you have to keep in mind that there might be a trigger hiding somewhere that does strange things. If you call a procedure instead, you make it clear that you want to do more than just a simple update or insert.

> [...] it is possible for the method call to make use of concurrency and > parallelism constructs [...] to do a unknown number of things in an unknown > order

Why would I want this? I want my code simple[2], stupid and obvious, and not convoluted, clever and surprising[3].

[1] [https://stackoverflow.com/a/1527430](https://stackoverflow.com/a/1527430)

[2] [https://www.youtube.com/watch?v=rI8tNMsozo0](https://www.youtube.com/watch?v=rI8tNMsozo0)

[3] [https://en.wikipedia.org/wiki/Principle_of_least_astonishmen...](https://en.wikipedia.org/wiki/Principle_of_least_astonishment)

<comment><USER7> Why do you think triggers must be astonishing (but OOP not so)??

<comment><USER10> see [https://news.ycombinator.com/item?id=21455027](https://news.ycombinator.com/item?id=21455027)

<comment><USER7> There's nothing wrong with that if that's the logic you want!

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> I think PostgREST is the first big tool written in Haskell that I've used in production. From my experience, it's flawless. Kudos to the team.

<comment><USER12> Having a bit of experience with OCaml, I hoped to see what production-ready Haskell code looked like with this library. I tried to read some files of the project and... IMHO "production-ready" Haskell code is still not easily readable, for example, the main file for the tests :

[https://github.com/PostgREST/postgrest/blob/master/test/Main...](https://github.com/PostgREST/postgrest/blob/master/test/Main.hs)

and

[https://github.com/PostgREST/postgrest/blob/master/test/Quer...](https://github.com/PostgREST/postgrest/blob/master/test/QueryCost.hs)

I don't know, maybe it lacks comments ? The code is really not easy to follow if you are not using Haskell 100% of your coding time.

While the library may work well in practice, it's a maintainability red flag and, by using this library, you rely on rare Haskell programmers for the future.

<comment><USER13> it is hard to read if you don't have some knowledge of haskell indeed and the comments part is true but it's not any harder then folowing other codebases if you don't know the particular language so i don't think this is a strong argument.

Another point is - it's not a library and you are not the one maintaining it :) the same way you are not maintaining, but still using things like postgresql,nginx,redis, rabbitmq.

I bet it's a lot easier to learn haskell and patch postgrest then to know C for 10 years and patch postgresql :)

<comment><USER12> > you are not maintaining, but still using things like postgresql,nginx,redis, > rabbitmq

I don't maintain them because they are written in either C or C++, which has many more practitioners, guidelines and tools to trust.

On the other hand, I can easily see people using postgres' extensions have to quickly make a patch to fix a bug or change a behavior, extensions being smaller.

The issue is that, eventually, you would like to patch, review or audit the extension. All of these operations will require you to find third-party Haskell developers, Haskell auditors, Haskell reviewers, who are rare in the job market, and therefore it represents a risk for your project.

If the core developers stop to maintain the extension, no one else might be available to maintain it, and now you have code debt and code that no one can fix

<comment><USER13> > no one can fix

Really? No one? I learned haskell (my first FP lang) and rewrote the core of PostgREST (in my spare time) in about 6m... so stop scaring people :)

</comment></comment></comment></comment></comment><comment><USER14> Often you do not want users to have access to a whole table, but only posts made by the user, or posts _to_ to user. I could however see this replace Excel apps. But then you will also have to generate the user interface for it to be useful. The developer should only have to specify the views, the rest can be automated. I once made such a tool in order to save a few hundred man- hours on a tight budget, and it worked fairly well. But for most apps you want to customize every layer.

<comment><USER15> You can do that with row-level security. The PostgREST documentation has examples for that specific use case: [https://postgrest.org/en/v6.0/auth.html#roles-for-each- web-u...](https://postgrest.org/en/v6.0/auth.html#roles-for-each-web-user)

<comment><USER16> Is column based authorisation possible?

What about group/role based security concepts?

<comment><USER17> You can create a view with a subset of columns and grant permissions on the view.

<comment><USER16> I feel like this is just moving business logic /back/ into the database.

It' very similar to what we were doing with stored procs 15 years ago and just moves the problem from business logic back to database layer. Given the choice, I'd prefer to write constraints in !SQL, personally.

</comment></comment></comment></comment></comment><comment><USER18> I like this idea. Especially helpful for prototyping a web UI against an arbitrary existing dataset. PostgREST is much more full featured and as commented by a few others "production-ready"(?) but if you're into this and looking for something a bit more naive but just as accessible I wrote a similar utility to expose some Postgres data over http: [https://github.com/daetal-us/grotto](https://github.com/daetal-us/grotto)

<comment> steve-chavez I'd say it has been production-ready for some years now. There are some documented cases of companies using it in production here: [http://postgrest.org/en/v6.0/#in- production](http://postgrest.org/en/v6.0/#in-production).

</comment></comment><comment><AUTHOR> I really like this approach for mostly crud apps. What is missing is

\- something to conveniently version control database objects

\- something to conveniently debug stored procedures. Maybe directly from vscode or your preferred editor.

If those two things get solved somehow, pg could be a really awesome application server.

<comment><USER13> for the first one, read my other comments, this is solved. The second one, you can start here [https://www.pgadmin.org/docs/pgadmin4/4.13/debugger.html](https://www.pgadmin.org/docs/pgadmin4/4.13/debugger.html)

<comment><AUTHOR> > for the first one, read my other comments, this is solved.

> The second one, you can start here > [https://www.pgadmin.org/docs/pgadmin4/4.13/debugger.html](https://www.pgadmin.org/docs/pgadmin4/4.13/debugger.html)

I think Starter Kit and the pgAdmin debugger lack in convenience. If you write C# or node js code in your preferred editor, you can debug it there. You can debug your express routes, webapi or resteasy controllers in vscode/vs/eclipse/intellij without leaving the file you later commit to git.

Starter Kit and the pgAdmin debugger are fine tools, but they come nowhere close to how you work with a js, C#, java, python or whatever you like codebase.

The development workflow with stored procedures imho is broken, and I think that is one of the main reasons people do not use them much.

<comment><USER13> It's true that a tool developed by 1-2 ppl recently is not a convenint as the tools developed by armies of developers over decades :) but, when it comes to PostgREST way of building apis, the debugging does not have the same meaning as in other ecosystems.

an api backed by postgres+postgrest is 80% tables and views declarations ... how do you debug a view ... it makes no sense. You just define it and say "select * from view" (even from your IDE) and see if you get what you expect, that's why one can do a lot (develop complex apis) with less (limited debug tools)

<comment><AUTHOR> You don't debug views of course. But with postgREST you have to write your logic in stored procedures. So say I want to write an accounting app that has an invoice function. A view is not enough to create an invoice, because there are complex rules to apply to the data, so I have to write a SP. I need to debug that stored procedure, and if I have to install pgAdmin and switch from my very much loved and customized editor to debug my invoicing procedure, the workflow is broken, and so it comes that I will write that invoicing function in C#, java, python or js instead, because the tooling is better.

Compare that to a node application: just open vscode, start editing away and press F5 to test it. If you want to debug it, add a breakpoint and step away. When you are done you commit and push to git.

It should be the same with stored procedures.

<comment><USER13> Let's start with the fact that most of the data centric apis have a 80/20 split on read write, so there is virtually not SP in 80% of your api, so no need to debug 80% of the code :)

so you "might" need stored procedures only for your write part and even then you need them when the input data needs to be split and sent to different tables.

The complex "rules" are nothing more then "constraints" on your data which are split between the columns of the table and become so simple that there is almost nothing to debug.

If it were the case that with postgrest one needs to write complicated stored procedures all over the place you'd be 100% correct. The thing is you don't need them in most cases and when you do they are short simple functions that deal with focused things so there is way less chance to get them wrong.

This has been my experience with using this type of stack for apps like project management/invoicing.... etc (basically basecamp+freshbooks)

<comment><AUTHOR> Basically you are saying "I don't need stored procedures, therefore neither should you".

If you don't use them clearly you don't need to debug them. That does not change what I said earlier: a difficult development workflow hinders their adoption.

<comment><USER13> not exactly what i meant.

it's true that it's not a polished workflow to debug stored procedures because you you have to jump from your editor to pgadmin but i don't think this is such a big deal for two reasons.

\- postgrest architecture is such that you rarely need stored procedures (not just me, all the projects), it's the exact same way ppl use databases without them (they just send queries to the db, same here). 90% of the code in this type of project is table/view definitions (with constraints) and appropriate grant/rls statements. So there is very little imperative code to debug.

\- The type of stored procedures used is quite simple, isolated and mostly self contained, a single function, maybe calling some other helper functions (you are always 2 levels deep at most) so it's not like in other envs where you have to follow the code jumps between hundreds of functions and classes.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER19> I am (slowly) working on a project with similar tool (postgraphile) to eliminate most of CRUD stuff. One thing I always wondered - how you would version control the schema itself? I settled on Skitch - [https://sqitch.org/](https://sqitch.org/)

</comment><comment><USER20> Interesting to me I'd this is written in Haskell!

I highly recommend reading the source code [https://github.com/PostgREST/postgrest](https://github.com/PostgREST/postgrest)

</comment><comment><USER21> How do you version your API with this kind of tooling?

As in, how do you change the data model without breaking clients?

<comment><USER13> you don't expose your tables directly, you expose a schema that consists only of views and stored procedures. If you really need a totally different version then you jsut exppose a new schema but more often it's the same situation as in graphql ecosystem, you jsut add a new column/view/procedure and don't delete the old one. Postgrest has the same power to describe what you want as a graphql api woudl have (by using it's select parameter)

<comment><USER22> It's interesting that the project's own tutorials do not discuss any of that and not only demonstrate making the API schema exactly equal to table schemas, but go further and claim that adding intermediate business logic or using tools that mediate between the data and business logic, like ORMs, are bad abstractions that should be intentionally avoided.

I mean, I agree with the strategy you state about views or stored procedures, but those are just in-database ways of achieving the same kinds of things you might prefer to write in a different language (thus ORM or query engine) because it puts the app or business logic all into the same version controlled system, leverages programming language ecosystems and tools that are often way more valuable than raw database programming (even in Postgres), etc.

Basically, if PostgREST needs you to do the old tricks of views & stored procedures to manage an abstraction layer that safely allows the underlying data schema to change, I just don't see the benefit over doing this in a much better language ecosystem, like Python, and using much better web server tools to generate the APIs.

PostgREST looks much more useful for quick prototypes, internal use cases where schema breakage might be OK occasionally, or just mirroring & monitoring data as-is for ops and diagnostics. From a performance perspective, it might be fast enough for production, but that's almost never as big a concern as managing the intermediate abstraction layer and associated app tooling.

Does not look like a good idea for production applications that need an intermediate API layer adapting the data to the use case.

<comment><USER23> So there are different schools of thought about using relational databases here and I think this is where a lot of the tension comes from.

I think everyone agrees in principle that in a service-oriented architecture you need well-defined, safe, hardened interfaces between services. In an ORM world, the assumption seems to be that the database itself isn't really a service with a well-defined interface, but rather a private data store that just accepts whatever SQL you throw at it.

But what if you think of the database itself as a service? If that's the case, then your service interface should definitely not be arbitrary SQL. This is where you introduce views and stored procedures, which change your DB from a private implementation detail that you have to hide behind a service boundary to a service that sets its own boundaries.

In this world, your REST services have an HTTP client to make service calls to each other, and they have a Postgres client to make 'service calls' to your database. PostgREST is just a deterministic proxy that adapts one service protocol to another, the same way you would use grpc-gateway if you had gRPC services that you wanted to call from REST clients.

I don't think PostgREST obviates the need to write intermediate API layers, at least if those intermediate API layers are doing anything interesting. It may obviate the need to write API layers that only parameterize SQL statements and serialize JSON responses. But that's a good thing to obviate.

And yeah, you should definitely version control your DB schemas, views, and stored procedures. We aren't barbarians :)

<comment><USER13> Very well said (I'll have to remember this way of explaining it). IMO in most projects, the intermediate layers never do anything interesting so that's why postgrest (as a proxy) is a good fit

<comment><USER23> > IMO in most projects, the intermediate layers never do anything interesting > so that's why postgrest (as a proxy) is a good fit

I try to avoid generalizations about "most projects", because different people have different experiences and it's hard to make a good argument about which case is more typical. At best I think you can lay out the toolbox and explain where PostgREST fits in the toolbox. Whether or not you should use it on a particular project depends on the particular project, and I have no idea what mlthoughts2018 is working on or has worked on in the past, so that's an entirely different question :)

</comment></comment></comment></comment></comment></comment><comment><USER24> Why not use a more descriptive title?

For example:

"PostgREST: a web server that turns a PostgreSQL database into a REST API"

<comment><USER25> HN policy is generally to use the literal title of the linked website, deficient as it may be.

<comment><USER26> Given it's the project website, and it's prominently visible, adding the tagline ("Serve a RESTful API from any Postgres database") would be fair to be part of the title.

</comment></comment></comment><comment><USER27> I'm using the JOOQ type-safe SQL generator with PostgreSQL. My application server build script runs PostgreSQL in a Docker container, creates the database and tables, applies all migrations (via Flyway), and then invokes JOOQ which connects to the database and creates Java classes based on the tables and columns in the database.

JOOQ mostly prevents SQL syntax errors, column name errors, column type errors, supplying the wrong number of arguments, etc. These become compile- time errors.

With PostgREST and other JSON APIs, you only get run-time errors. And you rely on test coverage to check code correctness.

I prefer compile-time errors to runtime-errors. I find that software utilizing comnpile-time checks is easier to maintain.

<comment> steve-chavez PostgreSQL already gives you SQL syntax errors(try creating a VIEW with a misspelled SELCT), column type errors(try doing a `select 'asdf'::int;`), wrong number of arguments on a sp call(try putting one more argument to `select int4_sum(2, 3);`).

Thanks to PostgreSQL transactional DDL[1] you would get all of these errors at creation-time and without any change to your database if any migration is wrong. There's no need for a SQL codegen to get this already included safety.

Btw, PostgREST is not only a JSON API. Out of the box, it supports CSV, plain text and binary output and it's extendable for supporting other media types[2]. If you have to output xml by using pg xml functions you can do so with PostgREST.

[1]: [https://wiki.postgresql.org/wiki/Transactional_DDL_in_Postgr...](https://wiki.postgresql.org/wiki/Transactional_DDL_in_PostgreSQL:_A_Competitive_Analysis)

[2]: [http://postgrest.org/en/v6.0/configuration.html#raw-media- ty...](http://postgrest.org/en/v6.0/configuration.html#raw-media-types)

</comment></comment><comment><USER28> Somewhat related discussion from a week ago: [https://news.ycombinator.com/item?id=21362190](https://news.ycombinator.com/item?id=21362190)

</comment><comment><USER29> I love the idea - and it's definitely something I'll put through the paces on one of my projects shortly. Being able to separate the schema from data ingestion, and data transmission is a very powerful scale option for one of the things I'm playing with.

</comment><comment><USER30> This is so smart. Common sense to the max! Sad I didn't think of it.

</comment><comment><USER31> Don't do this with a public API with third-party clients!!

This way you are directly tying the REST API to your database schema. The whole point of having a public API (you know, Application Programming Interface) is that you can serve your data in a controlled way, maybe totally different from your schema. In the moment you change a little bit on your schema, congratulations, you broke all clients.

</comment><comment><USER32> So why use REST at all at this point? What is the benefit REST is bringing to the table here?

Seems like if you want a declarative API you might as well do something like a local read replica a la Firebase. Seems like the natural progression of these API as single schema technologies.

Is the main reasons for sticking to REST here compatibility or is there something in the RESTful design we want to hold on to?

<comment><USER14> REST it pretty stupid, but it works over HTTP(S) and is state-less. And tools that use HTTP has nice abstraction layers already, and are very common, so it becomes simple to use.

Personally for talking with a web front-end I would use Websocket's with long- polling as fallback. And use JSON instead of query-string for querying. It does however require yet an abstraction layer, and is more brittle and less secure then REST.

REST is a school-bus. Other methods are like exotic sports-cars.

<comment><USER32> Well sure it's common but my question is whether that's the only reason. If we're going to down the path of declarative requests and the like, why not push it further like firebase has done? I'd prefer that a lot more if there was a self hosted/open source alternative.

</comment></comment></comment><comment><USER33> What's the benefit of using this over just using a small framework like Flask/Express with a Postgres lib?

<comment><USER34> It's micro-service like, or some other crap?

I had situation where was implementing something quite simple - an URL shortener. I didn't use PostgREST, but I decided to use ORM, because it was simple CRUD operation. It had an option to either use generated url or allow user to specify a custom one. And it worked as expected.

But then once completed I decided to add extra functionality, for example extra statistics, like what IPs were accessing it and how much. Adding expiration times etc.

I realized that ORM encouraged me to implement all of my logic in the application even when I actually would put less load on the database and made things simpler if I would let the database do many things for me and use types and functionality provided to me. I am not taking here about using stored procedures, I could do all operations as 1 at most 2 SQL statements. While ORM had to send multiple. In the end I dropped SQLAlchemy (this was python code) and just use psycopg2 directly didn't even bother with wrappers, just used built-in pools. It was also easier for me to make my code use two endpoints for reading and writing, so I can scale my code better.

I realized that ORM did not save me much code at all, it was the same amount of code with or without it, and without ORM I had greater control of what I wanted to do.

I previously believed that ORM was standing in a way when your application gets bigger, but my belief was ORM was good for small projects. Here I realized that it doesn't bring much benefits even for simple projects.

I think REST interface like this is doubling down on what ORM tries to do. Maybe it could be beneficial in places that don't have libraries to communicate with a database and only can make http requests?

<comment><USER35> You should try SqlAlchemy Core. It does not have the drawbacks of an ORM but still saves you the trouble of writing sql queries as raw strings.

<comment><USER34> It's better but still not great, because it tries to make your SQL independent of the database. So some things are harder to express that way. You have to understand your database, and then you need to understand how to express in SQLAlchemy to get your desired SQL statement.

PyCharm actually has a database support, you can configure it so it connects to your database, then it will fetch database schema. After that it will recognize your SQL statements in the string, offer auto complete and even take these into account when refactoring your code.

IMO this is how impedance mismatch should have been handled from the beginning.

</comment></comment></comment></comment><comment><USER36> I am not sure if it is a good idea to add PostgREST to your stack. As PostgREST can only interact with your DB, so you would probably be calling PostgREST from another REST. In this case, you would be better off using ORM.

</comment><comment><USER37> I've wanted this for a long time.

Is there anything like this for Microsoft SQL Server?

<comment> steve-chavez You could use PostgreSQL Foreign data wrappers[1] and leverage PostgREST for a SQL Server schema.

tds_fdw[2] works pretty well for this(I've used it in a project related to open data). Basically, you'd have to map mssql tables to pg foreign tables[3] defined on a pg schema. Lastly expose this pg schema through PostgREST.

[1]: [https://wiki.postgresql.org/wiki/Foreign_data_wrappers](https://wiki.postgresql.org/wiki/Foreign_data_wrappers)

[2]: [https://github.com/tds-fdw/tds_fdw/](https://github.com/tds- fdw/tds_fdw/)

[3]: [https://github.com/tds- fdw/tds_fdw/blob/master/ForeignTableC...](https://github.com/tds- fdw/tds_fdw/blob/master/ForeignTableCreation.md#example)

</comment></comment><comment><USER38> so basically this is like Firebase but in RDBMS which is quite awesome

</comment><comment><USER39> This is intriguing, but how does one go about scaling this? Relational DBs are often where scaling breaks down and sticking more of the application in that problematic part of the stack seems like it could end poorly...

</comment><comment><USER40> How is the REST API document generated? Looks neat!

</comment><comment><USER41> This should have been: PostgGRPC

</comment><comment><USER13> Have you just discovered this and posted to HN? :)

<comment><USER42> So?

<comment><USER43> The frequency by which this project appears at the top of HN does not correlate with its production usage and thus feels like gorilla marketing, at least to me.

<comment><USER26> Looking through the search results, it seems like it's been potentially high on the front page 3 times in 4 years.

<comment><USER13> That was the surprise part behind my other (downvoted) comment, surprised that it still comes up on homepage with direct links (as oposed to some new development around it)

</comment></comment></comment></comment></comment><comment><USER44> "Object-relational mapping is a leaky abstraction leading to slow imperative code"

So they added REST on top of ORM, few more layers of data transformation and even leakier abstraction, so poor dev doesn't have to worry about "low level" SQL.

I lost count of how many different libs/frameworks i saw that exposed CRUD through HTTP, all failed miserably, because it is actually very dumb idea.

<comment><USER13> postgrest is not (and does not use) a ORM

Postgrest is more like a compiler, it takes one language as input (REST) and outputs another language (SQL) as output.

It has 0 relation to the ORM concept

<comment><USER45> "ORM" is more like a compiler, it takes one language/(api can be seen as a language) as input and outputs another language (SQL) as output.

<comment><USER46> totally in agreement with you here. an ORM could also be viewed as a compiler. the original comment didn't deserve the backlash.</comment></comment></comment></comment>


Ask HN: Negotiation advice with top tech companies? - <AUTHOR> Hi I was lucky enough to pass the standard software engineer interview with 3 of the top SV tech companies (think Google, Facebook, Apple, Netflix, Amazon). I have about 7 years of experience (some titles held: Software Engineer, Tech Lead, Engineering Manager), and the various recruiters handling my case said the feedback from the various interviewers was generally on the strong/very strong side.
Problem is: how much can I negotiate?
In my current company (medium stage startup) my total cash comp is about $200k and I have unvested equity in the form of stock options that are valued on paper at $~1M (based on the price the investors paid for the last round) and, while the equity is obviously illiquid, the company still has a very considerable growth potential and the business is going well. I already vested a decent amount (not included in my calculation above), so if I leave I would capture to some degree the upside of a liquidity event, should that ever come. I am interested in leaving my current position purely for new technical challenges (I am experiencing a very mild form of burnout due to the lack of new exciting projects), but I am not so desperate to accept a lowball offer. In other words, my BATNA is reasonably high.
In terms of offer, what I have gotten so far from one of those companies is:
- $180k base salary
- $200k RSU package over 4 years
- 10% target performance bonus
- $25k signing bonus
Considering my unvested compensation, this seemed low, so I told the recruiter that and, after a couple days, he came back with more RSUs (total package $300k now). How more can I play this game? It would be nice if the RSU package could get as close as possible to my current potential unvested value, but I don't know if that's even possible and if that would have other negative effects (e.g. unreasonably high expected performance level, so that I would be an easy target for termination after 11 months?).
Any advice would be great. <comment><USER2> You're honestly at the edge. You might have nailed your interviews because 300k RSU and 180 base is extremely high for 7 years of exp. You can't compare a startup package with a public company package. I'm surprised they didn't even tell you the difference between options and RSU's. One is competely imaginary, the other one is real money. Treat your RSU like a signing bonus because it's (variable) cash. My guess is that the other offers you might get will be lower than this one ;)

<comment><AUTHOR> Thanks for your feedback!

The problem is that, while my current startup is "imaginary" money compared to RSUs, the business is going very strong, we have multi million dollar yearly revenues so I'm not at a point where I consider the options as a huge gamble. It's very likely that they will retain a significant value.

Also notice that RSUs are 300k over 4 years, so effectively 75k a year: is 75k a year "extremely high"? I was under the impression that several employees at google and similar usually double their yearly compensation with RSUs, every year, which means RSU grant = 4*base salary (e.g. 350k a year total comp)

<comment><USER2> It's tough on the negotiation because your current package is virtual no matter how good the startup is doing. They're offering you real money, big difference. All you have to do with your $300K cash is to stay their for 4 years to get the full (variable) amount guaranteed. Also, something you need to know is that these big companies (I worked there myself) will easily give you another $50-$100K each year (on another 4 year plan) after your annual review. Depends if you perform well. From your offer I'm pretty confident you'll be one of these employees who will get well rewarded every year. So 300K is just the first year. It will pile up pretty quickly my friend. Stay their for 4 years and you'll see your W2 jumping through the roof ;)

[180k + 75k + 15-20K (bonus)] x 4 = $1 million cash.

Add up your extra RSU's each year + salary raise then you could potentially reach $1.5 in 4 years. It's money pretty much guaranteed minus the global stock market.

I'm surprised they've increased their original offer by %50, which is huge. Put it this way - at a public company there's no risk at all, they've absorbed all the risks a while back when they were a small startup. This is when they were offering a big piece of the pie to their early employees. Their stocks got split multiple times so it doubled or even quadrupled while the startup was still growing. They needed more shares for upcoming employees.

You can't come at the end as a software engineer and ask for $1 million in RSU's it just doesn't make sense. You are riding the wave at your current startup, which is pretty good for you! You can't apply the same principal everywhere else. They're stock is traded publicly so they have to justify each and every penny they spend.

The google thingy is a myth. Only a handful of people make a lot of money, either from acquisitions or some sort of AI guru. Maybe you are? I don't know.

<comment><AUTHOR> Thank you for your thorough reply, I really appreciate it.

I can guarantee you I'm no guru at all, I just have a solid understanding of distributed systems on top of average coding skills.

Anyway, I talked to the recruiter and have still been on the defensive side, so he just told me to share with him what's the number I'll need in order to stop this and just say yes, and he'll work with the financial department to see what he can do. I'm going to probably try to get a very mild increase after I hear what the other companies have to say, but it's definitely good to know I can't overly milk the cow

</comment></comment></comment></comment><comment><USER3> Ask how you qualify for a potential raise your in 2nd year, understand their standards.

Also, don't limit this to just a monetary discussion (ask for additional PTO, Perks, etc...) On this subject Stuart Diamond is brilliant > [https://youtu.be/liCOqUQzpQs](https://youtu.be/liCOqUQzpQs)

</comment><comment><USER4> Yeah your pretty much at a near max. Take the offer with the highest base salary. Options and any other form can have a downside.

<comment><AUTHOR> Thanks for your opinion!</comment></comment>


Virtual currency threatens stability of Chinese currency - <AUTHOR> http://www.boingboing.net/2008/06/19/virtual-currency-thr.html <comment><USER2> Original article is at <http://digitalwatch.ogilvy.com.cn/en/?p=235>, why post a blog about it?</comment>


Atari violates the ScummVM's license - <AUTHOR> http://sev-notes.blogspot.com/2009/06/gpl-scummvm-and-violations.html <comment><USER2> > but pretty soon the lawyers found that Nintendo explicitely prohibits use of > open source software together with their Wii SDK, and as such it was a big > fault from Atari side.

Why?

<comment><USER3> I think it requires an encryption key to sign code (so you can actually run it).

This is prohibited by several open source licenses, notably the GPL v3. Nintendo lawyers probably just got a bit squeamish and decided it wasn't worth the trouble to decide which open source licenses were alright.

<http://en.wikipedia.org/wiki/Tivoization>

</comment></comment><comment><USER4> Wow, it's the outsourcing version of the urban legend where you get something of extraordinary quality at a low price from a foreign land, only to discover...

<http://www.snopes.com/critters/lurkers/mexicanpet.asp>

<http://www.snopes.com/horrors/insects/cactus.asp>

<http://www.snopes.com/critters/snakes/coat.asp>

As for the license incompatibility, it's kinda hard to see the game console manufacturers licensing anyone to create a derived work from their SDKs under the GPL. That's a natural consequence of their well-known business model where they use their intellectual property rights to require licenses to develop for their console. As it is, Atari violated both the GPL and Nintendo's license, so there can't necessarily be the release-the-code-and-all-is-well ending you would want here.

</comment><comment><USER5> I've never liked the GPL and all its goddamn rules. MIT/BSD/zlib licenses, please.

</comment><comment><USER6> Sounds like a good settlement to me. I don't understand what else he wants.

<comment><USER7> As DannoHung points out, this is a crappy outcome because it means that the software simply won't be used, rather than being used in a GPL-compliant fashion. Folks who write Open Source software generally _want_ that software to be used. This could have been a great opportunity for a whole new batch of people to come in contact with a great example of the power of Open Source software. Instead, it turned into a failed product and a situation with no good outcome, because of the prohibition of Open Source in Nintendo games (I was unaware of this prohibition; it makes me like Nintendo a lot less).

This is just a failed opportunity for all parties concerned, and that's sad. I completely understand where the author is coming from. "Winning" in this case is meaningless because the winnings are not what the developers actually wanted. It's like you went into a restaurant and ordered apple pie and they brought you liver, and by way of apology, they gave it to you for free. Sure, you got the liver for free, but it sure aint apple pie.

<comment><USER8> _Folks who write Open Source software generally want that software to be used._

That's true. But the use of GPL specifically shows that they also wanted something else: to limit the behavior of those using it.

Thus, you can't put the blame squarely on Nintendo. They seem to have been forced to make the prohibition on open source because of the latter's licensing terms. The article mentions that the real problem was that Atari was stuck between GPL rules and Nintendo's agreements.

So if the open source community was less militant about restricting how its product can be used, things like this would be less likely.

<comment><USER7> I never said that was _all_ that folks who write Open Source software want. I didn't really see any reason to argue BSD vs. GPL in this context, but if you really want to...

When a developer chooses GPL, they have multiple motives. One of those motives is to insure that everybody that ever uses the software have access to the source. Another is that they want anyone that modifies and distributes the software to be obliged to give their changes back to the community. One can desire these two things, while still wanting people to use the software.

As the creators of the software the developers have the right to want all of these things. They have the right to choose this license, just like you have the right to choose a more liberal license if you don't have the same desires for your software.

We develop software under the BSD license, and it has millions of users worldwide, many of whom are commercial and don't contribute changes back and don't disclose the source to their users. We're fine with that.

We also have software licensed under the GPL. We have different motivations for the BSD vs. GPL projects...we'd like one to be a platform, used by as many people as possible. We'd like the other to have some additional obligations for anyone that makes changes and distributes them, because we're building a business directly on that software.

In the ScummVM case, the developers clearly feel like part of their mission in life is to bring Free Software to people that may not have been exposed to it. That's a worthy mission. So, merely having a lot of users would not satisfy the mission. The only positive outcome here would have been if the code continued to be used by all those new people, and in a GPL compliant fashion. If mere use would have satisfied them, they could have simply ignored the licensing issue.</comment></comment></comment></comment>


AWS Management Console - Auto Scaling Support - <AUTHOR> http://aws.typepad.com/aws/2013/12/aws-management-console-auto-scaling-support.html?hn <comment><USER4> It always struck me as odd that one of the original defining features of AWS never had a web interface. Maybe they were making it API-only to protect people from shooting themselves in the foot with exorbitant bills. Regardless through I'm really glad to see this finally!

<comment><USER5> I think another part of it is that an API interface actually makes more sense. While the necessity for the non-technically inclined are pretty obvious, auto- scaling shouldn't usually be done reactively, and doing so is at the expense of optimal service delivery.

That said, I can imagine a good number of times it could come in handy, even for the techiest of us.

It might have simply not been the lowest hanging fruit, and the one thing I keep noticing that with AWS is that there are only two types of features they roll out -- new SKUs (e.g., something new that they can charge money for) and services that they should have written a long time ago, but probably didn't, because they were too busy launching new SKUs.

<comment><USER6> > auto-scaling shouldn't usually be done reactively, and doing so is at the > expense of optimal service delivery.

You can react predictively (or predict reactively, whichever way you want to say it.)

Set up a cascade control system, training it as it runs on (process load x cost-of-scale.) It will begin to "see the signs" of load being about to occur, and adjust accordingly to reduce it. You know, just like any modern thermostat.

<comment><USER5> You can. I even qualified that in the next line. ;-)

Even easier, you could just say "Scale it up, we're demoing this to 3,000 users at PyCon", and do that proactively as well -- that said, it's likely done at the expense of efficiency or cost.

</comment></comment></comment></comment><comment><USER7> After I just spent ages setting this up via the API!

Actually there is a nice, cheap service called ezautoscaling.com - looks like a hacker side project but supports the full API _including_ schedules, which I think are missing from the official AWS offering.

<comment><USER8> You can do scheduling with OpsWorks, I believe.

</comment></comment><comment><USER9> I actually hate Amazon for exposing these features - now, my boss will be mucking around with them! As a DevOps guy, nothing beats AWS CLI and CloudFormation!

<comment><USER10> That's what IAM is for. Create a playground for your boss and let him or her muck around in safety.

<comment><USER9> Well, you tell my boss that he shouldn't be a full admin. :)

<comment><USER11> How about trying to create a change management process (supported by some time that someone other than your boss made a disastrous change)? Get him on board about how important that process is, especially when working in a team and something as critical as AWS. hint hint..

<comment><USER9> That's already in place. I personally use the Web Console as a read-only tool, but it's hard to keep a manager with past developer background away from poking around - policies are for the mere mortals! :)

</comment></comment></comment></comment></comment><comment><USER12> A question for other startups running a small time stack on top of AWS - <USER2> are you managing your scale up/scale down/fault tolerance on top of EC2 ? For a small startup, we are not really talking OpsWorks - so what tools allow you to do this. I'm trying to do this in a really small way for a project - <USER3> there are way too many deployment/monitoring/management tools to wrap my head around.

<comment><USER13> Along the same lines, I'm interested in how people handle the case of auto- scaling their web app (or anything that updates frequently via deploys). Is there a better solution than imaging a machine on every deploy and updating the auto scaling group to use the new AMI?

<comment><USER14> How are you deploying? You 'should' push a tarball to s3 and have web nodes pull it down.

Red-black deploys via AMI changes are one way for sure, but those seem to be usually done via separate scaling groups entirely. Netflix has a lot of automation around this (see Asgard and AMInator)

</comment></comment></comment><comment><USER15> RightScale was the first with this feature, before it was available via the api. I'm looking forward to seeing how each cloud provider handles the UI for all this data.

<comment><USER16> I'm going to piggy-back on this comment and mention that Rackspace recently added auto-scale as well, FWIW.

</comment></comment><comment><USER17> This is excellent news! I was just about to start exploring the auto-scaling capability for our cluster. Even if the API has more flexibility/options, this should make it much easier to get started with the basics.

Now I just wish AWS management console itself got some TLC.....it can be pretty difficult and cumbersome to use sometimes. Even products for fellow devs should have beautiful UIs.

</comment><comment><USER18> Is it just me or is there still no option to do scheduled scaling from the web interface? Regardless this is still cool!

</comment><comment><USER19> I just searched for this again this week. Finally in the console. I do prefer the api once I understand something but the console is great for a first walk through.

</comment><comment><USER20> Funny. Google App Engine auto scaled from day one.

<comment><USER9> People still use Google AppEngine with its outrageous pricing?

<comment><USER9> Thanks for the downvote, but my experience is that for a relatively small project we started to receive $200+ monthly bills and had to switch to EC2.

<comment><USER9> Very small, but frequent DB updates. I wasn't responsible for the software, but simply put, it was a backend for a not-so-popular Chrome extension, which was doing authentication and persisting some state (a few integers). I'm sure the architecture could've been optimized specifically for AppEngine to reduce the cost, but why do you need to invest so much effort in optimizing something so basic that works just fine on EC2 m1.small or Digital Ocean for few bucks per month?

</comment></comment></comment></comment><comment><USER21> Nice one!

</comment><comment><USER22> I would rather like to see better CPU performance first then auto-scale. Awful CPU performance is what keeping me away from EC2, trying linode nowadays..

<comment><USER23> The new C3.Large is cheaper than M1.Large (and only marginally more expensive than the old M1.Medium), but its CPU performance is roughly twice as good. Swapping over made a notable difference for our web nodes (perhaps 30-40% reduction in server time for the web-facing tier).

C3's instance-level SSD drives are a very nice touch as well.

<comment><USER8> It should be noted, though, that the c3.large has half the RAM of the m1.large.</comment></comment></comment>


Explore the immersive web with Firefox Reality - <AUTHOR> https://blog.mozilla.org/blog/2018/09/18/firefox-reality-now-available/ <comment><USER2> In case you have't seen the video:

[https://youtu.be/06jyMtB3qIE](https://youtu.be/06jyMtB3qIE)</comment>


iWatch Concept - <AUTHOR> http://toddham.com/blog/iwatch-concept/

<comment><USER2> Won't it try to rotate about one's hand when one swipes up or down?

</comment><comment><USER3> Out of curiosity, Does anyone know what tools are usually used to make composite videos like the one of the animated UI here?

<comment><USER4> Photoshop and some raytraced 3d rendering system... (Blender/YafaRay or Rhino/Brazil perhaps) Looking forward to what apple comes up with, I've got a few guesses, but if my guesses are correct I'd rather see it be a surprise.</comment></comment>


Show HN: I Made the Tinder for Poetry, Quilius - <AUTHOR> https://quili.us <comment><USER2> Slightly tangential, any good recommendations for poetry for beginners.

I remember that I used to like when I was in school but these days I kinda rush through them. So probably something which talks about the poems as well and helps me see the beauty in it.

</comment><comment><AUTHOR> Hi HN!

This is a Thanksgiving holiday project I made, inspired by a Robin Sloan novel and the whole "X for Y" thing getting a bit silly :)

It's rough right now, because I wanted to launch something rather than obsess like I usually do.

I'd love to hear what you think!

<comment><USER3> Congrats on posting! I like how simple it is, but still gets the job done.

<comment><AUTHOR> Thanks!

</comment></comment></comment><comment><USER4> What if we could register ourselves and update our poetries? So we could like or dislike and find people with the same "taste".

</comment><comment><USER5> Neat idea. Where did you source the poems from?

</comment><comment><USER6> What actually happens when I like or dislike?

<comment><AUTHOR> Right now it just gets logged, I'm working on a collaborative filtering algorithm now that I have some data.</comment></comment>


Tool of the Day: DevCheatSheet.com  - <AUTHOR> http://www.usefultools.com/2010/06/an-online-encyclopedia-for-developers/

<comment><AUTHOR> OR skip my review and go straight to the site: <http://devcheatsheet.com/></comment>


Dutch Judge Who Ordered Pirate Bay Links Censored Has Conflict of Interest - <AUTHOR> http://falkvinge.net/2012/05/12/dutch-judge-who-ordered-pirate-bay-links-censored-found-to-be-corrupt/

<comment><USER2> Everyone following the anti-piracy org BREIN and it's lawsuits in NL knows that this judge is corrupt, but it cannot really be proven. BREIN always uses the same judge, they always make it impossible for the defendant to be present at the hearings (as I understand it, but I don't know much about it, they use some loophole to make it impossible for the defendant to defend itself at the moment of the verdict). And he always finds the defendant guilty in these cases, no matter how insane (like the 'links case' Falkvinge discussed, were even showing the name of a movie in the forum was considered 'illegal linking').

This should get more press, but not enough people care in NL I think as this is only dredged up as 'wow how can this be' in tech forums while it's usually only a footnote in other press. And I don't believe that's a conspiracy, but rather that, no-one cares...

<comment><USER3> How can they always use the same judge?

<comment><USER2> I have no clue. Maybe it's only the cases he presides which make the press as BREIN wins there, but I'm fairly positive I read somewhere they always 'use' this judge. Maybe someone else knows more about it here?

<comment><USER3> Even though I'm dutch and live in NL I have no idea how our judicial system works. However, I was under the impression that a random judge is appointed to a case.

 _If_ my impression is correct and this judge actually does the majority of Brein's cases wouldn't that alone be worth an investigation?

<comment><USER4> If it is like in Germany, there's the concept of the "legal judge": There must be a regular set of rules which judge covers which cases. That can vary locally, and over time, but it must apply to all cases filed at the same court at a time.

These rules exist to ensure that judges can't take over cases they wish to distort in some way (eg. because they don't like the plaintiff or defendant, they have a strict opinion on the subject matter, ...).

Unfortunately, the rules used in some places here allow(ed) the plaintiff to skew things in their favor (if they want a certain judge to handle the case). If assignment depends on the date of filing, they wait for the right day. If it's semi-random (but guessable to some very high degree based on prior day's assignments), they check the records to find the right timing... These lobbying groups consists mostly of lawyers - if there's a loop hole, they'll find it.

It's possible that BREIN found a legal way to skew assignments in their favor, too.

</comment></comment></comment></comment></comment><comment><USER5> FWIW, Geenstijl (probably the largest/most known blog in the Netherlands) reported on this matter in 2010 already, here [http://www.geenstijl.nl/mt/archieven/2010/06/rechter_in_zaak...](http://www.geenstijl.nl/mt/archieven/2010/06/rechter_in_zaak_ftd_vriendje_v.html) (in Dutch).

There has been some uproar about this on (Dutch) internet sites, however I haven't seen anything about it in mainstream media.

On a related note, just today a small ISP that needed to block TPB has refused to do it and they are now sued by BREIN ([http://tweakers.net/nieuws/81929/brein-daagt-zeelandnet- om-t...](http://tweakers.net/nieuws/81929/brein-daagt-zeelandnet-om-the- pirate-bay-ook-te-blokkeren.html)). The trail will start in June and is expected to last several months. I just hope this time maybe more uproar will ensue if the same judge is doing the case again.

<comment><USER2> That will be interesting. Shame it takes so long and it will be 'komkommertijd' (summer) so although media will write about it, they already know that not many will read. On the other hand; it's a good time to get ANYTHING in any press starting june, so why not this?

Very curious to see if it's Hensen again. I would think it is.

<comment><USER6> After the summer we'll be having elections: this case is proof that NOW is the time to push the Pirate Partij.

We're the Netherlands, it's our job to be forward thinking, an example to our friends a few kilometers to the East (the Germans, for those not well versed in European geography). As it now stands they're past the first corner, but there's still time to catch up and overtake..

</comment></comment></comment><comment><USER7> There is so much unproven bullshit and downright deception in that article that this is the first thread I've flagged in a year and a half.

1st. No one has been charged, tried, and found corrupt.

2nd. Was this association before, during, or after the court case? There really is a difference between those three.

3rd. What is this "association"? The judge's name is part of the lower category with a dozen other names. Does this mean he's in the same building?

4th. Even this article is starting to claim (in edit/update, forced by a commenter) that this "commercial" course was some type of an official bar course where the two parties were perhaps picked by the bar (as in, they didn't pick each other).

5th. The article keeps on mentioning that this judge ruled "file names" to be illigal. Right, because taking the URL and breaking it appart before posting it on a warez site clearly turns everything around and makes the forum a place for a purfectly legitimate discussion of "file names". The author seems to be outraged by this.

And it goes on and on...

<comment><USER8> 1st, corruption is like "being a dick" in that you don't have to have been found guilty of it in a court of law in order for it to be true.

2nd, corruption is corruption. Does it matter when? Before, during, after, it's still sketchy as heck. Any judge in possession of their mental faculties should think twice before creating the appearance of impropriety. I don't care if it's an official course - find someone else!

3rd, and 4th, granted.

5th, Right, because having a link to a file (and nothing more!) is somehow infringing anything. The affected server had no infringing content on it. I'd be outraged too. The idea that search engines and other sites should have to be censored despite not doing anything wrong is insane - equally insane is the idea that I can construct an anchor tag that will get me in trouble with the law.

Equally sketchy is the fact that this particular judge always seems to preside over BREIN's cases.

That's two strikes, and he seems reeeeeaaallly eager for a third.

<comment><USER9> _"I don't care if it's an official course - find someone else!"_

If you read [http://webwereld.nl/nieuws/66177/ftd-vonnis-is--schokkend-- e...](http://webwereld.nl/nieuws/66177/ftd-vonnis-is--schokkend--en-- onhoudbaar-.html), you will learn that Arnout Engelfriet (who more or less invented Internet law as a separate subject of study in the Netherlands) states that he, in his role of council for the defense, did not think that the judge needed replacement because the circle of Dutchmen knowledgeable of the matter is so small that it is impossible to find a knowledgeable judge who hasn't had some contact with someone from BREIN.

So, if you claim corruption, you should include mr. Engelfriet in it.

He disagrees with the rulings, too, but that is a different subject.

 _"equally insane is the idea that I can construct an anchor tag that will get me in trouble with the law."_

Not all countries follow US law; freedom of speech carries lower weight in some of them. For example, one cannot publish "Mein kampf" in the Netherlands (AFAIK, the current stance is that a scientific edition might be legal)

<comment><USER8> Ahh, I didn't know that about Engelfriet, so thanks for the link. If there's truly not that many judges, I suppose their hands are tied. Still, there's that "Ehhhhhhh...." feeling associated with the whole thing, regardless. Some of that is irrational.

As far as freedom of speech, I find the instance you mentioned to be equally insane.. but given the choice between the USA and the Netherlands, I'll still take the Netherlands (or almost any other European country) every time, despite being a US citizen.

</comment></comment></comment></comment><comment><USER10> If that is indeed the same judge working together with the plaintif, then it does still not proof corruption. But taking the case would have been highly unethical. I really hope there will be an investigation into this.

<comment><USER11> A little off topic, but here in the USA Supreme Court judge Antonin Gregory Scalia went on a vacation with Vice President Dick Cheney, shortly before Cheney's case went before the Supreme Court.

I may be wrong about this, but when I was younger it seemed like corruption was well hidden from public view, now the elites rub our faces in the fact that they can get away with just about anything.

<comment><USER12> Clarence Thomas has the appearance of a much larger problem:

[http://www.nytimes.com/2011/06/19/us/politics/19thomas.html?...](http://www.nytimes.com/2011/06/19/us/politics/19thomas.html?_r=2&hp) [http://www.washingtonmonthly.com/archives/individual/2011_01...](http://www.washingtonmonthly.com/archives/individual/2011_01/027655.php) <http://www.nytimes.com/2011/02/15/us/politics/15thomas.html> [http://www.washingtonmonthly.com/archives/individual/2011_02...](http://www.washingtonmonthly.com/archives/individual/2011_02/027850.php)

<comment><USER13> If I were the President, I would do exactly the same thing. Fact is, that Supreme Court nominations are highly political motivated. You have in your presidency one or maybe two chances to appoint a new judge.

That judge is going to sit there for about 20 years. As you see right now with the upcoming supreme court decision on the healthcare issue, the decision is most likely going to be made along the party lines, with most of the decision power hanging on the mercy of a single judge. If you are the president and have the ability to appoint/suggest a judge, you need to find someone that you can rely on to keep his political leaning intact for the next 20 years. Otherwise you are significantly reducing the chances to see your worldview represented in the rulings for the next 20+ years. Sure, the process is questionable, but I can completely understand that politicians see the appointment of judges as a very strategic element, and therefore making it necessary to keep them close. But apparently too close in some cases...

</comment></comment></comment></comment><comment><USER12> The Swedish Judge who found all the Pirate Bay people guilty was also associated with a pro-copyright or pro-"Intellectual Property" organisation, too: <http://www.wired.com/threatlevel/2009/04/pirateconflict/>

To my (USA) mind, this seems like Enemy action, or a multi-national conspiracy. In the USA, judges with this kind of appearance of bias would most like recuse themselves, and if they didn't, one side or the other would try to set up the whole case for an appeal later, and then appeal later with flags waving and horns honking.

Why does this appearance of judicial bias occur so often in connection with The Pirate Bay?

<comment><USER14> "Why does this appearance of judicial bias occur so often in connection with The Pirate Bay?"

Because the internet's repeatedly not getting the answer they expect. Apparently only a fool and a corrupt one at that could possibly consider TPB, a site which everyone even marginally familiar with knows is devoted to piracy and profiting off piracy ever second of every day, to have anything to do with piracy! Also international conspiracy lol.

<comment><USER15> Your reply doesn't provide an answer to the question you quoted.

</comment></comment></comment><comment><USER16> When there is a singular person responsible for a decision, corruption is inevitable. They are an easy target.

Judicial decisions should be taken by a council rather than an individual.

</comment><comment><USER17> Misleading, unproven and sensationalistic.....

<comment><USER10> That sounds much like Richard Nixon when he first read about watergate.

Unproven and sensationalist it is, but how is it "misleading"?

<comment><USER17> "Found To Be Corrupt" suggest an official inquiry of some sorts. Not the opinion of the author.

<comment><USER18> Not exactly - in this case, a person on Twitter found a two-year-old article showing that this particular judge was corrupt in copyright monopoly cases. There is nothing denoting how "official" the conclusion is, not inherently in the expression.

<comment><USER19> In a juridical context, "found corrupt" means something like "a judge ruled that X is corrupt". It's easy to think that that is what the headline says.

<comment><USER10> And in a technical context, it means that a data file produced a read error.

In a blog context, it means neither.

<comment><USER20> So what does "found to be corrupt" mean in a blog context? "Please sue me for libel?" (Yes, I see the note. "I don't need journalistic integrity, I'm a registered journalist!")

Good job on finding the other common meaning; you'll have noticed that a search on "found to be corrupt" yields two meanings besides this article: corrupted data, and findings of a court or investigation.

There are a lot of ways to phrase the headline that wouldn't make a reasonable reader assume that this was an official ruling, e.g. "X is corrupt", "Why X is corrupt", "Evidence that X is corrupt", "X alleged to be corrupt", or really anything but "found to be".

The facts by themselves are interesting, but the headline I found misleading.

<comment><USER21> > So what does "found to be corrupt" mean in a blog context?

It means that evidence indicating corruption has been found. Any other reading puts words in their mouth.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER22> Nothing on this is currently floating in the Dutch media, so probably not worth the read.

<comment><USER10> You may want to send the link to the article to some newspapers in NL, maybe a few will pick it up and investigate. If nobody tells the mainstream press, they may just overlook it.

<comment><USER23> Tweakers.net: Het artikel of de meukupdate op de link '[http://falkvinge.net/2012/05/12/dutch-judge-who-ordered- pira...](http://falkvinge.net/2012/05/12/dutch-judge-who-ordered-pirate-bay- links-censored-found-to-be-corrupt) bevindt zich al in de queue. De link kan niet nogmaals ingestuurd worden.

Translation: The article with the link [where this HN story leads to] is already in the queue. The link cannot be sent in again.

<comment><USER24> I don't find it likely that Tweakers is going to write a full article about this. As on of their writers stated "a serious accusation and not very convincing"</comment></comment></comment></comment>


Lambda MOO Programming - <AUTHOR> https://github.com/SevenEcks/lambda-moo-programming <comment><AUTHOR> For those who don't know, MOOs (MUD, object-oriented) are text based virtual environments that were quite popular in the 90s. Sort of like the classic text adventures or RPGs combined with chat but with the ability to extend the text based world through interactive programming. The most popular MOO software was LambdaMOO. I thought it was dead (it arguably is) and was suprised to find this relatively recent collection of material.</comment>