Bruce Schneier: It's time for technologists to become lawmakers - <AUTHOR> https://venturebeat.com/2019/03/06/bruce-schneier-its-time-for-technologists-to-become-lawmakers/ <comment><USER2> > Back in the 1950s, tech and policy didn't really interact, unless it had to > do with something like nuclear weapons or the space program. Today, tech and > policy are intertwined, Schneier said.

> "Today, technology makes de facto policy that's far more influential than > any law," he said. "Law is forever trying to catch up with technology. And > it's no longer sustainable for technology and policy to be in different > worlds."

Isn't that something of a misreading of late 19th and 20th history?

Just about every decade in the late 19th and the 20th century was part of an ongoing telecoms, media, and IT boom. There were the telegraph, telephony and the fax, satellite communications, the internet, usenet, mobile telephony and SMS, internet forums and chat; radio, TV, streaming and social networks; typewriters, mechanical counting machines, transistors, microchips, mainframes, PCs, smartphones; etc. It's just wave after wave after wave after wave, with every decade or two adding some major development in one form or another.

Sometimes what was happening required lawmaker attention. Laws and regulation followed every single time -- if only eventually.

It's not entirely clear to me, apart from scale, how the problems we face today are that much different than, say, those that were on a would-be legislator's mind when radio became mainstream or when TV news became a thing.

Bruce's points are most welcome and valid, but I wouldn't be surprised if a historian were able to dig up people making similar points (at least) since radio has been around. (Edit: And possibly since Gutenberg's printing press became mainstream.)

<comment><USER3> Yeah that sentence is egregiously incorrect. Technology and policy have been intertwined for as long as we have had states. This is a clear example of somebody not trained in history just winging it when making historical claims.

Heck, the _specific_ technologies that Schneier cares about (related to communication and privacy) have been tightly coupled with policy for like 600 years. Way back when postal routes where just becoming a thing you already have state leaders and bureaucrats writing about how technologies like ciphers cause problems and enacting policies to ensure that states had the power they wanted over private communications.

<comment><USER4> He is referring to how tech is driving our social life outside of our comfort and privacy zones. Today you can't function properly, as a member of western civilization, without carrying a smartphone, and for that you get penetrated into your privacy by the provider of the phone OS, be it apple or google, the 2 big ones. Before you had cars, tv, planes etc, but none of them followed you inside in your bedroom. Now you are. So yeah, he is right actually, we need technologists to become lawmakers, not just specialists that congress only summons when need it.

</comment></comment></comment><comment><USER5> I love the idea, but many of the intrinsic rewards for technologists in tech, don't exist in politics. Many issues can be solved fairly easily if we calm down, take a look at experiences and data, and apply solutions that have been shown effective. Technologists like solving problems; problem solved. Politics however have so many other, non-solution/problem based variables, that are very, very hard to overcome. While I agree with Bruce, we first need to recapture our politics for the people in the country, not politicians.

<comment><USER2> > Politics however have so many other, non-solution/problem based variables, > that are very, very hard to overcome. While I agree with Bruce, we first > need to recapture our politics for the people in the country, not > politicians.

The main way to do that is for you to get involved. If you do not, someone else who might not see that as a problem will, and the problem you despise will continue.

Edit: It's not even hard to do, if you're dreading to meet people. There's an app out there that (exclusively) helps conservatives organize grassroots movements and increase their voter turnout. Last I checked there still wasn't any liberal or libertarian equivalent. If you're into either of the latter, you can get involved and help your favorite political flavor build an equivalent app.

<comment><USER5> Evidence shows getting involved has little impact. Only money. This quip we always talk about is not true when you analyze the data. You're going to hear more and more about this in the coming years: [https://scholar.princeton.edu/sites/default/files/mgilens/fi...](https://scholar.princeton.edu/sites/default/files/mgilens/files/gilens_and_page_2014_-testing_theories_of_american_politics.doc.pdf)

</comment></comment></comment><comment><USER6> I think the first thing to do in the US is to bring back the CRS to what it was supposed and more important needs to be, it's current budget is only 100 million which is laughable considering how much lobbiest can spend in DC.

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

Having an independent and impartial think tank that can brief law makers on the issues they are facing is more important that having people with STEM degrees in the lagislstive branch.

</comment><comment><USER7> Umm, you first Bruce...

Add: Sorry don't mean to add so little. Just feel it's a case of someone standing on the sidelines who makes a living writing (and that is what Bruce does, right) pushing others to do what they don't want to do. And to those who say 'well it's good that he brings the issue out in the open' sure that is the case. But it might be better if he is actually willing to carry through on his suggestions or at least talk about someone who he convinced to follow his idea.

<comment><USER8> If the goal was to pick _one_ person to run for office, then Bruce would be a good candidate.

But that's not the goal. He's advocating for lots of candidates, many of whom will likely need to start running at local levels first.

If Bruce were to run for candidacy it could signal to other technologists that they don't need to do anything — which is the opposite of what's needed.

Instead, I'd like to see Bruce offer to act in an advisory/mentoring role for the technologists/engineers who do run.

<comment><USER7> I think there is also this misconception that politics is about being smart or being right. That is far from the case. Politics is the art of compromise and selling others on what you believe in. As such the wrong type of personality and approach can fail miserably. And the right approach and personality can win big time even if they have no clue or the wrong or bad ideas. You also have to be willing to go along and made deals that on the surface seem like bad ideas to do. If just so that others politicians will pay you back when you want to get something done. Know how to play the game.

<comment><USER9> Or win miserably, which is worse. (A play on words, but you know what I mean.)

</comment></comment></comment></comment><comment><USER10> My opinion in short (nofi): Anyone with decent skills, a love for getting things done and some need for privacy needs to stay as far away from politics as possible. I've tried it when young and naive. The 'thinking for others' part is addictive, plus it's quite the thrill that people actually vote for you. But it comes with quite the cost. No privacy, death threats, the constant bending over backwards stretching your true beliefs for the party line. So many politicians are abusers of substances, prone to corruption and generally mentally unstable that I don't buy the line 'we need different politicians' anymore. We need different politics. I have no clue how to get there though and advocate a quite life for anyone. Not necessarily 9-5, but something with clear boundaries and where one is not the focal point for any lunatic. I'd make the same point of not becoming CEO though.

<comment><USER11> Technologists, unlike politicians, have a luxury of creating a system and offering it to others, without asking for trust (in form of election or other) or promising doing some specific work (to support the system, to use it etc.) If the system is good, others will use it; otherwise they won't.

As I understand it, Schneier's idea is to ask technologists to work on systems solving - even partially - problems which we see today in the society. Even partial solution can help those whose job is to, in general, govern, i.e. politicians - as well as hired bureaucrats.

</comment></comment><comment><USER12> I absolutely understand the sentiment, but if you've ever seen explosive arguments over trivial technological decisions, you'd never want technologists working in an environment where sacrificial compromises are the rule du jour.

</comment><comment><USER13> Perhaps our voting system should change such that technologists votes/opinions count more on technological issues rather than just making them lawmakers. What good is a computer technologist's opinion regarding anything other than computer tech? That is why I think many lawmaking bodies are broken to begin with. The people who have the votes on most matters are mostly not the ones whose opinion should be counting?

</comment><comment><USER14> 1 thing is for sure. The tech revolution is underway and it will be the technical people who will own the world.

The caveat of this is that your average non-tech worker will hate tech. This will be 'robots stealing our jerbs' x10.

Tech workers wont be able to get into office.

</comment><comment><USER15> He's a little late isn't he?

As little of five years ago tech had a lot more goodwill than it does now. In democratic societies we techies probably have more of an uphill battle than others, because the few of us in charge of companies cannot behave properly

<comment><USER11> Satoshi Nakamoto isn't known as a CEO of a powerful corporation, but his work had quite an influence over last ~10 years.

We can do something similar. Remember, say, how Skype was created? Or WhatsApp? Or Paxos? BitTorrent?

<comment><USER16> Bitcoin had marginal influence among a group of believers. It didn't have a real world impact (yet ?).

<comment><USER11> Depends on what impact to consider real world. Bunch of people managed to transfer money from their countries abroad using bitcoin. Lots of papers were written studying blockchains. Some financial and other organizations considered and, I believe, at some point deployed systems modeled on Bitcoin technology. Maybe that's not enough to consider it "real world impact", but I suspect more than one person's life was noticeably affected by using Bitcoins.

</comment></comment></comment></comment><comment><USER17> Lawmakers are elected so yeah good luck.

<comment><USER4> Exactly's Bruce idea as well, as a technologist go run for office...start locally then go up the ladder. And create laws that you know will stem the tide of apple/google/facebook to trample your privacy as they see fit.

<comment><USER17> Tech people don't resonate with the electorate. WWE resonates with the electorate.</comment></comment></comment>


Today we launched a website for homeless people - <AUTHOR> https://askizzy.org.au <comment><AUTHOR> ... And it was launched by Australia's Prime Minister - [http://goo.gl/tRnGSD](http://goo.gl/tRnGSD)

I work @infoxchange as the operations lead, when I first heard the idea of a website or app for people that have found or are worried about finding themselves homeless in Australia I really didn't think it made sense - until I saw the stats showing how many homeless people in Australia have regular access to a smart phone and data either via a cellular provider or free WiFi.

Today we served up over 54,000 requests to the site and it's only in it's first stage of inception.

We did a lot of research, working with homeless and at-risk people throughout Australia, it's really been quite an eye opener especially for my team who are largely technically focused.

AskIzzy is the result of Infoxchange winning the Google Impact Challenge in 2015. For me the most interesting things about the site other than it's value to those in need is that it didnt cost tax payers a cent to develop or host and it has no model for making profit of any kind, this resulted in the site being designed truly for the end consumer - the person in need.

<comment><USER2> The insight on mobile device access among the homeless was very non-obvious and interesting.

> it didnt cost tax payers a cent to develop or host Wasn't clear from the > site on how it was funded. Could you share?

That seems like an really large number of data sources to put into one interface.

Could you share some insight on how the data came together? How is the data accessed - api, datadump? How is it kept current?

Nicely done! Thanks for sharing.

<comment><AUTHOR> Good question - we (Infoxchange) have had a large database of providers centred around services for disadvantaged and at risk people in Australia since the early 90s, it goes back so far that we used to offer this information up over BBS - and we actually ran the very first 'online' search engine in Australasia, back then I think it was actually called 'the info X change' or something quite corny like that but hey - it was the 90s!

I gave a talk on the history and journey with search and our database of providers back in 2014 - those slides are still very much relevant and contain some screenshots from the mid 90s of someone accessing the data via mosaic - check out: [https://smcleod.net/search-a-journey-of-delivery-on-a- budget...](https://smcleod.net/search-a-journey-of-delivery-on-a-budget/)

With regards to AskIzzy, it's essentially a front end that accessed data from our services & providers database which is called 'Infoxchange service seeker', that platform is a number of Python app that use Elasticsearch backed by PostgreSQL with PostGIS, it has its own set of front ends for various purposes and has a pretty flexible API to query data, which is what is used by things like AskIzzy to get the information they need.

With regards to updating data - that is obviously the hardest part, we all know garbage in = garbage out, so we tend not to like the idea of scraping or anything like that. Many service providers do not have the technical skills or infrastructure to expose the the state of their services online but are more than happy to fill out a small status update form on a website, email an update to one of our systems etc... We also have a dedicated team of database updaters that make regular stop ins with service providers to ensure their details are correct.

I should also mention that we are 100% non-profit, charitable organisation - so we're not making any money off AskIzzy or any other platform / service we run and were very transparent about that.

* sorry for any typos - wrote this reply on my phone

</comment></comment></comment><comment><USER3> so homeless people don't have homes but they will have internet access? Dumb.

<comment><AUTHOR> It's a crazy world we live in right? Many people are donated phones and you can buy them for $30 or so at the local supermarkets. It's not so easy to find accommodation and food.</comment></comment>


How to Split Equity Among Co-Founders - <AUTHOR> https://blog.ycombinator.com/splitting-equity-among-founders/ <comment><USER2> Very nice. Short, clear, and reasoned.

I like the logic behind the equity split, and it's worth repeating that equity split is a signal to investors about the relative value of the founders.</comment>


A quarter of UK schoolchildren admit attempted "hacking" - <AUTHOR> http://www.theregister.co.uk/2010/03/18/uk_teenage_hacker_survey/ <comment><AUTHOR> "hacking" is a bit too much like link bait, but "attempting to access a Facebook account that wasn't their own." was too long for the title.</comment>


How to find interesting IT projects for outsourcing? - <AUTHOR> Hello everyone! My name is Adilet. I started running my own IT organization called Neobis in my country (Kyrgyzstan). Our team develops mobile applications, services, and just started develop games. We are looking for startups or companies we can help to solve their problems by developing software. Our team consist of many talented programmers, so we would like to outsource projects from Kyrgyzstan.
Can you give me an advice, how to find it-projects in USA or EU?<p>if you wanna get more, visit our fb or e-mail us: email@example.com https://www.facebook.com/neobis.studio <comment><USER2> Hi Adilet, I suggest building a simple website in Kyrgyz and English (as separate pages, so you can link your foreign contacts directly to the English page) and show your skills.

I suggest also showing some code, maybe consider opening a GitLab or GitHub repository?

Couldn't find your e-mail, I don't have Facebook and would like to keep in touch for business updates

жакшы ийгилик!</comment>


Swift for Embedded Systems - <AUTHOR> https://github.com/swift-embedded/swift-embedded <comment><AUTHOR> Not sure how this can lead to something useful.

</comment><comment><USER2> Code size. A "hello world" application has a little bit over one megabyte because it includes a big part of the Swift standard library.

Waaaaaaat?

<comment><AUTHOR> Indeed that sounds like a terrible start</comment></comment>


Jeff Bezos to Spend Nearly $100M to Address Homelessness - <AUTHOR> https://www.forbes.com/sites/laurengensler/2018/11/20/amazon-jeff-bezos-day-one-families-fund-homelessness/amp/ <comment><USER2> Can't have hobos hanging around the shiny new HQ's.

<comment><USER3> Could you please review the site guidelines? This comment breaks probably half a dozen of them.

If you'd only post thoughtful, substantive comments to HN from now on, we'd appreciate it.

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

<comment><USER2> Half the time my comments get downvoted, even when they adhere to the rules. Take away the popularity contest and maybe I'll stop feeling so irreverent.

<comment><USER3> No one needs to be reverent. Everyone needs to follow the guidelines. I took a look at your recent comments. Only a handful are downvoted, and of those, most are either unsubstantive or flamebaity, so for me your view here seems a little out of sync with the situation.

Getting downvoted can feel pretty harsh. It sucks, but it happens to everyone. The only thing that really works is not to take it personally, give what you wrote an honest look to see what might have prompted the downvote, correct that if you can, and move on. Remember that it has nothing to do with you. People see what they see in internet comments—yours, mine, and everyone else's—for their own reasons.</comment></comment></comment></comment>


VM escape vulnerabilities patched in VirtualBox - <AUTHOR> https://www.techrepublic.com/article/10-new-vm-escape-vulnerabilities-discovered-in-virtualbox/ <comment><USER2> The title should really say that they've been patched.

Edit: The first sentence:

> Oracle has released patches for ten vulnerabilities in VirtualBox which > allow attackers to break out of guest operating systems and attack the host > operating system that VirtualBox runs on.

And at [http://www.oracle.com/technetwork/security- advisory/cpujan20...](http://www.oracle.com/technetwork/security- advisory/cpujan2018-3236628.html#AppendixOVIR)

> Supported Versions Affected ... Prior to 5.1.32, Prior to 5.2.6

The current version being 5.2.6

[https://www.virtualbox.org/wiki/Downloads](https://www.virtualbox.org/wiki/Downloads)

<comment><USER3> OK, we s/discovered/patched/ the title above. Since something can't be patched before it is discovered this seems strictly more informative.

<comment><USER2> Thanks. The article didn't say when the vulnerabilities were discovered. Depending who discovered them, it could have been months or more. I brought it up to clarify that these aren't unpatched vulnerabilities.

</comment></comment></comment><comment><USER4> I am definitely not complaining, but I wonder why Oracle continues work on VirtualBox at all?

When they acquired Sun, they seemed in a hurry to kill off all the other open source projects Sun had been running.

Do they use it as the basis for their cloud-infrastructure[1] or what? I do not see how VirtualBox generates any revenue for Oracle, and they have a reputation for being very ... focussed when it comes to revenue.

[1] That seems pretty unlikely

<comment><USER5> They have a closed-source "extension pack" with a bunch of quite useful and even necessary features (e.g. USB 2.0) so that could be their revenue source, but looking around it seems that others have been rather unsuccessful at actually trying to pay for it --- the response Oracle has given them is "you can use and redistribute it for free".

<comment><USER4> Huh. Next thing you know Microsoft is going to host all Windows and Office development on public github repos, IBM begins lobbying against software patents, and GNU/Hurd reaches 1.0... These are interesting times we live in for sure.

<comment><USER6> Tangential related, didn't I see recently that IBM has a patent on patent trolling?

<comment><USER7> Business methods and legal theories are exempt from patents, but OTOH, so was software once upon a time.

<comment><USER8> Business method patents are certainly a thing.

</comment></comment></comment></comment></comment></comment><comment><USER9> What is the alternative to using Virtualbox besides buying a separate computer? I'm assuming there's more vulnerabilities to be found.

<comment><USER4> On Linux, qemu/kvm works well enough for most purposes, on FreeBSD you have bhyve. OpenBSD's vmm is a thing, but I do not know if it can host other systems than OpenBSD, yet.

On Windows, there is Hyper-V. I have only very little experience with it, but in my short time, I did not encounter anything I would like to complain about. I am not sure, however, if it comes with the client editions of Windows. Microsoft Virtual PC still exists, too.

Xen is also a thing - run Dom0 as your desktop system, and run the VMs in the background.

None of this is perfect, but if you need them, there are alternatives.

<comment><USER10> > Microsoft Virtual PC still exists

Not updated in almost 10 years, not supported on Windows 8 or 10.

<comment><USER11> I'm pretty sure the Virtual PC product went on to become Hyper-V.

<comment><AUTHOR> Some of the Xen technology went into Hyper-V. Microsoft had a partnership with the Cambridge labs.

</comment></comment></comment></comment></comment><comment><USER12> Do any of these affect the host when it's Linux?

I run several VMs at the same time, occasionally one will freeze. I think it's just the video/display that freezes while the browser/whatever in the guest VM still operates normally.

<comment><AUTHOR> [https://blogs.securiteam.com/index.php/archives/3649](https://blogs.securiteam.com/index.php/archives/3649)

"The vulnerabilities found in the core graphics framework (VBVA subcomponent) and affect all host operating systems."</comment></comment>


Ask HN: Does Google manually alter search results? - <AUTHOR> This has been a topic that has come up in the news and congress etc, but I haven't seen a straight answer anywhere.
My question is - does Google have manual tools for changing the priority of where specific urls appear in the search results?
I'm not talking about statistical inputs from quality raters etc, and I'm not particularly wanting to discuss what policies govern the use of such tools.
I just want to know if they have the mechanism or not.
Can anyone, Googler or not, shed light on this? <comment><USER2> I hope this answers your question : [https://www.wsj.com/articles/how-google- interferes-with-its-...](https://www.wsj.com/articles/how-google-interferes- with-its-search-algorithms-and-changes-your-results-11573823753)

</comment><comment><USER3> Of course they do? I'm not sure why this is even remotely debatable?

<comment><USER4> Just for fun, I'll assert that they don't.

Can you prove me wrong? If not, then it's debatable.

</comment></comment><comment><USER5> The Google SERP just keeps getting worse, I wish Amazon or Apple would start a search engine and just get back to what the Google SERP used to be.

I'd even be ok with amazon supporting it with ads for products, just don't try to blend ads in to the SERP. There is almost no organic search results left and the quality has gone down hill as well.

</comment><comment><USER6> For expensive $50+/click keywords i am sure there is a whole team tweaking SERPs in favor of "good" customers.</comment>


Show HN: PJON_ASK – Radio multimaster communications bus system for Arduino - <AUTHOR> https://github.com/gioblu/PJON_ASK <comment><USER2> ..great stuff! Have to test this, thank you.

</comment><comment><AUTHOR> What do you think about it?</comment>


You Cannot Regulate Guns Unless You Know How to Use One - <AUTHOR> https://medium.com/@yishan/you-cannot-regulate-guns-unless-you-know-how-to-use-one-d129d0a82974#.dna1li493 <comment><USER2> > _You need to understand guns intimately if you want [the government] to > regulate them.

> _This kind of thinking is common sense when it comes to making laws about > anything else*

That is absolute fucking nonsense. I support regulation of aircraft, and I have no idea how to fly or build a plane. I support regulation of dangerous drugs, and I've never taken them and don't know how they work. I support regulation of nuclear weapons, and I've certainly never had anything to do with those.

As voters, we agree that there are too many gun deaths. We have voted for representatives who are supposed to deeply study the issue, understand things that voters can't/don't, and make informed policy changes.

Looking just at recent history, this process has not occurred.

<comment><USER3> I agree 100%, but the misconceptions discussed are very interesting.

</comment></comment><comment><USER4> Flagged as "pure politics."

(Yeah, I suppose it's about "gun tech" also. But in the current, borderline insane political environment... the political aspects of the posting are way more dominant).</comment>


U.S. drivers waste billions paying for premium gas, AAA says - <AUTHOR> http://www.marketwatch.com/story/us-drivers-waste-billions-paying-for-premium-gas-aaa-says-2016-09-20 <comment><USER2> I pay a premium to have ethanol free gas. Not much choice when you're lucky to even have it available.

</comment><comment><USER3> how much energy and food do we waste by requiring ethanol in gas?</comment>


Miri: Interpreter for Rust's mid-level intermediate representation - <AUTHOR> https://github.com/rust-lang/miri <comment><USER2> As of today, you can easily install miri on the nightly channel, which is why this is popping up today.

      $ rustup component add miri —toolchain=nightly

You can then "cargo +nightly miri test" to run your tests under miri. You probably should "cargo clean" first.

Of course you can skip the explicit nightly flags in those commands if your default toolchain is nightly.

<comment><USER3> Would it be accurate to say that running Miri against your code might catch some issues in unsafe code that the standard compiler will not?

<comment><USER4> Pedantically, it's running your code via Miri. Miri is an interpreter, so you have to trigger undefined behavior during a specific run of Miri for it to be reported.

<comment><USER3> I think that's a fair point. It sounds like it's possible with Miri to write unit tests for specific UB concerns, and it's more likely to catch them than standard unit tests. This will be useful.

<comment><USER4> I haven't put any thought or time into it yet, but I assume you could combine it with a fuzzer. cargo-fuzz [1] already does this with LLVM's sanitizers, but I'm thinking something like proptest [2] could be used to help find those specific inputs and run under miri.

It _may_ even be as simple as creating the normal proptest tests and then doing `cargo miri --test` or something similar!

[1]: [https://github.com/rust-fuzz/cargo-fuzz](https://github.com/rust- fuzz/cargo-fuzz)

[2]: [https://crates.io/crates/proptest](https://crates.io/crates/proptest)

<comment><USER5> Fuzzing + miri sounds like it will be incredibly slow. Probably slower than just using asan.

The good thing about UB in rust is it's easy to target - you don't need to explore the whole space, just module boundaries that encapsulate that space. So something more fine grained should be fine with miri, and fuzzing can capture more complex errors like panics.

<comment><USER4> Yes, that's what I mean about using proptest (if you are unfamiliar, it's akin to QuickCheck). You'd write the proptest functions for your dedicated unsafe section.

As an example, I use this with Jetscii [1] in an attempt to throughly test SIMD vs non-SIMD code. If Miri detected errors with SIMD (I don't think it does now), then I could run those tests inside of Miri, having them pull double duty.

[1]: [https://github.com/shepmaster/jetscii/](https://github.com/shepmaster/jetscii/)

<comment><USER5> Oh, yes, agreed that proptest is way more viable here and probably a good solution to pair with miri.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> I often find myself yearning for a Rust REPL. I wonder if it'd be possible to run the rust compiler to lower the code down to MIR, and then run that in the Miri interpreter?

<comment><USER7> I think the problem is not really evaluating Rust code on the fly: you could just as well compile it on the fly and execute is, this is what the Haskell interpreter ghci does.

The difficulty is more in defining what it means to enter code one line at a time, what about context, scope, lifetimes, all these stuff.

If a more knowledgeable Rust team member can confirm…

<comment><USER8> I think some of the typing would be problematic, as it allows action at a distance.

e.g.

      fn bar(i : &u16) {
         i + 1;
      }

      let a = 8; // a is a u8.

      bar(&a); // Now a needs to be a u16,
               // but we executed the line of code
               // above, which forced it to be u8.
               // Is this a type error?

You can probably solve this, by requiring all blocks of code to be executed repl style to be standalone.

i.e. the above code is entered as:

      fn bar(i : &u16) {
         i + 1;
      }

      ## Execution happens in the REPL

      {
          let a = 8;

          bar(&a);
      }

      ## Execution happens in the REPL.

And make the far above give "a not defined in this scope"

<comment><USER9> I think you solve this by just giving an error

In [0] fn bar(i: &u16) { i + 1 }

In [1] let a = 8; // a is a i32.

In [2] bar(&a)

Out[2] Type error: a is a i32 and it needs to be a u16

In [3] let a: u16 = 8; // The original a is shadowed by the new a, the new a is a u16

In [4] bar(&a)

Out[4] 9

Or a similar situation where there isn't enough information to infer a type

In [0] let x = Vec::new();

Out[0] Type error: Need to know the type of x

In [1] let x: Vec<bool> = Vec::new();

In [2] x.push(true); // Note that if we had entered this at the same tiem as Vec::new() the type could have been inferred.

<comment><USER8> That forces you to write very unnatural Rust - it makes it a much clunkier language.

</comment></comment></comment></comment></comment><comment><USER10> Are there any plans to use an interpreter towards having a fast compile cycle. My reference point is Haskell's ghci which reloads changes very quickly (whereas the normal compiler is similar in speed to Rust).

<comment><USER2> Not particularly; or rather, this doesn't help with that directly. There are other, bigger fish to fry first.

</comment></comment><comment><USER4> For a quick way to play with Miri, you can use the Rust playground [1]. Enter some code and then select Tools > Miri.

As a starting example, here's some code that Miri reports as violating Rust's rules for references [2]:

        fn main() {
            let mut i = 42;

            unsafe {
                let a = &mut *(&mut i as *mut _);
                let b = &mut *(&mut i as *mut _);

                println!("{:p}, {:p}", a, b);
            }
        }

The output is:

        error[E0080]: constant evaluation error: Borrow being dereferenced (Uniq(1797)) does not exist on the borrow stack
            --> /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/fmt/mod.rs:2050:24
             |
        2050 |         Pointer::fmt(&(&**self as *const T), f)
             |                        ^^^^^^^ Borrow being dereferenced (Uniq(1797)) does not exist on the borrow stack
             |
             = note: inside call to `<&mut i32 as std::fmt::Pointer>::fmt` at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/fmt/mod.rs:1016:17
             = note: inside call to `std::fmt::write` at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/io/mod.rs:1266:15
             = note: inside call to `<std::io::StdoutLock as std::io::Write>::write_fmt` at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/io/stdio.rs:493:9
             = note: inside call to `<std::io::Stdout as std::io::Write>::write_fmt` at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/io/stdio.rs:737:9
             = note: inside call to closure at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/thread/local.rs:299:16
             = note: inside call to `std::thread::LocalKey::<std::cell::RefCell<std::option::Option<std::boxed::Box<dyn std::io::Write + std::marker::Send>>>>::try_with::<[closure@DefId(1/1:1025 ~ std[82ff]::io[0]::stdio[0]::print_to[0]::{{closure}}[0]) 0:&std::fmt::Arguments, 1:&fn() -> std::io::Stdout], std::result::Result<(), std::io::Error>>` at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/io/stdio.rs:731:18
             = note: inside call to `std::io::stdio::print_to::<std::io::Stdout>` at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/io/stdio.rs:753:5
        note: inside call to `std::io::_print` at <::std::macros::println macros>:2:3
            --> src/main.rs:8:9
             |
        8    |         println!("{:p}, {:p}", a, b);
             |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
             = note: inside call to `main` at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/rt.rs:64:34
             = note: inside call to closure at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/rt.rs:52:53
             = note: inside call to closure at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/panicking.rs:293:40
             = note: inside call to `std::panicking::try::do_call::<[closure@DefId(1/1:1830 ~ std[82ff]::rt[0]::lang_start_internal[0]::{{closure}}[0]) 0:&dyn std::ops::Fn() -> i32 + std::marker::Sync + std::panic::RefUnwindSafe], i32>` at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/panicking.rs:289:5
             = note: inside call to `std::panicking::try::<i32, [closure@DefId(1/1:1830 ~ std[82ff]::rt[0]::lang_start_internal[0]::{{closure}}[0]) 0:&dyn std::ops::Fn() -> i32 + std::marker::Sync + std::panic::RefUnwindSafe]>` at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/panic.rs:388:9
             = note: inside call to `std::panic::catch_unwind::<[closure@DefId(1/1:1830 ~ std[82ff]::rt[0]::lang_start_internal[0]::{{closure}}[0]) 0:&dyn std::ops::Fn() -> i32 + std::marker::Sync + std::panic::RefUnwindSafe], i32>` at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/rt.rs:52:25
             = note: inside call to `std::rt::lang_start_internal` at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/rt.rs:64:5
             = note: inside call to `std::rt::lang_start::<()>`
             = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)

[1]: [https://play.rust-lang.org/](https://play.rust-lang.org/)

[2]: [https://doc.rust-lang.org/stable/book/ch04-02-references- and...](https://doc.rust-lang.org/stable/book/ch04-02-references-and- borrowing.html#the-rules-of-references)

<comment><USER11> > As a starting example, here's some code that Miri reports as violating > Rust's rules for references

So...this was determined statically? Or "statically"? If there's no/few false positives could this be used as a check in rustc? Or clippy?

BTW for this one specifically, why can't we look at the AST and see that a and b alias?

EDIT: I guess it's because it's lost in the deref/take addr?

<comment><USER9> It was determined dynamically, determining it statically with no false positives is impossible.

Try sticking a `println!("Hello");` statement at the start of main, it will get run before we run into this error.

<comment><USER11> > It was determined dynamically

So it looks like the defects that miri can detect overlaps heavily with the existing sanitizers (but I see at least one language-specific constraint that isn't covered by sanitizers). I suppose it's nice not to have the hassle/complexity of the sanitizers (especially nice not to have to deal with the ODR noise from UBSan), but is the intent that miri could find much beyond what the sanitizers could?

Regarding aligned accesses: does miri consider the alignment constraints of the most restrictive target? Or are there language specifications regarding alignment?

To my uneducated eye, it looks like many/most of these defects that miri detects require unsafe to cause (barring compiler defects). Is that accurate?

<comment><USER2> > is the intent that miri could find much beyond what the sanitizers could?

Miri serves two purposes. One of them is completely unrelated to this stuff, and that's to deal with const functions.

This stuff, on the other hand, yes. Those tools don't know anything about the language themselves. Miri is able to model the exact rules that we lay out for pointer usage. This means that it should be a lot better, not only at finding things, but also stuff like error messages, eventually.

> Regarding aligned accesses: does miri consider the alignment constraints of > the most restrictive target? Or are there language specifications regarding > alignment?

Because it's an interpreter, miri can run like any target. That said, I'm not 100% sure that 'cargo miri' exposes this easily yet; I gave it a shot but it's giving me an interesting error. The idea is that you'd specify the target you're testing for.

> To my uneducated eye, it looks like many/most of these defects that miri > detects require unsafe to cause (barring compiler defects). Is that > accurate?

Yes. Safe code should never produce undefined behavior, that's a hard design constraint of Rust.

</comment></comment></comment></comment></comment><comment><USER12> I initially misread the headline and thought that the Machine Learning Research Institute had made progress in deobfuscating AI decision processes for human scrutiny.</comment>


The Great Filter – Are We Almost Past It? (1998) - <AUTHOR> http://mason.gmu.edu/~rhanson/greatfilter.html <comment><USER2> Two things to bear in mind when thinking about the Fermi paradox:

1) The more important observation is that everything we see is a wilderness of apparently natural origins and processes, not that we have apparently not been visited.

2) No hypothesis involving choice that leads to failure to carry out self- replicating colonization can explain (1). All it takes is one small group in one sufficiently advanced species. This rules out wolves, berserkers, relinquishment, self-destruction, and so on and so forth.

Clearly something is missing or incorrect in how the pieces of the various sciences fit together to explain what we see. Some of the best reading on the subject is speculation on what it is that we don't know or the relative odds on where the present consensus is incorrect.

<comment><USER3> Can you suggest some of your favorite speculations? Or links to other material?

</comment></comment><comment><USER4> There is a review in the FT today of "The Future of Violence" a book in which the authors apparently (I haven't read it) assert that as technology improves the risk of a violent individual to society increases (because that person has more leverage).

This raises an interesting problem : to make it as a society may require a high level of dynamism and aggression. To cope as a society (as technology becomes more potent) passivity and sensitivity may be necessary. It may be that there is no balance, and that if you have enough vim to create a technical society you will reach a point where progress becomes impossible due to progress so far.

</comment><comment><USER5> There is a disconnect between these two statements:

" _No alien civilizations have substantially colonized our solar system or systems nearby. Thus among the billion trillion stars in our past universe, none has reached the level of technology and growth that we may soon reach._ "

While the article is in a way all about exploring that disconnect, it's a bit strange to find it written down so explicitly in the conclusion. We can ascribe a very high level of confidence to hypothesis that neither our own nor any of the directly neighboring star systems have been colonized. But to postulate that therefore the universe has not yet produced a civilization as technologically sophisticated as our own is still a non-sequitur, at least in my opinion. The article also makes a lot of assumptions (it has to!), some plausible, some seemingly arbitrary, which might in the end not be important factors at all. For example, any consideration about radio communication must be on very shaky grounds, in particular when charting the absence of it.

The reason why we're not seeing alien neighbors or predecessors (which would be "neighbors" in time), might well be a combination of factors. While we can exclude certain scenarios, such as a cloud of Von Neuman Probes eating the galaxy, it still leaves room for a lot of little factors that can change the galactic stage for us in a fundamental way - especially if they work in conjunction.

For example, the average duration of the technologically recognizable phase a civilization goes through may be smaller, and there may well be less of them than expected. In addition, willful avoidance or isolation may well play a role; the zoo hypothesis is an extreme example of this, but in a sparse cosmos the measures you have to undertake in order to isolate an emerging civilizations become less heroic.

It's also worth mentioning that we ourselves are not past the Filter by any means. In fact, as time progresses, it seems to become less likely we'll ever move off the Earth as an exclusive habitat. Part of this is due to psychology, we could have made it happen by now but didn't. The best bet at becoming an interstellar civilization right now seems to be to wait until we're pure computer systems, unburdened by aging and the passage of time, but that development, too, might end up being something we never elect to actually pursue.

Luckily, this whole thing is a mystery we can solve over time, just by gathering data about what's out there.

<comment><USER2> The problem is that if you exclude the scenarios that obviously didn't happen you are still left with no likely scenarios given the present consensus understanding of biology and physics.

The timescale for megascale engineering to occur throughout our galaxy as the result of the launch of one megascale engineering minded self replicating probe is small (1 million years) in comparison to the age of the galaxy (13 billion years). It is unlikely that we are sitting here while someone else is in the process of doing it; that's not the scenario to focus on.

All it takes, remember, is one small group in one sufficiently advanced culture to start this going. Some (post)human group will clearly do it at some point if we as a species continue. Why hasn't someone already done it, where "it" is visibly engineer the totality of the future light cone?

The problem is less one of why don't we see Dyson spheres and other similar type II projects within a few hundred light years of our position, and more one of why do we see no obviously altered galaxies among the hundreds of thousands cataloged to date. At this scale the zoo hypothesis looks stretched, and the simulation argument begins to look more plausible.

<comment><USER5> Good points, but I'd like to offer some counter arguments to the megascale engineering idea, hopefully without sounding too pedantic.

The need for megascale projects is not as obvious as it's sometimes made out to be. There might well be reasonable limits beyond which the maximizing of habitat space and energy consumption tapers off in utility. Even if our civilization continues on its present course, it's not certain that we will get to the point where we (or some of us) feel the need to change the face of the galaxy. If you go one step down from the galactic stage, the detectability of solar system-scale megatech is also open to debate, especially as you move beyond a couple hundred light years from here.

You're right of course when you say all it takes is one civilization (or even one member of a sufficiently advanced society) to undertake projects that are liable to make all kinds of strange phenomena appear in our night sky. But the number if beings capable of doing so on a whim, multiplied by the chance they'd be interested in such things, might be very very small without breaking any of our current expectations about biology and physics.

Finally, I'd like to address the simulation argument. There are two extreme ends of the simulation scenario spectrum.

At the one extreme, we're talking about an artificial reality made especially for us, humans. This would be the popular "Matrix"-style simulation. No scientific argument I've heard so far makes it a convincing model for the reality we live in, _except_ as a possible explanation for the Fermi paradox.

At the other end of the spectrum, we have a full simulated universe. It's hard to argue for or against that notion, simply because either way it fits with our observable reality. The catch is of course that it's a neutral proposition with no impact on us at all. This variant does not offer _any_ explanation for the Fermi paradox.

As I see it, the simulation argument as pertinent to the Fermi problem offers two options, neither of which are intellectually appealing: one is a borderline-untenable just-so make-believe world where all rules are an illusion and anything can happen, and the other one is virtually undistinguishable from our "normal" world, up to and including an absence of any obvious explanation for the Fermi paradox.

</comment></comment></comment><comment><USER6> There remain some big tests, among them: Can we accumulate and release enough energy to take us to the stars without having a civilization-ending war with ultra-destructive directed energy weapons? Can we avoid mistakes in modifying life, and in nanotech, that would cover the planet in goo? Can we master germline modifications of humans without doing something that ends with no humans, and no post-humans? So plenty of filter to go yet. Never mind the smaller-scale "do we have way too many humans already to not overheat the planet we're on?" questions.

<comment><USER7> >Can we accumulate and release enough energy to take us to the stars without having a civilization-ending war

This is why, if I invented antimatter production, I would absolutely demand that it not be used on Earth until it had been used to send hundreds of human- bearing seed ships to other solar systems. The risk is too great.

<comment><USER8> Imo, we should be sending out seed ships with hardy microorganisms already now.

</comment></comment></comment><comment><USER9> We suffer from hubris when we label it the "Fermi _paradox_ ": It implies that somehow we are interesting, worth visiting. If we are, it may well be as a cautionary tale or for tourism.

Consider the energy and material engineering necessary to achieve long- distance space transport of any sizable amount of people, equipment, and supplies. Regardless of whether the transport is subluminal or FTL, the energy requirements are tremendous and the engineering requirements for a durable vessel astounding.

My guess is that by the time our materials science and our energy production are up to the task, our interests may well have changed - because (and here I speculate wildly) science at engineering at that level will reveal so much about the fundamental nature of the universe and give us so much interesting practical technology that biochemical life clinging desperately to lucky rocks in the lucky zone won't be near so interesting anymore.

No one comes near because we have nothing to offer those able to come near and get home again to report what they found.

As to simply detecting signals, we have to consider how lucky we are to have so much ore so close to the surface: Metallurgy and eventually radiated communications were a natural for us.

Other civilizations may well start with fantastically engineered wood and eventually plastics, and go all-fibre, all line-of-sight, and have very, very different communications systems, systems undetectable at any remove.

<comment><USER10> "No one wants to talk to us" is not a sufficient explanation. We need to be able to explain why we don't observe any stellar engineering. Assuming alien civilizations they either 1) can't make use of the most prominent energy sources around, 2) choose not to for some reason, or 3) we can't detect what they're doing.

1 and 2 don't make sense if you assume that there are many alien civilizations older and more advanced than us. 3 implies that we're fundamentally misunderstanding a lot about (astro)physics.

<comment><USER2> Astrophysics is as solid as particle physics and plasma physics; it's the other laboratory used to confirm fundamental theory. The models are very good. There is a natural explanation for every well observed phenomenon that fits all known physics, and wherein the models match up to the observations. Astrophysics really isn't the place to be looking first for issues, I'd say.

<comment><USER10> I don't really know enough about physics to be able to judge, but what you say is nicely in accordance with my priors. I think we're in agreement here. I wouldn't argue that 3 was the place the argument most likely fails, merely that there is something here that we don't fully understand and which may be rather important -- hence it's reasonable to call it a paradox.

</comment></comment></comment></comment><comment><USER11> I forgot who came up with the idea, but the great filter may not exist - it is just that an intergalactic civilisation wouldn't be using radio communication (due to the lag because of the slow speed of light).

Or the put it a bit different: unless the Culture want us to see it, we won't.

<comment><USER12> Why aren't they building Dyson spheres?

<comment><USER13> Maybe it turns out Dyson spheres are a bad idea for some reason? Maybe Dyson spheres are out there, but constructed in such a way that they don't look obvious to a distant observer? Maybe the idea that advanced civilizations exponentially consuming energy as per the Kardashev Scale is a flawed and anthropocentric premise based entirely on what we know of our own civilization, and a lack of observable stellar engineering doesn't necessarily mean a lack of advanced life?

</comment></comment></comment><comment><USER14> Another argument against the great filter, and one I'm surprised it's not considered more often, is the relativity of the space and time. We assume, long story short, that the colonization explosion is rare because we can't see it, but what if all that we can observe in terms of space and time is a incredibly "microscopic" slice compared to all that there is/has been/will be out there? The way I see it it looks like we've concluded water must be commonplace on earth, but then we act puzzled when we can't find a lake down the street and assume water must be rarer than we thought.

<comment><USER12> We're only talking about what we can observe. Just a few dozen billions of stars. That is sufficient for the Fermi paradox.

<comment><USER14> > That is sufficient for the Fermi paradox.

Is it? How do we know it is?

<comment><USER15> The terms we know in the Drake equation make it very difficult to say it is unlikely for intelligence to arise more than once. ~100 billion stars * ~100 billion galaxies in the observable universe. Exoplanet surveys seem to be suggesting at least one planet per star on average. In addition, chemical self replication seems to happen fairly easily given the right chemical conditions, which don't appear to require much more than liquid water.

</comment></comment></comment></comment><comment><USER16> Among other comments here, there is the question of why? Why does a civilization need to expand? Why should it? We can already see in our world where the birthrates start to decline in societies that have a certain level of technology and quality of live. When we reach a point where our whims are catered for and energy is cheap. Reproduction doesn't seem very cost effective.

<comment><USER17> Expansion can be due to a lot more than mere birthrates. First and foremost expansion will happen only when there is means to do so. And, 'means' can be driven by a combination of curiosity and necessity. On earth people have gone somewhere far off (migrated), because there was the place to go and the means to get there. In many cases that (migration) was the option over having to fight (or find some form of accommodation) within the local social & political system.

If this is why an intelligence can spread out on a planet, couldn't other intelligences (if they exist) spread out for similar reasons in the galaxy.

</comment></comment><comment><USER18> We are provably not beyond the great filter. At least one great filter lies tangibly in front of us: ecological sustainability.

Barring several fairly large changes to our energy and resource systems, our civilization is mathematically and physically guaranteed to collapse within the next 200 years at most.

That's not a hypothetical filter. It's a real one that we can see, and we are not past it.

<comment><USER19> > We are provably not beyond the great filter. At least one great filter lies > tangibly in front of us: ecological sustainability.

> Barring several fairly large changes to our energy and resource systems, our > civilization is mathematically and physically guaranteed to collapse within > the next 200 years at most.

Would you mind elaborating on this or posting some links with more evidence for this? As stated, your claim seems reminiscent to previous claims that humanity would soon not be able to grow enough food for the projected population. So far, unexpected scientific advances have managed to increase food yields substantially, and we can now effectively produce more than enough food to feed people (though we clearly have issues ensuring that food gets to everyone who needs it). So I wonder what is different now, that makes this looming catastrophe "provable" and "mathematically and physically guaranteed".

I agree that humanity is facing significant challenges (e.g., climate change), but I think the claim of "guaranteed collapse" is not as well established.

<comment><USER20> >> "Would you mind elaborating on this or posting some links with more evidence for this?"

I'm not the GP, but I suspect api has in mind something like this [0]. The money quote from that article is this:

 _" At that 2.3% growth rate, we would be using energy at a rate corresponding to the total solar input striking Earth in a little over 400 years."_

The obvious first-order thermodynamic consequences of that fact for the temperature of the surface of the earth are pretty undeniable.

[0] [http://physics.ucsd.edu/do-the-math/2012/04/economist- meets-...](http://physics.ucsd.edu/do-the-math/2012/04/economist-meets- physicist/)

<comment><USER19> Thanks. I had seen that calculation before, but had forgotten about it. It is good to remember that we will eventually come up against limits from basic physics.

Though, to be a bit picky, showing that we can't indefinitely sustain our current trajectory is a different argument than saying a collapse is inevitable.</comment></comment></comment></comment>


BeGoneAds – A Python script that blocks ads by installing common hosts files - <AUTHOR> https://github.com/anned20/begoneads <comment><USER2> Python scripts to modify system files make me a little skittish, even with source code available. I think I would just as soon grab the hosts file from [https://www.someonewhocares.org/](https://www.someonewhocares.org/) and drop it in myself.

<comment><USER3> Why?

<comment><USER4> Why not?

Modifying system hosts configuration requires privileged file system access.

The mindset here should be default deny.

<comment> sh-run Yep, finding and modifying a script that runs with root privileges, but is writable by non-root users is the oldest privesc trick in the book.

With the proper permissions something like this should be ok, but I'd tread lightly. Especially with something that dynamically updates your hosts file.

<comment><AUTHOR> It won't be able to run if the user that is running it doesn't have the proper privileges. You could even protect the files by giving them other permissions so only the root user can use them.

<comment> sh-run Above you mentioned setting this up as a scheduled job. In this case the job would need to run as root (or you'd need to assign the appropriate permissions in the sudoers file, but people are lazy). If a non-root user had write privileges to the file, they could modify the script and thereby gain root code execution.

Naturally it's on the user to properly configure the permissions.

I'm not saying this isn't a worthy project, I'm just adding to the discussion on why people should be cautious when running scripts with root permissions.

</comment></comment></comment></comment></comment></comment><comment><USER5> How is this different or better than Steven Black's project?

Repo: [https://github.com/StevenBlack/hosts](https://github.com/StevenBlack/hosts)

<comment><AUTHOR> To be completely fair with you, I didn't know this was out there. Then again, I think my solution is more elegant, especially if all the todo's are finished.

<comment><USER6> Patching a critical system file with python on a regular basis... What could go wrong?

<comment><USER7> I don't understand the aversion to python here. What is it about python that makes it less reliable than any other piece of software?

Yes, downloading hosts files from 3rd-party sites is kind of sketchy. But using python to do it is what you're worried about?

</comment></comment></comment></comment><comment><USER8> Since accepting Host files from someone on the internet can be dangerous I dug into the code:

The list of hosts to exclude comes from several sites here: [https://github.com/anned20/begoneads/blob/2c90fcee221edf71f8...](https://github.com/anned20/begoneads/blob/2c90fcee221edf71f870b1282bad3d25ac151488/begoneads/begoneads.py#L15)

The actual application of the hosts file is here: [https://github.com/anned20/begoneads/blob/2c90fcee221edf71f8...](https://github.com/anned20/begoneads/blob/2c90fcee221edf71f870b1282bad3d25ac151488/begoneads/hostsmanager.py#L32)

I missed something though. Is a simple domain name per line enough to send that content to /dev/null? I haven't used that form in /etc/hosts.

My primary concern was that this technique could be used to send ad traffic to a site that returns 404 but gathers metrics on the web regardless.

<comment><AUTHOR> This is actually sent to the IP address 0.0.0.0, it roughly means that all the traffic of the listed hosts is routed back to localhost

<comment><USER9> In this context, it actually means a "non-routable meta-address used to designate an invalid, unknown, or non-applicable target" [1] - 127.0.0.1 is localhost, 0.0.0.0 is its own thing.

[1]: [https://www.howtogeek.com/225487/what-is-the-difference- betw...](https://www.howtogeek.com/225487/what-is-the-difference- between-127.0.0.1-and-0.0.0.0/)

<comment><AUTHOR> Yes, you're completely right. Mixed those 2 up.

</comment></comment></comment></comment><comment><USER10> I get that this is just someone's side project, I'm glad it exists and they're free to write it in their favorite language/environment and all; but the effort to actually run this is equivalent to actually copying the hosts files manually, and I already have all the dependencies installed. I could never get my non-techy parents to run this properly.

If the goal of the project is actual adoption, a native executable without external dependencies would have been a much better option.

<comment><AUTHOR> This is a todo, It's already on PyPI and I'm working on getting it packaged for all the main distros of Linux/Windows and MacOS.

<comment><USER10> I saw the todo item, but didn't realize it also included providing an executable for Windows and macOS. Thanks!

</comment></comment></comment><comment><USER11> Anybody have a sense of the performance overhead of using hosts files versus a detached hardware solution like a pihole?

<comment><USER12> My understanding is that difference is in scope, not performance.

Hosts files will only affect the host (workstation/desktop/laptop etc) they're installed on.

Things like piHole try to make it easy to apply the solution to all members of your network - which even in household cases these days can number in dozens, making it impractical to manage hosts files for all of them (This includes items like phones which are typically unfeasible to mess with hosts file).

<comment><USER13> It would be nice to see a performance hit based on the number of hosts entries.

<comment><USER14> About 3ms for 68k entries: [https://news.ycombinator.com/item?id=20148457](https://news.ycombinator.com/item?id=20148457)

</comment></comment></comment></comment><comment><USER15> I have cron jobs on my mac that update my hosts files (to block "addictive" sites in my case (not ads)). It doesn't really work.

Browsers cache and use outside DNS servers despite the hosts files. Chrome and sometimes Safari don't really honor the hosts files 100% of the time. Every once in a while I google around to try and restore my control, try to tweak my browser settings but I have yet to find anything that makes using hosts files bulletproof.

<comment><USER16> I think firewall rules would be your next line of defense. I'm not sure how configurable most home routers are though.

</comment></comment><comment><USER17> Reading the code one clearly sees why Python is so well suited for these kinds of applications, one-shot script executables: Really nice string ops, regex, file io etc. One of my favorite languages. The other is C# for everything else, that Python is not that suitable for: Huge complex codebases, type safeness, more strict performance requirements etc. Specially the static typing. The dynamism and lack of type annotations of Python really bothered me when I was developing a somewhat complex desktop app in it some years ago. I guess I'm a static typing guy with optional dynamism kinda person.

<comment><USER18> If you haven't checked back lately, type annotations in Python are getting better and better. Built-in support via the typing module and a strong community package in mypy.

</comment></comment><comment><USER19> If you let someone else manage the hosts your computer resolves, you are trusting that someone as much as your ISP. A man in the middle.

</comment><comment><USER20> > You ran WHAT script on your machine?!

</comment><comment><USER21> Hosts files slow down the system as well as the browser itself. Get/create a browser extension to actually block the request (at least while your browser supports this) so you get immediate results.

</comment><comment><USER22> I wish the hosts file could have an include directive. Since I regularly add or remove entries, the file becomes a mess.

</comment><comment><USER23> Serious question. We all realize that the economics of the internet is largely fueled by ads, so why are we so keen to block them? It's ad revenue that have allowed technology to flourish so strongly over the last two decades.

<comment><USER24> Not long ago, the economy was largely fueled by slavery. Yet we got rid of that.

<comment><USER25> Not exactly Godwin's law, but pretty close. Comparing advertising and marketing to the ownership of human beings? Slavery infringed on the inalienable of human beings, the existence of advertising doesn't take away my freedom or potentially subject me to beatings.

It's a ridiculous comparison. I am not a friend to intrusive ad-tech, but making a moral equivalence to slavery is to trivialize slavery. It's like comparing parking tickets to the death penalty.

<comment><USER24> It's a valid comparison. Long ago it was ok to kill your enemy. Not long ago it was ok to have slaves. Today either is a sure way to end up in prison. Standards are rising. IT is a very new thing and the society and the laws are behind a bit. Adtech uses this to extract profit while it can. But this will end. Soon it will be a crime to store personal data: names, location, anything like that. GDPR is just the beginning. Adtech will fight, but it will lose. This business will disappear entirely, just like slave labor. In far future it will be a crime to be intrusive: any unwanted ads; and mining personal data will be seen like cannibalism today, i.e. even criminals will consider such people as freaks. Right now we are in the era of wild west in IT.

</comment></comment></comment></comment><comment><USER3> I use host flash: [http://host-flash.com/](http://host-flash.com/)

Does anyone know an up-to date list for blocking social networks?

<comment><USER26> Steve Black's hosts file ... just specify _" -e social"_ or _" \--extension social"_ option, or use a _" myhosts"_ file to name your own domains for a subset (e.g. all of facebook or whatever)

[https://github.com/StevenBlack/hosts](https://github.com/StevenBlack/hosts)

</comment></comment><comment><USER27> how does the list compare to the pi hole hostfile?

</comment><comment><USER28> Nice to see projects using click!

Here's another one to toss on the pile (works, I use it, supports wildcards, *nix only): [https://github.com/jakeogh/dnsgate](https://github.com/jakeogh/dnsgate)

</comment><comment><USER29> I'll be the first to admit that the existing advertising ecosystem is broken, primarily due to misaligned incentives across the board. But, given a choice, would you rather have a clearly labeled thing that you know is an ad transparently trying to influence you or a sneaky human billboard, err "influencer" coming up to you with an agenda along with tons of product placement in whatever you watch/read/listen to?

<comment><USER30> There's no either/or decision to be made here. You get compromised, paid for content with our without ads as well. Critical thinking I'd a requirement always.

<comment><USER29> There definitely is an either/or because blocking of one channel will naturally necessitate money/barter flowing to the other channel. One is at least transparent and regulated, the murky world of influence peddling isn't since it's hard for anyone to tell in the moment whether something is "organic" or not.

<comment><USER30> Not when the other channel is already at capacity. And it is. Blocking ads has no effect on that. You never agreed to being tracked either, so blocking that is the right and proper thing to do. Blocking surveillance capitalism might push businesses toward honesty, it's at least with a shot.

<comment><USER29> If you think influencer marketing and product placement are already at capacity you have no idea how much worse it's about to get if ad blocking gets much worse. And the irony is that, by design, you won't know a good chunk of the time and other times it'll just merely be implied without being explicitly stated. Continued use of social networks, including this one, collects way more identifiable data than what the non-Google/FB/Amazon ad market collects. Ad blockers have had near 0 impact on FB's operations. Google and others have paid to ensure that their search ads still make it through most ad blockers.

Blocking ads does not drive businesses to be more "honest". They'll just spend more on PR and influencers. And given how hostile this community is to ads and perhaps even marketing overall, (how YC ever backed a marketing or ad startup is beyond me), companies already realize that getting a fawning TC article purchased thru connections and favors and PR chicanery is going to be more effective than ad campaign even though the ad campaign is more honest, upfront and transparent with its agenda.</comment></comment></comment></comment></comment>


How do People Use Tabs? - <AUTHOR> http://jonoscript.wordpress.com/2009/01/28/how-do-people-use-tabs/ <comment><USER2> I use tabs the most for sites like Hacker News. First I go down command- clicking (mac) on each link I'm interested in to open maybe a dozen or so links. From there, I only navigate using command-W to close tabs. Much faster and more convenient than reloading the home page.

<comment><USER3> Same here (tho I load the links vis Bloglines).

I also have (in Firefox) assorted tabbed groups for various tasks or interests. For example, I have a group for the Sunday NY Times that opens up tabs for Arts & Leisure, books, movies, a few other pages, that are easier to skim through if all opened in tabs at once.</comment></comment>


Lightweight Web Services - <AUTHOR> http://rubyconf2008.confreaks.com/lightweight-web-services.html <comment><USER2> I wholeheartedly agree with the general modular approach.

Rack is doing wonders in enabling this approach, with small apps via frameworks like Sinatra, Camping, Ramaze, Merb flat to run as services.

However, the big downer of this approach is Ruby's Net::HTTP. It's so slow that I get only about 10r/s on a core 2 duo macbook with it. This is a huge bottleneck.

Now imagine running your authentication as a separate app (for SSO, e.g.) accessed as a rest service via Net::HTTP. :(

 _Disclaimer: I haven't watched the video yet, connection too slow, don't know if/how they address this problem._</comment>


Show HN: Self-hosted Thunderclap - <AUTHOR> https://github.com/waterdotorg/power.Water

<comment><AUTHOR> The power.Water codebase allows organizations to recruit, collect, manage, and then post content on users' accounts on both Facebook and Twitter. Users "donate their voice" by authorizing the power.Water site with their Facebook Connect or Twitter OAuth credentials.

Live site - <http://power.water.org></comment>


Startup Mortality: What End-Of-Life Care Teaches Us About Startup Failure - <AUTHOR> https://medium.com/startup-grind/startup-mortality-what-end-of-life-care-teaches-us-about-startup-failure-7d568c736d90 <comment><AUTHOR> Hey HN - author here. I've been on Hacker News for a long while, thought this would be useful for anyone who is dealing with difficulties in ML, enterprise, or just shutting down a startup. I included some serious nuggets on how to go about doing an acquisition, so happy to talk about anything. And to anyone else working on a "startup with no end" \- I hope this helps you make the difficult decision to shut down.</comment>


Ask HN: New city, freelancer job, how do you make friends and fight loneliness? - <AUTHOR> So basically I recently moved to a new city in south eu for a new job but after just some weeks I felt like that place was cancer for my mental health and I quit asap.
So ok, that's was a very unlucky event but now I am stuck in this city and at the moment, while evaluating what to do, I am working as a freelancer (via sites like elance).
The problem is... I really feel the loneliness of living so totally alone for the first time in my entire life and really don't know what to do.
Without a work in a company it is hard for me to make new social relationships and I don't know where to start.
Any suggestions or ideas? How did/do you fight loneliness? (NB at least for the next 6 weeks I can't move from this city for economical reasons) <comment><USER2> There's a worthwhile chance that someone you already know back home has connections with others where you live now. That's how I made such a smooth social transition from one state to another twice in the space of a year: I asked everyone I knew for connections, and someone set me up with an existing gaming group even before I arrived. I had new friends within a week of moving.

In the meantime:

\+ Check out as many conventions or conferences as you can, but focus on the "hallway track" and the bar (you don't have to drink, either!).

\+ Check out Meetup.com or even OkCupid.com (or the EU equivalents). Other people are trying to make new friends through those sites.

\+ Chat with the folks where you work. Spend time in a coffee shop or co- working space if you don't already. I made a good friend, for example, out of a totally random Starbucks encounter.

Hope that helps!

<comment><AUTHOR> It is ironic, I am in one of the biggest city of this country right now but on Meetup.com I can't find more than 4 - boring - events in the next 30 days

Anyway I already planned to join an hackthlon this weekend even if I never tried one and fear to be the "noob of the group" but well, I hope we all started from that position somewhere

I have for sure to improve my start-a-discussion-with-strangers skill.

<comment><USER2> And it _is_ a skill that you can improve with practice. Good luck!

</comment></comment></comment><comment><USER3> I had the same problem a few years ago. I solved it by going to coffee shops to work maybe an hour per day. And in good hacker fashion, I eventually built an app for that, that lets you find "co-lunchers" (check out [http://colunchers.com](http://colunchers.com)). Hope you find it useful.

</comment><comment><USER4> What do you do for fun? I always just go to some meetups related to either my work or my hobbies. I think any sports (hiking, mountain climbing) or artistic endeavors (woodworking, photography) type of hobbies make it really easy to make friends.

<comment><AUTHOR> I was thinking since months to start a yoga course but I fear that in those lessons the "let's socialize" part is not considered a lot in comparison to the physical activity

<comment><USER4> Sure there's time to socialize. Waiting for class to start, walking to and from class/etc. You won't know until you try. (And if it doesn't work out then you'll still have done some yoga.)

</comment></comment></comment><comment><USER5> Others have suggested it, but:

\- local groups for your preferred hobby (there are lots of tabletop gaming events, I met some cool people in Europe that way)

\- taking classes is a way I've met lots of people. Even if it's short courses

\- going to events

\- sports and other hobbies - as some mentioned, biking, trekking, climbing, running. In southern Europe there has to be some kind of sports app.

Other family members use other kinds of social support:

\- couchsurfing (there are local couchsurfing events almost everywhere)

\- churches / NGOs / charities / volunteer work

</comment><comment><USER6> Try to find a co-working space in your area. If not maybe work from a cafe for some time during the day.

I was gonna suggest meetup.com but looks like you do not have interesting meetups in your area.

Maybe pickup some sport in your free time. Leisure, fitness and socializing all rolled into one.

</comment><comment><USER7> I'd rather write a blog post and use it as reference. The topic is been discussed in very long detailed on HN, but I'm too lazy t find the link.

The only advice I have is: Take haircuts and dancing lessons as often as you can.

<comment><AUTHOR> Well this seems a very simply but effective suggestion I mean, I indeed considered to go to some dancing party (bonus I am still at an age in which I am young enough to be considered a college student) but I feel a bit awkward going there all alone, I would prefer to have with me at least one friend but I have to find one first elsewhere

<comment><USER7> Well, that's the thing with dancing classes: The members of the group ared _forced_ to actively interact with each other. So even if you go alone, you'll need to interact with men and women in your group in one way or another. The haircut is both related to the aesthetics and non-stop-talking mentality most _styling saloons_ have.

</comment></comment></comment><comment><USER8> Reading a bunch of Classics always help melt the time away. But also just go to a local bar and socialize with the locals.

</comment><comment><USER9> Don't underestimate the old fashioned way of making friends..

Hit the bar, have a few drinks, talk to other people at the bar.

</comment><comment><USER2> It's only been a few days, but has any of the advice so far yielded results? I'm cheering you on. :)

</comment><comment><USER10> meetup.com is a good way of finding other people interested in the same things as you are.</comment>


Yes, there's gravity in space - <AUTHOR> https://www.washingtonpost.com/outlook/five-myths/five-myths-about-space/2018/12/10/407ffc1a-f35a-11e8-bc79-68604ed88993_story.html <comment><USER2> Do people really think there's no gravity in space? What do they think keeps objects in orbit?

<comment><USER3> The intended audience is people that read this newspaper.</comment></comment>


Ask HN:  What to do when some users want a feature back that was bad? - <AUTHOR>

For example, the first release of my game DropZap had irritating high pitched laser sounds.
V1.1 has something more pleasant, but some users (don't know what percentage) actually liked the old sounds better.
What do you do in a case like this?
IMO, even making the old sounds an option is not a good idea because I think they are really irritating in comparison to the new ones for most people. <comment><USER2> I think it's better to do what's right for the product, even if it means annoying a minority of customers.

When it comes to features in apps in general, I've noticed that no matter how bad a feature is, or how awkward the UI, there's always somebody out there with lifestyles (or senses) so bizarre that it was the killer feature for them.

Notice how many still want a stylus to click buttons when the screen now works with fingers. There are even some who've trained their voice to. speak. in. the. cadence. of. their. voice. recognition. software and resented it when a newer version came out that could handle natural speech.

</comment><comment><USER3> In this situation you really have to look at 1) how many people are asking for this, 2) how vocal are they, and 3) how much development effort do you need to put into adding an option in the menu to change the laser sounds?

Sorry to answer your question with a question (or three), but comparing your answers to these questions will give you a good context for choosing a solution.

</comment><comment> barry-cotter Make it an annoyingly difficult to get to option. This won't work since it's an iPhone app, but some analogue of having a Page that's not linked to from anywhere, like if HN had a "secret" controversial list at xx/controversial.

People who want to give you money are asking for something. Consider cooperating with them for said money.

<comment><AUTHOR> I only started charging for DropZap recently, so money is not an issue with respect to this particular feature.

But yes, this is more of an issue when they pay.

</comment></comment><comment><USER4> If it's low-effort, make an easter egg. People that really want it can have a fun time finding it (if they know it's there).</comment>


Show HN: Seen – A JavaScript-Support web crawling framework for Pythoner :) - <AUTHOR> https://github.com/HuberTRoy/Seen <comment><AUTHOR> :) Thanks your advice.</comment>