On Britain's Intellectual Decline - <AUTHOR> http://stumblingandmumbling.typepad.com/stumbling_and_mumbling/2018/05/on-britains-intellectual-decline.html <comment><USER2> One major theme running through this article is the idea that smart people should know what's good for us, and organize society so that we get it. I've never understood how they are expected to actually do this: wouldn't they always prefer to figure out what's good for _themselves_ and then organize society so that they get _that_?

Try as we might to find a good crowbar to pry democracy off of our representative governments, we can't forget that the "will of the people," however misguided it might be, _is the only thing that reliably includes not ruining them as a priority!_

<comment><USER3> I was with you on that first paragraph, then you had to bring in the "will of the people."

Democracy simply replaces "smart people" with "a majority of voters," which is almost always a minority of the population. So instead of the ruling elites determining what's best for everyone, now you have a larger group of people -- still a minority -- determining what's good for themselves and foisting it upon everyone else.

<comment><USER4> That's not fair. Everyone had the _option_ of voting so nothing is forced on anyone. If you don't like what the people who actually voted picked, then try voting next time.

<comment><USER5> _Everyone had the option of voting so nothing is forced on anyone_

I don't follow. Forcing things on a set of people who wanted something else is exactly how it works, and will still work that way with 100% participation in the vote. When two wolves vote to eat the lamb for dinner, the lamb having voted _not_ to be dinner doesn't make it any less forced on the lamb.

</comment></comment></comment></comment><comment><USER6> _Long debates about philosophy might not have been what the public wanted, but BBC bosses thought they were good for us._

I think a form of education is one of the primary purposes and responsibilities of a country's national TV. Managing a broadcaster so that it gives the public what it wants, rather than what's better for them, is akin to giving kids fries and coke all day, because that's what they want.

<comment><USER7> Assuming the "public" is equal to "children." A bit arrogant to suggest that. Adam Smith suggests that people will always act in their own self interest; perhaps advanced philosophical knowledge doesn't have the same utility to normal people. The attitude that the public doesn't know what's good for them is disgusting; it's the very core of the nanny state.

However, I will concede that many people would consume a healthier diet of entertainment of it were available. But suggesting that people need to have broadcasters or governments to be parents of an ignorant citizenry smacks of the same though patterns condemned in the book 1984.

<comment><USER8> > The attitude that the public doesn't know what's good for them is > disgusting; it's the very core of the nanny state.

It's very demonstrable though - it's why practically every country has an equivalent to US Social Security - and why most democracies are Representative instead of Direct.

Your argument would have more strength if the BBC or national arts funds operated in a vacuum - but they exist in competition with other private, profit-driven organisations. I feel it's important that the public get exposure to programming that commercial sponsors (and thus network- execs/channel directors) wouldn't touch. And it's also essential for unbiased (or as close to unbiased as we can get) broadcast journalism.

(I accept that when a "Premium"-service customer base is large enough, e.g. HBO-sized, the need for state funding is minimised - I think HBO in particular is in a good place to launch a US-based, commercial-free broadcast news service - but smaller countries and markets would definitely need to employ some form of state funding to ensure editorial independence and an informed populace - which can only be good for democracy)

<comment><USER9> Not quite "in competition". If I understand the way TV licenses work (or perhaps worked, in the past) in the UK, you didn't have a choice of paying for the BBC if you had a TV at all.

If that _has_ changed, it might lead to the BBC having to face competition now, when it didn't in the past. That might have an effect on the content, which might be (at least part of) what the article is observing...

</comment></comment></comment></comment><comment><USER10> There's been a recent influx of this sort of discussion in Britain. Most of it seems to be, at the core, the elites' (and those who would like to style themselves as elites) attempts to justify their disillusionment with democracy, which the referendum result caused. It's amazing how quickly people turn on the idea of giving the everyman a say in government, when it gives them the result they don't like. The referendum was a rare example in Britain of where the result wasn't able to be hand-waved away, like is typical with FPTP elections. The result was so significant because it saw the majority of the public reject all the major parties' platforms on the issue, and --I think-- undermined the pretenses of a lot of those in power, who like to frame themselves as being "of the people". Hence the disillusion.

A lot of the discussion reminds me of the arguments put forward by the hereditary peers in the late 90s, before most of them were chucked out of the House of Lords: that their experiences and positions in society made them uniquely able to make important decisions about the country. It's all rather ironic.

<comment><USER11> I think in addition there's a more visceral reason as well. It's the first time in a long time that a decision taken by the populace will adversely affect the "elite" directly. People who have done very well out of EU integration will suddenly find themselves actually having to figure out what to do without it.

Most of them are wealthy and will be able to adapt, but for the first time in a long time they haven't been insulated from the consequences of public opinion.

<comment><USER12> I suspect the wealthy will be fine and it will be the poor who suffer if there is any suffering to be done.

</comment></comment></comment><comment><USER13> My view would to rephrase the hypothesis as "the quality of 'Britain's public intellectual debate' has declined".

This seems true in parts, a friend became intrigued by the quality of debate for Britain's membership of the EEC in 1975 vs. Brexit. Two examples for 1975 are ( [https://www.youtube.com/watch?v=I2jUYryRYII](https://www.youtube.com/watch?v=I2jUYryRYII) and [https://www.youtube.com/watch?v=_zBFh6bpcMo](https://www.youtube.com/watch?v=_zBFh6bpcMo)) and these certainly seem of higher quality.

One hypothesis (similar to Curtis above) was that there were two energised generations, post WW2 and 1960s, who believed that public debate and ideas could change things, and a variety of new-ish institutions and technologies (BBC, TV) could enable that change. They were partially successful, but the energy and enthusiasm dissipated over time.

Another argument is that Britain is reasonably anti the public intellectual (e.g. unlike the French but much better than the US), apart from during certain times of fairly major change (Royal Society/Glorious Revolution; Scottish Enlightenment; post WW2 settlement etc.) and we are going back to our dormant state.

A third may be that the nature of 'public' has changed, and the debate is going on, but not in media forms which stifle and trivialise it (Less optimistic here, the Greens tried hard to change public debate, some say Momentum, certainly we are quite good at up-market PR, brand design and marketing, all of which suck the energy/deflect from certain debates)

In my experience, in private the quality of debate isn't too bad, though a touch cynical

<comment><USER9> > the nature of 'public' has changed

There was "public" debate/discussion before. And then there was the conversation at the tavern, which was a different (and less intellectual) thing. What's changed is the internet, which kind of combined those worlds.

Someone would make a speech or state a position. It would get reported on, in a newspaper article. Many people would have comments, but the newspaper would only print one or two replies (the very best ones) for the world to see. The rest of the discussion would happen in the tavern, where only a few people would hear any individual comment. Such comments would be clearly distinct from the replies printed in the newspaper.

But now the reporting is online, with a comments section, which doesn't filter the replies. The equivalent of the tavern ( _all_ the taverns put together) is now right alongside the original article.

And I think that this may have changed the level of the reporting to some degree, too. They're moving toward the level of the comments - not all the way, but in that direction.

</comment></comment><comment> DC-3 I don't really buy into this. There's still a lot of great academic and intellectual programming on the BBC - Life Scientific and In Our Time come to mind - and British universities are ranked as the best in the world [1].

[1] [https://www.timeshighereducation.com/world-university- rankin...](https://www.timeshighereducation.com/world-university- rankings/2018/world-ranking)

<comment><USER14> And let us not forget the educational masterpiece that is "Cunk on Britain".

</comment></comment><comment><USER15> _On both front benches today there are pitifully few people one could call intellectuals (as distinct from intelligent): Jesse Norman and Barry Gardiner are the only ones I can think of..._

It's rare that a whole thesis can be undermined by the author in less than a full sentence.

<comment><USER16> Not knowing who any of those people are, I could use some context. Care to please ellaborate?

<comment><USER17> Two British politicians, [0], [1], Conservative and Labour respectively, both educated at well known institutions, and both of whom have been academically active. They are being compared against other front benchers, but not the wider British intellectual community.

[0] [https://en.wikipedia.org/wiki/Jesse_Norman](https://en.wikipedia.org/wiki/Jesse_Norman) [1] [https://en.wikipedia.org/wiki/Barry_Gardiner](https://en.wikipedia.org/wiki/Barry_Gardiner)

</comment></comment></comment><comment><USER18> Consumer culture is approximately as old as the Industrial Revolution (maybe a little bit older). You might be able to argue a qualitative or quantitative change at some point, but you can blame just about anything on a "rise in consumer culture" happening at about any point in recent history...

<comment><USER19> Well yes but that's the author's point. Where it used be that 'the men in Whitehall' resisted consumer culture and aired programs which were not necessarily something the public wanted but something that was good for them, they've now given in and just air whatever gets the most viewers. It's a case of consumer culture penetrating an area that used to be slightly protected from the revealed preferences of the public.

And I suspect it's not even really an aversion to big ideas, I think it's an aversion to depth. People love big ideas, look at Malcolm Gladwell and similar authors, they have plenty of big ideas but there's a bit of a pop-shallowness to them. Unfortunately the depth is what's needed and I'm not sure a culture which focuses on individual preferences will ever give it to the public at large.

</comment></comment><comment><USER20> BBC documentarian (and intellectual prophet) Adam Curtis has detailed this and other issues.

Here is a link to a short doc that aligns with this article: [https://thoughtmaybe.com/the-rise-and-fall-of-the-tv- journal...](https://thoughtmaybe.com/the-rise-and-fall-of-the-tv-journalist/)

<comment><USER21> That was excellent. Thanks for posting. It's a short film, so it's not a criticism, but I hope he explains _why_ this happened in more detail.

</comment></comment><comment><USER22> Maybe voters have more power now?

 _\- Bernard, if the right people don 't have power do you know what happens? The wrong people get it. Politicians, counsellors, ordinary voters._

 _\- But aren 't they supposed to, in a democracy?_

 _\- This is a British democracy!_

 _\- What do you mean?_

 _\- British democracy recognises that you need a system to protect the important things of life, and keep them out of the hands of the barbarians. Things like the Opera, Radio Three, the countryside, the law, the universities ... both of them._

\-- Yes, Prime Minister (S02E05)

</comment><comment><USER23> This effect is easily confirmed by comparing a periodical from today with back issues written 50 years ago. By contrast, today's fare has been simplified for both style and substance, presuming the reader has no foreknowledge of science, and more markedly, zero facility in math.

This is no more apparent than in "Scientific American". The writing in the issues from the 1980's back through the century before was intended for professionals -- the engineer, scientist, or serious amateur. By contrast, the literacy of today's SciAm has declined to the level of a middle school. And substance suffers comparably; regular contributors of fare that required nontrivial thought like Martin Gardner and Doug Hofstadter are long gone.

But SciAm isn't an isolated case. Even today's more literate magazines like Harpers and The New Yorker seem to have difficulty writing for a thoughtful audience, all too often preferring to provoke the reader not with provocative ideas or fresh perspectives, but by eliciting anger with the injection of irrelevant references to base politics.

This problem is hardly unique to Britain.

<comment><USER24> But is the readership smaller today than it was 50 years ago?

I'm totally fine if SciAm writes for a broader audience because it has grown from a niche publication for academics to something that most American's have at least heard of.

But if the reading level has declined AND the readership has declined, that might indicate a problem.

I still hold out hope that this is a result of knowledge fragmentation more than anything. The computer scientist of 50 years ago, may have been better inform broadly on all the sciences, but maybe gave up that breadth of knowledge to read focused journals on quantum computing, and other topics the computer scientist of 50 years ago would have trouble understanding.

<comment><USER23> Would knowledge fragmentation explain why general interest pubs (like SciAm) would have less appeal today, leading to their being "dumbed down"?

Conversely, if as I think you suggest, there had been a rise in the number of literate thoughtful in-depth pubs focused on narrow specialization, then I'd accept that today's minds are equally active as yesteryear's but have just turned their attention inward. But I see nothing like that. Even semi- technical pubs like those in the computing space have degenerated into product and project promos (as MIT Tech Review has done).

Where are today's equivalents to Creative Computing or Dr Dobbs or WiReD circa 1998 or InfoWorld circa 1985? The closest I've seen might be the Maker/Arduino/Pi pubs, but their agenda isn't insight, it's small specific ideas of projects (like Popular Mechanics often was in the 60's). All deeper fare on science faded out about 20 years ago. I side with the OP's interpretation; their absence is striking and suggests something big has changed.

Doesn't such a "shallowing" (a la Nicholas Carr) and narrowing of interests imply we've all become less generally curious? Aren't these signs that we're less inclined to explore novel possible worlds, or we're satisfied to do so in less depth, than a generation (or two) ago?

Online forums are no substitute for serious recreational inquiry, even the (very) few that are as constructively and generally clued-in as HNN.

</comment></comment></comment><comment><AUTHOR> I've met a lot of British people who did humanities undergrad degrees followed by something more commercial like Software/Law/Finance for a masters. Is that really common? Looking back I think I'd have loved to have done that.

<comment><USER25> It's not all that common - I don't have the figures to hand but its probably likely the number of those in the UK with Masters degrees is dwarfed enormously by those with just undergrad ones.

That said, I certainly noticed an uptick in post-grad popularity in my cohort of friends (including me!) around 2010, but for us anyway this seemed driven by a tough post-recession job market and a desire to have more directly marketable skills, which a Software Masters provided in relatively short order. I was fortunate enough to study in Scotland where an undergraduate degree is still paid for by the State and Masters are relatively affordable - this is increasingly not the case in the rest of the UK, especially England, so if anything it's likely only going to get less common than it is now.

</comment></comment><comment><USER26> > On both front benches today there are pitifully few people one could call > intellectuals (as distinct from intelligent).

Thank goodness. I think we could all do with more intelligence and less 'intellectual' snobbery.

<comment><USER27> Quite.

 _Equally, whilst Thatcher and Attlee disagreed about almost everything they had at least one thing in common – a loathing of referenda._

There's been a lot of faux intellectualism and requoting of Poppler et al since the last referendum. Seems a very thinly veiled article to me.

<comment><USER28> > There's been a lot of faux intellectualism and requoting of Poppler et al > since the last referendum.

The irony of that typo is hopefully not lost on you.

</comment></comment></comment><comment><USER29> The problem is the all prevalent Western Media Mindset - as the Russian media describe it.

Since Kosovo and onward many lies have been told. Dare to say so and you are deemed Communist. The Overton window is set by the BBC in the UK, this being the acceptable spectrum of thought, from left to right.

Because of the deep lies about how these wars start there is belief instead of knowledge. So it is a church with some different doctrines but no questioning of the creation myths.

Lies have to be disseminated, truths can be arrived at by studying facts. We normally have gatekeeper radicals to keep the pretence up, for decades it was Tony Benn. Only Tony Benn dared to question Trident, today we have the likes of whatshisname Brand gatekeeping the acceptable radical thinking.

If you were someone others respected and you told them you were ditching the job because you wanted to go into politics then people would think you had gone mad.

The odd thing is that there is no escaping it. People are deeply conditioned in the UK. Luckily there is Brexit to shake things up a bit.

Maybe we can escape our shackles of history then and engage with the world as grown ups to be treated as we wish to be treated.

<comment><USER12> I don't know why you think that, the leader of the opposition is against renewing Trident and that is widely reported in the media, at the BBC and elsewhere.

</comment></comment><comment><USER30> We admire the Beckhams and Kardaishins though, so all is not lost.

</comment><comment><USER31> The author discredits himself by referring to Daniel Hannan as an "ignorant gobshite" on Marx or anything else; Hannan speaks French and Spanish fluently as well as English, which, I suspect, is two languages more than the author does. Hannan studied History at...wait for it...Oxford University. So that 'ignorant' line alone made it difficult for me to take this blogger quite seriously (though I upvoted this story as I have no doubt the overall trajectory of Britain's intellectual decline is accurate as otherwise described, all things considered).

<comment><USER12> Hannan might not be ignorant but he is definitely a gobshite. Everything I have heard him say comes through the lens of his dislike of the EU, there is little room for fact or even nuance.

<comment><USER31> Dislike of the EU != "gobshite." Hell, if that were true then half the world might be classified by you as gobshite! Perhaps you'd be better off demonstrating what you find so objectionable about Hannan's view of the EU and which "facts" he's mistaken about (given that he speaks three of its languages fluently) instead of engaging in ad hominems.

<comment><USER12> _Dislike of the EU != "gobshite."_

I never said that it does.

</comment></comment></comment></comment><comment><USER32> I find this blog post somewhat ironic. The author starts the post by saying that the trigger for the post was Marx's 200th birthday.

Britain might have declined slightly, but Marx's home country, Germany, has comparatively fallen from the top of the world, intellectually. It's still a heavy hitter, but if you compare it to pre-WW1/pre-WW2 Germany, it's just a ghost.

Why?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

etc, ad infinitum.

<comment><AUTHOR> Many on that list are Jewish so that could be a reason.

<comment><USER32> But not the majority (I've actually counted and it's 4/16) and definitely not the majority from this list: [https://en.wikipedia.org/wiki/List_of_German_scientists](https://en.wikipedia.org/wiki/List_of_German_scientists)

Also, I forgot to include philosophers... a very scary concept, considering the caliber of German philosophers (Kant, Nietzsche, etc.).

<comment><USER33> This misses the point a bit. Intellectuals are not a commodity. How do you weigh one Fermi or Einstein against 3 other scientists?

<comment><USER32> You're assuming that the native Germans were somehow second rate scientists. Re-check my list :)

Germany not only destroyed its Jewish population willingly, therefore losing some of Germany's best minds but also destroyed its own research facilities, economy and even a good chunk of its native German scientists by shipping them off to war or having them bombed back at home.

Folly of the greatest magnitude, any way you look at it.

<comment><USER33> I don't see where I made that assumption.

Kick out a few key faculty members and the rest of the good ones will follow, Jew or not, because they are good and have the choice to leave. You don't need all your faculty to be Jewish in order to lose all your good ones by kicking out a single Jewish faculty member.

If you lose 4/16 of your academics but all 4 of those were the Giants, then you haven't decimated your department, but you have lost what made it good in the first place.

Even before the war reached the borders, German mathematics was decimated. Sometimes by numbers, but always by the numbers that mattered. Because anyone good knew someone effected, and everyone good had the option to leave.

</comment></comment></comment></comment></comment></comment><comment><USER34> > _The commemorations of Marx's 200th birthday_

As someone from east Europe, I find this pretty funny.

> _Today, his most high-profile critics are ignorant gobshites._

You must read 10k pages of related work, before you can criticize someone like Hitler or Nazism....

<comment><USER35> No, but it can't hurt.

<comment><USER34> I know many people who studied Marxism. We had entire university dedicated to Marxism.

Trust me it causes brain damage :-)

</comment></comment></comment><comment><USER36> Lots of working class mums that are young and single, literally paid to breed and live off benefits, which increasingly is creating a big underclass. The richer are having fewer kids.

<comment><USER37> Ah, the old "single mums are to blame for all social ills" line. Classic.

Incidentally, if you _really_ think that Britain's burgeoning peasant underclass is the fault of self-impregnating single mothers you've been mislead; I suggest you change newspapers.

<comment><USER38> I don't think the OP is blaming any social ills on the single mums, he's instead pointing out that this is a symptom of a much larger problem, like the canary in a coal mine.

Having most of your kids being born to a society's most impoverished and least-educated members is not a recipe for long-term success. Saying this isn't blaming the poor, it's pointing out that there's something seriously wrong with the society, and it's not going to lead to the society improving in the long-term, but probably rather the opposite.</comment></comment></comment>


Esperanto, an International Language - <AUTHOR> https://en.wikipedia.org/wiki/Esperanto <comment><USER2> Most languages borrow, often heavily, from its neighbors, but this one is truly a Frankenstein of a language. There's something deeply unnatural and aesthetically unpleasing about it. I don't understand how people can like it (although many do).

<comment><USER3> For a language it sure does open itself up to schoolboy humour like many other languages.

How are you? In esperanto is: Kiel vi fartas?

Which for the uninitiated trying to understand what was said and from an english speaking background, would probably yield a response of : Pardon me.

Not sure how other languages bases see this and it does seem to be more palatable towards french/spanish in how it sounds and may for those native speakers be easier to pick up I suspect.

Though I've never met a person who can speak esperanto, I've met many people who can speak Klingon. Which makes me wonder is there more people in the world that speak some Klingon than esperanto!

<comment><USER4> Esperanto has more than 100 thousand fluent speakers (lower levels are in the millions) and more than 2000 native speakers. Klingon is not even close to esperanto.

<comment><AUTHOR> Yes, I read that it was millions after the WW2, but it starts declining since then.

<comment> D-Coder Not according to a professor who did actual research on number of speakers of languages.

Three letters from Professor Sidney Culbert (English originals):

>Notes on the letters: [http://www.panix.com/~dwolff/docs/culbert- notes.html](http://www.panix.com/~dwolff/docs/culbert-notes.html)

>Letter from 1967: [http://www.panix.com/~dwolff/docs/culbert-1967.html](http://www.panix.com/~dwolff/docs/culbert-1967.html)

>Letter from 1969: [http://www.panix.com/~dwolff/docs/culbert-1969.html](http://www.panix.com/~dwolff/docs/culbert-1969.html)

>Letter about research methodology: [http://www.panix.com/~dwolff/docs/culbert- methods.html](http://www.panix.com/~dwolff/docs/culbert-methods.html)

</comment></comment></comment></comment></comment><comment><AUTHOR> I believe this shows us, maybe it's impossible to create and international spoken language? or nearly impossible?

<comment><USER5> English is already international language. Maybe it is not perfect but it is enough for not to create new international language.

<comment><USER6> English is far from the international language. There are billions of people and entire continents where no one speaks English.

Unless you meant _the de facto language for business and research_ , or _the language spoken in the areas I care about_ , which is different from _the international language_.

<comment><USER7> As far as i know, every single continet has english speaking people. Either as a primary or a secondary language.

<comment><USER6> The same is true for French, or Mandarin Chinese. Still, good luck getting by in English in the middle of China, Russia, West Africa or Latin America. Hell, rural Germany can be rough going.

<comment><USER8> Yes, English literacy is low in China (about 6% according to Wikipedia: [https://en.wikipedia.org/wiki/List_of_countries_by_English-s...](https://en.wikipedia.org/wiki/List_of_countries_by_English- speaking_population) ) But that doesn't mean finding someone who can understand you is hard. If you just pick any random person, they likely won't speak English, but if you ask 20 or so, you have good chances of being understood by one of them. That's pretty good and qualifies English for "international language" status in my opinion.

<comment><USER9> There are plenty of Chinese diasporas all around the world. I'm willing to bet that if you asked around 20 people or so in an average American or British city you'd end up being understood in Chinese. Yet I don't see many people calling Chinese an international language.

It'll take more than just stats gleaned on wikipedia to make a coherent case. A large majority of mankind has no use for English and thus doesn't use it, and this can be readily witnessed firsthand by travelers who stray off tourist paths. (For instance I say rural Germany is rough going because _I 've been there_ and witnessed it firsthand.) That doesn't mean English isn't a _lingua franca_ , it's just not _the_ _lingua franca_ in most of the world. In Latin America people will use Spanish or Portuguese, in Africa people will use French, Arabic, English or Swahili, in much of Central Asia people will use Russian. Even then, knowledge of those languages isn't a given.

The fact of the matter is that English isn't known or used by most of the world population. Arguing about the rest is just semantics.

<comment><AUTHOR> I am on you with this, sure English de facto language for many things. I don't believe it's just for business or research many things but most of rural areas or less educated areas all over the world has little amount of English speakers or even not at all.

For instance, let's take Spain or Italy not even Africa or Asia. I mean Europe, Spain, if you asked 20 people in Barcelona or Rome you'd end up being understood. On the other hand if you asked 20 people in Naples or Granada, the chances are they wouldn't understood you.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> Shameless plug: I wrote a scrabble-like html5 game for esperanto speakers named "7 Literoj". Android and web app available at [https://7literoj.34bit.net/](https://7literoj.34bit.net/)

Please comment if you play it.

<comment><USER4> Mi jam provis ludi en mia poŝtelefono, kaj nun per chrome sed mi ne komprenis ĝin

<comment><USER10> Mi sendis al vi inviton ludi en la aplikaĵo. Mia enluda nomo estas "egeto". Se vi akceptas mian peton mi provos helpi vin uzante la babilejon, kiu estas parto de la aplikaĵo.

</comment></comment></comment><comment><USER11> I'm studying Interlingua, a pan-Romance-English international auxiliary language that has the distinct Advantage of being able to be understood by Romance speakers at the first glance. I think it's much more "useful" since I can't speak any Romance languages at all at the start.

I tried looking towards Interslavic (Medjaslovanoj) and Intergermanic (Folkspraak*), and the former is interesting - Slavs can understand that register with quite a bit of effort, but the latter, sadly, is still in development and is fragmented.

For other areas, Hijazi/MSA is the standard of the Arab world, Mandarin is for Sinosphere, and... Malay for SEA, I think.

A worldwide international language is quite hard, because you need to dislodge the usefulness of English in some ways. A 100% constructed language is hard to learn for adults. A pseudo-natural conlang is... Impossible for the whole Earth.

</comment><comment><USER12> Bonvoro alsendi la pordiston, lausajne estas rano en mia bideo!

<comment><USER13> ...and I think we all know what that means!

</comment></comment><comment><USER14> Saluton!

<comment> D-Coder Kaj al vi! Restu sana.

<comment><USER2> > _Kaj_

A Greek would like to have a word with you.

</comment></comment></comment><comment><USER15> Conlang Critic's episode on Esperanto is worth watching, if only for his criticism of Esperanto's phonology: [https://www.youtube.com/watch?v=Sao9mCLy3Xo](https://www.youtube.com/watch?v=Sao9mCLy3Xo)

</comment><comment><USER16> Can't talk about Esperanto without linking Justin B. Rye's cautionary "Ranto": [http://jbr.me.uk/ranto/index.html](http://jbr.me.uk/ranto/index.html)

<comment><USER6> That rant is more than a decade old and not as relevant as people like to tout. There are issues with esperanto but most of what is lamented there is really subjective.

<comment><USER2> "a decade old"

:)

</comment></comment></comment><comment><USER17> Ido sounds better.

<comment><USER2> Almost anything sounds better.

</comment></comment><comment><USER18> Linguists are misguided. Instead of studying (diverging) languages or designing new ones they should work on convergence of existing ones. At leas in Europe there should be some _Latin_ , _Germanic_ and _Uralic_. Slavic belonging to _Latin_. And then Latin and Germanic uniting in English or such. That'll be a real humanitarian cause.

<comment><USER4> Humanitarian cause would be preserving the national language and having an international one that is easy for everyone to learn, and Esperanto works great.

</comment></comment><comment><USER19> Title is wrong. Should be:

Esperanto

<comment><USER2> Or, better yet, Expiranto.

</comment></comment><comment><USER20> and thus spoke C++.</comment>


VLC is blacklisting recent Huawei devices to combat negative app reviews - <AUTHOR> https://www.theverge.com/2018/7/25/17614014/vlc-blacklisting-recent-huawei-devices-negative-app-reviews <comment><USER2> I work in a role where a bunch of Huawei devices have been deployed to non- technical end users for a particular business purpose (against my advice).

This doesn't surprise me in the slightest -- the overzealous and frankly capricious changes in their Android firmware are ridiculous and difficult to mitigate.

Sure, let's issue a comm. that says "everyone change this setting so your device will work properly". What level of adoption can be expected from that? (hint: not much)

The scenario listed here is exactly why we need to promote and support efforts toward open firmware for Android devices, or at the very least, don't compensate vendors/manufacturers that use the Android platform to slather crap across an OS that works fine without all the additional and superfluous BS.

</comment><comment><USER3> Another clickbaity title not giving the whole story... "Huawei killing apps; devs blamed" would have been better. If a phone was crashing your apps and users blamed you (and rated your app as such), what would you do?

<comment><USER4> I trust the VLC team so I gave them the benefit of the doubt before even clicking, I completely agree. The title should reflect that this is in response to Huawei firmware changes.

I think the only other reasonable thing that could be done is automatically responding to the one star reviews. Maybe work with Google to remove the reviews, but these things take time and may not work. I have a hard time finding a problem with what the devs have done here.

</comment></comment><comment><USER5> How much of this should be blamed on Google? iOS only allows certain types of apps to run in the background unfettered - audio, navigation, Bluetooth communications apps (like the Pebble) and third party calling apps. Other types of apps can be periodically awakened by the OS (background app refresh), but the OS decides how often they can be awaken based on the frequency of interaction and a few other heuristics. In low power mode, apps that do background app refresh don't get CPU time(?) and you can control which apps allowed to run in the background.

This allows the OS to distinguish between apps that always need to work in the background and those that don't. The only drawback is server type apps. While VLC will keep playing audio in the background, I don't believe the http server that allows you to copy media over a web interface to your phone will work over an extended period of time unless you're playing audio at the same time.

<comment><USER6> Android 8 adopted this style of backgrounding a year ago. [https://arstechnica.com/gadgets/2017/09/android-8-0-oreo- tho...](https://arstechnica.com/gadgets/2017/09/android-8-0-oreo-thoroughly- reviewed/9/)

<comment><USER5> The issue with Android, is that Google never breaks backwards compatibility. Android also has improved security permissions but it's voluntary for apps to adopt it.

<comment><USER7> VLC follows all Google recommendations, including for Oreo 8 compatibility. We rewrote our background service exactly for that.

<comment><USER5> That wasn't meant as a knock against VLC at all. But it does say more about Huawei that they indiscriminately kill background apps without taking simple things into account like - is the app playing audio and is it being a good citizen.

</comment></comment></comment></comment></comment><comment><USER8> Wow, what a terrible strategy for saving battery. Let's just send our customers back to 2009, when you had to keep your Pandora app open so your music wouldn't stop.

Making a mental note to never buy a Huawei.

<comment><AUTHOR> Especially ridiculous considering the advancements in fast chargers that we have now for newer phones.

</comment></comment><comment><USER9> Ha, I had the same problem on a Lenovo phone, except I knew it was not a VLC issue because the process-kill would happen with any app I would leave running in the background. The most annoying part was that even after tweaking the battery/power settings this would still happen. Lesson learnt, don't buy Lenovo.

</comment><comment><USER10> I'm not sure how much of it was about the 1 star reviews as much as it was anger at Huawei's "optimization".

</comment><comment><USER11> I am observing the same "killing" of background service for Signal app too. Basically any app with a long-running session which you don't whitelist. And it seems that it whitelist the Spotify for example on its own. I don't think the blocking install by VLC team is the right way, communicating the issue to a user is a much more reasonable way. Look at Garmin Connect app, which had the same issue but they implemented notification and how-to disable management.

<comment><USER12> That is normal. An application that requires the background "foreground" service to run is obligated to display a notification and call an Android foreground service API in the service itself. Unless it is lower target SDK than 23 (number may be wrong).

</comment></comment><comment><USER13> Android 8 has doze but it's not a problem for VLC:

Android 8 Doze: apps can be blacklisted so that they don't get killed, API: [https://stackoverflow.com/a/42651399/3422837](https://stackoverflow.com/a/42651399/3422837)

Huawei adds a very aggressive background app killer, this means that apps like VLC and WhatsApp don't work in background. I have a low end Huawei device for testing purposes (hint hint), there _is_ a setting to whitelist apps from huawei's appkiller but they get killed anyway.

</comment><comment><USER14> This is on iOS but their app definitely went downhill pretty severely in the past year.

If any sort of bluetooth or background playback is involved, the previous playback position will almost always be lost. Video/audio in a playlist skips and don't play sequentially. Reordering items manually will have their order re-scrambled as soon as you start scrolling the item list in the playlist. Playing an item to completion even in foreground will show a random amount left on this item when you moved onto another item.

It's hard to say Huawei is exclusively to blame when their primary video playing features (including background playback) is already so buggy.

<comment><USER15> Also on iOS, and I wonder if anyone else has experienced a weird bug. Open VLC, make sure it's showing your videos as a grid, then drop your iPad about 3 feet onto a bed or other very soft surface (I am not responsible for you not picking a soft enough landing area). VLC gives me the "Report a bug" dialog box.

<comment><USER16> This is probably a shake to report a bug feature (Android users are probably more used to this, I remember Google Maps on Android having this feature)

<comment><USER15> Is there some reason to implement it on iOS? It also is really damn touchy.

<comment><USER17> Smaller codebase? I expect the iOS and Android branches share a fairly decent amount of code.

</comment></comment></comment></comment></comment><comment><USER18> I completely agree with aggressive background killing, because too many apps are abusing their permissions and try every trick in the book to siphon user data at all times.

That being said, killing an app that is actively playing audio is not the best idea and an open source app with 100 million installs should probably be whitelisted anyway.

</comment><comment><USER19> Blacklisting or just not supporting those device types and therefore preventing users using it?

<comment><USER20> Tweet says users can download apk so it's just they can't get it off Google Play. Users basically will get a message it's not compatible with their device hence they can't review the app.

<comment><USER17> Which sounds exactly like 'We won't support that device'. You can work around it, but you're on your own if anything goes wrong.

<comment><USER21> It does not sound like "therefore preventing users using it," though.

<comment><USER17> Yep. Unsupported, but not 'blacklisted'.

</comment></comment></comment></comment></comment><comment><USER22> Just code it right ? I don't find those negative reviews on other background music players like spotify, so I imply that they work fine on those devices. I don't think they pushed an update just for two devices, I think it just worked with huaweis background killing. If VLC is not working on those devices, they deserve the negative reviews.

<comment><USER23> or huawei has a whitelist of apps not to mess around with, and spotify is on it but vlc isn't.

</comment></comment><comment><USER24> Rather than blacklist, I think a better approach is for VLC app to inform Huawei users about its quirky behavior on first run after installation and after every update. That way, Huawei users are unlikely to take the trouble of leaving a low rating for an app, and are better informed to choose a device next time. If background audio is something you can't do without, don't choose Huawei - that should be the messaging. That can help kick the company too into improving its firmware.

On a different - but related note - Huawei recently announced that they won't provide bootloader unlocking anymore for any device[1]. Although I own an Honor and like its hardware and software, I think Huawei is setting itself up to become an increasingly "bad player" in the device space in future. I'm wary of buying a Huawei again.

[1]: [https://www.xda-developers.com/huawei-stop-providing- bootloa...](https://www.xda-developers.com/huawei-stop-providing-bootloader- unlock-codes/)

<comment><USER25> Could just as easily be counter productive. Some user who's just spent a few hundred on a new Huawei installs VLC and all their other old apps. VLC tells them their choice will lead to strange behaviour. User leaves 1 star review that VLC told them their new phone was crap.

Users barely read error messages and dialogues so there's no scope for any nuance in explaining and informing.

Blocking seems the only rational approach to take. Those who can understand sideloading can likely decide if they want VLC warts and all on their Huawei.

<comment><USER26> You aren't kidding. Users are shitty and capricious in the mobile space (sometimes everywhere, but very frequently the mobile space). I've had users leave one-star reviews for my mobile app--which controls OBS, a video mixer-- with the reason "it works for 20 minutes [ed.: there is a very visible timer the entire time] and then stops [ed.: it goes readonly, it doesn't kill a stream or recording] and asks you to pay [ed.: five whole dollars]."</comment></comment></comment>


Show HN: Visualize Git Commits and Pull Requests Across Many Repos - <AUTHOR> https://github.com/codealong/codealong <comment><AUTHOR> TL;DR; this is a lightweight open source alternative to tools such as GitPrime. This project started as way to learn Rust on nights/weekends, but as an engineering leader, I do believe that there exists a real gap between the creators of software and the stakeholders. Maybe something like this could help– curious to get some feedback from the HN readers. I will include the following three thoughts/assertions:

 _There is a fundamental gap between engineers and the stakeholders in the technology and value they create._ This can manifest itself in many ways: including mismanagement, low feature velocity, and misaligned incentives. A big reason for this is that software and systems are complex and difficult to reason about– particularly at organizational scale. To make the situation even worse, there are virtually no commonplace leading metrics to represent the health of an engineering organization. Project tracking software and traditional velocity metrics are extremely gameable, inconsistent and fail to capture the deeper context in the code itself. Infrastructure and product- level metrics generally break down with respect to net-new feature development. A potential solution is to utilize source-level metrics– based on commits, pull requests, and continuous integration and deployment data.

 _The involvement of individual contributors is essential in bridging this gap._ In order to meaningfully utilize source-level metrics, it is vital that the people who know the code the best have full transparency and input into the process. Moreover, they should be able to help tune and ensure that the metrics are actually meaningful by incorporating their own knowledge of the specific codebases involved. Not only are existing tools in this area expensive and inaccessible, but they are also generally black boxes that are sold and brought in by management. Having deep roots in open source and being accessible to the engineers themselves is key.

 _Source-level metrics are ineffective for stack ranking individual engineers._ Engineers share a deep aversion to measuring individual performance by source-level metrics. This aversion is well-founded as the contribution of a single code-change to the overall value of a system is impossible to accurately quantify. Furthermore, at the individual-level, programming methodologies such as pair-programming further confound things. In aggregate, however, the meaning of these metrics increases and can be used as leading indicators of an entire organization or team. Moreover, It is in the best interest of an individual contributor to have some form of data-driven decision making at the organizational level versus the alternative.

<comment><USER2> This looks interesting. I agree with your point that there is huge gap between engineers and stakeholders. And a lack of understanding on how value is created and how it is attributed. I would like to understand how source level metrics can help me better understand my own contributions to the project. Do you have some examples/stores where you used the matrices in your team to understand the contributions?

Also a comment about about ELK. I recently found this full text search project called Toshi: [https://github.com/toshi- search/Toshi](https://github.com/toshi-search/Toshi) . It is written in Rust and provides (almost) same functionalities as ES. But is less heavy than ES and probably easy to deploy. Do you have any thoughts on it?</comment></comment>


Startup Quote: Alexander Tamas, partner, Mail.ru Group - <AUTHOR> http://startupquote.com/post/2463341352

<comment><AUTHOR> If you have an urge to build something that could change the world, don't focus on the money, but the legacy you'll leave behind.

\- Alexander Tamas

<http://startupquote.com/post/2463341352></comment>


Forecast the future with friends - <AUTHOR> http://cassieinnovations.com

<comment><AUTHOR> Cassie is a new web app to forecast the outcome of world events with friends, earning points when predictions become reality. Make predictions on events ranging from sports and pop culture to current events, politics, and more: Who will win the Super Bowl? Will Kim and Kanye get divorced? Who will become Twitter CEO?

You can also create your own questions to share only with select friends. Keep your forecasts private or broadcast to all your friends!

Go to cassieapp.com to start forecasting now!</comment>


Exploit/bypass PHP escapeshellarg/escapeshellcmd functions - <AUTHOR> https://security.szurek.pl/exploit-bypass-php-escapeshellarg-escapeshellcmd.html <comment><USER2> The title on this seems pretty misleading.

This is really a guide on how to use the escapeshellarg when you should use escapeshellcmd (or the opposite). Of course, the API of system() is pretty awful, so there _is_ an issue here in the form of "wow, PHP makes this really easy to mess up," but there's no actual exploit in either function mentioned. Just exploits in code people write using them. I guess the LANG one is arguably an actual exploit though, though that gets into arguing semantics.

Edit: there's also an example that is missing quotes around an argument. Again, something very easy to mess up, but that's what you get when you have a function that is basically like typing a line into the shell.

<comment><USER3> Actually, the mentioned GitList exploit hinges on yet another vulnerability: lack of distinction of command-line flags and arguments. Where user expected to put "normal" name (say a-zA-Z0-9), attacker actually supplied --flag=exploit.

</comment></comment><comment><USER4> I'm confused how a list of clever ways to get executables to initiate other executables is somehow an "exploit" of a programming language offering a system(3) call?

How about we just don't run system calls, especially none that contain any amount of user input.

</comment><comment><USER5> Ah yes, "PHP "security"". Yes, untrusted user input going to the shell is a bad idea, even when "sanitized".

Of course, unlike other saner languages, bypassing the shell isn't always an option. When running under Apache, pcntl_exec() isn't available, so you just gotta hope rely on escapeshellarg(), addbackslashes(), and prayer.

<comment><USER6> You should be running your application code in some sort of sandbox anyway, to minimize the data available to an attacker in the event of privilege escalation.</comment></comment>


The Halfword Heap Emulator (2011) [pdf] - <AUTHOR> http://www.erlang-factory.com/upload/presentations/467/Halfword_EUC_2011.pdf <comment><USER2> It was a cool experiment but I think currently it's deprecated? The presentation slides are very nice and detail and explain a lot of internals.

For more details about the internals of BEAM VM can check out this open source book: [https://github.com/happi/theBeamBook](https://github.com/happi/theBeamBook)

(Online rendered version: [https://happi.github.io/theBeamBook/](https://happi.github.io/theBeamBook/))

</comment><comment><USER3> This concept of using 32-bit pointers when running in 64-bit addressing mode is similar to the "compressed OOP" (ordinary object pointers) mode of operation in the 64-bit HotSpot Java virtual machine.</comment>


Unsupervised machine translation - <AUTHOR> https://code.fb.com/ai-research/unsupervised-machine-translation-a-novel-approach-to-provide-fast-accurate-translations-for-more-languages/ <comment><USER2> The previous paper they mention explains the core insight that makes unsupervised translation possible: [https://arxiv.org/abs/1710.04087](https://arxiv.org/abs/1710.04087)

The original paper didn't receive the attention I thought it would, but I continue to think this is a fascinating result which has deep implications for machine learning and for linguistics.

<comment><USER3> These word embeddings keep on yielding all kinds of amazing benefits. Is there any kind of explainability research to help people understand them better in terms of human psychology?

<comment><USER4> Word embeddings work because they reflect co-occurrences. I don't know whether that counts as an explanation in terms of psychology, but humans tend to put related things together. In a newspaper the articles aren't jumbled together, but there are sections on different topics, and in each section the articles are clearly delineated instead of mixing their sentences and each sentence represents a single unit instead of giving partial information on a dozen unrelated things.

It might seem obvious that things should be done that way, but if you consider servers hosting lots of different websites on the same physical machine, or data structures spread out over several memory allocations held together by pointers, it's clear that there are other possibilities. So it does seem to be specific to the way humans use language.

And because human language has this property of co-occurrences corresponding to relatedness in meaning, you can represent the meaning of a word by building a model that only predicts the probability that two words occur together.

<comment><USER5> In linguistics, there's a classic principle "You shall know a word by the company it keeps" (Firth, J. R. 1957) - colocations (a sequence of words or terms that co-occur more often than would be expected by chance) are _very_ informative about what a word means.

</comment></comment></comment></comment><comment><USER6> How does it learn idioms (sequences of words that make no sense when translated into another language word-for-word). For example "Stop beating around the bush!" would result in complete nonsense if translated into any language other than English.

</comment><comment><USER7> Looks like promising research. I will have to read the actual paper later as opposed to just the blog post. One thing I would like to say is my qualm with the obsession with unsupervised learning as the quintessential technique. Unsupervised != no human input. Having the benefit of knowing about word embeddings is something inherently built into this system by the human designers and something that supervised learning does not have the benefit of when given original-translated pairs.

<comment><USER8> > One thing I would like to say is my qualm with the obsession with > unsupervised learning as the quintessential technique. Unsupervised != no > human input.

I'm not sure I follow the qualm you are trying to get across. Are you saying you disagree with the term 'unsupervised' because unsupervised algorithms still bake in human assumptions (like a human-designed word embedding model) so that's essentially still supervision?

The obsession with 'unsupervised' learning as the quintessential technique is about getting better results for less money/effort. The premise is that we assume deep models tend to scale up in accuracy as training data size increases, so we always want larger datasets to increase accuracy. But creating labeled data takes a linear amount of human effort ($$$) as the dataset size increases. At a certain point, creating more labeled data to improve a model is not cost effective or maybe even impossible.

Unlabeled data can be acquired nearly for free in nearly unlimited quantities in many cases. So if we can use unlabeled data instead (even if it requires complex pre-processing like CBOW embedding models which essentially turn bits of the unlabeled data into it's own label) your final results-per-dollar- invested goes through the roof over supervised learning. That's the obsession. It's not about literally no supervision being involved in the process. It's about driving down the cost of data acquisition while driving up the percent of the world's available data you can use for training a model.

I apologize in advance if I'm missing the point you are making.

<comment><USER7> No need to apologize, I like HN precisely because people point out the flaws/confusing parts of my comments/opinions. I agree with everything you say and am happy you said it because this is how unsupervised learning should be viewed. I.e., a better ROI in specific cases. However, I have seen too often the "cake of AI" where the batter is unsupervised, the icing is supervised, and the cherry on top is reinforcement learning. Somehow, this image connotes that unsupervised is at the core of AI and also the most important. For what is a cake consisting of only icing and a cherry?

Where I disagree with you is that the obsession is purely driven from "results-per-dollar-invested", at least in the academic world. That being said, unsupervised learning is a great tool and definitely worthy of research.

To summarize, my comment was completely tangential of this paper (the authors make no such claims). It was more of a stream of consciousness comment that arose because I envisioned someone reading the paper and saying "see!, unsupervised learning leads to real understanding, no humans needed!"

</comment></comment></comment><comment><USER9> So, they built translation system using bilingual dictionaries, then asked it to translate from English to Urdu, and then back to English, and minimized loss between original and double-translated English.

In one of my previous companies we used this technique to hire pair of translators: we gave translator pairs such task, and hired pair which reconstructed original text more closely.

<comment><USER10> No, they didn't start with dictionaries, or any other parallel corpora; they learned the word by word translations as well from monolingual corpora, by finding alignments between monolingual word embeddings in the target languages.

<comment><USER11> Next step: unsupervised word segmentation. That way they could maybe apply this unsupervised translation system to undeciphered texts, e.g. Linear A, Rongorong, etc. I doubt it will work since most of the undeciphered scripts have a very small corpus, but maybe worth a try.

</comment></comment></comment><comment><USER12> "We can improve upon this by making local edits using a language model that has been trained on lots of monolingual data to score sequences of words in such a way that fluent sentences score higher than ungrammatical or poorly constructed sentences."

Does anyone knows some references / corpus in English language for this?

</comment><comment><USER13> I have a feeling the answer is "no", but can anyone comment on whether or not this could be used to decode the utterances of other animals, such as whales?

<comment><USER12> You would need a bilingual dictionary as the first step of the process, so I'm afraid that this will not be possible.

<comment><USER10> Without commenting on whether this method could be applied to whales, the method described here does not require a bilingual dictionary. They learned their "dictionary" unsupervised by aligning monolingual word embeddings.

</comment></comment></comment><comment><USER14> All of this seems to be using word embeddings, but most languages don't have all that many words. You're effectively trying to train with just a few thousand data points, and will quickly overfit.

Wouldn't the method work better with n-gram embeddings, where n=3 or 4?

<comment><USER15> The method is straightforward to extend to n-grams, this is actually what they do (see table 1 in [https://arxiv.org/abs/1804.07755](https://arxiv.org/abs/1804.07755)).

And since you are simply learning a rotation matrix, there is no risk of overfitting.</comment></comment>


What Aikido taught me about app development and business - <AUTHOR> http://droid-blog.net/2011/07/19/what-aikido-taught-me-about-app-development-and-business/

<comment><USER2> Many have applied aikido principles to their startups. When the original idea isn't being accepted by the target audience, one should pivot. This is identical to doing a tenkan in aikido. Also, knowing when to enter a market is the iriminage of the startup world.

After working months on some code, it often feels painful similar to how nikkyo and sankyo are painful. Pair programming is like uke and nage squaring off, one attacking new features while the other defends against bugs.

Sometimes you feel like you're on your knees and you can't continue, and that's right when your competition decides to attack from their standing position in a wonderful display of business hanmi handachi. When your workers form a union and strike, this is startup atemi.

A large part of aikido is redirecting someone else's strength rather than expending your own energy. Similarly, startup founders are redirecting the VC's wallet rather than expending their own capital. They also leverage Apache's strength to do a 301 redirect to another URL.

Sorry, I've studied aikido and love it but too often I find these aikido comparisons to be trite and lacking substance.

</comment><comment><USER3> Being a active participant of 'Karate' I would also like to add some points 1\. Confidence: Karate or any form of martial art bestows you with confidence, not just optimism that you can achieve what you desire and work towards it, but also the zeal and belief within oneself to achieve your goal. 2\. Patience is a virtue, you need it when you are writing huge lengths of code and you need it utmost when you are in a ring waiting for the opponent to strike so that you can counterattack. 3\. Resilience : Be it any app developer, businessman or any profession, you learn resilience from martial art which you can use anywhere you go or in anything you do.</comment>


Wootric moved ML deployment pipeline from AWS to GCP - <AUTHOR> https://engineering.wootric.com/move-from-aws-to-gcp-ml-deployment-pipeline/ <comment><USER2> Given the architecture demands and shortcomings noted in the article, it would likely be more efficient to cut out the overhead invoked by Cloud Run and AI Platform and just run everything in Kubernetes Engine (backed by Knative for Cloud Run-esque autoscaling). This would also solve the latency and scale-to- minimum size issues, and likely be cheaper in the long term at the cost of a bit more configuration to get it started.

<comment><AUTHOR> Thanks for the tips. Having everything colocated in a k8s cluster will definitely help with latency and probably overall infra cost but it will be at the expense of engineering times spent on running a k8s cluster in prod.

Fingers crossed that we keep growing which would mean that we can justify working on v2 architecture.

</comment></comment><comment><USER3> Can you elaborate on what changed from one architecture to the other regarding Custom Models? it feels like it would still be easier to do that on AWS since you control more of the stack. Isn't that the case?

<comment><USER4> While AWS does allow more hands-on control of the model stack, our "Custom Models" are more just different sets of weights using the exact same methodology. Basically, each customer that creates their own custom model is plugging into our existing framework, but with a different configuration.

Because of this, GCP'S AI Platform allows us a more micro-services type approach to interacting with the ML models themselves - as opposed to our previous deployment strategy on AWS, which put all of the models into one big bucket on every instance that was serving requests.

Hope that answered your question!

</comment></comment><comment><USER5> If for a while I eliminate the scaling issue with v0 AWS architecture. Would it be right to say in v0 issues like excessive load times were solved by decoupling models and flask app (e.x. making batch prediction calls to each necessary model for the current request?) rather than v0 architecture itself?

Was it that hard to make the make batch prediction calls to each necessary model for the current request on AWS?

<comment><USER4> Making the calls to the corresponding model from Flask was actually easier on AWS, since they were loaded into memory. Unfortunately, the scaling issues/excessive load times were big enough of an issue that we had to make the switch, as our number of hosted models continues to grow.

</comment></comment><comment><USER6> Why not just have a keep alive/warm style serverless function to prevent the start up latency?

<comment><AUTHOR> I am assuming you are talking about our deployment on GCP Cloud Run? We have thought about sending a heartbeat API call. It we notice any user experience friction because of this lag then we will definitely do that. As we said in the blog, this has not been a major pain point as of today.

</comment></comment><comment><USER7> Love it when companies decide not to use Microservices "just because"!

<comment><AUTHOR> Totally. We did not have a need for custom models initially. We could load all our models on one VM so there was no need. We were tempted to get on the bandwagon. ;-)

</comment></comment><comment><USER8> What was the main motivation behind this? is GCP cheaper?

<comment><USER4> Not inherently, but how we're using it makes it cheaper. Our stack has ~50 different ML models being served live, and GCP makes it easy to treat each model as a micro-service, and give auto-scaling to each one.

This is in contrast to the easiest way we found to deploy the same architecture on AWS using Elastic Beanstalk, which involved one really big instance (that was constantly growing as we added more models), and the costs that come with that.

</comment></comment><comment><USER9> Just curious about the errors in V0 - was it a resource allocation issue or response timeout errors?

<comment><USER4> A bit of both. Flask was obviously not designed with serving Tensorflow models locally in mind, which is how we had it set up in v0. Towards the beginning we had to debug some weird threading issues, but towards the end once it was more stable (as a result of some hacky fixes), the timeouts were the main issue.</comment></comment>


Show HN: Write Using Emojis - <AUTHOR> https://writeinemoji.seik.xyz/ <comment><USER2> This cracked me up. I want to ask why, but I know it's to do something silly. Love it. It's reminiscent of MySpace or L337speak

</comment><comment><USER3> An emoji text input placeholder! Monster.

</comment><comment><USER4> Nice, the output isn't a direct mapping from characters to emojis. I wonder why?

<comment><USER4> It looks like each characters has a bunch of equivalent emotes and one is picked randomly when generating output.

</comment></comment><comment><USER5> Shame that it doesn't use 𓂸 for the word.

</comment><comment><USER6> Great work, I hate it!</comment>


Facebook 'scam' posing as Trump campaign ran political ads, sought donations - <AUTHOR> https://edition.cnn.com/2019/10/30/tech/facebook-fake-trump-page/index.html <comment><USER2> Facebook wanted to allow deceptive political ads, didn't they? Or is it only acceptable if you know who's lying to you?

</comment><comment><USER3> Linked article isn't all that interesting, but the related article is: [https://www.cnn.com/2019/10/29/tech/facebook-california- cand...](https://www.cnn.com/2019/10/29/tech/facebook-california-candidate- false-ads/index.html)

</comment><comment><USER4> Alternative title: Scammers scammed pretending to be a famous person on social media

Shorter title: Sky is blue</comment>


Ask HN: How do you test your docker images/docker-compose deployments? - <AUTHOR> When I'm writing docker services or docker images, I have to test it all manually and hope for the best.
But it's tedious and error-prone. Ideally, I'd want to check that a specific file is there with specific contents, or that when launching a container I can access a specific URL, etc.
What do you use for CI testing of Docker images and Docker services? Is there a best practice for doing that? <comment><USER2> I would recommend following the Docker Cloud approach: [https://docs.docker.com/docker-cloud/builds/automated- testin...](https://docs.docker.com/docker-cloud/builds/automated-testing/)

It basically boils down to creating a docker-compose file for testing, and then running tests in it. How you run those tests is pretty much dependent on the type of service you run.

You may also want to institute health checks, either within Docker / Kubernetes, or full service monitoring from the outside.

<comment><AUTHOR> Thank you, I'm looking for something free, it's for a side project.

<comment><USER2> It's free if it's open source. You could also use the same approach and run the test compose yaml file on your desktop/laptop, you don't need to use the Docker cloud for that. You could also integrate the same mechanism with Gitlab.</comment></comment></comment>


Rust for C++ programmers – part 5: borrowed references - <AUTHOR> http://featherweightmusings.blogspot.co.uk/2014/05/rust-for-c-programmers-part-5-borrowed.html <comment> eq- I wonder if there's a (simple syntactical) way to unlink the constness of unique pointers and their targets. It's not a huge obstruction, but seems like an unnecessary restriction not found in the near-equivalent C++ construction.

<comment><USER2> Yes, you can do it, with Cell and RefCell, though the former is restricted to POD types and the latter comes with some minor runtime overhead.

Inherited mutability is not an unnecessary restriction from the point of view of memory safety. It's critical to Rust's ability to prevent iterator invalidation and related bugs at compile time. The fact that C++ doesn't do it is the source of many of its memory safety problems, such as dangling references and iterator invalidation.

<comment><USER3> I was a bit surprised by the reverse:

      let x = 5
      let mut y = &x

If I understood correctly, x is immutable, but can still be mutated via (*y)?

<comment><USER2> No, that results in an error. Mutability doesn't inherit through references (`&`).

</comment></comment></comment></comment><comment><USER4> This 'ownership semantics' of pointers in Rust is just the wrong kind of abstraction. At least for a language nascent in 2014 AD.

<comment><USER5> Not sure why you are being downvoted. I agree with you, the whole thing seems archaic. Downvoters care to comment on why this is relevant to a modern programming language and try to convince us (and not the other way around)? Give me a good example of why I should care. Performance? Do you have numbers?

<comment><USER2> If you mean "do you have numbers as to why you might not want GC in all scenarios", yes. [http://people.cs.umass.edu/~emery/pubs/gcvsmalloc.pdf](http://people.cs.umass.edu/~emery/pubs/gcvsmalloc.pdf)

<comment><USER6> Generally I agree that you don't want GC in all scenarios, but the paper you cite has several flaws which makes its conclusions very far from truth.

1\. It is based on non-production JVM and does _not_ use the same algorithms that are used in production level VMs. There is a huge performance difference between any GC from 1990s and modern generational GC used in production-level VMs.

2\. Some part of the experiment involved simulation. You must be very careful with extrapolating simulation results onto real world. Actually someone on the Internet rerun one of the same experiment using non-simulated VM and got totally different results, but now I can't find that blog post :(

3\. It compares GC to "ideal" manual memory management, ignoring the fact that manual memory management is not free either. Things like heap fragmentation or computational cost of running allocation/deallocation code do exist and may cause also some real problems. The costs lie elsewhere, but that doesn't mean they don't exist.

My experience with large applications is completely different than the conclusion of the paper. Unless you're doing something completely crazy like generating several GBs of garbage per second, modern generational GCs overhead is typically very small (<5%) with only 20-50% more memory than the live set size, not 3-5x as the paper claims.

The biggest pain not solved completely are pauses, but researchers are actively working on it and things are getting much better.

<comment><USER2> > 3\. It compares GC to "ideal" manual memory management, ignoring the fact > that manual memory management is not free either. Things like heap > fragmentation or computational cost of running allocation/deallocation code > do exist and may cause also some real problems. The costs lie elsewhere, but > that doesn't mean they don't exist.

No, it doesn't; it uses malloc and free, counting the costs of allocation and deallocation using a traditional memory allocator. (In fact, if anything, that's unfair to traditional memory allocators, as high-performance code will often use things like bump-allocating arenas which significantly outperform malloc and free. It also uses dlmalloc, which is outpaced by jemalloc/tcmalloc these days, although if the benchmarks are not multithreaded the difference will be small.)

Heap fragmentation exists in GC systems as well, and fragmentation in modern allocators like jemalloc is very small.

<comment><USER6> Ok, point taken, however their cost analysis is based on "simulated cycles", which is extremely simplified. With modern CPUs doing caching, prefetching, out-of-order execution I seriously doubt its accurate. malloc/free have typically a tendency to scatter objects around the whole heap, while compacting GCs allocate from a contiguous region - so a properly designed research experiment would take that into account. Hans Boehm did experiments on real programs and found that using compacting GCs actually speeded up some programs because of better cache friendliness.

As for heap fragmentation - it does not exist in some GC systems, like G1 or C4. And fragmentation is also extremely workload dependent - it might be "very small" for most cases and for some might be as much as 5x (Firefox struggled a lot from this).</comment></comment></comment></comment></comment></comment>


More Details on the Insidious iOS Snap-To-Road "Feature" - <AUTHOR> http://regex.info/blog/2016-01-19/2666 <comment><USER2> Apple seems to suffer from the cargo cult of simplicity.

They seem to view UI simplicity as the goal instead of viewing it as the end result of elegant design choices. Simplicity for the user is something you earn by making good design choices, it's the end of a long arduous process. If you shortcut that, you don't actually end up with something that is simple to use. You end up with something that looks easy to use but is actually very hard to use.

By failing to arrive at clean interfaces the hard way, they make their tools frustratingly inconsistent and difficult to use. Functionality is abstracted away from the user, but there is no consistent process by which the user can predict how to access these functions from program to program, or across the product line.

<comment><USER3> I am an Apple fan and iOS developer, but I completely agree.

<comment><USER4> Likewise, and Steve is just rolling in his grave. Apple used to be so meticulous about UI. Directly unrelated to the road snapping, but a shining example of this inconsistency: I open up the App Store, and tap on the 'hamburger' to get ... "Wish list"???!!

<comment><USER2> I have a theory that big, product driven companies benefit from having somebody up top who just keeps saying "No, it's not good enough, find a way to make it better."

</comment></comment></comment></comment><comment><USER5> This could be also the reason or at least be connected to a behavior I experienced when using Apple Maps on the iPhone:

Apple Maps lacks support for bicycles, so when I cycle I usually use the pedestrian mode, as this fits closer to the tracks and routes available for bicycle drivers than the car mode.

But when you cycle to fast, Maps thinks you changed over to a car and tells you to turn around, as the current route does not fit for cars... How common is it see a bicycle in 1 Infinite Loop?

<comment><USER6> There has to be an entire category of UX problems like this, even with Apple products (maybe _especially_ with Apple products), where some well-meaning set of product owners decides they're going to automatically detect something that might normally be a user input (like mode of travel), and then it turns out their heuristics for detection weren't thought through carefully enough and run afoul of a use case they didn't account for.

<comment><USER7> Actually had this happen the other day on Facebook.

Unfollowed a friend due to some strain on the relationship, and just needed to avoid them temporarily and didn't want to see anything from them. They shared some of my content, which placed them in my notifications.

Notifications can only be marked read, not deleted, so it was somewhat stressful. it's a very minor use-case, but there is no remedy but to get other interactions to force the notification out of sight.

<comment><USER8> Facebook offers tools that are more fine grained than unfriending. You can block someone, unfollow them so they don't appear in your feed, or turn off notifications for the piece of content they shared.

Exposing more controls is always a balancing act. From a user experience perspective it can add complexity to the product, this can make it feel more confusing. The privacy setting, for example is very powerful but the UI is built so that most complexity is hidden until you need it. There is also engineering debt. Once a feature is added it is very hard to remove. A setting like hiding notifications on a per-user basis would have to stay in the codebase for all time, even if Facebook decided to stop showing the UI to new users.

</comment></comment></comment></comment><comment><USER9> "As expected, I've not heard any reply from Apple on the bug report I submitted."

Does anyone ever get a reply on any bug submitted to Apple? With one exception, I get the someone else reported it or it stays open with no comments from Apple.

I have only one bug they ever put the need more information generic text and that has no followup since I followed their instructions, not even a "you did it correctly, thanks".

<comment><USER10> This isn't even a bug. It doesn't behave the way this user would prefer and the feature is not as refined as it could be. Neither of these things is a bug.

<comment><USER11> (Shrug) It's a terrible idea to add a feature like this without giving the user a way to turn it off. Who in the world would _prefer_ it to work this way?

<comment><USER12> You could say that about every tiny feature and then you'd have a Settings app that has thousands of options. Most people don't want that and, I think, would prefer the device to do its best to guess at the correct setting even if it gets it wrong sometimes.

<comment><USER13> You should be able to talk with Siri about your thousands of options and correct its thousands of guesses.

"Siri, why do you think I'm walking in the middle of the road?"

"Oh, I'm sorry -- you're not driving a car? Would you like me to stop snapping your position into the middle of the road, then?"

<comment><USER14> Too Googley

</comment></comment></comment></comment></comment></comment><comment><USER15> My response to a lot of this behavior among a number of products/vendors is "stop helping me." The presumption that users are idiots and cannot be trusted with control over behaviors or settings is a constant source of irritation.

If you insist on injecting yourself into the user's workflow because you believe you know better, then either your solution is flawed and needs this interference or your arrogance is showing and you think you know better than the user what they want. Both of these are evidence that you shouldn't be designing things.

<comment><USER16> _or your arrogance is showing and you think you know better than the user what they want_

IMHO that's what Apple has mostly been about: telling users what they want. Their success shows that it may not be a bad business strategy, but it's definitely not for everyone. I definitely notice there's a culture of conformity around Apple, which is especially ironic considering some of its early ads and the slogan "Think Different" \--- "Don't Think" might be a better fit for today's Apple.

</comment></comment><comment><USER17> Apparently Strava has complained about it:

[http://ilquest.com/2012/11/02/ios-6-is-unusable-for- people-r...](http://ilquest.com/2012/11/02/ios-6-is-unusable-for-people- relying-on-accurate-gps-tracks/)

(That blog isn't Strava, but it quotes a Strava customer service person discussing contact with Apple)

I guess if Apple doesn't change the feature when requested by activity tracker companies they aren't going to change the feature.

<comment><USER18> That's somewhat ironic, considering Strava does their own form of 'snap-to- track' normalisation on GPS data. They have to, in order to do leaderboards on segments, at a guess, but still...

<comment><USER19> At least they snap to what usually are cycling tracks and are not trying to put you on the motorway ...

Also, as far as I know, they only do that to determine the segments, they won't change the actual data of the track.

</comment></comment></comment><comment><USER20> Sounds like this is a configuration issue. There should be two sets of data available, both of them are valuable.

<comment><USER18> Except if it's an optimisation for battery life. Theoretically, you could use less power by pinging the GPS less often in 'snap to road' mode - if that's the case, the 'real' data wouldn't exist or wouldn't be accurate.

</comment></comment><comment><USER21> I think this feature is ridiculously poorly thought out. Why would you ever want to destroy / reduce the entropy of data? Apps can snap to the nearest road themselves.

<comment><USER10> How well did you really think this out? It only took me a couple seconds to figure out a reason why this feature would be beneficial: it could be more accurate in many circumstances.

<comment><USER22> And it could be less accurate in many other circumstances. That's why you provide the original data and maybe _also_ the snapped data, and don't just make the original inaccessible. (And worse, tell no one you're screwing with the data you're giving them.)

</comment></comment></comment><comment><USER16> _internally Apple calls it "Map Matching"; I call it "Snap to Road"._

I've noticed that Apple tends to give things vague-sounding names, and it's probably not by accident. I mean if my GPS had an option named "Snap to Road", I'd immediately understand its function. If it was called "Map Matching", I would be a bit perplexed.

To me, this feature seems like a horrible workaround for poor GPS accuracy, and doing it at the API level is just wrong. If an app reads coordinates from the GPS it should get the most accurate location possible (some concession could be made for pseudo-anonymising randomisation as a security/privacy option). If they feel the need to do some sort of "smoothing" on the data, then it must be an opt-in option, not obligatory.

<comment><USER23> "Map matching" is the term used in most literature for this function.

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

<comment><USER16> Unfortunately it is not very descriptive, nor the term most GPS units use. The question that comes to mind when I see the phrase is "match a map with _what_?" Even the article you linked to begins with a pretty opaque sentence:

 _Map matching is the problem of how to match recorded geographic coordinates to a logical model of the real world, typically using some form of Geographic Information System._

That sounds like something far more general than "snap to road", which is what this feature is doing; nothing more or less.

</comment></comment></comment><comment><USER3> Seems like this should be easily fixable by making it the app developer's decision via CoreLocation.

If the app developer in turn wants to allow the user to modify that setting, then more power too them.

<comment><USER24> Seems like it is the developer's location, with the following note from the bottom of the link:

"(However, there's still the caveat that if any app triggers "Snap to Road", all apps get "Snap to Road".)"

which seems to be a poor implementation decision vs providing apps snapped or unsnapped location data based on their setting, but may be the result of some early-on ill-considered internal designs?

<comment><USER25> An indirect and undocumented decision, apparently, based on this somewhat confusing list of "activity types":

[https://developer.apple.com/library/ios/documentation/CoreLo...](https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLLocationManager_Class/index.html#//apple_ref/c/tdef/CLActivityType)

</comment></comment></comment><comment><USER26> I've noticed this yesterday in a flight just before landing and I found it funny how the airplane was following the roads each for a few seconds before snapping of.

I also confirm it snaps on both google maps and apple maps with airplane mode turned on, most probably due to caching.

I've also found it amazing that the iPhone 6S held the cache of a map 3000km away after 3 days abroad, with intermittent wifi and lots of google maps and safari use.

</comment><comment><USER27> > _iOS seems to require Internet access (or cached map data) for [snap to > road] to work._

???

If you have no network and no cached map data, what road is there to snap to?

</comment><comment><USER28> > I'm a geek about my data

I'd expect someone that concerned about their GPS tracks to be using a dedicated GPS device (Garmin, Polar, Suunto, etc.) rather than an iPhone - they're just not reliably up to the job regardless of road-snapping (which I've never triggered when walking...)</comment>