U.S. Readies $11B in Tariffs on E.U - <AUTHOR> https://www.nytimes.com/2019/04/09/us/politics/boeing-airbus-tariffs.html <comment><USER2> The irony of Boeing complaining about favorable treatment by the government is palpable.

<comment><USER3> Other countries are going to start ignoring FAA safety rulings now, so meaning that in exchange for a short term monetary gain a bunch of politicians and executives will probably cause significant long term costs - although the people who made those decisions and took those bribes won't have to pay for those consequences, they've already got there's :-/

<comment><USER4> This is some weak logic. So a super-high capital business like an Airline is going to flaunt aircraft safety rules, potentially risking hundreds of lives of their customers and employees... to what exactly? Buy some cheaper uncertified Chinese(?) aircrafts or fly other certified aircrafts unsafely...to make a little extra money? And then run away when the lawsuits and families of the dead come chasing you?

<comment><USER3> No, it was explicitly because Boeing wanted to be able to short circuit the normal safety analysis in order to get a poorly designed product to market to compete with the airbus a320neo.

The level of trust in the US aeronautic safety agencies can be summed up in other countries explicitly requiring non-US investigators.

 _That_ is the long term impact I'm talking about - it seems entirely plausible that this will become the norm rather than the exception it is now.

</comment></comment></comment></comment><comment><USER5> In 2016 the US imported $416B and exported $270B to the EU. Although $11B is a large number, it's a 2.6% tax on the total. More interestingly, is what they are taxing.

Personally, I'd rather have tariffs than income tax. At least then I can choose what to buy.

<comment><USER6> Consumption taxes are regressive, income taxes are progressive. The poor are disproportionately impacted by tariffs and sales/consumption taxes. The administration is taking money out of the hands of Americans under a truly misguided idea of what a trade deficit is.

<comment><USER7> Good. Given a fair tax system would be proportional / flat, perhaps a little imbalance in the other direction evens it all out towards flat / proportional tax (everyone at the same percentage)

<comment><USER8> So, the people with the most money pay the same tax as those with a low income?

That...doesn't sound fair at all. It's equality but not equity.

<comment><USER9> The parent comment talked about a flat percentage tax. So the people with more money would not be paying the "same tax". They would still be paying a lot more. A truly fair tax would have everyone paying the same flat fee for the same public services rendered.

<comment><USER6> It isn't, though, because of the marginal utility of money. Someone making $10k/yr sees much more value from an extra $10k than someone making $10M. For one it's a lifeline and for one a rounding error. While a flat tax is fair in numbers it's not fair in marginal value or utility. IMO that's a much bigger deal. There are other macroeconomic advantages to giving the little guy the extra, though I don't want to repeat myself so I'll keep that in my sister reply.

FWIW we've already got regressive taxes in the form of payroll tax, which kick in from $0 and cap out once you earn enough. So unless you're unemployed, you've paid taxes even if your marginal income tax rate is 0%.

<comment><USER9> I feel you are reinventing definitions. The "same tax" would be very literally giving up the same value. The only common definition of value in society is currency - that is literally its role, to serve as a _common_ measure (and storage) of utility. It does not confer net utility in and of itself (goods and services do), and therefore this argument of marginality doesn't apply to it.

I understand that goods and services acquired with currency can experience diminishing returns. But unless you think the rich and poor should be paying different amounts for every good and service (for example a cup of coffee), then I don't think this is a consistent, principled argument.

And once again, let me point out that GP's comment on a flat tax would STILL mean the rich give up more value than the poor, and it would still not be a truly 'fair' tax. And on a side note, 'progressive'/'regressive' are made up terms used to play rhetorical games by leveraging the negative connotation of the term 'regressive'. A better set of neutral terms would be 'uniform' or 'fair' or 'flat' versus 'non-uniform' or 'unfair' or 'graduated'.

<comment><USER6> The rich already pay different amounts than the poor for goods and services in pre-tax dollars. That's kind of the idea, IMO. If my average tax rate is 28% and a poor person pays an average 5% then the same $5 SF coffee costs me $6.94 and them $5.26.

The dictionary definition is quite clear: A progressive tax is a tax in which the average tax rate (taxes paid ÷ personal income) increases as the taxable amount increases. [Google]

A regressive tax is a tax applied uniformly, taking a larger percentage of income from low-income earners than from high-income earners. It is in opposition to a progressive tax, which takes a larger percentage from high- income earners. [Also Google]

As such, Medicare taxes are regressive because they are capped at some amount of earned income, whereas the ordinary income tax rate is progressive because your marginal rate increases as you earn more money.

You are correct that a flat tax is neither progressive nor regressive with respect to dollars, but it is regressive with respect to marginal utility of those dollars to the earner. "Fair" is a value judgement and colors the conversation.

<comment><USER9> And labels of 'progressive' and 'regressive' aren't value judgments? IMO they are subjective judgments much more so than calling a true flat tax "fair". Equal value contribution is fair, after all.

The dictionary definitions you are quoting are in existence simply due to common use in modern times, but I am claiming they are nevertheless bad definitions that were engineered to color the discourse on this topic.

<comment><USER7> Exactly.

We're both kids. I have 12 marbles. You have 24 marbles. We need to give up some marbles for the common good. We could debate whether us both giving 6 marble is fair, or wether you giving 8 and me giving 4 is fair. I can see both arguments.

However… in no rational world is it fair for you to give 10 and me 2.

<comment><USER6> Marbles aren't a good analogy because they have equal marginal utility.

Let's replace marbles with hamburgers. You and your buddy Steve lay out your food for the day. You have 2 hamburgers, exactly enough to meet your daily caloric needs. Your buddy Steve has approximately 10 hamburgers. Dramatically more hamburgers than he needs to live. More than he could eat if he tried.

Now, we need 1 hamburger for the common good. If you take that one hamburger from the guy with 2, he's hungry, and if you keep doing it, he may die. Steve, on the other hand, can't eat all his hamburgers one way or the other, so taking one from him makes much less of a difference.

Now how does that change the equation? It's fair for Steve to donate 0.8 burgers and you to donate 0.2 -- this represents fair distribution on a marginal value basis. So yes, 10:2 is completely fair. In fact, 10:0 is fair if I'm making millions and someone else is making a handful of thousands per year.

I'm personally in one of the top tax brackets and I think it should be higher. We already pay 50%-ish marginally in California, so moving up to AOC's 70% isn't really a big difference. I should be paying more, because we live in a community and I want that community to be nice. I don't want to live in a world where I have nice things and walk by people with nothing, on the ground, doing heroin like I do on my way to work every morning here in SF. All because it's not "fair" to take a burger from me, when I have more burgers than I know what to do with.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment> munk-a That's some particularly hilarious timing giving boeing's recent "unsafe to fly our plans" headline news.

As someone in Canada it's been disappointing to watch the massive internal subsidies given to Boeing (from the US government) help sink Bombardier - though the company also did under-perform.

<comment><USER10> Doesn't every country do the same thing— albeit perhaps not at the same scale? When Embraer complained about Bombardier's subsidies from the Canadian government, the WTO decided that they were illegal. Then Bombardier complained about Embraer's subsidies from the Brazilian government and the WTO decided that those are illegal too.

<comment> munk-a Yea, but the WTO hasn't gone after the blatant US protectionism - that's the issue. Most other countries are kept relatively in check in terms of trade fairness, but the US is riding their golden chariot.

<comment><USER10> I'm assuming the justification for the EU tariffs was the WTO's decision last month that the state of Washington is giving Boeing an illegal subsidy in the form of tax breaks.

</comment></comment></comment></comment><comment><USER11> It seems most posters didn't really read the article as the tariffs appear to be in compliance with a WTO ruling on something illegal the EU is doing wrt subsidies to Airbus. Unsurprising that the NYT and HN goes with the lead that Trump is unilaterally fucking up world order yet again but in this case it doesn't seem so deserved.

I really wish both groups (the NYT and HN) would be more nuanced when it comes to Trump. Otherwise, we all end up justifying Trump's and other Alt-Righties' claims of bias.

<comment><USER12> Every word of the article's headline is true, and the facts it contains (subject, object, action, and magnitude) are the most important facts of this story.

The reasoning you want to see in the headline is in the first paragraph.

If you're interpreting the headline as "Trump is unilaterally fucking up the world order yet again" then that is something that happens _entirely in your head_.

It's somewhat bold to fault others for an error that is entirely yours.

<comment><USER11> It's all in my head?

[https://news.ycombinator.com/item?id=19629918](https://news.ycombinator.com/item?id=19629918)

[https://news.ycombinator.com/item?id=19629960](https://news.ycombinator.com/item?id=19629960) (now deleted)

[https://news.ycombinator.com/item?id=19629995](https://news.ycombinator.com/item?id=19629995)

I think wrt NYT, the facts are all true but purpose should also clearly be a part of it. Imagine a headline which said "Trump kills man on White House lawn with Colt .45" and the man was attacking him with a machete.

When many (most?) people are aware of the prior tariff tirade by Trump and not everyone reads the meat of an article, I think it's irresponsible to not include the _why_.

<comment><USER2> I think you're contriving viewpoints that simply aren't there. Nobody is talking about Trump, rather people are enjoying the irony of the US being one of the countries that subsidizes the most yet complaining about other countries.

On another note, I think your headline is fine. After all, surely the secret service is capable of non-lethally incapacitating a man with a machete. But even if not, it's false equivocation.

</comment></comment></comment></comment><comment><USER13> More subsidies to that callous killer Boeing, from a government of the megacorps, by the people, for the megacorps.

<comment><USER14> you cant kill boeing. if shit hits the fan theyre pretty much our only airline manufacturer. i mean what happens if the eu tells the us to fuck off. we don't get any more airbuses and if boeing is dead no way to make our own planes.

<comment><USER13> They are hardly the only aircraft manufacturer, though decades of neglect of antitrust has allowed them to become he only remaining US manufacturer of civilian aircraft. But if they are allowed to let them die we can still get large passenger aircraft from Airbus, smaller ones from Brazil or China. Not to mention from new entrants that will start up when the big gorilla goes away?

</comment></comment></comment><comment><USER15> Wanted to read the article, but instead got this: "You're in private mode. Log in or create a free New York Times account to continue reading in private mode." So headed for page source and stumbled onto this wtf:

      <!--
      </comment><comment>---- Forwarded message </comment><comment>---
      From: Kingsbury, Katie <email@example.com>
      Date: Wed, Apr 10, 2019 at 2:30 PM
      Subject: Rollout
      To: Bennet, James <email@example.com>

      James,

      Here's a line up for the launch tomorrow, all of these will be online before Sunday:

        • A.G.'s publisher's note about The Times
        • Manjoo on household items that track us
        • Wu on the history of privacy
        • Jeong on A.I. and insurance
        • Metzel on genetically engineered babies
        • Warzel on tech CEOs in their own words
        • Fr. Martin on privacy and faith
        • Emily Chang on privacy as a feminist issue
        • Douthat on our post-privacy order
        • Swisher on privacy regulation
        • Irby on what's funny about all this.

      Plus, of course, your piece if you can actually get it done in time.

      Next week, we'll drop the piece about how we turned a public camera in Manhattan into a facial recognition equipped surveillance machine and who we caught with it.

      The vanity URL is locked in as nytimes.com/privacy-project and the social team has spun up the @PrivacyProject account.

      Katie
      -->

<comment><USER16> Wow, how is this comment not getting more notice. This is a hilarious screw- up. Seems like the NYT is launching a new privacy initiative tomorrow.

</comment></comment><comment><USER17> (deleted)

<comment> munk-a I mean, the current administration was elected on a platform of "America First" so, what did you think would happen?

I think the US has been self-centered for quite some time, and there was a hilarious thread in a different article that went into the idea that America is the world-policeman that everyone wants but... yea, for equal treatment and to avoid regulatory capture - one needs to avoid that dying empire.

<comment><USER13> The so-called "America first" policy works against the interests of the United States though. Or is it "destroy America first, screw up the rest later?"

<comment><USER18>
      >> works against the interests of the United States though

That's just, like, your opinion, man, especially after the trade deal with China is finalized. About time someone actually raised a stink about what's going on with China and Europe in terms of foreign trade. It's unpleasant work, but it has to be done, moreso with China than with the EU.

FTA: ""Our ultimate goal is to reach an agreement with the E.U. to end all W.T.O.-inconsistent subsidies to large civil aircraft," Mr. Lighthizer said."

As a US citizen I don't see anything controversial about this stance.

<comment> munk-a Your tax dollars are going to prop up a failing company that is producing substandard products that have gotten people killed - I don't see how you could mentally position yourself to be alright with this.

The general idea of protectionism is less controversial - I think it is generally bad[1] due to the economic effects of it. But if you're in favor of protectionism you can check any claim you have to free-market economics or de- regulation for growth at the door, protectionism is basically the Ur-form of regulatory capture and state-capitalism so being pro-Boeing subsidies and then claiming that the US becoming "socialist" is terrible is just logically inconsistent.

[1] I'd leave the notable exception of when it's used to specifically stimulate economic sector growth - propping up a robotics company in TN to create a labour pool that enables other companies to grow out of the labour availability is a pretty good usage.

<comment><USER18>
      >> Your tax dollars are going to prop up a failing company

Didn't read any further. Boeing is not a "failing company".

</comment></comment></comment></comment></comment></comment><comment><USER8> Sickening that we're cozying up to authoritarian Russia and China while alienating Western democracies. When did the enemy become our friends?

<comment><USER19> And when did your friends become your enemy?

</comment></comment><comment><USER20> Good! In the past few years the E.U has passed absolutely ridiculous laws and taxed U.S. based companies through these ridiculous laws because they want a slice of the pie too.

Edit: They are getting tax through fines by said ridiculous laws not by direct tax.

<comment><USER21> Such as? As far as I know the EU has had a rather positive position regarding the US for the last decades, and still does, even after the most recent election.

According to this page: [https://ustr.gov/countries-regions/europe-middle- east/europe...](https://ustr.gov/countries-regions/europe-middle- east/europe/european-union) it's rather balanced. Whoever upsets that balance might need to reconsider, but the US would definitely have a problem if less stuff comes in from the EU. For the EU, however, it's less of an issue: [http://trade.ec.europa.eu/doclib/docs/2006/september/tradoc_...](http://trade.ec.europa.eu/doclib/docs/2006/september/tradoc_122530.pdf)

<comment><USER22> Well, one recent example is that of article 13, which is a massive expansion of copyright law.

Yeah, no thanks. I do not at all what expansive intellectual property laws to be spreading all over the world, and hurting creators like that.

Creators benefit way more when it is easy to share and use and modify other people's content.

<comment><USER21> I don't think that has anything even remotely to do with tariffs or trade.

But if it did: those lows are for the EU, not the rest of the world. Same goes for GDPR. Nobody is required to trade with the EU, or sell to the EU or buy from the EU. But if you do, the rules of the agreements that are made apply. This is nothing new, and works the same way for trade or interaction with pretty much any country. Imagine trying to sell stuff to China with Taiwanese flags...

<comment><USER22> The original comment is referring to ridiculous laws that the EU has passed.

The law in question includes things like a link tax, which is pretty ridiculous, IMO, as is the copyright fines that they have.

The rest of your comment is merely a "the law is the law!" kind of justification.

Yes, the law is the law. And I gave reasons as for why these laws are ridiculous, as per the original comment.

I can recognize that a law exists, and also call it a horrible law, that deserves retaliation from the US.

I sincerely hope that the US and everyone else uses trade laws and tariffs to cause economic damage to the EU, specifically because of these horrible laws.

Fair is fair, yo. US trade tariffs are _also_ the law, and are a good way punishing bad laws passed by other countries.

<comment><USER23> > US trade tariffs are also the law

Except they aren't. WTO treaty obligations for equitable treatment of other nations (MFN obligations) supersede local laws. Overriding arbitrary local laws is the whole point of the WTO, and of every other trade treaty.

The only way these tariffs work is Trump pulling the "national security emergency" card -- and obviously 'punishing' the EU for building better planes isn't a national security issue worth dismantling the WTO over.

<comment><USER22> > The only way these tariffs work is Trump pulling the "national security > emergency" card

So it _is_ the law then. Too bad, so sad, but the law allows this.

It sounds like you just disagree with the law. But that's the law!

> worth dismantling the WTO over.

And nothing is worth dismantling the free and open internet with oppressive copyright laws.

So, I can use that exact same argument against the EU's horrible laws.</comment></comment></comment></comment></comment></comment></comment>


Microsoft makes pen*s joke at Azure party... - <AUTHOR> http://www.youtube.com/watch?v=JUMjxnKzUlQ

<comment><USER2> Shortcut to relevant lyrics: <http://www.youtube.com/watch?v=JUMjxnKzUlQ#t=1m30s>

</comment><comment><USER3> Hah that's actually kinda funny. I was horrified when hearing this but after watching the video it's not so bad.

</comment><comment><USER4> Seriously? How in the hell would anyone ever think that was appropriate?

</comment><comment><USER5> This video would be thoroughly embarrassing even without the penis reference.

I can't tell what the relationship is between NDC and Microsoft Norway, but I imagine there will be apologies.

</comment><comment><USER6> LOL</comment>


Lyrics Site Genius.com Accuses Google of Lifting Its Content - <AUTHOR> https://www.wsj.com/articles/lyrics-site-genius-com-accuses-google-of-lifting-its-content-11560677400?mod=rsswn <comment><USER3> > _Genius said it found more than 100 examples of songs on Google that came > from its site._

> _In a statement, Google said the lyrics on its site, which pop up in little > search-result squares called "information panels," are licensed from > partners, not created by Google... In 2016, Google partnered with LyricFind > Inc., a Canadian company that secures deals with music publishers allowing > companies such as Google to publish lyrics online._

So Google is _properly licensing_ lyrics from song publishers and uses a third party to provide the lyrics, and somehow that third party wound up with more than a "hundred" \-- not a million but a hundred -- that were copy-pasted from Genius at some point.

Except for the apostrophes thing being clever, this sounds like a complete non-issue? That Genius's issue is not with Google but the company they source from... AND that they'd have to prove a wholesale systematic copying (closer to millions of songs) as opposed to it being e.g. some rando employee who got lazy and took a shortcut one week?

<comment><USER4> > "hundred" \-- not a million but a hundred -- that were copy-pasted from > Genius at some point.

To be fair, they can probably only confirm incorrect lyrics. Correct ones would look the exact same. Presumably, the vast majority are correct

<comment><USER3> The article says it uses apostrophe fingerprinting... and a _lot_ of songs have lots of apostrophes. Assuming just 4 apostrophes per song, there's only a 1/16 chance of it being an accidental match... but given that it's already quite unlikely for _any_ text (including lyrics) to contain both types of apostrophes, practically speaking it's probably closer to a 1/100 or 1/1000 chance of false positives.

They should be able to accurately confirm whether hundreds of _thousands_ of songs were taken from Genius, without any difficulty.

<comment><USER5> I'm surprised Google wasn't already normalizing apostrophes and other punctuation anyway. I'm sure they will be now.

</comment></comment></comment></comment><comment><USER6> These guys are notorious for having stolen lyrics from other sites for many years and only licensing them after legal threats. Funny to see it all come full circle.

<comment><USER7> That sounds odd to me that any site would own the copyright to lyrics. Wouldnt that be the artist / record company's property?

The value add of Genius isnt so much in the lyrics but in the explanation and context given grom Genius. I have even seen actual artists confirm interpretations and explain some things as well I think Hittman from Dr. Dre's 2001 album was one such artist if I remember correctly.

I do see what you are saying on the other hand but I dont think that lyrics written down from a song are some random websites copyright / property.

<comment><USER8> I think the main value they add is working to agreggate all the lyrics into one site.

If Google is simply scraping that content from them without permission then that has been litigated many times in court and almost always comes out badly for the "scraper".

<comment><USER9> The same issue also comes up a lot when dealing with data that can't be copyrighted. For example stock quotes, sports statistics, and maps are all statements of fact and therefore no one can copyright them. However you still have to end up either gathering the information yourself or licensing it from a data provider. Simply scraping it off someone else who has already done one of those two is a quick way to get into legal trouble.

</comment></comment></comment></comment><comment><USER10> I wonder how many companies Google has wounded/killed with their search infopanels. For example, yesterday I searched for "speedtest" expecting Ookla's speedtest.net to be the top result. Nope, now it's a one-click speed test offered by Google at the top. Great for users, devastating for the sites at the top of the SERPs.

<comment><USER11> If you search "Ookla speed test" or "speed test Ookla", then you get Ookla as the top result without seeing Google's panel.

If you only search for "speed test", you get Google's panel followed by Ookla's. I see nothing wrong with this, they are giving users what they want.

<comment><USER12> Sure, they put themselves between users and content, and then they decided they should serve the content too.

Amazon discovers the best selling third-party products on it's site, and then makes it's own version of them too. Everybody is doing it.

Pretty soon, 5 companies will be serving up 99.9% of the content on the Internet. Nothing wrong with that.

Nothing anyone here in startup land needs to worry about.

Right?

<comment><USER13> When your search "calculator" are you angry that Google displays its own web calculator before returning 3rd party results? These are simple utilities, and I don't see why it's bad for Google to offer is own. In fact for web tests it's more useful to me. Much of what I access is Google services, so testing latency and throughput to their servers is better for me.

<comment><USER14> They aren't just doing it for simple utilities, they are literally trying to create some kind of "box" above search results for every possible query, subjective or objective. "Best movies of 2019", "What are the ingredients of pancakes?", the name of any store, restaurant, location, etc.

<comment><USER15> And if they are producing results better than the blogspam that ends up in the top result, how is that a bad thing?

<comment><USER14> They are stealing the (often wrong) answers from the blogspam and putting it in their own box - how is that better? They should just filter out the blogspam - that's ostensibly what a search engine company should be investing their time doing.

<comment><USER16> > They are stealing the (often wrong) answers from the blogspam and putting it > in their own box - how is that better?

Saves a click and the ordeal of loading a gazillion quasi-malicious ads posing as information. Much better in my book.

<comment><USER14> It's slightly better to load the (often wrong) blogspam answers into a box than to link to the blogspam, although in doing so, it gives the wrong answer more authority. It's much better to actually spend resources to filter blogspam from results and link to quality sites which have done actual research.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER17> Mapmakers had a similar problem in the past, but the theft could be proven by creating data ("trap streets") that didn't exist. Sounds like Genius has been employing similar mechanisms and needs to proceed with legal remedies

[https://en.m.wikipedia.org/wiki/Trap_street](https://en.m.wikipedia.org/wiki/Trap_street)

<comment><USER18> That is an interesting idea.

From the article in this post:

"When the two types of apostrophes were converted to the dots and dashes used in Morse code, they spelled out the words 'Red Handed.'"

I'm aware of the history of Genius (formerly Rap Genius) so I found the translation of the code to be entertaining and mildly ironic.

</comment></comment><comment><USER19> I caught Google a few years back with the same hijack, but then it was Metrolyrics: [https://yvoschaap.com/weblog/misbehavior_by_google_lyrics_on...](https://yvoschaap.com/weblog/misbehavior_by_google_lyrics_onebox_result)

</comment><comment><USER20> Related to their previous battles with Google ("We're sorry for being such morons")

[https://genius.com/Genius-founders-rap-genius-is-back-on- goo...](https://genius.com/Genius-founders-rap-genius-is-back-on-google- annotated)

<comment><USER21> Sounds like they haven't learnt their lesson and/or have an incompetent SEO director

</comment></comment><comment><USER22> Years ago I had one of the top Coin Tossing Apps on iOS. Google changed all that by answering a coin-toss search with an actual coin-toss. My mind was blown that I was actually competing with Google at that point...

<comment><USER23> What Google search will give you such results?

<comment><USER24> [https://www.google.com/search?q=flip+a+coin](https://www.google.com/search?q=flip+a+coin)

</comment></comment></comment><comment><USER25> 'Its' content? Don't the lyrics belong to their actual authors?

<comment><USER26> I suspect it's a bit like recipes.

Taking someone else's list of ingredients and steps and putting them in your own words is legal. Taking the recipe verbatim isn't.

<comment><USER27> Lyrics that aren't verbatim aren't lyrics.

<comment><USER26> Missing the point.

Transcribing the lyrics yourself is kinda like writing the list of ingredients - it's a statement of fact. "The lyrics of this song are X."

Copying that effort from someone else, alternating apostrophes and all, is a bit different. In most cases, you can't prove that's what happened, but it's quite clear here.

<comment><USER28> You'd have a hard time proving that though. It's incredibly easy for all the grammar to end up the same.

<comment><USER26> Normally, yes.

When the apostrophes spell out "red handed" in Morse code, though...

</comment></comment></comment></comment></comment></comment><comment><USER29> Both of these guys suck.

These lyrics are the intellectual property of the people who actually wrote them.

<comment><USER30> Genius also offers significant lyric annotation and crowd sources unpublished lyrics - that I imagine is what they are protective about.

<comment><USER29> I bet it's not.

Nobody is accusing Google of copying the annotations, just the lyrics.

Genius didn't write them, and they didn't even transcribe them as you point out.

I'm no Google fan in the context of ripping off competitors but Genius has a pretty shady history as well and it's pretty hard to have sympathy for either of them.

<comment><USER7> The lyrics are user submitted so sometimes a user already transcribed them on one site and ports them over. Other times its just illogical to think some lyrics site owns copyrights to the transcription of a song. Now only one single site can have it perfectly transcribed and everyone else has to shift words around in order to make it a unique work worth copyrighting? What.

</comment></comment></comment></comment><comment><USER31> >The company doesn't disclose revenues but says its ad business runs to tens of millions of dollars per year.

I am extremely skeptical of this claim.

</comment><comment><USER32> The wikipedia info panels are particulary annoying, it seems pretty hard to find that actual link to the wiki article and I think they remove the wiki article from the main search results since it's now at the side.

</comment><comment><USER33> I have noticed the opposite, that Googles lyrics are usually inaccurate and I assumed they were lifted from alternative sources than Genius. Just my experience, though.

<comment><USER34> It probably isn't Google though. They say they license and receive content from LyricFind Inc, which probably takes care of all the legal issues.

I'm guess that LyricFind got lawyers from all the major labels to sign licenses, but no one ever actually bothered to get the lyrics for them. Management probably told their tech people to just get them from wherever.

</comment></comment><comment><USER35> This seems pretty inane to me. Rightsholder licenses lyrics to both Genius and Google, Google copies lyric text from Genius. Seems like Genius shouldn't have a leg to stand on? (And even if they were _technically_ right, they're wasting courts time and not actually achieving anything useful).

</comment><comment><USER36> How is Genius.com in a position to make any claims on "its content" when said content is entirely the copyrighted works of various artists?

Just because the lyrics may be entered by users has no bearing on the fact that the lyrics are copyrighted works and that Genius.com doesn't own or have any rights to them. Just like doing a cover of another band's song doesn't mean you now own the song, reproducing and distributing a song's lyrics doesn't mean you now own the lyrics.

</comment><comment><USER37> Next:

1) Google will apologize and remove genius.com from results 2) Traffic at genius will plummet 3) Genius will beg for mercy, and give Google full rights to all material

<comment><USER38> That already happened once a couple of years ago for their blog spam SEO hack.

</comment></comment><comment><USER39> 1\. SELECT * FROM adsense_payouts ORDER BY amount DESC. If no results, SELECT * FROM search_results ORDER BY clicks DESC.

2\. If y > x, where x = ((purchase price of company from #1) / 3) and y = (amount of payout) or y = (clicks * 1000) in #1

3\. Clone MVP, remove company from adsense_payouts and search_results

</comment><comment><USER40> LyricFind Offers Corrections to Inaccuracies in Wall Street Journal Reporting [https://lyricfind.com/index.php?id=316](https://lyricfind.com/index.php?id=316)

</comment><comment><USER41> You mean the content created and owned by the actual song writers or labels.

</comment><comment><USER42> Anecdotal, but I was looking up lyrics for a song, and AZLyrics and Genius had slightly different lyrics. Google used AZLyrics version.

<comment><USER43> My experience has been the same, not once but many times. Often I consider the lyrics on Genius to be more accurate, to the point where I am in the habit of bypassing whatever Google tells me the lyrics are and searching directly for the former.

</comment></comment><comment><USER44> Frankly, what do they expect to gain here? A few thousands bucks? Even if Google is getting the lyrics from their site, it's not like they're irreplaceable. Seems like grasping at straws, and if I was an investor, I'd be worried.

</comment><comment><USER45> "It's not fair! We stole these lyrics first"

</comment><comment><USER46> And I ask 'so what?'

</comment><comment><AUTHOR> Paywall link: [https://www.wsj.com/articles/lyrics-site-genius-com- accuses-...](https://www.wsj.com/articles/lyrics-site-genius-com-accuses- google-of-lifting-its-content-11560677400?mod=rsswn)

</comment><comment><USER21> IF this is about position 0 results Google allows you to opt out as they say here [https://support.google.com/webmasters/answer/6229325?hl=en](https://support.google.com/webmasters/answer/6229325?hl=en)

"You can opt out of featured snippets by preventing snippets on your page using the <meta name="googlebot" content="nosnippet"> tag on your page. This will remove all snippets on your page, including those in regular search results."

The WSJ also comments that rap genius does not have rights here - <USER2> disclosure I am an investor in Hipgnosis (SONG) - I trust Rap genius are paying them correctly.

<comment><USER26> The snippets aren't coming (directly) from Genius, though.

> In a statement, Google said the lyrics on its site, which pop up in little > search-result squares called "information panels," are licensed from > partners, not created by Google.

> In 2016, Google partnered with LyricFind Inc., a Canadian company that > secures deals with music publishers allowing companies such as Google to > publish lyrics online.

The meta tag would have no effect. One of Google's vendors is stealing from Genius, not Google directly.

<comment><USER21> Interesting so why are rap genius not suing them?

And have never heard of google licencing position 0 snippets before. And in the UK I see the actual song writers and publishers credited which is sort of what I would expect

<comment><USER47> Citing a much smaller company means there's probably no media exposure. This move is as much as a PR stunt as it is an actual legal claim.</comment></comment></comment></comment>


Greenland is melting in a heatwave. That's everyone's problem - <AUTHOR> https://www.cnn.com/2019/07/31/europe/greenland-heatwave-climate-crisis-intl/index.html <comment><USER2> _During [2012] Greenland 's ice sheet lost 450 million metric tons -- the equivalent of more than 14,000 tons of ice lost per second._

 _During a year like 2012 or 2019, water produced by Greenland 's ice sheet adds more than one millimeter to global sea levels, according to Box. But countries in the tropics could see a rise of two millimeters or more, he said._

One millimetre? It's hard to get panicky about that, unfortunately.

<comment><USER3> Seriously? It's the entire ocean... it's only going to get worse and possibly accelerate. What does a decade adding 1cm do to salinity, microscopic life, water temperature, storm surge and god knows what else? I read your quote from the article and panicked. I'm even more panicked that there's people who can read something like that and not be deeply alarmed. What's happening to our planet makes me sick, and your apathy makes me even more sick.

<comment><USER2> At 1mm a year it would take _one thousand years_ to get one metre of sea level rise.

That's not the sort of slogan that'll likely motivate a lot of change.

That's ignoring the potential for runaway feedback loops.

I'm just saying that it didn't, in fact, cause much change, as evidenced by the business-as-usual scenario we find ourselves in seven years after 2012.

<comment><USER4> It's not the only source of sea level rise, or even the major one - that I believe is expansion from rising sea temperature. So it's an _additional_ 1mm on top of the others, and any catastrophic glacier collapses such as may be approaching with Thwaites in the Antarctic.

The more that melts results in changing albedo and smaller thermal mass to encourage an accelerating melt - a small runaway feedback loop. Rising air and sea temperatures will accelerate it further.

You and I may not care that much - _yet,_ but those in the Marshall Islands, Maldives and other low lying regions almost certainly care about every millimetre. Sea level rise is probably the least dramatic effect of climate heating, but the most inexorable. It takes a while to melt 650,000 cubic miles of ice, yet we seem to be managing to get going. It will accelerate.

It _should_ be cause for major concern.

</comment></comment></comment></comment><comment><USER5> They mention in passing that last year was the coldest in decades (in Greenland). What did that do to the ice? Did it increase?

</comment><comment><USER6> It is not just the water. It is also changing the reflectivity (albedo) of the earth which results in even faster increasing temperatures. This _might_ lead to a self sustained acceleration as soon as the permafrost is melting and the CO2 is released into the atmosphere.

[http://www.promice.dk/DarkeningIce.html](http://www.promice.dk/DarkeningIce.html)</comment>


Google Is Butchering The Written Word, or "How to Buy PEX Tubing Online" - <AUTHOR> http://www.wagsrevue.com/Issue_5/index.php#/81 <comment><USER2> If it wasn't for the fact that this site has the single most annoying pagination scheme ever, or the fact that this author feels compelled to write long, distracting, inane footnotes, or the fact that even in the main text the author feels compelled to write long, distracting, inane asides, I might have had the patience to read more than two "pages" of this.

EDIT: Apparently he gets all the way from page 81 to 89 to start expressing his main point: SEO is changing writing styles for the worse. I'll refrain from commenting about whether this guy has any standing criticizing other people's writing style.

<comment><USER3> It's not perfect, needs some testing on smaller screens, and isn't my favorite color, so I'll write another single-sentence paragraph to tear it down and ditto the travesty that is experimentation and originality, and, we shall see for hopefully the author will drop by and get to see that I thought he sux and will fix all the things I don't like about his writing and page turning mechanics and all such productive endeavors, and then the world will truly be a better place, _for I have made the other into me_.

(Sarcastically said, even while I cringe as I think of all such hit jobs that I have done in my lifetime)

</comment></comment><comment><USER4> It feels to refreshing to read an essay that gets away from the "blog" style of writing. There are few writers on the internet and a lot of people writing articles. The articles often make great points and have excellent content but rarely is reading them fun for the sake of reading.

<comment><USER5> Your mileage may vary I guess. I found it obnoxious, dense and far too in love with itself. When I hadn't found a point by the second page (with no obvious indication of how long it was going to ramble) I gave up.

</comment></comment><comment><AUTHOR> A PDF version, for those so inclined: <http://www.wagsrevue.com/Download/Issue_5/Litton.pdf>

</comment><comment><USER6> Best is the comment on his shambolic PEX article that he quotes in footnote #15:

"Finally, someone has succinctly and clearly articulated this process. Buying pex tubing online has never been easier - thanks!"

 _shudder_

</comment><comment><USER7> The nut graf is 8 'pages' in:

 _That is to say, the AdSense program makes possible an entirely new and utterly despicable business model online: get an assload of written content together—quality be damned—distribute it across a bunch of different sub pages of a central site, add AdSense at every turn, and voilà—a healthy revenue stream fully formed from the head of Zeus._

The essayist is a former Demand Media pieceworker feeling guilty about the useless crap writing he did for them, including "How to Buy PEX Tubing Online". He reworks an old Michael Caine quote to good effect:

 _Ah, fuck all. Your essayist's name will be attached to that rubbish in perpetuity, for anyone and everyone to stumble upon online. He wishes he could be like Michael Caine in regards to his role in Jaws IV: "I've never seen it. I hear that it's awful. However, I have seen the house that it built, and it is terrific." The closest your essayist can come: "I have seen it. I bloody well wrote it. And the Subway sandwich and 12-pack of Miller High Life it purchased were mediocre at best."_</comment>


David Pogue: The Future of Skype - <AUTHOR> http://pogue.blogs.nytimes.com/2011/05/12/the-future-of-skype/

<comment><USER2> It would be nice to see Skype integrated into XBOX Live. We might be seeing that experience grow in value, keeping more eyes in the network by building out their interactive communications feature set.

</comment><comment><USER3> If I remember correctly from the Kirkpatricks Facebook Effect, there is a lot of ego play in those acquisitions. Although I need to say, that it would take a lot of ego out of me to shell out 8.5b :) Marcin / <http://linkfindr.com></comment>


Programming at the REPL (2018) - <AUTHOR> https://clojure.org/guides/repl/guidelines_for_repl_aided_development <comment><USER2> The REPL is still something that I haven't quite mastered, but what I enjoy doing right now is working in files and using a REPL connection to evaluate expressions within the file. It feels like a happy medium between "do everything at an (ephemeral) REPL prompt" and "do everything in a file, save, and reevaluate the file."

My weapon of choice right now is vim-iced[0], which is a batteries-included VIM plugin that, in addition to providing a REPL and keybindings to evaluate expressions under the cursor, also allows me to auto-format my files on save.

[0]: [https://github.com/liquidz/vim-iced](https://github.com/liquidz/vim- iced)

<comment><USER3> Yep. Thats what I do too.

For emacs users, 'eval-region' and 'eval-expression' are your friends.

<comment><USER4> And if you have language support in org, use an org file.

      #+BEGIN_SRC lisp
        (+ 1 2)
      #+END_SRC

      #+RESULTS:
      : 3

(type C-c C-c inside the source block)

If you use noweb it'll also include referenced blocks in the evaluated unit:

      #+NAME: foo
      #+BEGIN_SRC lisp
        (defun foo (n) (+ 1 n))
      #+END_SRC

      #+BEGIN_SRC lisp :noweb yes
        <<foo>>
        (foo 2)
      #+END_SRC

      #+RESULTS:
      : 3

This lets you have many versions of code in one file (if that's a sensible thing for you, very useful when exploring a new library or concept though), and in the end you can aggregate it all into one source file for sharing with others:

      #+BEGIN_SRC lisp :tangle foo.lisp
        <<foo>>
        <<bar>>
      #+END_SRC

(type C-c C-v C-t to create the file)

I've mainly used this (for interactive development) with Common Lisp, but it should work for most other languages that offer similar interactivity.

</comment></comment></comment><comment><USER5> I had my mind lightly blown watching someone using Squeak Smalltalk to interactively prototype something or other.

They purposefully called a method which did NOT exist, used the debugger to partially unwind the #doesNotUnderstand stack, implemented the method, which then returned the expected result as if the method had existed all along. Benefits of super late binding I guess.

<comment><USER6> Sounds cool, but what exactly is the advantage of doing it like that?

<comment><USER4> There are a couple reasons and ways to use that approach.

Unlike batch compiled languages, Smalltalk and Common Lisp (and some others) will throw an exception/signal an error/whatever that indicates that a function doesn't exist. This means that you can insert these calls and, unless they actually occur, the rest of your program runs just fine. In most batch compiled languages you'd at least need to insert a dummy method/function (in C# you'll see _NotImplementedException_ being thrown in these).

When you encounter the exception, in languages that support it, you can write the code at that time and then let the system resume, or tell the debugger to return a value. Maybe you don't know how to implement that function, but you know the kind of thing it should return and, for some reason, you don't want to leave function floating out there that just returns a dummy value permanently ( _(defun random () 4))_ ).

If you use a language like Smalltalk, there's also a tendency to write very short methods. You could use this approach to create your program in a more top-down fashion (versus bottom-up) by doing something like this (I don't know Smalltalk so this is lisp):

      (defun main() (factorial 10))

Debugger is brought up because _factorial_ doesn't exist.

      (defun factorial (n)
        (fact-aux n 1)) ;; not really needed in Common Lisp, but just to illustrate

Again the debugger is brought up so we define the next function:

      (defun fact-aux (n acc)
        (if (<= n 0) acc (fact-aux (1- n) (* n acc)))

If you already have a design in mind (sketched out on paper perhaps), you could use something like this pretty effectively. Not sure I would though.

</comment></comment></comment><comment><USER7> I don't have much to add to this discussion except to say that after years of repl-driven development in Clojure I've switched to Ruby as my primary language, and the iteration cycle is just really slow. I feel like I've traded in my fighter jet for a commuter car.

<comment><USER8> How would you contrast developing with the Clojure REPL compared to irb? I've found irb to be pretty useful for some quick and dirty tasks, albeit not the same level as Clojure (or most Lisps, really).

<comment><USER7> My experience with IRB has been so-so. I've found it fine for experimenting with small functions as I develop them, poking at interfaces, etc. But it's really nowhere near the experience I had with Clojure and a repl-integrated programming environment. I've only been using Ruby on Rails for a little under a year, so I have some more learning to do, but I'm not hopeful about the productivity story.

Repl-driven development in Clojure with Emacs and CIDER [0]:

You develop a namespace or two at a time and you're looking at a handful of files in your editor. You can move between function definitions, modify them, and re-evaluate them as easily as moving the cursor and pressing a key. The whole editor becomes a playground: every piece of code you see can be changed and evaluated as fast as you can think. You can execute a web request from cURL or the browser, and your Clojure repl is hooked into the running program. So you can capture real inputs, store them in temporary vars, play them back, change them on the fly, etc.

The IRB is just very linear in comparison.

[0]: [https://cider.mx/](https://cider.mx/)

</comment></comment></comment><comment><USER9> Clojure[Script] is worth learning just to experience a REPL-driven development environment.

Some editors and IDEs support it better than others, though, notably Emacs and Atom. Cursive (for IntelliJ) is pretty good, and Calva (for VS Code) is promising, but they lag behind in polish and features when I tried them. For example, I don't think Cursive has inline output next to the expression you're evaluating like Proto-repl for Atom does, and once you've tried that you don't want to live without it.

I don't write much Clojure these days but miss the REPL-driven experience. I recently discovered Quokka and Wallaby for JavaScript/TypeScript:

[https://quokkajs.com/](https://quokkajs.com/)

[https://wallabyjs.com/](https://wallabyjs.com/)

They offer a great experience that beats console.logging your way to success or step-through debugging by far.

Just highlight the expression you're interested in and get inline output (in the paid version of Quokka) right in your editor, including evolution of values in for loops and the values of data retrieved from fetch requests. It has greatly shortened the feedback loop for me and both plugins were much easier to set up and configure than Clojure's REPL integrations.

</comment><comment><USER10> I always wonder why repl driven development is not as popular as it (in my opinion) deserves to be? Am I missing something here?

<comment><USER11> There is a non-virtuous (vicious not the right term) cycle at play.

Many problems are only solvable with compiled languages, for performance, correctness, or other non-functional considerations. Many people are first taught on compiled languages, and bring those approaches to dynamic languages. The popular dynamic languages, in their standard/common toolchains, do not have robust repl support (looking at you Python and Javascript). The absence of a robust repl workflow means people who are exposed to it in those languages aren't really impressed by it. Really too bad.

<comment><USER12> I do repl driven development just fine with ipython and autoreload setup. What features do you feel are lacking?

<comment><USER11> Yes, when I work in python, I do that too. It certainly works ok.

The place I would start from a critique perspective is around lifecycle. Python has encouraged carelessness and overwork at module load and init time, and there aren't common protocols (that I have seen) that involve standing up a graph of objects across an application after a single module reload. So when you reload a single module and the names in the module now point to different data and code elements, all the downstream dependencies on those names have to change as well, and Python doesn't have patterns for organizing and managing at that level.

This also impacts runtime introspection, which is a key benefit of a repl oriented language. One implication is that there is not at all a pattern of "repling into" a running python application to poke around and see what is going on. To most python programmers this is a foreign concept.

Related others involve code style, and implicit vs explicit ways of referring to and moving data around, which also impacts runtime whole system introspection.

Python has all the pieces to have a very nice repl-first programming model, but lacks patterns for key parts of that- explicitly standing up the graph of live objects, and using a repl to interact with a live system with live objects.

Hope that makes sense.

</comment></comment></comment></comment><comment><USER13> I do a lot of scientific computing, mostly in Julia, and having a REPL at my disposal is extremely useful. There's a great VIM plugin [1] that enables you to send code from the editor to a terminal to be executed, e.g. a tmux session which has a REPL open. It can be coupled with other nice plugins such as vim- ipython-cell [2] and vim-julia-cell [3].

[1] [https://github.com/jpalardy/vim-slime](https://github.com/jpalardy/vim- slime)

[2] [https://github.com/hanschen/vim-ipython- cell](https://github.com/hanschen/vim-ipython-cell)

[3] [https://github.com/mroavi/vim-julia-cell](https://github.com/mroavi/vim- julia-cell)

</comment><comment><USER8> A REPL can also be excellent for operations work and ad-hoc tasks. I use it a lot when I need to extract some data from a REST API. Can create a toolbox of methods over time for making calls, and add new ones in an ad-hoc fashion, then use those to script larger tasks. Exploration, analysis, minor ETL tasks, debugging state of deployed systems, etc. etc. can all be enchanced by a REPL.

<comment><USER14> yea I'm an idiot and need to get my hands dirty with response types so I'm often just building up lots of top level `(def body ..)` variables that will eventually be moved into a single function.

But just messing around in my editor connected to a repl lets me really breakdown a task while I'm figuring it out.

</comment></comment><comment><USER15> I started learning Clojure yesterday,I've gone through the docs here and have a grasp of the language. Does anyone have some good resources for further learning? Maybe some high quality tutorials? I'm mostly interesting in web / apis

<comment><USER16> I don't think there's a single best Clojure book, so I'll recommend several (all available on Safari if you have that). For general language, syntax, idioms:

* The Joy of Clojure (whirlwind tour of the language and Clojure philosophy.) * Brave Clojure (A very wordy, hand-holdy approach. I really like this one for dense topics like core.async which can take time to wrap your head around) * Programming Clojure - just an all around solid reference. Once you've got a command of the language, this becomes more valuable imo .

Now, there's a large gap between knowing Clojure's syntax and writing effective programs in the language. Clojure is not Python, or Haskell, or Java, and, as such, you don't build programs in the same way. So, as a final recommendation, I'd suggest the book Clojure Applied. This book deals with going from "I know the language" to "I know how to build things in the language"

For the web, get ready to beat your head against a wall for hours and hours on end ^_^. Lisp's "small pieces" philosophy is both a blessing and a curse. Outside of a framework called Luminus, and a few leiningen templates, the way to do things in Clojure land is by stitching a bunch of ad-hoc libraries together by hand, which means a lot of evaluation of not-too-popular github repos.

Once you've got everything dialed in though, it's an absolute joy to use.

<comment><USER17> For the newbie Clojurist trying to do web stuff I'd highly recommend Luminus. I don't agree w/every choice the framework makes, but those are minor details compared to the choice paralysis one tends to suffer without some experience.

Clojure is too good to miss out on because of stuff like that.

</comment></comment></comment><comment><USER18> Can someone knowledgeable explain how are lisp REPLs different from Python / Ruby REPLs? What is the differentiating point of REPL driven development?

Is it that you interactively test your functions and add them to source file once they work? Or is it that with editor integration, you can load functions to REPL as they are defined? Am I missing something obvious?

<comment><USER19> I've answered similar questions several times over the past few years, but I don't mind repeating myself. It offers me a glimmer of hope that my preferred way of working may not fade away, after all.

Consider the standard Common Lisp generic function UPDATE-INSTANCE-FOR- REDEFINED-CLASS ([http://clhs.lisp.se/Body/f_upda_1.htm](http://clhs.lisp.se/Body/f_upda_1.htm)). It reinitializes an object when Lisp detects that the object's class definition has changed.

Ask yourself this: who would call such a function? Why would anyone ever invent it? Not only did someone invent it, a committee of some of the world's smartest and most experienced Lisp programmers wrote it into the ANSI standard for the language. What were they up to?

UPDATE-INSTANCE-FOR-REDEFINED-CLASS is not a weird anomaly; it's part of a carefully-considered set of features and protocols designed to support a specific style of programming. The Lisp runtime calls it for you automatically when it touches an object whose class definition has changed.

If you've defined a method specialized for it, then Lisp executes that method to rebuild the touched instance as if it had originally been instantiated from the class's new definition, and then your program goes its merry way. If you didn't specialize UPDATE-INSTANCE-FOR-REDEFINED-CLASS for this case, then the Lisp drops you into a breakloop.

A breakloop is an interactive repl with full access to all of the runtime's memory and all of the language's features, including visibility into the whole call stack that landed you in the breakloop. You can wander up and down the call stack, inspect anything in the runtime, edit bindings, redefine types and functions, and resume execution either at the point of control where the breakloop started, or at any other point for which the breakloop exposes a restart.

UPDATE-INSTANCE-FOR-REDEFINED-CLASS is not the weird fever dream of a confused eccentric. It's part of a purposeful system design intended to support a style of programming in which you build a program by interacting with a live runtime and teach it, interaction-by-interaction, how to be the program you want, while it runs.

It's a particular example of a general approach to programming best exemplified by these old systems. That general approach is the answer to your question: "Can someone knowledgeable explain how are lisp REPLs different from Python / Ruby REPLs? What is the differentiating point of REPL driven development?"

The differentiating point is that the entire language and system is thoughtfully designed from the ground up with the assumption that you're going to be changing your work in progress while it runs, and that you should be able to change absolutely anything about it as it runs and have a reasonable expectation that it will continue to work while you do it.

I like to call this style of programming "programming as teaching", and distinguish it from the much more widespread "programming as carpentry", in which the programmer is, metaphorically speaking, at a workbench banging together artifacts and assembling them to see how they turn out.

To be clear, I do not claim that the teaching approach is objectively better than the carpentry approach. I claim only that I, personally, am happier and measurably more productive using the teaching approach. I know that some other programmers report the same thing, and I suspect that if the teaching style of programming were more widely known, then there would be more programmers who prefer it.

There are several sibling comments that assert that any language can be made to support repl-driven programming, or that offer various languages and systems as examples of repl-driven programming. I'm sure that's all true, for some relatively restricted version of repl-driven programming, but the gold standard in repl-driven programming is programming as teaching in the style of old-fashioned Lisp and Smalltalk systems. These old systems offer amenities that the younger alternatives touted here do not match. I want more people to be aware of what they're missing.

Starting in the 1980s, I grew accustomed to systems that could start from cold in about a second, presenting to me a complete interactive development environment with all tools preloaded and ready to work, with the whole dynamic environment of my work in progress in the same state it was in the last time I was working with it. Moreover, I was accustomed to being able to take a single file from one machine to another to reproduce that same whole working environment equally quickly and easily on the new machine.

I could save the entire dynamic state of the running system to an image file, a serialized version of the running system's memory. I could later start up the system with that image file and be exactly where I was when I saved the image, right down to the positions and contents of all the open windows. I could save an image showing some bug or some strange behavior and give it to a colleague so that they could see it, too, and interact with the restored dynamic state to debug it.

I enjoyed comprehensive whole-system reflection that enabled me to view and edit absolutely everything in the running system while it ran. I could inspect absolutely everything, including the development environment and all its tools, interactively change any variable or field value, redefine any type or function, and continue to work with the changed system without stopping and restarting. (Obviously, if I made a bad change I might break the system, but remember, I could kill it and get back to where I started in a second or so).

I could start some process running--perhaps a 3D animation in a game, or a discrete-event simulation, or whatever--and change any values or definitions I liked to see what changed in the running process, without stopping the process to rebuild. For example, I could tell a rotating copper cube to become a glass icosahedron and reasonably expect to see my changes immediately reflected in the running program. This property is invaluable not only in games, simulations, and any kind of work with a visual-design component, but also in any kind of exploratory programming, where you're constructing data structures and evaluating expressions interactively to test your ideas.

Similarly, I could build some speculative data structure to explore an idea, and define some functions to operate on it. I could evaluate those expressions to see their results or to change the example structure. I could inspect the structure interactively and edit it in place if I think something different would work better. If I think a problem is caused by some structure or value in it, I could use the inspector to change it and see. If I thought one my my functions was doing something I didn't expect, I could insert a call to break, to activate a repl from inside the function call that would enable me to inspect and edit the data structure, redefine the function, and continue from there.

Anything the development system could do, I could do by typing an expression into the repl. As an example, nowadays you can still rebuild the whole Clozure Common Lisp environment from the ground up by typing (rebuild-ccl :full t).

The point is not that I would want to rebuld my Lisp from the repl all the time. The point is that the repl doesn't impose any aribtrary boundaries on what I can do. If the language and development environment can do it, I can do it from the repl. This is one of the properties that distinguishes the whole- system interactive design of these old tools from the more limited repls offered by newer ones. In pretty much every repl I've used other than old- style Lisps and Smalltalks I'm all the time stumbling over things you can't do from the repl.

I mentioned breakloops above. Their absence in younger languages and tools seem to me like some sort of sin, like we're tragically abandoning some of the best lessons of the past. Few newer development systems have them, but they're incredibly useful--at least if the language runtime is designed to properly support interactive programming.

A breakloop is a repl with all of the same affordances of the normal repl, but extended with all of the dynamic state of the control path that invoked the breakloop. If an error or an intentional call to break triggers a breakloop somewhere deep in a stack of recursive function calls, you get a repl that can see every frame of that stack, and every variable and value lexically accessible from it. You can browse all of that whole, change values, and redefine functions and types. You can resume execution at your leisure, and any changes you made in the breakloop will be visible in the resumed computation just as if that's how things were originally.

Proper breakloops don't just improve error messages; they replace them wholesale with an entire species of programming that lays the whole dynamic state of the system out on the table for you to examine and modify while the program continues to run.

Moreover, everything I just described about breakloops can also be automated. These old systems provide not only interactive tools for rummaging through the dynamic state of a suspended computation, but also APIs for handling them under program control. For example, you can wrap an arbitrary function call in condition handlers that will either drop you into a breakloop and enable you to vivisect the program state, or consult the dynamic state and compute which of several restarts to activate in order to transfer control to a path of your choosing.

I'm banging up against HN's length limit, but the above, I hope, goes some way toward answering to your question.

<comment><USER20> Very nice description of the power of the Common Lisp REPL.

Did you have the pleasure (?) of working on any of the lisp machines?

I got into Common Lisp in the early 90's and even then, with GCL and CMUCL, it blew my mind at how much more productive I was compared to my years of C,C++ just due to the one fact that I was now freed from the edit, compile, run cycle, let alone all the other benefits.

It's truly a joy. I don't have a full grasp of why others don't make the deep dive. I suspect it just had too much a learning curve nowadays, with Emacs being almost a requirement, and developers, like most humans, don't like to slow down for a while while they learn before they speed up.

<comment><USER21> FYI the Atom SLIMA package is very good: [https://lispcookbook.github.io/cl- cookbook/editor-support.ht...](https://lispcookbook.github.io/cl- cookbook/editor-support.html) Emacs is still the best, but not THE required editor anymore.

<comment><USER20> Atom is OK, but many people bound to eventually be caught in it's local maxima, such as needing to run in a terminal.

</comment></comment></comment></comment></comment><comment><USER22> The REPL has spoilt me. Working with languages without a powerful REPL, even ones with a shell like JS/Python/Lua/Ruby feels like a regression comparable to moving from zsh to windows cmd.

<comment><USER23> If you think zsh to cmd is a regression you should try out bash. It's vastly superior to zsh in literally every regard. If you still aren't stratified use fish.

Genuinely never got how people use zsh. It's the slowest and clunkiest shell I've ever witnessed it's fucking slower than most electron gui software.

<comment><USER24> Personally I've found zsh's features to massively outweigh it's "slowness" (although I haven't really noticed zsh as "slow", per se)

`esc, esc` to prefix the line with `sudo`, better tab completion (both the navigatable UI with arrow keys, along with the intelligent tab completion (I type in "./llo" and it finds the file "./helloworld.sh")), combined with the massive amounts of customization and modules you can install makes it a shell killer. The only shell I've found that I like more is Windows' Powershell, however that's mostly because I __love__ the Powershell language and syntax.

However I will admit that almost all of what I just complimented is part of oh-my-zsh, which is a community add-on for zsh which makes the experience so much nicer. In my time I've used bash, csh, pwsh and zsh and if I could, I'd always use zsh for termanal interactivity and pwsh (Powershell on Linux) for scripts.

</comment></comment></comment><comment><USER25> Programming at the Haskell REPL is a great experience, whether it's if you're exploring data, testing out a parser, or running an effectful computation with a given state. On the other hand when a language is impure like Scheme or Clojure I've often found myself needing to reload the REPL again and again to get to a clean state.

<comment><USER26> I think obviously it's much _easier_ to create a mess in Clojure this way, but I think in most sane codebases the pure and impure stuff is quite neatly demarcated. Generally people have learned to structure systems as some sort of root data structure containing various components, which can be started, stopped or reset at will. You have to put that in place yourself, but I've not worked on a project where it's been an issue in many years.

For what it's worth, I have found dynamically loading new libraries at runtime easier in Clojure than Haskell, which is another source of REPL friction for me, although I rarely use the latter these days.

</comment></comment><comment><USER27> Here is a question that I have about Clojure and its REPL. I have tried 3 times over a period of a year or so to get it to behave like a common lisp REPL and every single time I have hit a brick wall called project.clj and/or deps.edn (which open a terrifying black hole to maven). My simplest use case is to be able to call `(expt 2 10)` from a bare clojure install without leaving the repl. As far as I can tell it is impossible to achieve this. I finally gave up and wrote a gentoo ebuild to install the numeric tower just to see if it was possible [0]. What I learned was that I have no idea how clojure libraries interact with the JVM. `pomegranate` gets the closest but I'm still fairly certain that you can't install that from a repl without resorting to hackery [1]. I think I understand the tradeoff toward using project.clj and deps.edn to create sane and static environments for a project, but the friction is larger than nearly any other language that I have tried because you are practically forced to create a project structure in order to do anything.

0\. [https://github.com/tgbugs/tgbugs-overlay/blob/master/dev- jav...](https://github.com/tgbugs/tgbugs-overlay/blob/master/dev-java/math- numeric-tower/math-numeric-tower-0.0.4.ebuild) 1\. [https://github.com/clj- commons/pomegranate](https://github.com/clj-commons/pomegranate)

<comment><USER28> Just install lein and do lein help new to see available templates. Or lein new myproject to get the framework for your own project. Then Cd into that folder and do lein run

</comment></comment><comment><USER29> I'm a big fan of REPL programming and miss it a lot when I work with compiled languages. There is definitely a 'right' and 'wrong' way to do it though. REPL programming doesn't replace the need to write tests and it actually allow you to write those tests faster as well as build more realistic faked versions of upstream or downstream dependencies.

</comment><comment><USER30> Programming in the REPL is something I do all the time and generally enjoy, but I sometimes feel like the actual design of the program then becomes too focused around REPL usage. Too much abstraction can harm performance and waste time. The REPL encourages this by making you think about the internals of your program as an interface that will _actually get used_ , when in reality some function may get called twice ever from within your own code, and isn't really meant to be exposed. But because you are repeatedly invoking it manually via the REPL, it feels like an interface worthy of considerable design.

Maybe it is, and maybe it isn't. I've just noticed this tendency in myself when working in REPLs. Not every part of your program is an API.

</comment><comment><USER31> I've enjoyed noodling around w/ Javascript in various simple REPLs. I love the feedback, but it also feels a lot like using "ed" versus a visual editor. I find myself writing code in a text editor, then pasting bits and pieces into the REPL.

I'd love to have tooling that let me develop in a REPL, but also had a text editor to let me edit objects / functions / etc in that manner, too.

<comment><USER32> Well, with proper REPL integration, you never really type/copy/paste into the REPL.

You write your code in a source file like normal, highlight what you want evaluated, and have the REPL evaluate it.

Clojure has a great REPL because you are effectively working inside your own codebase, as it runs. Its a strange idea to wrap your head around, but very cool.

You can get something similar to this approach in JavaScript using Quokka[0]. It's not as complete as a Clojure REPL, but its still quite nice.

[0] [https://quokkajs.com/](https://quokkajs.com/)

<comment><USER31> I'll check that out. Thanks for the recommendation.

</comment></comment></comment><comment><USER14> If anyone hasn't tried Clojurescript's browser REPL, it's super easy to use now when using Shadow-CLJS for your project.

When you boot shadow up it'll create an nrepl server for you, you can just connect to it and invoke `(shadow/nrepl-select :app)` and it'll latch on to the running application `localhost:3000`. And it works really well, very awesome.

</comment><comment><USER33> The clojure REPL is nice, don't get me wrong. But I think the reason people rely on it more than in other languages is because of clojure's slow startup time. If you could just make a change and run tests immediately, you'd see much less REPL abuse.

<comment><USER4> Common Lisp is not terribly slow to start, and people rely on its REPL when programming in it. Even Python's REPL is quite popular, and it's not slow to start either.

The REPL is relied on because it's useful for exploring parts of a system or program. It's like being able to both dissect and vivisect the system without having to go through all the normal issues of setting up a debugger and instrumentation. The environment and program is just there.

<comment><USER34> I never really did much REPL programming until I started using pdbpp with a bunch of aliases and customizations in pdbrc and pdbrc.py (the former does aliasing[0] the latter does setup before boot) it makes iterating with a test suite so much faster.

[0] For example:

        alias cc import pdb; pdb.disable()
        alias ppr pp response.json()

</comment></comment></comment><comment><USER35> Common Lisp REPLs and Smalltalk have ruined me for life as far as that goes.

<comment><USER36> Can you expand on that?

<comment><USER20> Once you get over the learning curve, you really begin to see the productivity gains in your day by day to the point that any language without those capabilities fall short. Combine that with a world where most jobs seem to place a higher priority on other things than programmer productivity such as programmer fungibility, and your left with very few choices of places to work that allow you to be at your most productive.

Say only Common Lisp had floating point arithmetic (or first class functions, or...) , and most other languages only had integers. You'd probably feel a bit hamstrun when tasked to do certain tasks in those languages.

</comment></comment></comment><comment><USER37> Am I missing something? This article seems very thin.

</comment><comment><USER38> Bob Martin was talking about this in May too. I think he decided to go back to tdd. [http://blog.cleancoder.com/uncle- bob/2020/05/27/ReplDrivenDe...](http://blog.cleancoder.com/uncle- bob/2020/05/27/ReplDrivenDesign.html)

<comment><USER39> I knew his article would get misconstrued this way to clarify he almost certainly will be using a REPL in Clojure (even running tests happens through a REPL in Clojure) but I think what he's trying to convey there is that he's not designing in the REPL but rather with TTD

Which honestly is fine but most people reading the article won't be in a REPL based language like smalltalk or lisp so will just understand REPL bad TTD good

<comment><USER40> "rapid feedback is no substitute for software design and methodic problem- solving." \-- clojure.org

they also mean TDD</comment></comment></comment>


Life of a Data Labeler - <AUTHOR> https://scale.ai/blog/positive-externalities <comment><USER2> I know nothing about this particular company. I also see no reason to assume it's particularly bad (it could very well be above average). But I do see a lot of data around company engagement. There's basically no chance this level of positivity is ubiquitous for them, especially when the target workforce appears to be people otherwise below the poverty line.

Although pointless tedium is not the most important factor in rating a job, I think data labeling could well be along the most pointlessly tedious jobs ever created.

<comment><USER3> I'm a software engineer at Scale and the author of this blog post.

Let's talk about Venezuela for a second. ~75% of the population lost >19lb in body weight in a year according to this survey: [https://www.upi.com/Top_News/World- News/2017/02/19/Venezuela...](https://www.upi.com/Top_News/World- News/2017/02/19/Venezuela-75-of-population-lost-19-pounds-amid- crisis/2441487523377/) It's unbelievable that we haven't figured out how to prevent people from living like that in the 21st century. I think it's totally deplorable and honestly an affront to humanity.

You know what I think the most effective way to combat large scale poverty is? Not by working for an aid agency (we've all heard the horror stories) - instead, how about making those people economically valuable? The internet is an amazing way to reach those people - and guess what - Scale is actually doing that (evidence: these stories). If we continue to grow, we'll be doing that even more.

To be clear, this isn't the main mission of the company - but I don't see how anyone could think it isn't a great side effect. Hence the title of the blog post - positive externalities.

<comment><USER4> I believe the OP assumed, as a company, Scale means well and that the team is potentially bringing better wages to people who don't traditionally have it.

The outright dismissal of OP's criticisms/comments doesn't allow for a discussion in that data entry is a very tedious job along with maybe there are people who are unhappy with the work but very happy with the pay (which I think is perfectly okay).

The comment reads as "I'm going to tell you off" with the `- and guess what -`.

<comment><USER3> Sorry I should've explicitly said this, but I was responding to just this part, not the part about the job being tedious:

      But I do see a lot of data around company engagement.
      There's basically no chance this level of positivity is ubiquitous for them

When a company hires many regular people in a place like Venezuela, why wouldn't there be ubiquitous positivity? I'm not from the US; I've lived in a few places with extreme poverty; maybe this is based too much off of personal experience. i.e, I don't think the data the OP is referring to applies here. Getting money for basic needs (if you wouldn't have it otherwise) likely dominates most other concerns, including the work being tedious. From another comment, it looks like the OP's other experience with labelers is in the US - where the next best alternatives they can imagine are a lot better - so it makes sense that those labelers aren't as happy.

I guess what you're asking is - how many of these people find their job tedious? I will say it's a lot less tedious than you might imagine as a first impression - e.g, if you see something weird in some data, you talk to other people about it; if you get good, you train people; when doing a new project, you're learning from your coworkers; if you get really good, you might be asked to help develop training materials, etc. So there's a lot of interacting with other people, and a sense of community. For me personally, I honestly find it meditative to label a lot of data - it feels kind of like tending to a large garden, maybe even fulfilling some deep OCD/obsessiveness desire. Some of our labelers find it meaningful that they're contributing to robotics / self driving cars - e.g, the last interviewee in the blog post.

Back to your question though - how many of these people find their job tedious? I'm not sure how to ask the question to them in a way which gives a satisfactory answer. e.g, I'd expect if we just asked "do you feel like your work is tedious?" the answer would be dominated by people's realistic alternatives, and wouldn't have much to do with the job itself. (so we'd get similarly positive responses) If you can think of a better way to frame that question, I'm happy to ask it and post the responses here :-)

</comment></comment></comment></comment><comment><USER5> I don't feel that the pat in the back is necessary when highlighting these realities of the world economic inequality. The whole article could have been published without the intense PR focus.

To clarify, there is no hard numbers around the quantity of people performing this task, for how long they are employed, their average working hours per day, the median satisfaction rating, the median pay per employee, etc. It feels as if only some happy examples were picked.

<comment><USER6> If they don't like it, why are they doing it? For every rational labeller, it must be better than every other option available to them. Perhaps you're saying the workers are irrational and need some outside for to stop them doing this job? Like it's an unhealthy addiction or is limiting their future opportunities?

</comment></comment><comment> xkcd-sucks It seems present-future "AI" will encode the implicit bias of the global underclass. Which is interesting

<comment><USER7> I'm not familiar with the process of this particular company but in general that's unlikely to have that much impact. While labelling itself might have an effect, lots of biases happen earlier, namely in the selection of samples to be labelled in the first place.

If you think about bias in ML models that we've seen in recent years for example: if you let people label 980 images of old white people and 20 diverse ones that's still a heavy bias, even if they spot and label the 2% outliers correctly.

</comment></comment><comment><USER8> Similar sort of thing with an autonomous food delivery startup from my university:

[https://medium.com/kiwicampus/how-kiwi-empowers-students- in-...](https://medium.com/kiwicampus/how-kiwi-empowers-students-in-colombia- fe99cf1bbc8d)

</comment><comment><USER9> There are many laboratories that hire part-time data labelers to secure their own verified dataset. In fact, many global companies actually create values and earn money from their own various datasets. I think the value will be created from the data itself, less focus on data-processing skills. Of course, modeling skills will be still important at future, but data-processing would rather become much more easier. That's why self-bi tools like Tableau, elastic search are becoming more and more popular. I personally recommend Metatron Discovery, which is an Open-Sourced Big data analytics platform for citizen scientists. Link : [https://github.com/metatron-app/metatron- discovery](https://github.com/metatron-app/metatron-discovery)

</comment><comment><USER10> "Life of a data labeler" is a wildly inaccurate description for "we asked some of our labelers for times when working for Scale made a positive difference in their lives."

What's the median hourly pay for a Scale data labeler? What fraction of their employees enjoy working for Scale? What's their six month retention rate? Amazon's Mechanical Turk has a reputation for grinding people up and burning them out; what makes Scale better?

<comment><USER11> Specifics are intentionally hidden, but it seems like the median hourly wage is somewhere around $1-$2.50 an hour.

The labeler side of scale is hosted at "remotasks.com" and they run IP checks to try and ensure that only people from certain countries can sign up to label data. Also a Facebook account is required for signup...

</comment></comment><comment><USER12> A similar opportunity (and maybe a step up) would be 'crowd tester'; if a Dollar or Euro goes a little farther in your country than in the west, then 1€ for a bug reproduction up to 10€ for a major bug could be an attractive additional income ...

... while of course not providing with a stable regular job, and not necessarily doing much to strengthen the local economy in a fundamental sense.

</comment><comment><USER13> And how am I supposed to know if the attractive, well-educated, contented folks chosen by this company's PR department are actually representative of its workforce?

<comment><USER3> Check out my other comment on this thread. I interviewed these folks and wrote the blog post (got lots of feedback from friends and design help from our awesome designers) - I'm a software engineer, not a PR department, lol :P

I tried to pick the answers which were most well written, not the ones which were most positive/negative. Personally I do think this is representative of the labelers who've stuck with us, but at this point don't have the energy to argue this; hopefully my other comment is convincing (i.e, there isn't a high bar to making people happy when their next best alternative is a lot worse)

</comment></comment><comment><USER14> Do they hire them directly or through other platforms? Can't find any info on their website.

<comment><USER15> They operate under a different brand: [https://www.remotasks.com/](https://www.remotasks.com/).</comment></comment>


Show HN: Auger – A fully-hosted automated machine learning platform - <AUTHOR> https://auger.ai <comment><USER2> How does it compare to other AutoML like H20, TPOT and DataRobot?

<comment><AUTHOR> We offer a fast, smart search of algorithm/hyperparameters. All others do random search. Plus hosted offering (unlike H20 and TPOT). Also much less expensive than DataRobot.

</comment></comment><comment><USER3> What search optimizer do you use to get the best model?

</comment><comment><USER4> Do you guys support timeseries?

<comment><AUTHOR> Yes, after you configure your dataset, you can set any datetime column as timeseries.</comment></comment>