Ask HN: What are your news sources other than HN? - <AUTHOR> I am a regular Hacker News reader. But I like to explore similar options news for Sci-tech and Geo Politics.<p>What other news sources you use ? <comment><USER3> I read The Economist. Reasons and benefits I have seen so far are:

1\. It's weekly. "World this week" section is more than enough to have a summary of what has happened throughout the globe and I can get this information in less than 5 minutes. If you are interested in being more up-to- date, you can also try Economist Espresso, which is daily.

2\. It's not only about world news, but also has different sections such as Technology, International, Book & Arts which gives me a wider range of topics to digest on a weekly basis.

3\. This is, in my opinion, the most important bit: Because I'm digesting a wider array of topics but only spending an hour or two every week, I have observed a surprising benefit on human relationships as well:

Kick-starting a conversation with a person I don't know.

As a not-so-social person I have always struggled finding a topic to chat about with a person I have met recently. Now, first thing I do is to ask this person where he/she is from, or what their hobbies are, and all of a sudden I make a connection with an article I have recently read on the magazine and try to learn more from that person. This is a wonderful way of building a relationship as well as learning quite interesting facts about the culture or the hobbies of that person.

<comment><USER4> While the Economist is often recommended, somehow I increasingly find articles posted from the Economist to be very shallow takes - as if a high school literature student was asked to turn in an essay on a given topic. I have rarely felt satisfied after reading any Economist article in last couple of years through I don't know if this represents a growing understanding of the world on my part as I grow older or standards in the Economist declining. I don't necessarily feel the same issue though for NYT or WaPo articles.

<comment><USER5> Exactly this. Made me unsubscribe to paper issue few months ago.

Also noticed that they often display clear unjustified political bias, which didn't happen before. Not sure if it is intentionally or not.

Nonetheless, it remains one of the best sources for me.

</comment></comment></comment><comment><USER6> I try to avoid it. It's too much of a time sink and there's almost zero pieces of actionable information.

I know it's offensive to claim it's merely entertainment but in concrete terms there's no material difference resulting from tuning into daily banter that's any different than watching some serial drama on television.

<comment><USER7> This is why we can't have nice things. Like democracy.

But I also have to limit my exposure to political news. Otherwise I get too depressed.

<comment><USER6> Democracy is achieved through active participation in building and maintaining institutions exercising power, not in passively consuming broadcasted editorial content.

It's depressing because consuming content in isolation doesn't materially affect anything. You can't watch your way to political action. It's empty and everyone knows it.

Donate money to causes you care about, attend meetings, help organize things, exercise power.

<comment><USER7> It wouldn't hurt to have some idea of what's going on, though. Ignoring politics entirely isn't likely to lead to political action.

</comment></comment></comment></comment><comment><USER8> The problem is that online news sources are (almost) all the same - <USER2> budget, second tier silos of mostly trainee journalists. They have an emphasis on clicks and outrage and constant updates to keep you engaged and are a secondary (or tertiary) driver of revenue. The only exception I know of are The New York Times and maybe The Intercept.

My tip is to read a (or more) actual (read: printed) newspapers:

\- they are printed daily or weekly (e.g. The Economist), keeping you out of the "Breaking News" loop every 60 minutes; \- they have more weight within the news organization because they are the primary driver of revenue; \- are therefore written by actual professional journalists in a proper journalistic process.

I recommend just picking up any news paper and comparing that to the online presence of that news paper, you will notice the tremendous difference.

In my opinion, a lot of the "media mistrust" comes from the constant barrage of so-called "news" articles with the primary goal of being shared on social media and bubbling up in Google News. Just check how many news articles are 1:1 copies of AP or any other news conglomerate.

<comment><USER9> [https://newshound.co/editions/en-us/](https://newshound.co/editions/en-us/) is pretty good for seeing how many news articles published by different outlets are actually written by AP/Reuters/etc. and only modified slightly. I think the site was originally intended to allow users to choose the article from their preferred outlet, but I rarely find myself interested in reading any of the grouped articles.

<comment><USER10> I like the same thing about [https://techmeme.com/](https://techmeme.com/) if I click the arrow next to a story, it shows me everyone covering it, but they use editorial discretion to chose the "best" coverage, whether that be the first copy, or the first good copy.

</comment></comment></comment><comment><USER11> 99 comments in "Ask HN: What are your other favorite communities other than Hacker News?" [https://news.ycombinator.com/item?id=20023209](https://news.ycombinator.com/item?id=20023209)

<comment><USER12> Thanks for this - that's exactly what I was hoping to find when I clicked into this.

While I didn't find a whole lot of the content I had intended, I think what _I did find_ was interesting, none-the-less. The general opinion here seems to be "news sources suck[0]", especially if it has anything to do with politics/politics-masquerading-as-economics[1]. And community-driven sites tend to become dominated by the fringe of one political persuasion or another. HN does a good job, here, though a look at "new" yields a few headlines who's content can be summarized as "Your politician iz teh satan11", they rarely bubble up, and the ones that do -- even the ones that (headline-wise) I'd probably _never_ click through in another context, I end up appreciating more often than not.

[0] I tend to agree with this and blame much _but not all_ on the Gell-Mann Amnesia effect: [https://www.goodreads.com/quotes/65213-briefly-stated-the- ge...](https://www.goodreads.com/quotes/65213-briefly-stated-the-gell-mann- amnesia-effect-is-as-follows-you)

[1] Replace "economics" with anything else. HN's policy against political- related posts aside, I think this community tends toward skepticism and a lot of political is facts/truth twisted to fit an agenda/bias (intentional or not).

</comment></comment><comment><USER13> The BBC has a wide range of podcasts (available internationally), including ones about geopolitics and science.

Due to the nature of the medium and the BBC's generally more serious and composed disposition these podcasts tend to be about actually relevant information rather than the outrage-inducing, largely irrelevant rubbish commonly fed by "Now ... this" media.

<comment><USER14> I'd advise steering clear of anything related to UK politics published by the BBC.

There's been a clear pro-right trend for a number of years evident most clearly during the most recent election and Scotland's independence referendum of 2014.

<comment><USER15> The BBC received far more complaints on coverage on the recent election from Conservative (right) supporters than any other group:

[https://www.theguardian.com/media/2019/dec/31/bbc- election-c...](https://www.theguardian.com/media/2019/dec/31/bbc-election- coverage-draws-more-complaints-from-tory-than-labour-supporters)

The right wing in the UK is usually the group most critical of the BBC (AKA "Brussels Broadcasting Corporation").

I would agree that the coverage during the Scottish referendum in 2014 was biased but I think that this is because the BBC is naturally biased towards the status-quo.

Any organisation that can produce _The Thick of It_ being critical of politicians and _W1A_ about its own antics can't be all bad....

<comment><USER16> It's worth noting that the linked article does offer selection bias as an explanation – suggesting that conservative supporters were more likely to write letters, supporters of other parties less likely to.

Number of complaints seems a pretty poor measure of bias, but it is one that is often used to reinforce the idea of the BBC's impartiality.

<comment><USER15> Well, as someone who doesn't support any of the UK major national parties I'd say that the BBC was fairly good at making pretty much all of them look equally unappealing!

</comment></comment></comment></comment></comment><comment><USER17> Spanish: Mexico [https://www.jornada.com.mx/](https://www.jornada.com.mx/) Argentina [https://www.pagina12.com.ar/](https://www.pagina12.com.ar/) Cuba [http://www.cubadebate.cu/](http://www.cubadebate.cu/) España [https://www.elsaltodiario.com/](https://www.elsaltodiario.com/) Colombia [https://www.desdeabajo.info/](https://www.desdeabajo.info/)

English: [https://theintercept.com/](https://theintercept.com/) [https://www.democracynow.org/](https://www.democracynow.org/) [https://phys.org/](https://phys.org/)

<comment><USER18> Even thought I'm kinda "ideologically aligned" with Página 12, I wouldn't consider it unbiased when it comes to country politics (quite the contrary, up to the point of not reporting news in some cases) from Argentina (As it is clearly aligned with the "peronist" movement). There are 2 newspaper that from my point of view do a better job of presenting news in a un-biased way.

One is www.ambito.com (That it originates in a financial newspaper, but their politics reporting is very good).

the other is www.tiempoar.com.ar

</comment></comment><comment><USER7> Trying to understand politics by watching the Web stream go flowing by is pointless. You need high-quality, big picture stuff that requires effort to produce and consume.

In the US, the NYTimes and the Washington Post are the best sources.

To ensure you're exposure is 'fair and balanced' I would add the Economist for a more conservative, but not xenophobic or straight-up nonsensical viewpoint. It has the nice additional bonus of being more global.

Foreign Affairs and Foreign Policy are excellent journals for, well, US foreign policy. Finally, the New Yorker has fantastic longer-form articles on American politics.

<comment><USER19> What about Wall Street Journal?

<comment><USER20> conservative bias

<comment><USER21> > bias

…is not by definition bad. Every publication publishes with bias (recognized and announced or not). Prejudice and unannounced (or not well-known) is what you want to avoid. Reading a "conservative bias" is a good thing, if only to better understand that point of view, regardless of if you agree or not.

<comment><USER20> Agreed! I respect Andrew Sullivan, who said something like "transparency is the new objectivity."

</comment></comment></comment></comment></comment><comment><USER22> Reuters ([https://www.reuters.com/](https://www.reuters.com/)) is currently my favorite news source.

No paywall. Relatively fast loading, not too annoying site. They're heavy on news, light on opinion, agenda and propaganda. They generally cover anything of consequence globally.

<comment><USER21> They are also my go-to for intra-day news.

I use Economist for longer-cycle opinion and news.

</comment></comment><comment><USER23> I really like the french newspaper "Le Monde Diplomatique". [https://mondediplo.com/](https://mondediplo.com/)

It has an english version.

I'm actually reading it in french. It's a well documented monthly newspaper. Articles aren't here to create some bullshit buzz, but deep articles on many subjects mostly politic, economic, geo politics but ther topics are covered (internet, healthcare, ...)

<comment><USER24> I am also a reader of the monde diplo. They have a Spanish version too. We must recognize the small left-wing bias though, but the articles are always of very high quality and all the sources are included. This is by far the beat source of information for international politic and it should be a model for other newspapers.

<comment><USER23> "We must recognize the small left-wing bias though" Yep, I'm fully agree with you, that's must be said.

</comment></comment></comment><comment><USER25> I've found a feed reader to be particularly useful for getting news in one place. Have been using The Old Reader for over a year now (RIP Google Reader :_( ).

I glance at the headlines to make sure I am aware of current affairs but only go further to reading articles if I need more information or the headline/summary is interesting enough.

I don't appreciate news sites that don't have Atom/RSS feeds.

Some sites: [http://www.sci-news.com/feed](http://www.sci-news.com/feed) [http://itweb.co.za/rss](http://itweb.co.za/rss) [https://sdtimes.com/feed/](https://sdtimes.com/feed/) [https://cms.qz.com/feed/edition/africa](https://cms.qz.com/feed/edition/africa)

</comment><comment><USER26> Mostly other aggregators

[https://twitter.com](https://twitter.com) (follow the right people)

[https://reddit.com](https://reddit.com) (follow the right subs)

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

I'm not in the habit of checking in on individual media outlets, but when I see content from WSJ, Bloomberg, or The Information on any of the above aggregators, I generally like what I see.

<comment><USER26> Some follow-on mentions:

[https://www.stratechery.com](https://www.stratechery.com)

[https://www.vox.com](https://www.vox.com)

[https://www.vox.com/recode-decode-podcast-kara- swisher](https://www.vox.com/recode-decode-podcast-kara-swisher)

</comment></comment><comment><USER27> Is it sad to admit to BBC satirical news programmes. This generally works - they cover the "biggest" stories of the week, and if it strikes a chord I can go google for more.

However it failed spectacularly a few years back - A political enemy of the UK prime Minister David Cameron had written a book claiming Cameron had put his (Cameron's) penis into the mouth of a dead pig for a university prank. This had been banned from being repeated in UK media but twitter and non-english sources were full. So satirical programs were simply full of jokes about pigs, oink oink noises and more. They got hilarious reactions from those in the know but I simply had no idea why - it was weeks before the explanation broke somehow

<comment><USER28> > Is it sad to admit to BBC satirical news programmes

I for years got all of my main news from HIGNFY, Mock the Week and Private Eye. I got most of the nuance, without the outrage. Shame we don't have anything in the UK like The Daily Show, otherwise I probably wouldn't frequent any news sources other than those that skewer it all.

<comment><USER29> May I add "Dead Ringers" and "The Now Show" to the list of (BBC) satirical news shows. These shows absolutely nail it for me.

<comment><USER30> and the News Quiz

</comment></comment></comment></comment><comment><USER31> I really enjoy "Le Monde Diplomatique", it's a french monthly newspaper, mostly about foreign politics. It's translated in more than 25 languages and it started as a newspaper made for diplomatic circles.

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

</comment><comment><USER32> After finally cutting myself off of Twitter, my main source for news has been the Wikipedia current events portal:

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

It's as close as can possibly be to unbiased, only lists significant events, and it covers world news rather than only focusing on America.

My secondary sources are reddit's /r/OutOfTheLoop, and the chyrons I see whenever I happen to walk by a TV that is playing the news (I learned of the Trump impeachment this way). If something doesn't come up in one of these three sources, it's probably not important enough to be worth the stress/anxiety that following the issue would cause.

<comment><USER33> Does anyone know if there is an RSS feed of the Current Events portal?

<comment><USER34> I use this in my RSS reader, from an open source web app I made a few years back: [https://news.vinc.cc/search.atom?q=wikipedia+events](https://news.vinc.cc/search.atom?q=wikipedia+events)

</comment></comment></comment><comment><USER35> Perhaps they're not typical sources of news, but I enjoy ProPublica[1] and The Intercept[2] for deep investigative journalism.

[1] [https://www.propublica.org](https://www.propublica.org)

[2] [https://theintercept.com](https://theintercept.com)

</comment><comment><USER36> Axios has a number of email newsletters that are very good. They come out daily or weekly on specific topics. I like the email format where I can expect a good overview of what is happening in a topic (news/politics in the AM, tech news, science weekly, etc). For me, these have been good overviews from a variety of primary news sources. I also really like the email format. I can choose to consume the information on my schedule and don't have to worry about constantly checking website for more information. Plus, by the time the news hits Axios, the story is already relatively mature. They also release breaking news bits when major events happen (like SCOTUS rulings), with context.

Bonus feature - they show you an estimate of reading time for each message too. That can be helpful when planning your time.

</comment><comment><USER37> I have been compiling a list for quite some time now that I have been planning on doing some sort of scoring system of. There also many video sources that are great resources as well.

That said, I will tell you the main lesson I have learned in my obsession for better understanding of the big picture; don't follow outlets, follow journalists, no matter where they go. So I was reading Greenwald long before The Intercept, and if he published somewhere else or gave an interview or talk I'd watch it. The same for others like Seymour Hersh, Robert Fisk, Nassim Taleb, Chris Hedges, Matt Taibbi, Aaron Mate, Whitney Webb et al.

Find the ones that hit hard and keep their integrity. Disregard outlets. Use RSS/atom to avoid the crappy websites that often accompany the content.

</comment><comment><USER38> \- I skim/read a national newspaper every day in the morning for around 10-30m - [https://www.TheHindu.com](https://www.TheHindu.com) (no this one's not religious at all - quite the opposite :D).

\- BBC news (I try to listen to the daily podcast in the evening). I've a radio too.

\- Sham Jaff's [https://www.whathappenedlastweek.com/](https://www.whathappenedlastweek.com/) every week.

And then there are friends who never let you miss any event of importance or otherwise.

PS. HN, for me, is other things but not at all a news source.

</comment><comment><USER39> Economist is very good. They are strongly liberal economics biased in their opinions, _but they don 't hide it_. Their coverage of facts is usually excellent. It's obvious when they are opinionated and when on the other hand quoting expert opinion. I'm a bit on the left, politically, so I like reading 'what the other side is thinking' as well. As a bonus they publish bunch of letters from the readers, where they are criticized for this or that error by their readers, including state officials and university professors.

<comment><USER21> > but they don't hide it.

This is what I very much appreciate about the Economist and why I subscribe.

Solid handling of the facts and well-announced bias, when present. They say "based on these facts, this is our editorial opinion" (almost literally), and I find it refreshing.

</comment></comment><comment><USER40> Quit news. Quit politics. Don't have a "media diet." Make stuff and try to be around people who make stuff instead. To lay a single cobblestone path is to have more virtue than a million hot takes. _Most_ causes are not thought-out enough to advocate, certainly not to scream about. The cobblestone path may outlive you. Politics and news, for all of their rage and sense of urgency, turn with the leaves.

If you want to do good in this world, work on technology, or art, or building something beautiful or durable, like a family. Good comes through these things, not from the political churn, not from quests for power.

If you want to keep up with things, keep up with technology (hi HN), keep up with real people who are doing stuff. It doesn't have to be hyper impressive stuff, just living and making things. Twitter is the most intellectual, and underrated, social network, because people follow too many political accounts and celebrities instead of other people, so if you're looking for an action item that's a good start.

Follow real people. Do real things. Try to inspire and be inspired. Leave the news behind.

<comment><USER41> I absolutely cannot believe that the top answer is "ignore the news and spend more time on Twitter".

This is "Live, Laugh, Love" levels of pseudo-enlightenment.

It is important to know what's happening in the world. It is important to know about decisions being made that affect the country you live in, and it is astonishingly ignorant to assume that politics and media are as bad where I live as you seem to think they are where you live.

<comment><USER40> > It is important to know about decisions being made that affect the country > you live in.

It's mostly not. The vast majority of daily political yammering and scandals has no effect.

People mostly use politics as a way to dodge real problems in their life that they could be solving. You see this most clearly with the way people bat about words like "capitalism" into nonsense definitions. Their criticisms are almost always manifestations of personal issues.

More generally, people mature when they stop believing politics will solve their problems. It is very sad to see people who spend years hoping their candidate will get into office to reorder the world for them (spoiler, they won't), when they could change how they live today to actually reflect their own values.

As for breaking news, etc. If its actually important, it will get to you anyway, I promise.

You don't _have_ to spend time on Twitter, but if you're looking for internet places to go like the OP is, you can find things there that you will never find elsewhere. I'm answering his question sincerely. You can make new friends and start new collab projects through places like Twitter and Hacker News. I've done it! You're not gonna get that reading CNN or BBC or whatever. You're probably not going to get any actionable, meaningful information from news sources like those, especially day to day.

Twitter is 100% amazing, hugely underrated, and a return to the mode of being that we had pre-1500's, where most knowledge was obtained through dialogue instead of one-way broadcasts, and I will die on that hill.

<comment><USER42> Saying that twitter is anything like the sociopolitical dynamics of pre-1500 is just as ludicrous as your other statements. You're acting like hiding in a hole and ignoring the issues around you is the right thing to do.. and trying to sell it like you've discovered this new and better way to live.

<comment><USER40> I disagree. I've written a little about this: [https://firstname.lastname@example.com/are-we-still- thinking-795bd...](https://email@example.com/are-we-still- thinking-795bd9f4a658)

In pre-modern times one talked to more people, sometimes in a single day, than one would ever read in one's lifetime. Today it's the opposite: we will always read/see/hear from more sources that we cannot converse with than we will ever speak to. Twitter allows you great opportunity for dialogue again. It's the first social network that's gotten good at this way of interacting.

Declining to read news sites and ignoring capital P Politics is not hiding in a hole. Perhaps its having priorities that are too different than the ones you're used to, but if that's the case I hope it gives you pause.

<comment><USER43> The rebuttal here isn't that declining to read news is hiding in a hole, it's that getting your world-view updates ("news") by following individuals on Twitter is worse.

For instance, it's been argued that the "low-information" Twitter bubble is partly culpable for Hillary's loss.

Having read your assertions here and your link, it seems your premise is based on a misunderstanding of historical and modern sociology of both conversation and information propagation.

You're focusing on mass media as though it replaced conversation. It's not at all clear that it did.

People still converse verbally as much as they used to, but with today's mobility patterns the interlocutors they encounter in person both among acquaintances and at random today are more diverse than those they rubbed shoulders with 500 years ago. And each of those can converse with a more diverse group in turn.

By sifting through and following a subset of Twitter, you're (however unintentionally) narrowing your aperture, and you tend to end up consuming _bon mots_ like bonbons rather than engaging in deeper dialog opportunistically or spontaneously.

Before Twitter, its mode of communication was called micro-casting:

[https://study.com/academy/lesson/microcasting-definition- exa...](https://study.com/academy/lesson/microcasting-definition-example- impact.html)

You've drawn a line between TV or radio and Twitter as though it's conversational, but once you account for the ratio of pub to sub, from followed to followers, you see it's not the same mode as conversation. On the contrary, you've just self-selected your own personalized micro-channel, and are recommending others do the same to the exclusion of thoughtfully curated information from a long evolving school of journalistic practice.

At the same time, despite Netflix, Twitter, or Facebook, the art of serious and coherent conversation endures, ideally informed by both individual interests and shared news of significance:

[https://www.economist.com/special- report/2006/12/19/chatteri...](https://www.economist.com/special- report/2006/12/19/chattering-classes)

From the town crier to the newsprint to today's subscriptions to Reuters, ProPublica, economist, guardian, wapo, nyt, etc. (see link for independent sources), curated and contextualized news has informed local conversation, national debate, and societal outcomes.

[https://soapboxie.com/social-issues/A-Real-Need-for-the- Real...](https://soapboxie.com/social-issues/A-Real-Need-for-the-Real-News)

That value is being challenged by advertising driven content mills, which degrades the quality of news, but selecting vetted journalistic sources is not particularly different from selecting which Twitter quipsters to follow.

Some sources are tilting at the ad supported windmill, trying to find alternative economic models for journalism:

[https://blog.joincivil.com/the-value-of- journalism-1c0e6905f...](https://blog.joincivil.com/the-value-of- journalism-1c0e6905f780)

To quote from that link, _"... at the end of the day, we live in the real world. It's what makes journalism so essential and durable: a free society's demand to know what's happening will never cease."_

</comment></comment></comment></comment></comment></comment><comment><USER44> I pretty far left, even for European standards, so this is my news:

\- [https://morningstaronline.co.uk/](https://morningstaronline.co.uk/) (UK Left news)

\- [https://www.theguardian.com/international](https://www.theguardian.com/international) (Int. News)

\- [https://www.independent.co.uk/news/world](https://www.independent.co.uk/news/world) (Int. News)

\- [https://taz.de/](https://taz.de/) (German left newspaper)

\- [https://www.sueddeutsche.de/](https://www.sueddeutsche.de/) (German centrist)

\- [https://www.theregister.co.uk/](https://www.theregister.co.uk/) (For IT news)

\- [https://techcrunch.com/](https://techcrunch.com/) (For Startup News)

\- [https://www.nytimes.com/section/smarter- living](https://www.nytimes.com/section/smarter-living) (For Lifestyle articles)

<comment><USER45> I would strongly suggest that anyone in the UK finds a non-UK news source, and SDZ is a good choice. Irish Times also works - not remotely left, but outside the UK bubble.

<comment><USER46> Do you mean [https://sdz.today/](https://sdz.today/) ?

It seems to be down at the moment.

<comment><USER45> No, I forgot that the abbreviation doesn't have a D in it. [https://translate.google.com/translate?hl=en&sl=de&tl=en&u=h...](https://translate.google.com/translate?hl=en&sl=de&tl=en&u=https%3A%2F%2Fwww.sueddeutsche.de%2Fthema%2FBrexit)

</comment></comment></comment></comment><comment><USER47> Local paper: SF Chronicle print edition. It's very good, great local issues coverage, which I wish people would pay more attention to, in general. Voting in California (especially Oakland, where I live) is never easy (42 questions last time!) and I felt like I knew what half of them were in advance, which is no small thing :)

Economist for world news. First-class politics coverage. I always laugh at their briefings. It's like, OK, here we go. "Briefing: Climate change". I wouldn't be surprised if we get "Briefing: World peace". Weighty and substantive.

Stratechery for tech news. It's great. I also read AVC (Fred Wilson's blog), Jason Crawford's new "Roots of Progress" from time to time. Less often I check out Remains of the Day or Wait But Why.

If I'm really feeling ambitious I read foreign affairs. Straight from the US council on foreign relations (CFR). That's the real deal.

I don't pay much attention to US national news. I don't care what nonsense Trump said. I do care intensely about local issues like transit, schools, pensions, and land use (zoning).

</comment><comment><USER48> I subscribed to the print edition of the Wall Street Journal largely to get off the screen and consume less fragmented hot-takes.

The news and business reporting is amazing. The editorial board is very "Fox News", but as someone who's fairly liberal I get to see outside the bubble.

Edit: Oh, and Dan Neil's car reviews every Saturday are one of the most relaxing reads of my week.

</comment><comment><USER49> My list for mostly political and non-corporate media.

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

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

[https://www.currentaffairs.org/](https://www.currentaffairs.org/)

<comment><USER50> Genuine question from someone who probably (given your choices) agrees with you politically most of the time: do any of these strike you as acceptable _news_ (i.e. non-editorial) sources? If so, why?

<comment><USER49> The Intercept - absolutely.

Current Affairs is certainly more editorial.

Jacobin is somewhere in between.

</comment></comment></comment><comment><USER51> In Brazil: [https://nexojornal.com.br](https://nexojornal.com.br)

</comment><comment><USER52> I don't scan HN as religiously as I used to do it in the past. I prefer to check _Ask HN_ most of the time as there are more useful threads in it than the main page.

To the original question, I explore Reddit subs of my choice.

</comment><comment><USER53> For science

sciencedaily.com

lobster.rs

a little less technical science news - newatlas.com

I get access to pressreader.com via my local library a/c

</comment><comment><USER54> I watch CGTN,

while it's definitely pro china, I still find it to be by far the most valuable news television.

It focuses on Africa and Asia, which I otherwise hear very little about. The value of the news for me is mostly not whatever the news is, but the facts surrounding the news.

For example when they covered the election in Senegal, I learned a ton about Senegal as a result. The news about the election was not the important part in this case, it was learning about the country.

I wrote longer about CGTN here: [http://mathiasbonde.com/?p=96](http://mathiasbonde.com/?p=96)

<comment><USER55> > I'm really ignorant regarding most issues outside of the west.

I agree. We kinda are. That's why is nice to read all these alternative sources. You don't have to agree with them, but at least you'll ask yourself more questions. Thanks for the link and the advice. I'll definitely watch some CGTN.

</comment></comment><comment><USER56> BBC and guardian for international news, then tons of local sites and Twitter for local news, Ars Technica and verge for general tech news and Gsmarena, phonearena and gizchina for Android/mobile news

i narrowed my interests since I lack time, previously used to read about architecture/buildings and science sites, but it's just too much information and if there is something really important it will go to regular news sites, otherwise it's just stuff with application in years/decades, which I don't care

</comment><comment><USER57> [https://news.google.com/?edchanged=1&hl=en- US&gl=US&ceid=US:...](https://news.google.com/?edchanged=1&hl=en- US&gl=US&ceid=US:en)

[https://news.google.com/?edchanged=1&hl=en- GB&gl=GB&ceid=GB:...](https://news.google.com/?edchanged=1&hl=en- GB&gl=GB&ceid=GB:en)

[https://www.aldaily.com/](https://www.aldaily.com/)

</comment><comment><USER58> I used to spend majority of my time on Twitter, and reading NYT. But it's too much to pay attention to; I couldn't care about anything happening in the world.

Now most of my time is spent reading local newspapers, newsletters from local publications, and issue-specific publications (climate change).

I'm choosing to care about fewer things and deferring to rest of the world to care about others.

</comment><comment><USER59> I wish this question would've been asked 1 week later as I have been trying to find a good weekly summary for years. I got fed up & created my own. I finally published it this weekend, but had to wait 4 days for approval. Anyway, here it is: [https://www.wnu.news/](https://www.wnu.news/)

</comment><comment><USER60> reuters.com

\- The UI (especially mobile) is pretty terrible so it's hard to get hooked

\- It generally only reports global news that means something rather than talking heads or identity politics

\- They have published some articles critical of themselves or affiliates, which in my opinion demonstrates objectivity

Also when I'm commuting to work, I'll listen to the local NPR station on the radio which covers some local topics.

<comment><USER61> I like Reuters because it seems to be one of the more neutral news sources in the US.

</comment></comment><comment><USER10> To directly answer your question: [https://scitechdaily.com/](https://scitechdaily.com/) [http://memeorandum.com/](http://memeorandum.com/) (and culture from [https://redef.com/](https://redef.com/) [https://aldaily.com](https://aldaily.com))

Like the "avoid it" answer, I also like to read criticism instead of news, whether it be book reviews, movie reviews, album reviews, video game reviews. Partially to increase my literary skills, and partially to help me notice more around me as I consume entertainment. A&LDaily New Book reviews in particular. I read a lot more book, film, and game reviews than I read, watch, or play.

Longform and Longreads are great ways to find more magazine like researched stories, instead of daily infotainment style "news."

Full List

[https://techmeme.com/river](https://techmeme.com/river)

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

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

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

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

[https://longform.org](https://longform.org)

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

[https://mediagazer.com/river](https://mediagazer.com/river)

[https://memeorandum.com/river](https://memeorandum.com/river)

The aldaily media list ([https://www.aldaily.com/media/](https://www.aldaily.com/media/)) and redef sources chart ([https://redef.com/charts/sources/total](https://redef.com/charts/sources/total)) are also good pages.

For film specifically [https://letterboxd.com/](https://letterboxd.com/) [https://www.rottentomatoes.com/](https://www.rottentomatoes.com/) [https://www.metacritic.com/](https://www.metacritic.com/)

</comment><comment><USER62> About a hundred websites for various technology news (some of the stories I share here) grouped by interest and signal-to-noise ratio (subjectively determined by me) plus a few related to politics and my hobbies (photography and hiking/camping) all consumed in QuiteRSS on both Windows and macOS.

(Am I supposed to post the OPML file for the tech news?)

</comment><comment><USER63> Caspian Report on Youtube: [https://www.youtube.com/user/CaspianReport](https://www.youtube.com/user/CaspianReport) Condensed news which are more like essays, 15-20mins for each topic, they set the historical context for the current events in a very objective way.

<comment><USER64> I like some of the channel's older content. The newer stuff is a bit opinionated for my taste.

</comment></comment><comment><USER65> Although it is in german, the "deutschlandfunk"[1] is very informative radio with no advertisement. I mostly listen to it on breakfast, but you can most all articles on the radio on their website.

[1] [https://www.deutschlandfunk.de/](https://www.deutschlandfunk.de/)

</comment><comment><USER66> Personally, I enjoy reading The Week over the weekend to get the news of the week: [https://www.theweek.co.uk](https://www.theweek.co.uk)

Together with that I like to read the free news site from my home country to keep up-to-date what's happening over there.

</comment><comment><USER67> For French readers: I have created a HN like for French news with the same interface than hacker news and a similar time/point based algorithm for auto sorting most popular articles.

Link: [http://news.keymetrics.com/](http://news.keymetrics.com/)

</comment><comment><USER68> Originally meant for my own consumption, I made an aggregator that I would like to get my news from, in a form and shape I prefer. then my friends started using it and they really liked it. Now available to everyone.

[1] [https://embit.ca](https://embit.ca)

</comment><comment><USER69> Once upon a time I trusted the "news", and to be fair, it seemed more balanced than it is now. Maybe that was just naivete.

Today? Hard to find any "news" that isn't slanted. The weather perhaps? "News" has become propaganda.

</comment><comment><USER70> The Prepared, by Spencer Wright. Weekly email digest of really interesting things from the world of engineering and manufacturing. [https://theprepared.org/](https://theprepared.org/)

</comment><comment><USER71> For the USA, the Federal Register is the "daily journal of the United States Government". No spin, just the actual rules.

[https://www.federalregister.gov/](https://www.federalregister.gov/)

</comment><comment><USER72> RealClearPolitics.

Because twice daily it lists several outrageous stories from all sides of the political spectrum. I truly believe every news source today is biased, the only way to get any kind of balanced view is to scan them all and triangulate.

</comment><comment><USER73> Audible.com to learn about topics through books while in the car or on a walk. I buy paper copies of the books I want to share or reference. I try to alternate nonfiction and fiction (usually science fiction and historical fiction).

</comment><comment><USER74> Other than memeorandum (techmeme mentioned several times but not memeorandum??), there's The Weekly Sift ([https://weeklysift.com/](https://weeklysift.com/))

</comment><comment><USER75> Slashdot, The Verge, Vox, Tech Crunch, Ars Technica, TechJuice.pk (Pakistan).

</comment><comment><USER76> [https://www.allsides.com/unbiased-balanced- news](https://www.allsides.com/unbiased-balanced-news) is a news aggregator with a focus on balanced news.

</comment><comment><USER62> A potentially interesting project: a Show HN OPML file generated from the sources posted on HN and weighted based on frequency of posting and up-votes for articles from those sources.

</comment><comment><USER77> I don't have any. If something is truly important to my specific interests then my friends who share those interests will alert me to it. All news I get is word of mouth.

</comment><comment><USER78> I like Bloomberg radio. Most of their stuff is through a global markets lens, so their stuff is less about how things should be and more about how they actually are.

</comment><comment><USER79> I use News Items (for-pay). [https://newsitems.substack.com/](https://newsitems.substack.com/)

</comment><comment><USER80> DiscoverDev for great technical blog posts. The Intercept to get an alternative media. Fox News to understand people I disagree with. The Economist.

</comment><comment><USER81> [http://axios.com](http://axios.com)

Summarises news (mostly from a US perspective) concisely with options to dive deeper

</comment><comment><USER82> I like the Hackaday blog: [https://hackaday.com/blog/](https://hackaday.com/blog/)

</comment><comment><USER83> an interesting chart on media bias now at version 5.1

[https://www.adfontesmedia.com](https://www.adfontesmedia.com)

</comment><comment><USER84> [https://www.uptopnews.com/](https://www.uptopnews.com/) to get a quick tech overview.

</comment><comment><USER85> I have a heavily cultivated set of custom subreddits (local, photography), but I tend to gravitate to hn for tech more and more these days.

</comment><comment><USER86> A new account looking for other places with geo political discussion? I am becoming more cautious about how freely I share some knowledge.

</comment><comment><USER87> There was this study a while ago about how readers stuck to the bubbles they knew. So conservative readers read Drudge Report, and Liberals read Huffington Post.

However, there was one news source that their network analysis had found to be read widely by both conservatives and liberals: the Israeli newspaper Haaretz.

I don't know if this is still true, but its worth a browse.

Other than that, I agree with the sentiment here that NYT and WaPo at least go through the effort of fact checking.

<comment><USER62> Worse than that: Facebook, Twitter, and YouTube think they are doing us a service by inferring our bubble based on what we consume and then give us an ever-smaller bubble thinking it's what we want. What I want is full-spectrum coverage of topics: I want to know what the American left, right, and conspiracy fringe think of something, what the Euroskeptics and EU-supporters think, what the prevailing opinion is in Moscow and Tokyo -- and then draw my own conclusions if it's important to me.

</comment></comment><comment><USER88> No one has said it yet to my surprise. Arguably the most trusted news outlet in America today is the financial times. Wall Street Journal at one time was a competitor, but it feels like less so today. I would support the argument made previously in this thread, that the news orgs in print and paywalled online produce better content because they don't have to run the rats race of outrage and ads - FT is one of those.

</comment><comment><USER89> Financial Times is great! Not worth the price if you dont split it with others, though.

</comment><comment><USER90> Techurls.com Devurls.com Feedly

</comment><comment><USER91> I still check out slashdot.org / reddit.com / flashback.org (Swedish)

<comment><USER92> I'm still on Slashdot as well. The discourse is less civil, but more straight. Still, I prefer the civility of HN :)

</comment></comment><comment><USER93> The Guardian (English), The Conversation, Information (Danish).

</comment><comment><USER94> Matt Levine @ Bloomberg

<comment><USER45> "Money Stuff" is hilarious.

</comment></comment><comment><USER95> HN and Benedict Evans's newsletter for me

</comment><comment><USER96> i started vising maagnit.com last week. good mix of mainstream and independent sources, all video though.

</comment><comment><USER97> Washington Post, Engadget, Mac Rumors

</comment><comment><USER98> I subscribed to a couple of newsletters to stay up to date. The TLDR I read on a daily basis. JavaScript Weekly is also very good if you're interested int webdev.

Here's a good list of different newsletters: [https://github.com/zudochkin/awesome- newsletters#technology-...](https://github.com/zudochkin/awesome- newsletters#technology-in-general)

</comment><comment><USER99> One similar site I use is [https://lobste.rs/](https://lobste.rs/)

</comment><comment><USER100> Everyone on hacker news is a hedonist who retired from politics or any political discourse.

</comment><comment><USER101> \- Twitter \- Reddit

<comment><USER7> Getting your politics from twitter is a horrible idea. Even if it wasn't full of trolls and bots specifically intended to mislead, it would still be an endless spew of pointless, often fake, outrage where the only thing that matters is keeping Jack Dorsey rich and keeping twitter-itself afloat.

</comment></comment><comment><USER63> caspian report on youtube

</comment><comment><USER102> /g/

</comment><comment><USER103> [https://voat.co/](https://voat.co/) as uncensored aggregator for global sociopolitical news.

Newspapers.

</comment><comment><USER104> American: [https://foxnews.com](https://foxnews.com)

Russian: [https://rt.com](https://rt.com)

Canadian: [https://thepostmillennial.com](https://thepostmillennial.com)

<comment><USER105> How on earth can anyone present fox news as a serious news site? It's the living incarnation of for-profit shock journalism. It doesn't even pretend to have actual content. (I'd be just as irritated if someone said comedy central... Which is probably slightly more accurate, but still utterly idiotic)

<comment><USER104> Fox News is by far the most popular cable TV news network. Many people also read their website.

Would you like to share your news sources?

<comment><USER105> "By far" \- false

"Popular" \- lol, chinese state media is an order of magnitude more popular, do you think it's an order of magnitude more trustworthy?

I personally read the economist, ny times, and wsj for short-cycle online content. I listen to npr in the car, and then... I don't know, read constantly? Everything? Tech blogs? trade journals? History books? Literature? Religious shit? I struggle to keep up with the world in a meaningful way. Don't you?

Fox anything drowns itself in the vulgar idiocy of certitude. I can imagine no lesser epistemological sin in 2020.

Read and listen to get data, not to absorb obvious horseshit

</comment></comment></comment></comment><comment><USER106> Face-to-face conversations and John Oliver on Last Week Tonight

</comment><comment><USER107> For me, HN is not a news source. HN is a forum.

<comment><USER108> It can be both if there are discussions on newspieces that you happened not to catch elsewhere.

</comment></comment><comment><USER55> [https://www.rt.com/](https://www.rt.com/)

<comment><USER44> Love how people downvote RT but upvote BBC. Take any media outlet with a big grain of salt. Al Jazeera is also a good news source, when you are intelligent enough to question motives.

<comment><USER55> People are not quite objective around HN when it comes to political stuff. That's fine, the technical stuff is still good.

> Take any media outlet with a big grain of salt

True. That's why you can't trust a person who gets his/her info only from BBC and NYT anymore than you can trust an engineer who doesn't know Lisp.

I'm also reading The Guardian, it has some nice opinion pieces, but when Australia is on fire the news is how some tourists saved some koalas and it's all well. When the Amazon burns, that's another story.</comment></comment></comment>


Experience of having my blog #1 hot Reddit on programming subreddit for a day - <AUTHOR> http://irhadbabic.com/experience-of-having-your-blogpost-1-hot-reddit-on-programming-subreddit-for-a-day/ <comment><USER2> September has come</comment>


Dissatisfied Final Cut Pro X customers receive refunds from Apple - <AUTHOR> http://www.appleinsider.com/articles/11/06/28/dissatisfied_final_cut_pro_x_customers_receive_refunds_from_apple.html

<comment><USER2> I was at my local public television station yesterday working on a project, and their editors said they are seriously considering switching to Avid because of this release.</comment>


RollerCoaster Tycoon: The Most Impressive Game Ever Developed - <AUTHOR> https://www.youtube.com/watch?v=expgMekxlvU <comment><USER2> Open Source Roller Coaster Tycoon 2

[https://openrct2.org/](https://openrct2.org/)</comment>


5 Lesser-Known Pandas Tricks - <AUTHOR> https://towardsdatascience.com/5-lesser-known-pandas-tricks-e8ab1dd21431 <comment><USER2> what is the difference between the merge and join in pandas?</comment>


Ask HN: Internet Provider for Digital Nomads - <AUTHOR>

Does there exist a mobile data contract that which is …
* blazing fast (150+ mbit downstream) * works worldwide * has no cap on how much data per month you can use?
What are you people using? Is it really the best solution to get one no-contract sim card per country per month + sthg like google voice?
I refuse to believe no one I know has found an elegant solution for this yet. Anyone founded 'Nomad Internet' yet or sthg like it?
What would you be willing to pay for this?
Somewhat related: * Who is using VPN for travelling worldwide * Which provider do you use? * What sucks about it? * What would you be willing to pay for this if it really really works like a charm?
Bonus question:
* How do you deal with this (internet access & security) if you employ a distributed team (and or people who travel worldwide)?
Think internet access for Mr Wolf.
#shlepventure #digitalnomads <comment><USER2> I want to say no.

Each country is its own country. So telecommunications have to abide by that countries digital laws when operating within that sovereign nation as well as any state/local laws that may apply based on your location within that country. As this is complex and cultures/language/economic barriers often limit how far a company can spread internationally. So then you are left with inter-corporate negotiations and partnerships which are if not as complex, more.

The simplest solution is satellite internet, but its outrageously expensive.

Google Loon apparently is going to be going full force within ~18 months. So that may solve your problem long term.

</comment><comment><USER3> Even the no-data-cap requirement will be hard to match. Have a look at a couple of countries on [http://prepaidwithdata.wikia.com/](http://prepaidwithdata.wikia.com/)

It would probably be prohibitively expensive. Look who is buying Iridium phones these days, it's not digital nomads.

The best alternative I could imagine is selling those prepaid cards easier, e.g. courier who hands it to you at the airport. But most providers these days require the buyer to provide a copy of a passport.

[edit: fixed typo]</comment>


Know thy .NET object memory layout - <AUTHOR> http://mattwarren.org/2014/07/04/know-thy-net-object-memory-layout/

<comment><USER2> If I'm understanding this correctly - the JITer does the same thing automatically that we used to do manually in C. That is, place larger variables first inside our structs, so that unnecessary padding isn't added to achieve word alignment.

If order is otherwise unimportant to you (coding standard demanding alphabetic order, offsets that must match a layout provided by someone else, etc), you could do it yourself when creating your class/struct.

<comment><AUTHOR> Yeah that sounds right, basically the JITter is free to re-order as it want. The order you write the fields in your class (in a .cs file) enfore anything.

If you really need a specific memory layout, you need to use a trick like the one in the article, or resort to LayoutKind Sequential[0].

[0] [http://support.microsoft.com/kb/922785](http://support.microsoft.com/kb/922785)

</comment></comment><comment><USER3> I was trying to figure out why I could write a ring buffer in Go and it would perform so much faster than the equivalent C# implementation.

This is part of the answer. Despite an attempt to align a struct to leverage the cache, it was getting rearranged.

Of course, there is also less inlining and the schedule behind the async command really doesn't like it when you get more active pseudo-threads than cores.

In the end, the data flow TPL was the only implementation that was roughly in the same ball park.

<comment><AUTHOR> Yeah the .NET JITter is free to do what it wants with the field layout, mostly to pack/align things for better perf.

BTW have you looked at Distuptor.NET[0], the .NET port of Disruptor? It's a high-speed ring buffer written in .NET, that might contain some tricks to get your perf closer to the Go version.

[0] [https://github.com/disruptor-net/Disruptor- net](https://github.com/disruptor-net/Disruptor-net)

<comment><USER4> Forgive me. What do you mean by "pack/align things for better perf"? Specifically, in what use cases would this yield better performance? And by what measurements?

<comment><AUTHOR> It's related to the CPU, there's a nice wiki article[0] that goes into it a bit more. Also in [0] it mentions that SSE instructions will only work with 128-bit aligned data, so sometimes it's a requirement. Alignment can make memory access more efficient, but means that data can take up more space. Packing is the opposite of this, rearranging fields, so that they take up the smallest space possible.

So the 2 things are a trade-off.

[0] [http://en.wikipedia.org/wiki/Data_structure_alignment](http://en.wikipedia.org/wiki/Data_structure_alignment)

</comment></comment></comment></comment><comment><USER5> Why does the object layout matter for this use case? Essentially recording a histogram as described boils down to a single line to record a new observation: this.counts[Math.Floor(offset + scale * Math.Log(value))]++; Maybe using Interlocked to become thread-safe and making the index calculation integers-only if this saves some cycles. Besides getting offset and scale into the same cache line, where does the object layout matter?

<comment><AUTHOR> The HdrHistogram class is part of a hierarchy, to make the code more sane, to make implementing specialised versions easier (Short, Long, etc) and to enforce the memory layout: \- AbstractHistogramBase [0] \- AbstractHistogram [1] \- Histogram (or IntHistogram, ShortHistogram)

AbstractHistogram contains all the "Hot" fields, i.e. the ones that you want to get into memory at the same time, with the least possible work. These fields are used repeatedly when storing values, which is the "Hot Path" for HdrHistogram.

AbstractHistogramBase contains a lot of fields that are only used when you are iterating or displaying results, so the idea is that they are kept out of the way when recording values.

[0] [https://github.com/HdrHistogram/HdrHistogram/blob/master/src...](https://github.com/HdrHistogram/HdrHistogram/blob/master/src/main/java/org/HdrHistogram/AbstractHistogram.java#L32)

[1] [https://github.com/HdrHistogram/HdrHistogram/blob/master/src...](https://github.com/HdrHistogram/HdrHistogram/blob/master/src/main/java/org/HdrHistogram/AbstractHistogram.java#L78)</comment></comment>


Ask HN: Visiting Bulgaria and Romania:  Where to Stay?  What to Do?  Who to See? - <AUTHOR> Looking for advice on getting the most out of the city from a startup perspective.  I'd love to have the potential to meet a few freelancers or dev shops in the area face to face.
I wouldn't mind having some advice as far as where to stay, anything I have to see or do while I'm in the area.  As a first time visitor, is their anything I just cannot miss?
I wouldn't mind building a good network of contacts that have a potential for friendships or working relationships.
To put it bluntly, what would you share with an American coming to Bucharest, Romania. Then Burgas and Sofia in Bulgaria. <comment><USER2> In Bucharest, by day I recommend you to stay in Dorobanti Area and Herastrau area, by night try to visit the old town bars and nightclubs. If you didn't book any hotel I think the best hotel to say is Radisson.

We don't have that many tech spaces but you can visit Techhub.

<comment><USER3> I second this. I spent a month in a loft in Dorobanti and it was fantastic.

<comment><AUTHOR> Thanks for the feedback from the both of you!</comment></comment></comment>


Tcl 2015 Conference paper abstracts - <AUTHOR> https://core.tcl.tk/conference/tcl2015/abstracts.html <comment><USER2> I would love to hear Hipp's "How To Make Tcl Twice As Fast --- Experiences in using micro-optimizations to improve the performance of SQLite".</comment>


A free guide I wrote on growth -- hope you enjoy - <AUTHOR> https://accel.io/guides/the-beginners-guide-to-scrappy-growth-hacks/content/ I wrote this guide in part because I just wanted to, and also because I think the best way to learn is to do, then iterate and then teach.<p>So, I hope you enjoy. I'd love to receive feedback in the guide or you can always email me at bpindulic at gmail <comment><AUTHOR> I wrote this in part because I just wanted to, but also because I feel the best way to learn is to do, iterate and then teach.

So, I hope you enjoy. Feel free to comment in the guide or email me at bpindulic at gmail

Just keep in mind it's for beginners, as I'm a beginner myself. These are some non-scalable tactics I've learned and used successfully, so I figured I'd share

</comment><comment><USER2> So you feel I should register in order to view what you have to say? I closed the tab as soon as I saw that signup page.

<comment><AUTHOR> If it were up to me, I'd have it open to anyone -- that's accel.io's policy</comment></comment>


C++ unified call syntax: x.f(y) vs. f(x,y) [pdf] - <AUTHOR> http://isocpp.org/files/papers/N4174.pdf <comment><USER3> Oh great. More magic syntax that makes one thing look and behave like another, while not actually being that other.

Every time C++ gets new features, I feel like the designers must never have looked at a C++ core dump, trying to find out what actually happened. The source code bears practically no relation to what actually happens.

The C++ designers should perhaps stop trying to make their language into Common Lisp. You can only fake dynamic behaviour so far until it breaks.

<comment><USER4> I really don't understand this kind of bash every time C++ gets some cool new feature. A developer that does NOT want to use a feature can always not use it. But why should we deny it to those who are interested and use it at their own risk?

<comment><USER5> The problem is that there is no way to reduce complexity in a programming language that is serious about backward compatibility. C++ now has close to 30 years of non-trivial additions built on the craggy basis of backward compatibility with C and its own feature set.

In the early 1990s, it was complex. The Annotated Reference Manual that was used as the de facto standard was full of edge cases and detail that required a great deal of study. No other language since has approached that level of complexity and I'm talking about what it was like before templates.

I sincerely believe that C++'s downfall is underway and it comes from a very simple fact - it's increasingly hard (read impossible) for new C++ programmers to go from zero knowledge of the language to being able to read and maintain modern C++ programs that have taken full advantage of the feature set over the past decades.

<comment><USER6> Yes it is complex, but you can say the same about almost any modern language.

If the language is not complex, then it is the eco-system.

<comment><USER5> Yes, but on balance, I think that ecosystem complexity is both more tractable and addressable than language complexity.

<comment><USER6> I think it is relative.

An ecosystem can also be quite complex, specially if it changes often.

Any newcomer will face the exact situation not knowing what to use, what is no longer best practice or what should be avoided.

</comment></comment></comment></comment></comment></comment><comment><USER7> The interesting part to me with this, is that for the last 20 years or so there's been a certain strain of C++ development, spurred on by increasing template/meta-programming support, that have advocated for moving more code to non-member functions, to benefit from improved reuse.

But this has been awkward because it means calling conventions may often be different and functionality that's "mixed in" this way seem far less integrated than functionality that's brought in via inheritance. It's also had the disadvantage that if you ever suddenly needed one of those free-standing functions to depend on internal state of an object, you'd either have to break encapsulation, or break the API (by moving the function into the class), or provide a legacy function to forward to the new API.

This change would make it even more attractive to break out functionality that does not depend directly on the internal state of an object as standalone functions, in effect creating a sort-of "limited class re-opening".

<comment><USER8> >> This change would make it even more attractive to break out functionality that does not depend directly on the internal state of an object as standalone functions, in effect creating a sort-of "limited class re-opening".

You can already write the functions that way, nobody is stopping you. f(x,y) a function that returns something based on x and y. x.f(y) a method where object type x does something based on y.

The second form will have access to private members of x and has some notion of the object doing something. The first form implies that x is just an argument to the function.

What I see is C++ going from object oriented to functional - in other words following whats trendy.

That said, I think they should take all the lessons learned doing high performance implementations of C++ and start over to create a new language that doesn't suck with all the baggage.

<comment><USER9> > That said, I think they should take all the lessons learned doing high > performance implementations of C++ and start over to create a new language > that doesn't suck with all the baggage.

Oh, you mean Rust (programming language)?

</comment></comment></comment><comment><USER10> I would expect some comments on covariance here. With this you seem to have a magic first parameter x that gets to be dispatched based on the runtime type of x, while y isn't and gets to be overloaded according to its static type. The dot notation at least conveys some notion of x being looked at in a different way than y.

</comment><comment><USER11> This idea _almost_ sounds like a joke. A member function is indeed different from a non-member function precisely because it is not a member of the set of functions responsible for maintaining the object's invariants. Treating

        f(x, y);

as

        x.f(y);

only makes sense (to me?) if all other things being equal, if f(x, y) is a friend of the class. And picking the member function form over the non-member function in the caller's scopes seems like a step _away_ from encapsulation. Prefer non-member functions. Scott says so!

<comment><USER7> Consider that under the hood, they result in the same code (unless f is a virtual member function, in case it'd be equal to x.<vtable ptr>[vtable offset of f](x,y)).

For non-virtual member functions they differ in syntax and lookup, not implementation. In effect they provide two different syntaxes for something that is _very_ often the same thing, namely executing a piece of code that logically "belongs" to and operates on the first argument.

E.g. look at the C standard library, and consider how many of the functions there operates on the state of the first argument.

This change would let you write an f() that does not have access to the internals of x, yet can still be called the same way as the member functions, providing increased uniformity and making the choice of member function vs. non-member function more of an implementation choice by letting you reduce the impact on the documented API:

> And picking the member function form over the non-member function in the > caller's scopes seems like a step away from encapsulation. Prefer non-member > functions. Scott says so!

Preferring non-member functions is exactly why I think this seems interesting. The awkwardness of splitting an interface so people have to remember what is a member function and what is a non-member function, and having to decide how it should be split, easily results in a lot of stuff ending up as member functions when it doesn't have to be.

If it's transparent to the user, there are fewer reasons to prefer member functions, not least because "promoting" a non-member function to a member function if you later need access to more internal state becomes easier.

</comment></comment><comment><USER12> First of all, don't flame me too much because if you follow my advice it wouldn't be C++ anymore. This is not a suggestion about the post but an invite to think.

I always wondered why somebody designs object oriented languages with functions and eventually run into this kind of problems.

An answer might be that they're not willing to wrap fundamental types with classes, even if it would be only syntactic sugar that the compiler can easily unwrap without losing efficiency in the generated code. Probably this is not the only reason, as for the case of Python's len() and the like. Python's designer actually wanted functions to make sure all classes had the same methods, exported as functions.

Furthermore there might be historical reasons, in the case of C++ to make it look like C. Too many differences can scary people away. Think about what it took to make Objective-C successful, the almost impossibility to use any other language to program on a given platform.

Finally, there is convenience, as in void fn(int x) {...} main() { ...; fn(x); ...} By the way, Ruby solves that by adding fn to the Kernel class so it allows the same convenient syntax in a complete OO world.

Anyway, an OO language in which everything is an object doesn't suffer from the kind of problems the post is trying to solve. Years ago I went to Ruby from Java and a little of C++. I was happy not to have that kind of int vs Integer duality. Then I looked at Python and found it a little bit weird with functions mixed to methods, but that's the way it is.

So my advice is as radical as unrealistic in the case of C++: if you want to change the language, make it use methods where it still uses functions. The compiler will deal with that. Remember that when you'll design your next OO language :-)

<comment><USER13> In early-bound, single-dynamic-dispatch languages it makes a small amount of sense, as x.fn() is the only syntax for a dynamic dispatch against object x and fn(x) uses at most compile-time information to determine what fn gets called.

</comment></comment><comment><USER14> I like the idea of unified call syntax. I know D and Nimrod support a system similar to the one proposed here, albeit they were designed with the syntax from the start and avoid the more awkward edge cases.

If it can be proven not to break existing code, I think it would be a positive addition to the language. I worry, however, that there might be some confusion. I imagine seeing x.a().b().c() where you expect c(b(a(x))) would throw you off.

An alternative worth considering is what Kotlin calls extension methods (and I'm sure I've seen the idea elsewhere). The idea is you could declare a member or non-member function to always be called with either call syntax. This eliminates the burden on the programmer of choosing which syntax to use, eliminates a lot of edge cases, but doesn't give the same flexibilty as the unified syntax.

</comment><comment><USER15> Oh, wow. I know most people dislike C++ language extensions, given how complex the language already is. But as a library author, I truly believe this is the most powerful and useful addition we can add to the language now. I've been wanting this exact thing for years, but unfortunately you can't even do it as a preprocessor due to the complexity of ADL and SFINAE on lookups.

First, I like Herb Sutter's propsal more ( [http://isocpp.org/files/papers/N4165.pdf](http://isocpp.org/files/papers/N4165.pdf) ), as Bjarne's proposal to favor x.f() when encountering f(x) would be a breaking change. However, Herb's suggestion to accept x in any position in f (eg x.f(a, b) could match f(a, x, b)), in order to wrap libc interfaces such as FILE* more easily, I feel is a mistake. I'd rather we keep the complexity of parsing down and write wrapper headers around libc to support the new syntax instead (which is also a wonderful opportunity to get the functions and #defines out of the global namespace.)

Onto utility ... as stated, nearly all of my time writing C++ is spent creating libraries. This is always a huge struggle: you don't want users to have to remember that some functions are class::func() and others are func(class&), and indeed it makes for some really ugly code, eg c(b(a()) instead of a().b().c(). Further, since C++ classes cannot be reopened, it's a real problem to just rely on users to extend your classes to add desired features. Person A makes class fooObject : object, person B makes class barObject : object. But now fooObject and barObject are incompatible, unless you slice back to object, and lose the whole point of your extensions.

Unified function call syntax (UFCS) solves this nicely: member functions are now only those that need access to private state. Your classes are much smaller, which aids in encapsulation. Further, you don't have to code everything but the kitchen sink into your classes anymore, the user can simply add functionality that they need. Or you can offer the extensions piecemeal in separate headers. So not only do we get UFCS, we also get a nicer form of C# extension methods for free.

Further, it's a real boon to IDE auto-completion features to be able to know available functions after object.[function] than it is after function([object]; the former is much easier. Imagine an IDE trying to auto- complete "begin(", for instance. That list is going to be hopelessly long.

Lastly, it will be very interesting to see what rules they put in place around this and primitive types. If you can have square(int&), then you could call int x = 5; int y = x.square(); But even more interesting will be if this is allowed for constants: int x = 5.square(); string y = "hello".toUppercase(); ... there is the potential to allow C++ to be a truly object oriented language where everything is an object, if this is done right.

On that note, I haven't seen much talk around the implementation of f(x), but they definitely need to allow for both x::f() -> f(x&) and x::f() const -> f(const x&). I'm also a little concerned about x->f() -> f(x*), and how that might play in with overloaded operator-> that you find in smart pointer classes.

For those in favor of f(x, y) over x.f(y), please consider the history of ambiguity around operator arguments. strcat is (target, source) whereas rename is (source, target). There are thousands of examples like this. Putting the target before the function call is an absolutely wonderful way to remove the burden of having to remember each and every function's exact ordering. For cases where there is no clear "target", regular function call syntax can still be used, eg intersect(x, y)

But, complexities aside ... I really hope this feature makes it in, and that the naysayers to all language extensions do not ruin this. It will completely change the way I program in C++.

<comment><USER16> What is a use case in your library code where you have the problem of class::func() vs func(class&)? I'm willing to wager your API is just plain written badly in that case.

 _It will completely change the way I program in C++._

This is a bug, not a feature.

I kind of think, at this point, Bjarne is trying to get the language to implode once and for all so he can finally get some rest--and only has to take such drastic measures because the community is too enamored with shiny to just let the old dog die.

<comment><USER15> I must not have explained it well enough.

Take std::string. It is missing majorly useful functions that exist in other languages, such as trim, transform, split/explode/tokenize, replace-by-string (std::string is replace-by-length, which is more like memcpy), etc.

You can add those functions. But you can't add them into std::string. So you get: void trim(string& s, const string& trim);

And now your code is a mix of two styles:

        s.append("  Hello, World  ");
        trim(s, " ");
        s.compare(...);

As I've explained, subclassing is dangerous. Two people each add their own functions to their own derived types, and now those types aren't directly compatible without slicing back to std::string.

So the problem, as a class author, is that you want to add all of the functions a user might want, so that they can consistently use the same syntax. So when you write your string class, users can then use it like so:

        s.append("  Hello, World  ");
        s.trim(" ");
        s.compare(...);
        //or even possibly ...
        s.append("  Hello, World  ").trim(" ").compare(...);

(You may say the syntax difference doesn't matter, but I disagree strongly: it's burdensome to remember which functions are string::foo(), and which functions are foo(string&); and if I wanted to use foo(string&) exclusively, then I'd go back to writing in C.)

This causes substantial bloat by packing string with a ridiculous number of functions.

Some of those functions are going to be very niche. For instance, I have find/replace/split functions that ignore values inside of quotes, which I use extensively in a cross assembler I wrote. But they're not very useful for my other programs. It would be nice if I could #include <string/extension/quoted- strings.hpp> for the cross assembler, which would contain UFCS functions, and leave this out of my other projects. Smaller compilation times, and easier to create experimental/fluid extensions before committing them to the official class API.

And if a user of my string library decided that they needed additional functions, they too could add them.

I would go so far as to say that UFCS will result in more developers using the C++ standard library containers and types, rather than rolling their own. Which would be a huge win for the language.

</comment></comment></comment><comment><USER17> Even though it makes sense with regard to the way operators work currently (they can be defined as members, or as free functions), it looks like a breaking change to me

        struct A {
            double magic(int);
        };

        string magic(A&, int);

is currently legal code. Under this proposal they'd effectively be overloads with different return types, which is is a compile-time error, unless I'm missing something.

<comment><USER14> In order to maintain compatability, magic(a,b) would have to call the nonmember function and a.magic(b) would call the member function. Ideally, if you were using this feature, you would enable a warning that tells you if there's a collision like this in any scope. Otherwise, your code would continue to work just as it already does.

Unless I'm missing something, I don't think this proposal would break anything, and while the edge behavior for collisions is awkward and unfortunate, at least its easy to identify and avoid

</comment></comment><comment><USER18> Apple's Swift makes more sense with its curry feature. If you have class 'C' with method 'm' taking argument 'x', you can call that method either like c.m(x) or C.m(c, x) because C.m is automatically provided closure taking instance of C (typically as "self") and argument x.

Most importantly, there is no magic going on with namespaces. Method 'm' still belongs to its class's namespace.

</comment><comment><USER19> Note: it's just a proposal. (And I'd say highly unlikely to be ratified: could break things, don't bring anything.)

<comment><USER20> I don't know what it's chances of ratification are -- it does seem like an aggressive change -- but I disagree that it doesn't add anything. This would actually fix one of the biggest problems I have with large C++ development: non-open classes.

Think of a widely used class -- for example lets use std::string. Maybe for your program there are some missing methods that would really handy to add, like maybe .urlencode(). Today in C++ you can't though: if the method isn't mentioned in the original definition of std::string in its header file it's permanently missing.

This leads to pressure to make a custom version of the class, either inheriting or encapsulating the original. This seems to work OK but then can lead to problems if you later want to interface with someone else's library written in C++. For instance you might have "class mystring : public std::string" and they have "class theirstring : ..." now you have to explicitly convert between them even if data-wise they're 100% compatible.

This proposal neatly solves this problem -- you could just implement string extensions as a function and still be able to call them like a regular method. The ability to add methods to other people's types promotes type reuse.

<comment><USER21> The same result could be achieved by introducing a smaller change to the language that doesn't completely redefine the way existing functions are evaluated. By using some specific signature (like adding a keyword to the first argument of a function), you could indicate that this function may be used as a member method of the first argument. For example, C# uses the keyword 'this' for its extension methods:

      public static class Helpers
      {
        public static string UrlEncode(this string url)
        {
          //...
        }
      }

      // then later:
      string someText = "...";
      string a = Helpers.UrlEncode(someText); // valid
      string b = someText.UrlEncode(); // valid too

But of course that would mean having to update all the function declarations of the standard library to add the new keyword when needed...

<comment><USER20> Yes, I agree that there are simpler changes that would fix the problem, and personally I'd root for them. Stroustrup's proposal is still interesting in that it would solve it and unify operator/method dispatch at the same time. It has a certain elegance.

</comment></comment></comment></comment><comment><USER18> Stroustroup tries to bend your API to his liking only because in his opinion certain syntax is "older" and more "general". Alarming quotes:

"The functional (mathematical) notation is far older and more general than the object-oriented dot notation."

"For example, I prefer intersect(s1,s2) over s1.intersect(s2)."

<comment><USER22> I'd also prefer "intersect(s1, s2)" if C++ had multimethods...

But to follow the line of Bjarne's advice (I've also heard same from Stepanov): One should prefer non-member functions. i.e. there must be some real reason for some function to become a member of a class.

<comment><USER23> The problem with non member functions is that, once you start preferring them, you are basically writing C. They are contagious. There's very little reason for class members unless you want inheritance or polymorphism. Scott Meyers has also promoted them:

[http://www.drdobbs.com/cpp/how-non-member-functions- improve-...](http://www.drdobbs.com/cpp/how-non-member-functions-improve- encapsu/184401197)

With non member functions declared in the header and defined in a .C file, and suddenly you don't have RIAA any more or exceptions. Your .C files end up being your division of concerns, not classes.

The only time you end up using any C++ features is interacting with a library that prefers member functions.

<comment><USER22> Well, the key thing is the `reason` here. In C++ we use RAII, so this is the reason to have a member constructor/destructor functions instead of non-member create_something(...)/destroy_something(...) (aka C style).

But, for instance, `sort` is a good candidate to have outside of a class - <USER2> it actually is a global function - std::sort.

<comment><USER23> RAII is your reason.

When you start preferring non member functions, you tend allocate on the stack.

There are rare items that require heap allocation and other resources. For those you can have classes. What I am saying is that when you prefer non member functions you end up with very few classes.

<comment><USER24> You don't use classes only to get RAII. They are also useful when you have data with invariants, which the constructor establishes. And of course, if you want to use private data.

<comment><USER23> by invariants do you mean constant values?

there's many ways to implement private data. if you prefer non member functions, a class is a bunch of extra keystrokes to achieve the same as the old fashioned C private data.

if you prefer non member functions to member functions, your private data becomes a global variable or struct in a file, and the private data is not accessible by getter/setter functions that are externalised.

<comment><USER22> Having access to private data (implementation details) is another reason to have a member function.

Unless you're a fan of `friend` keyword ;)

<comment><USER23> i think you need to read my comment again because "private:" in a class is not the only way to implement private data. you are only repeating what the parent commenter said.

<comment><USER22> Well, to follow your line - virtual functions can also be implemented with some function pointer stuff within C. We're not discussing implementing various C++ stuff in C, we're talking about C++ itself.

<comment><USER23> be that as it may, it requires more keystrokes to implement virtual functions in C than it does in C++.

however, it requires less keystrokes to implement private data in C, than it does to create a class to store private data.

therefore it's questionable, if you are preferring non member non friend functions, whether you should use classes when you want private data.

i refute the idea that private data is a reason to use classes, if you are preferring non member non friend functions as advocated by Stroustrup, Meyers and Stepanov.

as i said already

> There's very little reason for class members unless you want inheritance or > polymorphism.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER25> Considering that this is already the case in D, it seems like it might be a good idea. Though who knows how much havoc this will cause in older code bases that are riddled with hacks.

</comment><comment><USER26> The traditional C++ syntax to me is the most clear, hiding functions under passing the hidden _this_ pointer just brings the entire thing seemingly back to C.

</comment><comment><USER27> ... and then it's a short step to adding multiple dispatch in a clean way.

I'm pretty sure that's not what Bjarne has in mind, though.

<comment><USER28> Why are you sure about that? It's explicitly mentioned in the paper and Bjarne has done research in the past on adding multiple dispatch to C++.

[http://www.stroustrup.com/multimethods.pdf](http://www.stroustrup.com/multimethods.pdf)

<comment><USER27> Interesting, thanks. Color me much less sure then.

</comment></comment></comment><comment><USER29> And so C++ takes another step towards Lisp.

</comment><comment><USER30> Not sure if I like this. Smells like the Greenspun's tenth rule all over the place.

</comment><comment><USER31> I'm not a C programmer, but in general, I think this is a great idea. I really wish that it could be added to a high-level language. However, I think it's fundamentally incompatible with some of the features of high-level languages, such as dynamic typing, first-class functions, partial application, parametric polymorphism, structural typing/extensible records...

<comment><USER7> I'm uncertain what languages other than C++ you think would benefit much from this.

The reason C++ would benefit from this in the first place is because of a combination of its lack of higher level features (e.g. enabling extension/mixing in functionality in less painful ways) and its "C legacy" in the form of vast amounts of non-OO code.

E.g. consider a language like Ruby, which has most of what you list as features of "high-level languages". For Ruby this would be very weird to begin with, because Ruby does not have non-member functions - everything calleable in Ruby is a method; what looks like free-standing functions in Ruby are functions on an object whose eigenclass is the implicit outermost scope.

What we'd do instead in Ruby is to put "function like" methods in a module that we can include in whatever objects we want.

But you _can_ in fact easily achieve what this proposal does in Ruby.

<comment><USER31> Many languages that are not primarily object-oriented. E.g. it was proposed in Rust [1]. It could also be added to many other functional languages, as often the "object-oriented" function call syntax looks more natural (when the first parameter is "special", the object of the call) than the "mathematical" function call syntax (appropriate for when parameters are equivalent, e.g. `max()` or `dot_product()`).

[1] [https://mail.mozilla.org/pipermail/rust- dev/2013-October/006...](https://mail.mozilla.org/pipermail/rust- dev/2013-October/006034.html)</comment></comment></comment>


An Analysis of China's "Great Cannon" - <AUTHOR> https://www.usenix.org/conference/foci15/workshop-program/presentation/marczak <comment><USER2> I'm always puzzled by these articles looking at the Great Firewall of China as if it is an alien thing. Much of it was designed in the US, by American engineers, working for companies like Cisco ( [http://www.wired.com/2008/05/leaked-cisco- do](http://www.wired.com/2008/05/leaked-cisco-do) ). So just ask them. People have even sued companies like Cisco about this ( [http://blog.thomsonreuters.com/index.php/suit-over-ciscos- ro...](http://blog.thomsonreuters.com/index.php/suit-over-ciscos-role-in- chinas-great-firewall-must-proceed-advocacy-group-says/) ), but the US government dismissed those cases ( [http://cyberlaw.stanford.edu/blog/2015/03/china%E2%80%99s-go...](http://cyberlaw.stanford.edu/blog/2015/03/china%E2%80%99s-golden- shield-cisco-systems-complicit) ).

I read bizarre pieces from New York Times columnists ( [http://www.nytimes.com/2009/06/18/opinion/18kristof.html](http://www.nytimes.com/2009/06/18/opinion/18kristof.html) ) which say "If President Obama wants to support democratic movements on a shoestring, he should support an "Internet freedom initiative" pending in Congress. This would include $50 million in the appropriations bill for these censorship-evasion technologies. The 21st-century equivalent of the Berlin wall is a cyberbarrier, and we can help puncture it."

Huh? US corporations built it. The US courts have OK'd it. Why should US taxpayers pay to circumvent the technology that S&P 500 companies like Cisco are building?

<comment><USER3> One word = money

</comment></comment><comment><USER4> I'm really glad to see the discussion really highlighting that this is not a problem unique to China:

"Our findings in China add another documented case to at least two other known instances of governments tampering with unencrypted Internet traffic to control information or launch attacks — the other two being the use of QUANTUM by the US NSA and UK's GCHQ. In addition, product literature from two companies, FinFisher and Hacking Team, indicate that they sell similar 'attack from the Internet' tools to governments around the world. These latest findings emphasize the urgency of replacing legacy web protocols like HTTP with their cryptographically strong counterparts, such as HTTPS."

sasvari: thanks for posting this – it's a great followup to the earlier blogs posts from the authors now that the dust has settled a bit and everyone has had more time to think on it:

[https://citizenlab.org/2015/04/chinas-great- cannon/](https://citizenlab.org/2015/04/chinas-great-cannon/)

(previous discussion: [https://news.ycombinator.com/item?id=9353785](https://news.ycombinator.com/item?id=9353785))

<comment><USER5> DDoSing Github is pretty blatant and hopefully behind the scenes the Chinese have paid a price high enough to think twice about further actions.</comment></comment>


Ask HN: What is the concert calendar that sucks least? - <AUTHOR>

<comment><USER2> Songkick offers a great solution for concert tracking. I use it all the time. It allows personalised tracking of artists that you like and much more.

<http://www.songkick.com/>

</comment><comment><USER3> Reverbnation is one of the most comprehensive in my area for indie bands, but it lacks a few key venues. Last.fm has quite a few concerts listed, but usually only bigger name acts. Indie zines and weekly newspapers seem to be the best offline source.

</comment><comment><USER4> Seatgeek, especially their Columbus discovery engine. <http://seatgeek.com/columbus>

</comment><comment><USER5> I use Tourfilter. Big popular and small local acts are posted by individuals who follow the bands.</comment>


Ostif.org Unbound DNS Audit Results – 1 Crit – 5 High – 5 Med - <AUTHOR> https://ostif.org/our-audit-of-unbound-dns-by-x41-d-sec-full-results/ <comment><USER2> It's baffling to me that we're still running DNS servers written in C. DNS is not that hard to provide!

<comment><USER3> Unbound was prototyped in Java, they moved to C for speed [0].

Genuine question: Which languages would you rather DNS servers/resolvers be written in?

Consequently, if you do not mind, which DNS server and resolver do you use?

[0] [https://en.wikipedia.org/wiki/Unbound_(DNS_server)#History](https://en.wikipedia.org/wiki/Unbound_\(DNS_server\)#History)

<comment><USER4> They rewrote in 2006. The JVM was not where it is today in 2006.

You could always use Rust if bare-metal speed is important to you. But, as I'm sure tptacek will point out (and which I agree with), Go or Java or most other high-performance memory safe languages would be perfectly reasonable as well.

<comment><USER2> What amazes me about this, and I'm prepared to be wrong but my confidence level is sort of high, is that you could implement most DNS servers, and, I believe, virtually any authority server in _any language at all_ and it'd be fine. Forget Rust and Go; you could do it in Perl.

<comment><USER5> I've contributed to unbound, and I wrote a lot of the DNS server that we use at Amazon. The main security risk in DNS is DDOS; it's by far the biggest concern and day to day pain, and a big part of a strategy for dealing with it having really high performance. 100s of thousands of QPS per core kind of performance.

A lot of this boils down to using direct networking plumbing tricks and optimizing query handling into very fast flat memory lookups. A garbage collected language would be a terrible choice.

C is still the most common solution, but if I were writing a DNS server today, I'd go with rust.

<comment><USER2> To be clear, I don't think you could write Route53's DNS servers in Perl. It'd rather be my contention that most people running their own DNS servers don't need the kind of resilience that Route53 has (if they did, they'd be using Route53).

</comment></comment></comment></comment></comment></comment><comment><USER6> Links to commits:

[https://github.com/NLnetLabs/unbound/commit/09845779d5f2c96e...](https://github.com/NLnetLabs/unbound/commit/09845779d5f2c96e3064ff398cad65c08357cfbf) Shell Injection in IPSECMOD

[https://github.com/NLnetLabs/unbound/commit/b60c4a472c856f0a...](https://github.com/NLnetLabs/unbound/commit/b60c4a472c856f0a98120b7259e991b3a6507eb5) Uninitialized Memory in worker_handle_request()

[https://github.com/NLnetLabs/unbound/commit/f887552763477a60...](https://github.com/NLnetLabs/unbound/commit/f887552763477a606a9608b0f6b498685e0f6587) Config Injection in create_unbound_ad_servers.sh

[https://github.com/NLnetLabs/unbound/commit/226298bbd36f1f0f...](https://github.com/NLnetLabs/unbound/commit/226298bbd36f1f0fd9608e98c2ae85988b7bbdb8) Integer Overflow in Regional Allocator

[https://github.com/NLnetLabs/unbound/commit/a3545867fcdec503...](https://github.com/NLnetLabs/unbound/commit/a3545867fcdec50307c776ce0af28d07046a52dd) Integer Overflow in sldns_str2wire_dname_buf_origin()

[https://github.com/NLnetLabs/unbound/commit/fa23ee8f31ba9a01...](https://github.com/NLnetLabs/unbound/commit/fa23ee8f31ba9a018c720ea822faaee639dc7a9c) Out of Bounds Write in sldns_bget_token_par()

[https://github.com/NLnetLabs/unbound/commit/f5e06689d193619c...](https://github.com/NLnetLabs/unbound/commit/f5e06689d193619c57c33270c83f5e40781a261d) Assert Causing DoS in synth_cname()

[https://github.com/NLnetLabs/unbound/commit/d2eb78e871153f22...](https://github.com/NLnetLabs/unbound/commit/d2eb78e871153f22332d30c6647f3815148f21e5) Assert Causing DoS in dname_pkt_copy()

[https://github.com/NLnetLabs/unbound/commit/02080f6b180232f4...](https://github.com/NLnetLabs/unbound/commit/02080f6b180232f43b77f403d0c038e9360a460f) Integer Overflows in Size Calculations

[https://github.com/NLnetLabs/unbound/commit/2d444a5037acff60...](https://github.com/NLnetLabs/unbound/commit/2d444a5037acff6024630b88092d9188f2f5d8fe) Insufficient Handling of Compressed Names in dname_pkt_copy()

[https://github.com/NLnetLabs/unbound/commit/6c3a0b54ed8ace93...](https://github.com/NLnetLabs/unbound/commit/6c3a0b54ed8ace93d5b5ca7b8078dc87e75cd640) Out of Bound Write Compressed Names in rdata_copy()

<comment><USER7> The first one is truly terrible, everyone who commits to a project like this should understand that passing network data to a shell is a recipe for disaster. The proper fix is not to validate the arguments, the proper fix is not to use the shell at all. Luckily this appears to be an optional plugin.

Party like it's 1975 indeed.

<comment><USER8> Using execve() and friends should be preferred, unless you have a really good reason for spawning a shell.</comment></comment></comment>