Ruby Bug: SecureRandom should try /dev/urandom first - <AUTHOR> https://bugs.ruby-lang.org/issues/9569 <comment><USER2> This is sad and embarrassing for every involved party. The people leaving rude, entitled, hyperbolic comments in the thread, the Ruby developers who refuse to look into the best practice suggested by experts in the field, and the man page maintainer who refuses to update the man page in accordance with similar information.

<comment><USER3> Agreed that tensions are running high. But I think the ruby devs are in the right here. They are just following the man page. What else is the authoritarian source?

How is one supposed to know who wrote those blog posts? Just because it is linuxexpert.com does not mean they are linux experts. It's funny, if people changed it randomly following blogs then people will claim this is some NSA conspiracy :-) How does one verify the person behind the blogs?

node has similar [https://github.com/nodejs/node/issues/5798](https://github.com/nodejs/node/issues/5798)

<comment><USER4> The authoritative source in Linux is the code and always has been.

<comment><USER5> Code is useless if no one knows how to use it properly and it's not communicated clearly. Users certainly can't be expected to read every line of code. That's like shipping a car with no user manuals and saying "take the engine apart and see how it works." Arrogance.

Clearly document system behavior or code is essentially useless.

<comment><USER6> Users of languages can't be expected to. Therefore the language designers and maintainers themselves, especially if they're working on the stdlib, should do so, IMO. It's not only education for a proficient programmer, it helps to understand the underlying system you're building on and it's security assumptions.

The random char device code isn't that hard to understand, and if you're not a strong C programmer (the Ruby-core people are good C programmers, I suppose) - there's a paper explaining how it works: [https://eprint.iacr.org/2012/251.pdf](https://eprint.iacr.org/2012/251.pdf)

Aaron

</comment></comment></comment></comment></comment><comment><USER7> So once again, the man page for urandom creates more problems than solutions. ([https://bugzilla.kernel.org/show_bug.cgi?id=71211](https://bugzilla.kernel.org/show_bug.cgi?id=71211))

<comment><USER8> Obligatory "How To Safely Generate A Random Number" link[1] that I always wind up posting in threads like these. There's also the getrandom syscall[2] which uses the /dev/urandom pool.

[1] [http://sockpuppet.org/blog/2014/02/25/safely-generate- random...](http://sockpuppet.org/blog/2014/02/25/safely-generate-random- numbers/)

[2] [http://man7.org/linux/man- pages/man2/getrandom.2.html](http://man7.org/linux/man- pages/man2/getrandom.2.html)

<comment><USER9> Why are the man pages not so clear?

<comment><USER8> I'm not sure. I think part of the problem is that Linux still uses entropy estimation. This is also one of the issues I have with the proposed replacement[1][2] for Linux's current CSPRNG implementation since it still retains entropy estimations.

[1] [https://lwn.net/Articles/684568/](https://lwn.net/Articles/684568/)

[2] [https://news.ycombinator.com/item?id=11561340](https://news.ycombinator.com/item?id=11561340) (HN thread for [1])

<comment><USER5> Btw Linux / Fortuna

[http://lkml.iu.edu/hypermail/linux/kernel/0504.1/1964.html](http://lkml.iu.edu/hypermail/linux/kernel/0504.1/1964.html)

</comment></comment></comment></comment></comment><comment><USER10> I really don't like the sentiment of "We shouldn't change it unless the man page says we can". That's exactly the kind of senseless bureaucracy that the open source community should be avoiding.

<comment><USER11> The manpages for syscalls and device nodes are basically their API specifications. They tell you what behaviours can be guaranteed (i.e. what properties are a part of the interface contract) and what behaviours cannot (i.e. what properties are implementation details of the current implementation, and could change at any time.)

Just because the implementation of /dev/urandom has good properties that make usable as a system-wide CSPRNG, doesn't mean that it's _supposed_ to have those good properties. Only the docs can make that assertion. Without such an assertion, the kernel is free to make /dev/urandom have less-sound properties in a future release—because there's no spec saying they shouldn't. (They try not to break userland code, yes, but userland code only relies on things the docs say it can, so...)

<comment><USER12> > They try not to break userland code, yes, but userland code only relies on > things the docs say it can, so...

Judging from the odd Torvalds-yelling-at-people mail getting linked on HN, it doesn't sound like "it's ok to break userland here because clearly they didn't read the docs" would fly.

<comment><USER13> The proposed change --- unify urandom/random and permanently lose blocking behavior --- can't possibly break userland. There is no way to write a program that depends on /dev/random blocking, because it does so at random.

<comment><USER14> I've seen you post that a few times, so two minor nitpicks.

In the mental model in which the /dev/random manpage lives, it makes (some) sense to read /dev/random until you get a short read, then make a userland pool from all the data you've read, "to get as much entropy as possible". That reasoning doesn't _actually_ make sense, of course, but I would be surprised if _nobody_ thought that such a construction would be a good idea.

Separately, there's quite a lot of code - and I've written some - that reads a byte from /dev/random at daemon start, specifically to block until the system has built up enough entropy. FreeBSD blocks reads, even from /dev/urandom, until the [EDIT: estimate of how much entropy has ever gone into the pool] gets high enough, which makes some sense; but there needs to be _some_ way to block-until-random.

<comment><USER13> FreeBSD blocks until the generator is seeded. I think Linux urandom should do the same thing. But once it's seeded, there is no reason for the generator ever to block again.

<comment><USER14> Yes, that's what I meant. Edited for clarity, thanks!

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> To make this discussion really useful: what's the easiest way for a Ruby application to make SecureRandom use /dev/urandom, without waiting for Ruby- core to be convinced?

<comment><USER16>
      require "securerandom"

      module SecureRandom
        F = File.open("/dev/urandom")

        def self.random_bytes(n = nil)
          F.read(n || 16)
        end
      end

<comment><USER17> Why not just make the argument default to 16? Is something non-obvious going on?

<comment><USER16> The caller may pass nil explicitly.

<comment><USER17> I don't understand. You may still pass nil explicitly if the argument defaults to 16?

<comment><USER16> Yes:

      def f(n = 16)
        n
      end

      p f # => 16
      p f(nil) # => nil

</comment></comment></comment></comment></comment></comment><comment><USER18> Why haven't the urandom man pages been fixed yet? Is there, like, no process for fixing man pages at all, they just wind up set in stone forever?

<comment><USER19> If you look at the bug filed against the man page, it doesn't exactly make a strong case. It just suggests some weasel words, about qualifying "large amount of data" etc. ([https://bugzilla.kernel.org/show_bug.cgi?id=71211](https://bugzilla.kernel.org/show_bug.cgi?id=71211))

So bug report understates the issue, nobody has gotten around to writing a good quality patch, everyone is just loudly complaining elsewhere.

<comment><USER18> Actually, I'd say that issue/bug filed two years ago _does_ make a strong case that the current man page is insufficient, that it's actually the current man page that's full of ambiguous language and "weasel words".

But you may make a good point that perhaps nobody has submitted a good patch yet -- you're right that issue isn't a good patch, just an invitation to enter into a discussion toward one (an invitation that doesn't seem to have been taken up, at least on the issue tracker).

One would hope that the actual maintainers of the kernel subsystems would feel responsibility to improve a clearly insufficient man page. Which makes me suspect there are some underlying politics or personality conflicts going on. (Or just burn-out?)

But if all it needs is someone to write some good text -- is it really the case that none of the cryptographers who have been writing extensive blog posts about this for years care to submit a doc patch? If so, I wonder why?

Perhaps, just guessing, another potential issue is that nobody really wants to _take responsibility_ for such text, in case they make a mistake. So the existing clearly insufficient text remains. Tragedy of the open source commons?

<comment><USER19> > it's actually the current man page that's full of ambiguous language and > "weasel words".

The report suggests "clarifying" what the man page means by the (completely incorrect) statement that "Users should be very economical in the amount of seed material that they read from /dev/urandom"

Probably the reporter was just being polite, but in the absence of other comments in the bug or any kernel developers weighing in, it just sounds like an editorial suggestion coming from a single Linux user. Remember that the man-pages project is separate from kernel development.

<comment><USER18> Yes, it reads to me like they were just being polite. The first couple sentences make it clear they think /dev/urandom is the right tool for "daily tasks" and that the man page is misleading people into thinking otherwise.

They begin with the most indisputable ways the man page is insufficient, as a way of starting the conversation -- which was never taken up.

Perhaps an actual patch would have been just accepted? Maybe the problem is the issue-submitter assumed there was someone on the other end who understood the kernel features and was interested in discussing making the man pages better.

</comment></comment></comment></comment></comment><comment><USER20> You know your language is bad when PHP -- possibly the most hated web scripting language on the planet -- does it better.

Come on Ruby, get your act together. You can do better, right?

Also, [https://github.com/openssl/openssl/issues/898](https://github.com/openssl/openssl/issues/898)

</comment><comment><USER21> "securerandom.rb will consume too much entoropy if /dev/urandom is used directry."

This is a quote for the ages.

</comment><comment><USER22> Regardless, whether it be OpenSSL first or /dev/urandom first, "haveged" entropy generation is still needed for virtual machines, which is the most common use case. In my experience both ways are a no-go without special measures like haveged being put in place to super-charge the available entropy. I've had processes hang up for MINUTES or just under TWO HOURS waiting for more entropy to be available.

<comment><USER7> That's one of the solutions, but not the only one. QEMU's solution is another virtio device: [http://wiki.qemu.org/Features- Done/VirtIORNG](http://wiki.qemu.org/Features-Done/VirtIORNG) I expect XEN and others to follow soon.

Also RDRAND can be executed in a VM, but I'm not sure if it is handled properly yet.

And like tptacek mentioned - why did you use blocking random in the app?

<comment><USER23> Actually it's still kind of an issue. The qemu virtio device reads only from the hosts /dev/random device (not urandom) so you can still starve the hypervisor. Also the guest -- even though is properly seeded -- can entropy starve because who knows what is installed on it. And clearly there's still confusion about using /dev/random.

I don't even think the solution is to point everything to /dev/urandom. Why maintain two? Why constantly have to explain to people the difference? The BSD developers merged both devices into /dev/urandom and I think that's the right approach.

<comment><USER7> It's configurable. You can even forward host's /dev/urandom as guest's /dev/random.

<comment><USER23> Actually it's not supported with virtio-rng. Here[0] is a proposed patch to add support.

[0] [http://www.redhat.com/archives/libvir- list/2016-March/msg010...](http://www.redhat.com/archives/libvir- list/2016-March/msg01062.html)

<comment><USER7> I knew you can change the source (it accepts egd after all), but didn't know they actually prevent you from choosing urandom. This is sad :(

</comment></comment></comment></comment></comment></comment><comment><USER24> This whole situation has annoyed me enough to start writing this gem:

[https://github.com/technion/use_urandom](https://github.com/technion/use_urandom)

Note I said "start", so I'm aware it needs work. Feedback is appreciated however.

<comment><USER25> I'd suggest you just use the `rescue` definition from SecureRandom.

Then you don't have to do any work yourself.

        def SecureRandom.gen_random(n)
          ret = Random.raw_seed(n)
          unless ret
            raise NotImplementedError, "No random device"
          end
          unless ret.length == n
            raise NotImplementedError, "Unexpected partial read from random device: only #{ret.length} for #{n} bytes"
          end
          ret
        end

</comment></comment><comment><USER26> Is there a good random library that's _not_ the giant ball of death that's OpenSSL?

<comment><USER27> I've used Mersenne Twister[0] in the past.

[0] [http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html](http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html)

If you're talking about an RNG library for cryptographic purposes, then it depends on your use case.

<comment><USER13> It _does not_ depend on your use case. The answer, in all cases, is just to use /dev/urandom.

<comment><USER28> I had a rather specialized case where it was the pragmatic choice (note, not technically required): running a lottery with potentially litigious losers.

If you used a CSPRNG with a seed space smaller than the set of possible lottery outcomes, losers could argue (misleadingly, since we still couldn't feasibly bias the result) that not all outcomes were equally probable and try to get the results thrown out. That is, the fact that there are widespread misconceptions about /dev/random can very rarely be a reason to use it :P

However, I agree that the rule is that you should just use /dev/urandom.

<comment><USER29> Why not use a hardware rng in that case? Seems a lot safer if you have to deal with litigious people.

<comment><USER28> We did, in a way. One of the sources used was random.org (uses radio receivers tuned to static from atmospheric noise: hardware RNG as a service). I also had less than 3 weeks to take it from proposal to production.

Combining two independent sources obtained by different people and using a cryptographic commitment scheme ensured that 1) no one person could fix the results or make it nonrandom (protection against Eddie Tipton-style attacks), 2) if at least one of the independent sources was random, the result would be.

</comment></comment></comment></comment></comment></comment><comment><USER30> JRuby uses Java's java.security.SecureRandom, which (by default on OpenJDK 8) uses /dev/random, mixed with its own SHA1PRNG (this so setSeed() can be guaranteed to actually do something).

Rubinius copies MRI circa 2014 via rubysl - [https://github.com/rubysl/rubysl- securerandom](https://github.com/rubysl/rubysl-securerandom)

<comment><USER7> Does it really? From [https://bugs.openjdk.java.net/browse/JDK-4705093](https://bugs.openjdk.java.net/browse/JDK-4705093) :

> If you call: new SecureRandom() on Linux and the default values are used, it > will read from /dev/urandom and not block. (By default on Solaris, the > PKCS11 SecureRandom is used, and also calls into /dev/urandom.)

<comment><USER31> I ran strace on both OpenJDK 7 and 8. It appears to open both /dev/random and /dev/urandom, but it only read from /dev/urandom. From reading the source code, it appears that /dev/random is used if you call SecureRandom::generateSeed, but /dev/urandom is used for SecureRandom::next.

Of course, you can change a whole heck of a lot of stuff by setting properties on the command line or changing $JAVA_HOME/lib/security/java.security.

<comment><USER30> Yep, shouldn't have second-guessed myself. Teach me to comment at 4am.

[http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/s...](http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/solaris/classes/sun/security/provider/NativePRNG.java)

</comment></comment></comment></comment><comment><USER32> I was recently told about a method to generate a random number using something called "quadratic residue". There was too much math for me to understand it. Is anyone familiar with this?

</comment><comment><USER33> [deleted/retracted]

<comment><USER18> Yes, it's just you.

The core ruby team is mostly Japanese-speaking, and Japanese developers are less likely to speak English well even than people in a lot of other countries where English is not a common first language. I think that does serve as a barrier to communication and transparency (with/towards English-speakers!). I think that's all there is, nothing "about Asian culture", or "decisions are made as a group rather than on an individual basis," or cliquishness.

We English speakers have the luxury of seeing almost all open source development happen in our first language. Most of the world doesn't. Ruby is an exception, with a mostly Japanese core team. Just how it is.

<comment><USER33> Thanks for the enlightenment, I didn't know this aspect of the Ruby core team.

<comment><USER18> Yeah, I too find it hard to figure out exactly who the ruby committers are, or what goes on amongst them. I believe this is simply because of that language barrier. From what I do know, the way MRI is developed is not at all atypical or unusual compared to most other large open source (primarily English- language) projects.

Here's a useful (to those curious to learn more about ruby committers) interview from 2013 with 15 ruby committers, note the questions and answers have been translated between English and Japanese. [http://www.sitepoint.com/meet-fifteen-ruby-core- committers/](http://www.sitepoint.com/meet-fifteen-ruby-core-committers/)

My impression is that a lot of discussion on MRI happens in Japanese on Japanese listservs. Of course, it doesn't take a language barrier to make things seem not so transparent -- for comparison a few years ago, Rails core team started taking the majority of their discussion to private core-team-only listservs. (I gather because they were finding dealing with the peanut gallery made it too hard to get things done/decided). At least there's still lots of open (and English-language) communication on the github issues or open listserv, but there are often times when I'm not really sure who or how or on what basis architectural decisions are made for Rails too, a lot is done in private, is my impression.

But I suspect to curious Japanese-speakers, MRI development may even be _more_ transparent than Rails is to English-speakers! I think (but not entirely sure) all of the listservs MRI devs use to collaborate are actually open -- you just have to read/write Japanese to understand what's there or engage effectively. :)

</comment></comment></comment></comment><comment><USER34> Well, I dunno what the man pages say and what some dudes on the internet say, but I know that on CentOS release 6.7 (Final) I need to run with -Djava.security.egd=file:///dev/urandom or else I can't connect to Oracle half the time because Java runs out of entropy. So there must still be some difference between /dev/random and /dev/urandom.

<comment><USER35> Nobody's claiming there's no difference between /dev/random and /dev/urandom. They're just saying you should always use /dev/urandom.

<comment><USER34> Not sure what up with all the downvotes. I'm just saying that Java defaults to /dev/random and Java is kind of a big and important and all that, so not sure why everyone is giving crap to poor little Ruby about this.</comment></comment></comment>


Tesla Directors, in Damage Control Mode, Want Elon Musk to Stop Tweeting - <AUTHOR> https://www.nytimes.com/2018/08/14/business/dealbook/tesla-board-musk-tweets.html <comment><USER2> The video titled 'don´t talk to the police' [https://www.youtube.com/watch?v=d-7o9xYp7eE](https://www.youtube.com/watch?v=d-7o9xYp7eE) is a very serious message from a lawyer and a cop not to say a single word since it _will_ be used against you. The same is true for Musk and twitter.</comment>


Meet Datawake – Nomadic Research Labs (2016) - <AUTHOR> https://microship.com/meet-datawake/ <comment><AUTHOR> I had occasion to meet Steve Roberts at the Dayton Hamvention when he had just published _Computing Across America_. I don't know anyone so delightfully dedicated to sheer hardware and software hacking fully integrated with one's lifestyle.

[edit] and here is what may have begun his start: [https://microship.com/combo-mowing- rig-1966-movie/](https://microship.com/combo-mowing-rig-1966-movie/)

<comment><USER2> I remember him on TV in the late 80's with that awesome bike. Good to see he is still at it.

<comment><USER3> Yes! He was featured on the cover of a bicycle magazine back then and quicky became a nerd-hero of my youth.</comment></comment></comment>


Ask HN: Anyone still using multiple screens for coding? - <AUTHOR> I find it much more productive to have 2-3 screens (or 1 large 4k screen) when coding, so that I can have multiple files+browser+docs open without constantly switching windows. Furthermore, typing on a proper keyboard seems more ergonomic than using laptop keyboards.
However, lately I've seen more and more people coding on laptops (without additional screens/keyboard) even if they'd have desktops available. And many flexible office spaces don't even have the ability to install additional screens and keyboard/mouse.
Am I missing something here? Is my impression biased or is it really that uncommon to use a proper set-up for developing code? <comment><USER2> Over on the world of finance where I spend the majority of my time, one laptop and maybe an external screen running at the wrong resolution is commonplace. The development team shares the same standard workstation setup as the non- technical adviser sitting across the room, which to me seems wrong. I much prefer having the extra screen real estate so I purchased a 27" Dell to sit next to the 24" rotated vertically. At home I have a single 40" 4k monitor which is excellent for coding as well. So, in my case, I'd say yes, it is much better to have a few screens, unless you have one really big one.

<comment><USER3> And here I thought I was the only one with a vertical side monitor. Then again, did you mean that both are vertical?

<comment><USER2> Nope, just the smaller of the two. It's great for viewing a whole class or several slide packs at once. Or a single remedy ticket as long as it's not too big...

</comment></comment></comment><comment><USER4> I use a laptop with a full screen terminal Emacs and a font that fits roughly 30x80 characters. It helps me concentrate; I don't like seeing many different things at the same time.

I have a global key binding to disable the trackpad because I prefer not to use it and my laptop keyboard is pretty nice.

This setup influences how I work and what tools I prefer.

Recently I've been working on automating all of my bank errands using WebDriver so I don't have to interact with any websites, for example.

</comment><comment><USER5> I code on MBA but with external display and keyboard front and center having MBA sit beside the display.

I have display turned off on the MBA and only use the external main display but I do keep the lid open to use its trackpad.

I resize my communication tools (email, skype) narrowly to the left side of the screen and keep my other main apps (browser, db tools, editors) for the rest of the space. This way, I can look at both without really turning my neck around and the fact that with wide displays, codes/web pages almost start at the center of the screen definitely makes it easier to read instead of having have to move your sight to the left on every line.

I've pretty much come to the conclusion that sticking what to concentrate on, on the main display is the way to go instead of splitting them all over your desk.

Static hand position with vim keybinding and with less eye/neck movement, least fatigue you get. (Of course with the chair your body likes.)

</comment><comment><USER6> My macbook pro is connected to a Dell P2715Q. Using an external keyboard (Matias QuietPro) and mouse (Logitech MX Master)

I have Telegram, Slack, spotify, etc. on the macbook pro screen and I have my web browser and IDE on the Dell side-by-side.

This setup is relatively new, previously I was only using the laptop screen. It is working great for me and my productivity has definitely increased.

</comment><comment><USER7> I routinely code with 2-3 monitors, with terminals, IDEs, editors, debuggers, email, Skype, etc., in separate windows, so that I can quickly switch to the desired operation without opening and closing a lot of windows.

I sometimes use two monitors in portrait mode side-by-side for long code listings.

I think this and many other custom monitor setups, are more common than you think.

I see all kinds of custom KVM configurations around the offices and cubicles I work. Everyone's needs are different.

But back to your original question: if more people are using laptops, and less are using dedicated workstations with large (multi-)monitors, then that could just be a cost-cutting measure (paying for one laptop instead of a laptop + workstation), or maybe they are going to meetings after meetings too often to make a dedicated workstation even useful.

But it wouldn't be unreasonable to expect a docking station (or just the necessary cables), keyboard, mouse, and a large monitor, to supplement a laptop for long-term coding work.

</comment><comment><USER8> If you're working on a single screen, you need the following shortcut keys (think StarCraft):

\- A shortcut key for every major application you use

\- A shortcut key to tile the window to the LHS of the screen

\- A shortcut key to tile the window to the RHS of the screen

\- A shortcut key to select the window on the LHS

\- A shortcut key to select the window on the RHS

If your OS doesn't support these shortcut keys, build them into it.

The thing about multiple monitors it's that it's basically just a hack to get around the fact that screens were never big enough to begin with. Trust me, once you use a truly giant screen you'll understand. I use a 34" curved screen by LG. Additionally a single screen lets you sort out your ergonomics problems more easily.

The other thing about multiple monitors is that the thought of regularly configuring them is enough to send a shiver down any experienced Linux user's spine:

[https://xkcd.com/963/](https://xkcd.com/963/)

<comment><USER9> How do you set up those shortcut keys? I think I could _probably_ set them up in KDE on Linux but no idea in any other OS or using any other WM.

<comment><USER8> I use KDE. I have a more advanced version of wmctrl that does the trick. Tiling to the LHS/RHS is already built into KDE fortunately. I'm also working on improving AutoKey. Will release the source code once it's tidied up a bit.

For Windows, you may be able to get a decent way through the list using AutoHotKey, it's a fairly powerful language (despite being a pretty weird one).

</comment></comment></comment><comment><USER10> I like just one monitor and have only the software opened I really use like editor, browser and a some terminal (depends on the os, mac or win).

Everything else like email I open check it and then close it again.

I'd rather switch windows instead of moving my head. I'd rather switch windows instead of moving my head.

</comment><comment><USER11> Yes, multiple monitors definitely make you more productive. I think employers who provide it win over long term as monitor is relatively cheap to programmer's salary.

<comment><USER12> It's almost surprising that any company would say no. A decent monitor can be had for under $300. If it improves someone's productivity by 0.5%, it's probably worth the investment.

</comment></comment><comment><USER13> Forget coding. I am so used to at least 2 monitors that working on a laptop screen makes me uncomfortable even for basic surfing. I do it only when traveling since I have no choice.

But I know a team member who actually prefers working on a laptop screen and he writes a lot more code. So I guess it comes down to personal preferences.

</comment><comment><USER14> I code purely on a 13" Macbook Air but would definitely say that multiple monitors or a single large 4k screen would be superior.

I'm constrained due to travel, but would love an extra monitor!

</comment><comment><USER15> 3 screens, sometimes 4. IDE, Browser, Mockups, Debug</comment>


Show HN: Include this JS library to enable cross-origin requests - <AUTHOR> https://github.com/TOMODOcom/TOMODOkorz

<comment><USER2> Overwhelmingly terrible idea. Routing your web site traffic through an entirely unknown third party server. Overwrite the global XMLHttpRequest object.

Please tell me this is a joke to show off terrible security practise?

<comment><AUTHOR> Regrading overwriting XMLHttpRequest, if it works - it works, and if it breaks it can be improved, this is why it is open source. It does not reroute your site traffic just your cross-origin site traffic, which practically does not exist without this library. Yes it can be used to do bad thing but also opens up the opportunity for mashups, external content integration, api calls and more.

</comment></comment><comment><USER3> Routing all your x-domain requests through an unknown third part via vanilla HTTP? What could possibly go wrong?

<comment><AUTHOR> It's just your cross-origin traffic, which is not possible without this library, everything else will behave exactly the same.

<comment><USER3> And whoever is running this proxy will _promise_ not to log any sensitive information (API keys not the least) or otherwise use/modify the response for their own ends?

Not to mention that the API endpoint is HTTP only, meaning everything is broadcast in the clear.

Also, cross origin requests are perfectly possible without this library, it's precisely why we use JSONP and CORS.

When it comes to security, this library is a collection of anti-patterns. As well as the JS anti-pattern of not overwriting native objects, such as XMLHttpRequest in this context.

</comment></comment></comment><comment><USER4> Please don't use this. JSONP and CORS are the accepted methods for cross origin requests.

<comment><AUTHOR> You can only use JSOP and CROS with sites you have control over or are designed to behave and support external requests. It makes it very very limited!

<comment><USER5> "You can only use JSOP and CROS with sites you have control over or are designed to behave and support external requests."

That's kind of the point.

<comment><AUTHOR> It limits the thing you can do. This library allows you to easily get and display content from any external source.

<comment><USER4> Those limits are a security measure to protect against XSS and CSRF. Intentionally weakening your site security isn't a good idea for most people. Your mash up site evidently uses this to get around same origin policy without the cooperation of targeted sites. It would be interesting to know how you plan to mitigate those risks.

</comment></comment></comment></comment></comment><comment><USER6> How is this remotely trending? Yes, HN, let's vote a MITM attack to the frontpage. This is a terrible idea.

<comment><AUTHOR> Yes it allows you to do back stuff. But it also allows great things as mashups, retrieving external content easily etc.

<comment><USER6> Tell you what. Since I'm not a big fan of the lynchmob, here's the only positive critique I'll give you: proxying isn't an altogether terrible idea. It's not my first go to, but it does have it's place. HOWEVER. Allowing a third party to manage it, is. If you genuinely want to create some buzz and interest, source the serverside of this, and write some docs up how to deploy it to AWS, Heroku, etc. Bundle the JS with that. That'll be infinitely more useful than this service.

You're asking that I trust you will not modify the response in any way shape or form. The very nature of software dev mandates that I do not trust data that is not my own; and even then, verify it. You're asking quite a lot here. This is by all points and purposes, a man-in-the-middle attack vector.

<comment><AUTHOR> OK, it is a trust issue. However you can use this library and change the proxy url to your own server and still get the benefit of the fact that you don't need to rewrite external requests and just use jQuery.

<comment><USER6> At that point, if I wrote my own proxy server, I'd drop the JS altogether and just request a proxy link. I know what's cross-origin in my code, so if I wanted to mitigate it with a proxy, I don't need the additional library. Still say your best bet is losing the JS and opening up the server. I mean, what's going to be better here, telling everyone "it's a trust issue", or passing on a relatively simple self-hosted proxy server made specifically for CORS- faking? Else, my big trust question is "why exactly do you WANT me to forward my traffic through your black box server?"

</comment></comment></comment></comment></comment><comment><USER7> This is just a proxy. If developers wanted to go this route they would set up the proxy on their own server instead of routing it through a 3rd party.

<comment><AUTHOR> It's possible, we just make it easier. This library also make it seamless (you can still use jQuery.ajax). They can use this library and just change the proxy url.

</comment></comment><comment><USER8> If you need to ask why it is bad to route traffic through an untrusted third party over HTTP, for the love of god stop building web applications. This is not the right tool for the problem it's trying to solve.

<comment><AUTHOR> "untrusted" is the issue here, and trust is built over time. In the meanwhile you can use the library and implement the server side.

</comment></comment><comment><USER9> I would let the users know that requests get routed through a server you control.

<comment><AUTHOR> It only goes through our servers if it's cross-origin. Normal http same-origin requests are left intact (and you can see it in the code). It's stated on the README but perhaps it should be more apparent.

</comment></comment><comment><USER10> I'll probably never use this library for anything, but I've submitted a pull request that takes out their 3rd party proxy and merely suggests it in the error that is thrown if you don't define your own. [https://github.com/TOMODOcom/TOMODOkorz/pull/1](https://github.com/TOMODOcom/TOMODOkorz/pull/1)

</comment><comment><USER11> Seems a cool idea to use with mockups and prototypes, but an awful idea to use in a serious product.

<comment><AUTHOR> Why? remember your product will function exactly the same. It just makes more thing possible.

<comment><USER12> No, it will not function exactly the same, because it sends stuff through your server. That is a very important difference.

Leaving my front door open when I'm on holiday also makes more things possible. That does not mean I will like those things.

<comment><USER13> If you are working on super sensitive website for the NSA, I totally agree. YOU SHOULDN'T USE IT.

But if you have a blog and you would like to constantly display some specific content from a different webpage via ajax it seems like the easiest & most simple solution.

</comment></comment></comment></comment><comment><USER14> If you trust Yahoo!, you can try proxying requests via Yahoo Pipes for Cross- Origin support. Not that I recommend it, though.

[1]: [https://gist.github.com/psychemedia/316660](https://gist.github.com/psychemedia/316660)</comment>


The Undermining of American Charity - <AUTHOR> http://www.nybooks.com/articles/2016/07/14/the-undermining-of-american-charity/ <comment><USER2> IMO, a great many problems would be avoid by removing the charitable giving tax break. It not only shifts the Tax burden from the wealthy to middle class it also subsides the agenda of anyone that can afford to jump though some hoops.

Not to mention all kinds of corruption where charity rents private land or uses another company to _. Or charity A takes X% off the top and hand it to charity B who takes Y% off the top.

<comment><USER3> There are many, many great charities that would suffer greatly from your simplistic solution.

As a middle-classer giving >10% of income to charity, it's helpful to not have that be taxed and enables more to go to the charities.

A more reasonable solution would be a cap on the total amount able to be a tax break. This would prevent the mega-rich from creating fancy tax-avoidance schemes, while enabling the charities and regular folks to procede as usual.

Also, DAF's are a really bad idea for receiving tax breaks, as the article points out.

<comment><USER2> Removing the loophole would lower your tax rate. However, why should I subsidies whatever you want to have happen beyond that point?

Sell milk? Why not set up a trade association to promote it. It's just promoting healthy living after all.

<comment><USER4>
      why should I subsidies whatever you want to have
      happen beyond that point?

The theory is tax breaks for charity make people donate more, and a dollar donated to a charity is a dollar that doesn't have to be paid by the government to do the same thing.

For example, if I donate $1000 to a university, higher education is $1000 better funded. Whereas if the government taxes me $330 and gives that to the university, then I spend the rest of the money on hookers and cocaine, higher education is only $330 better funded.

If you're a conservative, you might also think the government is inefficient and most of that $330 would be wasted in the bureaucracy; that most donors are basically like you and hold your views because charity is a christian virtue; or that donations allow donors to choose efficient charities in a competitive market, driving down waste. If you're a liberal, you might think most of that $330 will be spent on costly foreign wars and private prisons; that most donors are basically like you and hold your views because charity is about putting the good of that many above yourself; or that donations are key to supporting causes like animal welfare and vegetarianism that are unlikely to get state funding.

Needless to say, the above assumes charities are basically moving towards the same public good the government is trying to achieve. If I donate to support schools with extremist religious views or to support the families of Palestinian suicide bombers, that's a different matter.

Edit: And complete alignment of charities with the views of government isn't required. If the tax deduction turns $330 into $1000, the charity only needs to be 34% aligned with the government for the outcome to be better; so for example $1000 donated to a religious school that spends $500 on textbooks and $500 on bibles is better than the government giving $330 of textbooks.

I agree, if this is the rationale for charity tax deductions, that there should be strict auditing for sham charities and charities that are wildly out of alignment with the public good.

<comment><USER2> This assumes everything charities do the government would also do which is clearly false. Thus invalidating the argument as said by your last line.

So, I don't get the point? Is this one of those cognitive dissonance things where you are supposed to accept two things that can't both be true?

</comment></comment></comment></comment></comment><comment><USER5> Sadly, the not for profit sector has become a mechanism to avoid paying taxes rather than groups dedicated towards actual charity. That's beyond some of the salaries that directors of these organizations are making.

<comment><USER6> I spoke with a CEO of a rather large non-profit hospital system who said, basically, that the only difference between a for-profit company and a non- profit company is that the board of directors of a non-profit have much less oversight to ensure they decisions abide by the charter of the organization.

The way the companies operate is exactly the same: try to make as much money as possible to donate it back into the charitable trust. But a lot of it goes to perks and bonuses for executives, along with increased marketing expenses to continue the "donation" growth.

<comment><USER7> Why should a non-profit pay its employees less than a for-profit company? The labor market is the labor market; the feel-good of working for a non-profit might be a "perk" that justifies a slightly lower salary (like equity in a startup), but it'll only get you so far. Insisting that non-profits pay people less just means they'll get less qualified/motivated people.

(And to the extent that the argument is that you don't need to pay $400k to get a qualified/motivated CEO, then that's true of _any_ company--being non- profit has nothing to do with it.)

<comment><USER5> Because they are being funded by tax payers.

<comment><USER8> Very few non-profit organizations are "funded by taxpayers". They are not government agencies but corporations not very different from for-profit ones except that they don't make a profit (although as mentioned, they can certainly pay their employees quite well). Non-profits can be funded in a variety of ways, from private donations (as with most charities), or even by selling products or services (so long as they don't make a profit, as many scientific societies do)

<comment><USER9> Tax exempt status is a form of subsidy, paid by everyone who pays taxes.

<comment><USER10> In exchange for that subsidy, the government isn't (directly) running programs like homeless shelters and food banks. Societal necessities so long as homelessness and poverty remain parts of our society.

Cut the tax break, fine, but then we need the government to intervene and provide assistance for citizens.

<comment><USER11> > In exchange for that subsidy, the government isn't (directly) running > programs like homeless shelters and food banks.

Or, you know, _churches_.

The idea that the tax subsidy is justified by the fact that subsidized charities are displacing costs that would otherwise need to be born by the government would probably be more supportable if:

(1) tax subsidized charities didn't perform functions that the government is _Constitutionally barred_ from performing (viewing the subsidy as an alternative means of performing government functions, would make subsidizing "charities" to do such barred tasks a way for government to evade its Constitutional limits), and

(2) the tax subsidy were the same for all donors (e.g., a fixed proportion credit) since each dollar given would displace the same amount of government funds no matter who gives it, rather than escalating for wealthier donors.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> For contributors to these funds, am I right in thinking that any tax avoided just goes into the charitable fund pot - no contributors are dodging tax that they get to keep by misusing these things? Any money that comes out of the fund has to go to charity.

Clearly, the financial industry is making money off these products, but the article makes it sound like people are misusing these things to pocket avoided tax.

<comment><USER13> From the article, it sounds like donors can use DAFs to get a higher tax deduction. When someone donates directly to a charity, the deduction he gets is the cost of the donation. However, when someone donates to a DAF, the deduction is the current appraised value of the donation. This matters when you consider that donations aren't just cash, but also art, real estate, non- traditional financial securities, etc. and the different between cost and current appraised value is substantial.

<comment><USER14> No, that rule is only for donations to certain private foundations. If you give the "complex assets" directly to the charity you are entitled to a deduction of the fair market value[1].

However, donating such assets directly can be a hassle to do and relies on cooperation from the charity; the DAF has people who specialize in this and will take care of it for you. This allows you to get the biggest possible deduction with minimal hassle.

This is the gist of most of the tax law complaints in the article: the DAF doesn't enable you to do anything you couldn't already do, but it makes everything easier to do, including the things that the author wishes you couldn't do.

[1] [https://www.irs.gov/publications/p526/ar02.html#en_US_2015_p...](https://www.irs.gov/publications/p526/ar02.html#en_US_2015_publink1000229765)

</comment></comment></comment><comment><USER7> This article is just scaremongering at the idea that dirty "profit seeking" banks would have anything to do with charity, which should be the domain of those of pure heart. But happens when you give money to a charity or endowment? If they don't need it right away, they invest it with a bank!

<comment><USER15> This is an enormously reductive and, I think, inaccurate take on the issue. Perhaps you have a substantive objection to the several detailed paragraphs in which the authors describe the reasons why they find DAFs an ineffective method of making charitable donations. If so, perhaps you'll be so good as to elucidate it.

</comment></comment><comment><USER16> Fair warning: this page will blow up your browser history.

<comment><USER15> How so? It doesn't seem to have done mine any harm; there's the one entry I would expect, and nothing else.</comment></comment>


PagerDuty (YC S10) Pivot - Fixing the Public Transportation System - <AUTHOR> http://blog.pagerduty.com/2011/04/01/pivoting-fixing-the-public-transportation-system/ <comment><USER2> Dammit! Pingdom is so bad it hurts. Please, somebody, replace them.

The only thing worse than public transit in SF is Pingdom.

<comment><USER3> Care to elaborate on what is so bad about them (or, what you'd like to see improved)?

<comment><USER2> They cannot keep me logged in for more than a few minutes.

They charge a ridiculous fee for texts.

You can't give multiple people access to your account, which is really important given we use Pingdom to notify multiple people... If someone wants to change their contact info, I have to do it.

You can't set individual notifications. For example, I want to receive push notifications to my iPhone. David would prefer to receive emails. We can't enable one style for one person. Instead, I have to receive his emails and he has to receive my iPhone chirps.

The iPhone app is amazingly buggy.

So, why do we use it? Someone recommended them to me, and we've already paid for it. I just assumed something that expensive and oft-recommended would be better.

</comment></comment></comment><comment><USER4> "PagerDuty will continue to be our baby and we will still enjoy waking you up with sh* t breaks."

I sure hope they mean _when_ shit breaks - I've got other things quite under control thank you very much.

<comment><USER5> Thanks, I updated it :)

<comment><USER4> Though that would have also been an interesting pivot ;)

</comment></comment></comment><comment><USER6> Finally someone is fixing public transport!!!! =)

</comment><comment><USER7> At least have the decency to spell "Aerial" correctly. Unless you're trying to riff on Google's Helvetica-Comic Sans joke.

</comment><comment><USER8> I was really hoping it was a steam cleaning attachment for my iPhone to clean the seats on BART.

</comment><comment><USER9> I freaking hate today.

I'm always the April Fool when I read stuff like this.

</comment><comment><USER10> happy april fools day everybody!

</comment><comment><USER11> lol. Nice one.</comment>


Visualizing Graph Data - <AUTHOR> https://manning.com/books/visualizing-graph-data <comment><AUTHOR> I'm in the process of writing a book on graph visualization, focusing on using tools like Gephi and KeyLines and trying to give real-world examples of graph data and how it's used. I'm happy to take feedback or answer questions.

</comment><comment><AUTHOR> One more comment, I have a 50% off code, mllanum</comment>


Covid-19 infection-fatality rates: review and meta-analysis of research - <AUTHOR> https://www.medrxiv.org/content/10.1101/2020.05.03.20089854v1 <comment><AUTHOR> This appears to be the most broad analysis I've seen. the last two studies I posted were more narrow.</comment>


CommandBox CLI, package manager, REPL, and portable server for Java and CFML devs - <AUTHOR> https://ortus.gitbooks.io/commandbox-documentation/content/getting_started_guide.html <comment><AUTHOR> CommandBox is a tool for Java or CFML (a JVM scripting language) devs that provides npm-style package management, command-based CLI, REPL, and the ability to start any CF engine or Java WAR file with zero installation. CommandBox can publish packages to ForgeBox, run unit tests, scaffold sites, and is extensible via CFML modules. In addition to the standard CLI interface it has it's own interactive shell that features better tab completion, basic bash emulation for Windows users, and allows mashups by allowing the user to create scripts that run CommandBox commands, native OS shell commmands/binaries and CFML functions all at the same time.

</comment><comment><USER2> At a quick glance, this reminds me of Ruby CLI. The fact that it uses CFML as a basis for the engine is great too. I get the feeling that you could write up an API with this in a day and it would perform well.</comment>


Canadian Cops Will Scan Social Media to Predict Who Could Go Missing - <AUTHOR> https://motherboard.vice.com/en_us/article/mb8jzp/canadian-cops-will-scan-social-media-to-predict-who-could-go-missing <comment><USER2> Right. Of course. "The children". It's amazing how "liberal" democracies use "the children" as an excuse to spy on everyone and to take everyone's rights away. At least the chinese or russians are honest about their authoritarianism.

And why stop at social media? Why not go all the way and just install cameras in people's home "to predict who could go missing"?

Canadians must feel warm inside knowing how much Big Brother loves them and wants to look after their children.

<comment><USER3> It was inevitable. We kept telling people to not give away their data like that, that centralizing that much power in the GAFAS is dangerous, that somebody will abuse it.

Few people listened, even fewer without labelling us as paranoid. Almost nobody cared.

The problem is not that there are bad actors. Any sufficiently big and complex social system will have them. We must live with them, it's part of reality, like gravity.

The problem is that the rest of the actors are not thinking a second about their life or actions. They don't build a society. They cruise through existence.

This will always lead to pain.

</comment></comment><comment><USER4> Reminds me the short story "All the Troubles of the World" by Isaac Asimov where a supercomputer could predict future crimes of any individual in the world.

</comment><comment><USER5> Yeah... Right that's why they'll be doing it.

<comment><USER6> but think of the children

</comment></comment><comment><USER7> How does this even work?

If they post a lot then stop posting as often?

Talking about running away?

I know the younger generations have more of an online presence but I wonder what they have in their risk factors.

<comment><USER8> They just want to log everything, and they thought this was the reason that would sound most reasonable to the general population (hopefully they can blame AI for choosing this reason, because it is very poor).

<comment><USER9> That's really cynical, but I kind of believe it.

</comment></comment></comment><comment><USER10> It looks like "predictive policing" is already an outsourced thing. www.predpol.com

<comment><USER11> Philip K. Dick was a visionary.

<comment><USER12> It was supposed to be a warning, not an guide book!

</comment></comment></comment><comment><USER13> Life imitates art: [https://youtu.be/jdl6eAIx2K4](https://youtu.be/jdl6eAIx2K4)

</comment><comment><USER14> For your safety and protection, you now need to insert your recta-cam.</comment>


Why Learning from PowerPoint Lectures is Frustrating - <AUTHOR> http://blog.carolynworks.com/?p=154

<comment><USER2> I don't know. I've had some great lecturers deliver stuff via PowerPoint, and because I wasn't concentrating on dotting the is and crossing the ts of the equations, I could make copious notes around them and truly absorb them. My experiences learning from maths professors with terrible handwriting on OHPs (oh yes! there was a world before PPT!) were universally terrible, so perhaps I'm biased. Watching e.g. the Game Theory 101 lectures from Yale online makes me realise some lecturers actually seem to engage with written material...

I tended to take separate notes on paper alongside the slides and annotate slides, to get over the active learning go-to-sleep problem. Also, a bonus of bad lecturers and Powerpoint handouts is you don't need to turn up once you've sussed the first lecture.

One course that worked quite well for me had a handbook (so no scribbling, but no falling asleep) and the lecturer used very little in the way of visual aids. I wonder if that goes hand in hand with him being the best lecturer I had in terms of engagement and charisma...

</comment><comment><USER3> Yes, yes, a million times yes. I'm an avowed chalkboard lecturer, for all the reasons the poster mentions in her essay, and also because it lets me engage the students to a _much_ greater degree. I can elicit responses or even whole examples from the class and then run with them. I'm not constrained to a linear progression of events (as with a slide-based lecture) and can digress as appropriate. I have on occasion presented topics a full week or two early just because a student asked a reasonable question that motivated the topic--- and because I was working with a chalkboard, I just ran with it and shuffled everything else around to compensate. Plus, it frees up the projector for other things, like the Java API reference or an open IDE to test something out.

</comment><comment><USER4> I agree 100%! I think the best classes that I have taken have been the ones where the professor can digress on the topics and give you a deeper understanding for the topic. I had an older OS professor who would go off on tangents about the companies and people who had an impact on the early Operating Systems, which has been one of the most intriguing classes I have taken.

I agree that professor seem scripted when they rely on powerpoint slides. Also, I have noticed that professors are relying more and more on the slides from the book, which tend just to be a bulleted version of the book.

Death by powerpoint!

</comment><comment><USER5> Hm, I have never made much notes (mostly none), from my point of view, lectures are useful to get a rough idea about the subject, or "what should I really learn", and then there are textbooks, monographs and other sources to study thoroughly (alone). OK, mostly I wouldn't visit the lecture anyway, as it tends to be either boring or crowded, and so on. Powerpointesque presentation for the lectures are useful as a list of the topics mentioned in the lecture.

</comment><comment><USER6> My worst experience in college was Machine Learning. The professor taught the class by reading a series of sparse power point slides. There wasn't a book for the class, nor were we given other notes. There doesn't seem to be a vast amount of knowledge on machine learning as with some other topics, say calculus.

</comment><comment><USER7> This is more of a problem with bad professors than with PowerPoint. I have had professors who were absolutely horrible teachers and used only the board, and excellent profs who used PowerPoint (well, come to think of it, AppleWorks and LaTeX, so maybe there is a problem with PowerPoint after all :).</comment>


Italy is giving away over 100 castles for free, preference to under 40 - <AUTHOR> http://observer.com/2017/05/state-property-agency-italy-giving-away-over-100-castles-for-free <comment><USER2> Official site with info + application: [http://www.agenziademanio.it/opencms/it/ValorePaese/camminie...](http://www.agenziademanio.it/opencms/it/ValorePaese/camminiepercorsi/)

They haven't translated to English yet, Google version in the meantime: [https://translate.google.com/translate?hl=en&sl=it&tl=en&u=h...](https://translate.google.com/translate?hl=en&sl=it&tl=en&u=http%3A%2F%2Fwww.agenziademanio.it%2Fopencms%2Fit%2FValorePaese%2Fcamminiepercorsi%2F)

</comment><comment><USER3> Unfortunately the title of the article (and part of its contents) is inaccurate and deceptive.

Before anything else, check the "whole" .pdf with all the buildings that are part of the initiative.

It is here (around 46 Mb):

[http://www.agenziademanio.it/export/download/demanio/sala_st...](http://www.agenziademanio.it/export/download/demanio/sala_stampa/SCHEDE- BENI-2017.pdf)

For each of them there is a picture and some data (location. size, etc.), at a first (and second) sight there are a bunch of "good" buildings (large, historical, etc., i.e. "castles") with some potentialities, but the vast majority is seemingly just ruins or however very small buildings located in the middle of nowhere and actually worth nothing. They must have been added to make "more than 100" for PR reasons or similar.

In the top right of each page there is a Red or Blue dot, the Blue one means that the building will be given in "Concessione gratuita" (free) the Red one means that the building will be given in "Concessione di valorizzazione" (not actually free, you will have to offer how much you want to pay as rent for the duration of the lease ).

Guess which buildings are Red and which are Blue?

Also, Blue is reserved to associations or cooperatives (with preference to those where the majority of members below 40 years) expressly excluding "simple" citizens (which may make however an offer for the Red ones).

So, NO "castle" is given away for free.

Anyway, right now there is a "public consultation" where people is asked to provide ideas, opinions, etc. until June 26th, we will see how it will develop.</comment>


If hunger doesn't kill you, it doesn't make you stronger - <AUTHOR> http://www.nature.com/news/if-hunger-doesn-t-kill-you-it-doesn-t-make-you-stronger-1.13503

<comment><USER2> Yeah! Because you become determine and will to whatever you can to get something. Get me?</comment>


Ask HN: Tools for tracking bills, domain/cert expirations etc. for many websites - <AUTHOR>

So I'm looking for a tool, presumably a webapp, that could track the dates of next bill, domain and certification expiration, and such, for many websites.
This can be done in a spreadsheet, of course, but is there something shinier for the purpose? Of course you'd need to add the details yourself, but then you'd get a complete view of the upcoming events easily.
This doesn't even have to have anything to do with websites - could be just a general app for the same purpose. I can add the cert expiry dates, the app doesn't have to look them for me. <comment><USER2> How about Google Calendar or similar? When I freelanced I used a combination of Google Calendar for domain and cert expiration/renewal dates and used Quickbooks to remind me when those dates were as well for billing purposes. I had a separate calendar within my calendar just for these dates and would have Google email me with what was due that day and week. You could even tie Quickbooks in to automatically invoice your customers on said date to take the hassle out for you.</comment>


Introducing django-db-tools - A read-only mode for your Django app - <AUTHOR> http://craigkerstiens.com/2013/02/08/django-read-only-mode/ <comment><USER2> This is an elegant starting point for implementing read-only mode in a Django app.

The appearance of buggy behavior can be expected if this is used on a site that does not strictly implement a REST interface (ie. POST to /resource/new/ instead of /resource/), but that's a flaw resulting from the individual implementation, not from your library, and even with an appropriately RESTful interface you'll still need to display messaging to the logged-in user when GET_ONLY_MODE is set to True.

You mention wanting to provide a generalized means of providing messaging in the template, but I've found that library templates are almost always inappropriate for inclusion into an existing application except in the most trivial of cases. An alternative to generalized messaging might be to implement some crazy logic in process_response() to disable all forms.

I also wonder whether environmental variables are appropriate for this type of change, since administering environmental updates across multiple servers requires a deploy strategy outside of the traditional Git schemes that people set up.

That said, I'll be watching the project to see where it leads. Congrats on the launch.

<comment><AUTHOR> The buggy behavior can definitely occur for those that don't appropriately follow a RESTful interface.

With regards to displaying messaging, this is something I'm very much looking to add to both modes. In regards to templating the initial thought was some HTML that the user could include or would be default that would float as an overlay on a page to indicate the mode. Though I'm mostly curious as to what users would most want to see here before implementing something that people may not want.

As for the environment variables, I may be biased but being at Heroku we very much enjoy this approach. It reduces risk of having config included with code which can be hard to debug at times.

</comment></comment><comment><USER3> I like the general idea, if you want some "insurance", you could also set the database user that the application uses to SELECT only permission.

Have you ruled out using a router? (like [https://docs.djangoproject.com/en/dev/topics/db/multi- db/#us...](https://docs.djangoproject.com/en/dev/topics/db/multi-db/#using- routers) )

<comment><AUTHOR> I did consider using the router and actually inspecting form data as well, both felt far more convoluted and could result in tougher to bug situations should issues arise. While I'd love to have something more robust and safe this is currently just v0.1 and I generally am looking forward to more conversation around what users see as acceptable.

</comment></comment><comment><USER4> If I'm not mistaken, making the site 'GET only' will also prevent logins, since form data (login) is submitted using 'POST'

<comment><AUTHOR> It will prevent new logins, but will not logout the currently logged in users.

</comment></comment><comment><USER5> Why not just block POSTs completely and return a 405 status? Even if your app is adequately RESTful, I would expect the front end to start displaying user actions as being successful when that is not the case (among other possible oddities).

</comment><comment><USER6> Looks really good!

Just a thought - when using the GET_ONLY_MODE you should probably be careful with your sessions if you're storing them in your database right?

</comment><comment><USER7> nice idea! A possible extension would be to allow POST to LOGIN_URL as an option, so users could log on (but not edit anything).</comment>


Norway's $860B Fund Drops 52 Companies Linked to Coal - <AUTHOR> http://www.bloomberg.com/news/articles/2016-04-14/norway-s-860-billion-fund-drops-52-companies-linked-to-coal <comment><USER2> The comments here are very negative so I'll share a little background on this Norway fund in case you haven't heard of it. Norway started making money from oil reserves and knew they wouldn't last forever. So they invested all the profits in a fund that bought stocks. Now the value of the fund, if liquidated, would net over $1 million per Norwegian citizen.

read more: [http://www.bbc.com/news/business-28882312](http://www.bbc.com/news/business-28882312)

<comment><USER3> It's interesting to compare with the UK, which had less North Sea oil, but still a significant amount.

When North Sea oil was first starting, Tony Benn, Energy Minister at the time, wanted to start a fund exactly as the Norwegians later did. We didn't, and unlike the Norwegians we didn't control production.

As oil revenues peaked through the 80s and 90s, Thatcher used them to pay for pre-election tax cuts, welfare and generally squandered the inheritance. Britoil was one of the early Thatcher privatisations. With the benefit of 40 years hindsight many feel the wrong choice was made. Unsurprisingly perhaps, especially Scots. Though who we would have trusted to invest such a fund is another matter.

<comment><USER4> Woah, I only moved to the UK in 2001, but it's pretty clear to me that Norway != UK in many fundamental ways

      1) WW1
      2) WW2
      3) Crippling Pension schemes like final salary ( don't know to much about Norways tho )
      4) Crippling strikes in '70s

The U.K. Only finished paying back the USA for WW2 a few years ago. Many died and a lot of infrastructure needed rebuilding. Norway had much less of that trouble.

<comment><USER5> Your grasp of European history and economics - specifically that of the UK and Norway - is absurdly poor, to the point you should not be trying to make any serious conclusion about either.

There is a reason why Jeremy Corbyn is popular right now (despite what the papers tell you, in polling, he is).

<comment><USER6> That is demonstrably nonsense, Jeremy Corbyn has among the lowest ratings ever seen for the leader of a large political party, because he is a far-left political extremist.

<comment><USER5> Read the polls.

Seriously, go read them. Labour is ahead.

<comment><USER7> [http://ukpollingreport.co.uk](http://ukpollingreport.co.uk)

[https://twitter.com/jamesrbuk/status/722110121212526592](https://twitter.com/jamesrbuk/status/722110121212526592)

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Why not? This is both good long term for the environment and good long term for their investments' potential growth. As Coal gets less favored status more coal companies will feel pressure on their stocks. Sort term they may lose out on some growth markets like India and China, but even those markets will surely shift toward renewables in years to come leaving coal and companies tied to it depressed.

<comment><USER9> What exactly do you mean by "feel pressures" on their stock? Once a share has been sold the company has already received all the money it will ever receive from that share. Whether it goes up or down from that point is irrelevant to the company. For whoever bought that share it might be a problem if he wishes to sell it again. Most of the investors buy IPO shares for dividends, so as long as the company makes money and pays dividends they also don't care about the share price.

<comment><USER10> > as long as the company makes money and pays dividends they also don't care > about the share price.

Oh, they care very much. For one thing, a tanking share price means the dividend will surely be cut. A rising share price means the dividend will likely increase.

<comment><USER11> Dividends are paid from company earnings (profits), not stock, and as such, stock price doesn't affect the ability of the firm to pay dividends. They could both have the same underlying cause though - which is, a deteriorating business condition that reduces earnings. Otherwise, e.g. if Coke's stock price falls by 50% in a recession, doesn't mean it will cut its dividend.

<comment><USER10> Stock prices come from the same forces that shape dividends. There's a reason that dividends from diverse companies all tend to cluster around the same percentage of the share price.

</comment></comment></comment></comment></comment><comment><USER12> It's likely not out of the goodness of their heart but rather coal's terrible performance. There is a bankruptcy filing every other week. This week alone the largest miner, Peabody, filed for bankruptcy.

<comment><USER13> It's because the parlament told them to. Divesting in coal is a political move stemming from environmental concerns. At least officially, I think some parties supported the move because Norway doesn't export that much coal, and this could potentially increase gass and oil revenue.

<comment><USER14> The European oil/gas companies all support a carbon tax for the same reason. Coal is such an appallingly bad fuel that a carbon tax would kill it (even faster) and gas would replace it in large part.

</comment></comment></comment><comment><USER15> It's a good move, that nevertheless retains a healthy dose of irony given the fund was developed almost entirely on the back of petroleum.

<comment><USER16> I was going to say the exact same thing!

"Our environmental destruction is fine. But yours? That is just too much!"

</comment></comment><comment><USER17> This is more a press release than reportable news. The companies were sold last year.

<comment><USER18> Well, it's good that they sold last year, because Peabody Coal went bust last week.

</comment></comment><comment><USER19> Alternative Title: "Fund built from selling petroleum gets holier than thou with selling coal"

<comment><USER20> Arguably, all of modern capitalism was built on the back of some very dirty and polluting technology. Would you say, then, that the capital of all the developed world is tainted?

<comment><USER21> Except, in Norway, their pension and economy are STILL getting built on O&G.

I think your claims are too extreme.

edit: adding quote from European Commission data

      "Norway is in the global top 5 exporters of crude oil.  The oil
      and gas sector constitutes around 22% of Norwegian GDP and 67%
      of Norwegian exports." [1]

[1] [http://ec.europa.eu/trade/policy/countries-and- regions/count...](http://ec.europa.eu/trade/policy/countries-and- regions/countries/norway/)

<comment><USER22> "their pension and economy are STILL getting built on O&G"

I don't quite get the peculiar use of the word "still" in your sentence, seeing as the topic seems to be ditching coal and not ditching oil or gas.

<comment><USER21> Yes, the NOR pension is ditching* coal.

That said, you're not fairly representing the context of my comment. The parent comment made this exaggerated critique, saying that "all of modern capitalism" can be considered tainted based on PRIOR behavior (assuming the grandparent's comment were valid.)

This is not only a strawman, but absurd.

I'm pointing out that it isn't limited to prior behavior for what we're talking about. Here, we have a petro-state with 2/3 of its exports STILL in O&G (aka "dirty technology") taking a stance on coal because coal's not Environment Friendly™. This contrasts with countries that were built on "dirty tech/slavery/whatever" and are no longer utilizing similar means.

To clarify, nobody's saying NOR can't change course or exhibit environmental leadership. I'd argue NOR's investment implications and the $2.3B change in allocation aren't significant.

</comment></comment></comment></comment></comment><comment><USER23> The list of dropped companies is here, if anyone cares: [http://www.nbim.no/en/transparency/news-list/2016/first- coal...](http://www.nbim.no/en/transparency/news-list/2016/first-coal- exclusions-from-the-government-pension-fund-global/)

</comment><comment><USER24> "Investors other than Norway invest $860B in coal; money remains fungible and markets remain pretty efficient"

<comment><USER25> Midbrow dismissal

<comment><USER24> I mean, yes, but I'll change my mind if I notice all the higher brows disagreeing.

</comment></comment></comment><comment><USER26> GDP assigns no value to work that's not done for a paycheck, and extracts no penalty for destruction of natural resources [http://qz.com/663110/happiness- is-the-new-gdp/](http://qz.com/663110/happiness-is-the-new-gdp/)

</comment><comment><USER27> Good move by Norway!! Can you read this? I cant tell if I am shadow banned? Please give me a vote in any direction

<comment><USER28> >I cant tell if I am shadow banned?

Yes, you are. Seems to have happened after this comment:

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

</comment></comment><comment><USER29> coal is in the process of consolidation/deleveraging/bankruptcy and they would be making this decision anyways. congrats on extracting social justice points from your business decision.

<comment><USER30> Along with a heaping dose of hypocrisy. If the co2 from coal is bad, then the same is true for the coal from oil and natural gas.

<comment><USER31> Hey, I know this is silly because the fund isn't event taking these actions explicitly for environmental reasons, BUT if they were, your comment would be a great example of an Internet debate fallacy that I try and fight.

If an entity is doing something 'bad', reducing the scope or amount of that behavior is neither hypocritical nor pointless. It doesn't matter if it's a big company that pollutes, or an individual trying to reduce a bad habit. Movement in the right direction is an essential part of things getting better.

<comment><USER30> If these are good actions, then do more. What's the point of half measures?

<comment><USER32> Relevant read [https://blog.jaibot.com/the-copenhagen-interpretation-of- eth...](https://blog.jaibot.com/the-copenhagen-interpretation-of-ethics/)

</comment></comment></comment></comment></comment><comment><USER33> The bigger question about Norway's $860BB fund is the price of oil. Right now oil is trading at $39.75[1] a barrel. Now that the Doha deal fell through earlier today, it is highly likely that oil will further fall over the coming weeks. Norway, and other sovereign funds, are now liquidating assets to make up for the shortfall in revenue.[2] We're talking about $5.7T in assets across these oil derived sovereign funds. That's a lot of selling folks.

[1] [http://www.investing.com/commodities/crude-oil-streaming- cha...](http://www.investing.com/commodities/crude-oil-streaming-chart) [2] [http://www.institutionalinvestor.com/article/3533485/investo...](http://www.institutionalinvestor.com/article/3533485/investors- sovereign-wealth-funds/oil-has-sovereign-wealth-funds-hitting-sell- button.html)

<comment><USER34> The withdrawal from coal is a year old decision[1] made my our parliament, which is as far as I see not based on plugging the holes in any way. We have a policy that states you can use up to, but not more than the expected surplus of the fund for the coming year. [2] So, I agree we're spending more than we used to do, but this is exactly the reason the fund was made in the first place. As long as politicians are curbed, and we stay within this rule, I'm not scared no matter how many billions are used from the fund.

EDIT: and the core of my comment should have been, that I'm not sure this could be seen in the same context as other national funds, as we're "too big to fail"^tm

[1] :[http://e24.no/boers-og-finans/oljefondet-ut-av- kull/23459941](http://e24.no/boers-og-finans/oljefondet-ut-av-kull/23459941)

[2] :[https://snl.no/Handlingsregelen](https://snl.no/Handlingsregelen)

<comment><USER35> More scared about the number of people in the oil business competing for jobs as the number of redundancies increases. As a n expat Brit in Norway I'm already at a disadvantage when applying for work.

</comment></comment></comment><comment><USER36> No problems with oil though!

[https://en.wikipedia.org/wiki/File:Norwar_Exports_Tree_Map_(...](https://en.wikipedia.org/wiki/File:Norwar_Exports_Tree_Map_\(2009\).pdf)

We will see this fund drain to zero over the next few years easily, Norway is a completely broken economy with high unemployment masked by "scholarships".

<comment><USER37> >No problems with oil though!

Electric cars are still not widespread yet and oil will always be used in planes, trucks or ships for long distance transport.

<comment><USER38> For that matter I'm pretty sure the growth of the petroleum driven automobile industry in Asia and Africa is going to vastly outstrip its gradual (and later perhaps even mandatory) replacement with electric vehicles in the West...</comment></comment></comment>


Chatterous (YC W08) launches im/email/sms group API and widgets. - <AUTHOR> http://chatterous.wordpress.com/2009/04/02/lots-of-new-stuff-to-report/

<comment><USER2> If you want to have the HN chatroom always at your side when browsing HN... go grab the GreaseMonkey HN toolkit, then copy paste this code at the end of the file, but inside the last IF clause. No warranties expressed or implied. :-)

      var center = document.getElementsByTagName('center')[0];
      var tbl = document.getElementsByTagName('table')[0];
      tbl.setAttribute('width','100%');
      var chat = "";
      center.innerHTML = "

" + center.innerHTML
      + "	" + chat + "

";

(edited for formatting)

</comment><comment><USER3> Chatterous has become essential for us really. Feels almost like a "utility" at this point. Keep up the great work, guys.

We've been playing with the API-- at the moment we're using it to send SVN commit notices and production code releases to our team. Seems cool so far.

<comment><USER4> I don't know why we hadn't done this yet - but I am now sending svn commit notices, website errors, and all of our other msgs to a Chatterous group.

It took 5 minutes, and is super handy.

</comment></comment><comment><USER5> Chatterous looks cool enough. But I'm sorry, as soon as I clicked through and saw the default (Kubrick) Wordpress theme, I killed a kitten.

<comment><USER6> Think of all the features they pumped out instead of making a fancy looking blog.

</comment></comment><comment><USER7> It might just be me, but it disappoints me a bit to see startups put blogs as a sub-domain of WordPress.com. (WordPress itself is great, but it's much better to use a sub-domain or sub-folder of the primary domain -- for controlling the SEO).

So, I'd advise: blog.chatterous.com or chatterous.com/blog

It's not that expensive to do (even if you want to host at WordPress.com). Should be standard practice for all YC startups.

</comment><comment><USER8> The value of public embeddable chats, at least to me, is the ability to participate without having to sign in for anything. Meebome works extremely well for this.

A possible application to look into is integration with BlackBerry Messenger. It is very powerful and would seem more appropriate for a chat session than over SMS.

Good luck.

<comment><USER9> Yikes, Meebo Rooms is a UX disaster though. I tried using it on our 'maintenance page' once when we were upgrading our servers, and it was a visual design abortion.

Definitely psyched about using Chatterous in the future.

Also, Campfire, watch out.

</comment></comment><comment><USER10> >> "have switched our javascript/web clients from polling to comet long- polling"

Congrats :) Very cool updates!

</comment><comment><USER11> Congratulations Kenshi and Wilkins!

</comment><comment><USER12> All I want is IRC compatibility.

</comment><comment><USER13> w00t!!! Chatterous FTW</comment>


adds with javascript hide malware payload in image - <AUTHOR> http://www.bleepingcomputer.com/news/security/new-stegano-exploit-kit-hides-malvertising-code <comment><AUTHOR> Enabling ads is dangerous - add can deliver its own javascript, here the script extracts its parts from the image by means of steganography.</comment>


Photos Show the Staggering Food Bank Lines Across America - <AUTHOR> https://www.motherjones.com/food/2020/04/these-photos-show-the-staggering-food-bank-lines-across-america/ <comment><USER2> Can someone explain this to us on the other side of the Atlantic? I mean, seen from Norway it looks totally insane.

How can such a large proportion of people be so financially insecure that a couple of weeks unemployment means that they are going hungry in the wealthiest country in the world?

<comment><USER3> Rents are high, wages are low.

Can't do much about wages because they are subject to global pressure, but we sure could make housing cheaper.

<comment><USER2> Figures I found for 2017 say US median household rent is about 1 kUSD and median income about 3.6 kUSD. That doesn't sound too bad to me (seen from Norway where 1 kUSD gets you a one bedroom flat or less) so I presume that there must be important details not revealed in the averages. I got the figures from

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

and

[https://www.deptofnumbers.com/rent/us/](https://www.deptofnumbers.com/rent/us/)

Is it that the median figures hide a lot of people earning less and paying more rent? That is, inequality is the problem rather than the averages.

> Can't do much about wages because they are subject to global pressure,

Surely a lot of the low paid workers are in service industries; how are they subject to global pressure? It's not as if a restaurant can employ cheap Vietnamese labour.

<comment><USER4> Lot's of what we (most other first world countries) take for granted is not present in the US.

Health care insurance for example can eat a good chunk of that 3.6kUSD: the average cost of individual health insurance premiums is $440 for an individual and &1,168 for a family, in 2018 according to eHealth [1]

1: [https://www.ehealthinsurance.com/resources/individual-and- fa...](https://www.ehealthinsurance.com/resources/individual-and-family/how- much-does-individual-health-insurance-cost)

<comment><USER2> > and &1,168 for a family

Ouch!

That makes health insurance behave like a very regressive tax.

In contrast in Germany where they have compulsory insurance it is only 7.6% to 15% of your salary, so something between USD 273 and USD 540 for a family. See [https://www.sympat.me/germany-healthcare- insurance/](https://www.sympat.me/germany-healthcare-insurance/).

</comment></comment></comment></comment></comment><comment><USER5> It's bizarre to see people in nice, high end cars, to queue up for free food.

<comment><USER6> Why? It's quite likely they don't own the cars outright. People were encouraged to take our car loans and have repayments to make, and the US has constructed its cities in such a way that cars are essential.

<comment><USER7> Because it is stupid. If you can't afford it, do not lease or rent it. That way you have less money.

And you can live without a car, it is about structuring your life better.

<comment><AUTHOR> > If you can't afford it, do not lease or rent it.

I agree with you, but the problem is that the bankers aren't telling this to people and have become over-reliant on subprime consumer debt like this. Uber launched a lease-to-buy program for their drivers so they could nicer cars on the road and then didn't uphold their promise to attract more riders to Uber Black. Consumers are getting preyed upon so hard in the US and we act like it's just business and poor people are dumb for a reason.

> And you can live without a car, it is about structuring your life better.

This is such an invalid statement for most Americans, and it's deeply condescending to boot. There's simply no viable alternative to car ownership for most Americans, period. If you have (or had) a job that required any sort of commute and you don't live in a handful of cities with first class public transit (which are pretty much all in the northeast), you could spend up to 2-3 hours commuting each way every day using public transit. That's just a non-starter for most. Even tech cities like Austin and SF have poor transit options compared to Europe.

</comment></comment></comment></comment><comment><USER8> Can't get over the fact that even food banks are apparently drive-through operations in the US, in what appears to be a suburban wasteland...

And considering that the increase in demand here is exclusively people who had a job until the bottom fell out on the economy, shouldn't the whole rationale for requiring people to waste time and go through this exercise of very visible shaming be re-evaluated?

As far as I understand it, it was commonly believed that poor people aren't capable of handling money and therefore should only get food, not money. That idea was never a good fit with changing unemployment numbers, and these days it's plainly visible that all these people didn't suddenly become drug-addicts incapable of holding down a job. So why continue humiliating them?

<comment><USER9> >As far as I understand it, it was commonly believed that poor people aren't capable of handling money and therefore should only get food, not money.

Do you know that the most educated people in the country are working hard to make poor people buy stuff they don't need? Who is actually running the advertising business and using the best technology ever invented to increase their profit at all cost? Who's to blame? Maybe be should just stop pushing people under stress to do stupid things and provide them with the best resources to fulfill their need. Money is an excellent medium for that when the game isn't just about blind profits.

<comment><USER8> I was mocking that idea, not supporting it. The problem always was that it's really hard to give evidence for what's basically different ideas about human nature. And that the truth is almost certainly some mixture of circumstances and individual shortcomings. But when unemployment suddenly jumps to maybe 20 or 30%, that uncertainty vanishes, and gone with it is any legitimization for purely punitive policies.

</comment></comment></comment><comment><USER10> Meanwhile:

[https://www.nytimes.com/2020/04/11/business/coronavirus- dest...](https://www.nytimes.com/2020/04/11/business/coronavirus-destroying- food.html)

> In Wisconsin and Ohio, farmers are dumping thousands of gallons of fresh > milk into lagoons and manure pits. An Idaho farmer has dug huge ditches to > bury 1 million pounds of onions. And in South Florida, a region that > supplies much of the Eastern half of the United States with produce, > tractors are crisscrossing bean and cabbage fields, plowing perfectly ripe > vegetables back into the soil.

which brings to mind John Steinbeck's The Grapes of Wrath:

> The people come with nets to fish for potatoes in the river, and the guards > hold them back; they come in rattling cars to get the dumped oranges, but > the kerosene is sprayed. And they stand still and watch the potatoes float > by, listen to the screaming pigs being killed in a ditch and covered with > quick-lime, watch the mountains of oranges slop down to a putrefying ooze; > and in the eyes of the people there is the failure; and in the eyes of the > hungry there is a growing wrath. In the souls of the people the grapes of > wrath are filling and growing heavy, growing heavy for the vintage.

</comment><comment><USER11> It's striking to see people queuing in cars.

</comment><comment><USER12> Why is this not being reported by the NY Times or BBC's International section? And if they are reporting it, why isn't it on their front page?

</comment><comment><USER13> 'Staggering' is an exaggeration? In cities of a million, a hundred people is maybe expected? Those pictures might qualify as a 'heatmap', meaning they reflect total population more than anything.

And imagine those lines if they were just people. Wouldn't look like much.

Further, what were the lines like two months ago? Has it changed much? 1.5X? 2X? Is that the expected fraction of people with fragile economic situations?

</comment><comment><USER14> > Photos Show the Staggering Food Bank Lines Across America

Or cars make lines look big.

"Minneapolis, Minnesota: Cars line up at a drive-thru food pantry. "

Is only 200 cars by my counting.

I'm sure there is an untold problem, but I'm not big on trickery.

<comment><USER15> Sorry, _only_ 200 people in line? That's a staggering number and looks more like something from 1981, Los Angeles in the movie "The Pursuit of Happyness".

Not something that should happen in our modern world.

<comment><USER13> ...out of half a million. During a time of disruption of services.

Note: _all those people_ could afford gas. So its not just about poverty. Its about timing, shortages etc. Maybe they were all hoping for toilet paper...

</comment></comment></comment><comment><USER16> The calls to open the economy will get louder.

We watch the world, seeing what others are doing and what works. Interesting times.

<comment><USER15> What are you doing with that information?</comment></comment>


Why Tesla Is Going to Win in Autonomy - <AUTHOR> https://medium.com/datadriveninvestor/self-driving-cars-f921d75f46c7 <comment><USER2> * The given description of Tesla's "Shadow Mode" has been bouncing around for a while, but it's not accurate (see [https://twitter.com/greentheonly/status/1096325954375430144](https://twitter.com/greentheonly/status/1096325954375430144) for a description of what Tesla actually does).

* The description of LIDAR having "much more detail than other sensors" is confusing. LIDAR has more detail than radar, but LIDAR is much _less_ detailed than cameras.

* The description of the 2016 accident is not correct. MobilEye provided the EyeQ3 chip on the car, not just the software. "Since then, Tesla added radars for these situations" is flat out wrong; Tesla has always had radar as part of AP, and radar didn't (and won't) prevent that sort of accident ([https://twitter.com/artem_zin/status/748623772056428544](https://twitter.com/artem_zin/status/748623772056428544))

* 'the newest Tesla Autopilot software 9.0 has the largest vision neural network ever trained' wut?

* 'The DARPA Grand Challenge began in 2004'...'the winner, Waymo' wut?

* 'systems based on if-then statements' ?

* 'Comma.ai continues to develop its software, and drivers can buy and install it in their cars' the software is free, it's on Github.

Furthermore, the thesis in the HN title is not supported at all in the post as far as I can tell.

</comment><comment><USER3> Sobering to read that Waymo simply couldn't sell their software stack by itself even though that was their plan A, a la Android. The only reason that allows me to make sense of this is that old-line manufacturers just couldn't bring themselves to believe that software (albeit nets not code) could be quite valuable. Which may mean they're stuck in a very old-fashioned head- space.

<comment><USER4> Or perhaps they realize exactly how valuable Waymo is, and how dangerous it would be to ally with them. The contract probably stipulated that auto manufacturers cease efforts to develop a competitor to Waymo, meaning they'd be tied to Alphabet forever. Under Android, most OEMs have razor-thin profit margins and little ability to customize the stack.

If auto manufacturers think there's enough lead time for them to develop a viable competitor (Cruise), why should they knuckle under to Alphabet? Cue lobbyists fighting to keep each other from DMV certification..

<comment><USER3> I haven't been especially clear. I said "could be valuable" \- I might also have said "could be hard to replicate." Nets are hard to create because they need masses of data to train as the article says. Paradoxically, at the same time they're just about impossible to effectively protect as IP; functional duplication of a net is (nearly) always possible if you're willing to put up the money. So why not pay less to rent the software now and wait 'till recreating the nets is far cheaper or already largely available as open source? I suspect the old-line car companies have tossed away a ton of money because they had zero understanding of neural net commerce or economics.

</comment></comment></comment><comment><USER5> i seem to remember at least one other company doing software _and_ hardware...

lol the author 'forgot' about Cruise/GM

but what's that compared to the copious knowledge gained by haunting the tesla subreddit</comment>