Reverse engineering a Nintendo Switch cartridge - <AUTHOR> https://www.texplained-store.com/en/Blog/8_how-it-is-made-zelda-botw-cartridge.html <comment><USER2> Another interesting fact about switch game cards is that they taste horribly. You can see several videos online of people tasting them. Theory was that it was coated in something to avoid kids from swallowing the small cards. But I'm not sure this was confirmed by Nintendo.

<comment><USER3> It was confirmed by Nintendo:

"To avoid the possibility of accidental ingestion, keep the game card away from young children. A bittering agent (Denatonium Benzoate) has also been applied to the game card. This bittering agent is non-toxic."

[https://kotaku.com/nintendo-switch-cartridges-taste-so- bad-1...](https://kotaku.com/nintendo-switch-cartridges-taste-so- bad-1792869498)

<comment><USER4> It's good that news travels fast today, or else people who didn't wash their hands after handling carts could be in for a surprise when they ate. That's the same chemical used in air dusters to stop them being inhaled deliberately.

</comment></comment></comment><comment><USER5> This is extremely cool. I always find these kinds of breakdowns interesting, because they always find something absolutely unique to the device.

Does anyone know, for this kind of "unique card device" use case, do companies usually have an in-house team in charge of developing it, or do they hire a third party, or does a third party approach them with the offer of a device like this?

If a third party, is it a small shop, or some established company? How is the company known and how does it build that relationship with Nintendo?

<comment><USER4> Nintendo has long used Macronix as its storage device supplier:

[http://wccftech.com/nintendo-nx-macronix-memory- slots/](http://wccftech.com/nintendo-nx-macronix-memory-slots/)

<comment><USER6> Fun fact: Macronix used to make chips to defeat the NES lockout system for unlicensed cartridges [1]. I don't know if they made the ROMs or cartridges as well, but it seems plausible. I think their partnership with Nintendo started during the N64 era, with Toshiba and Sharp making most of their ROMs before that.

[1] [https://www.google.com/patents/US5004232](https://www.google.com/patents/US5004232)

<comment><USER7> Similarly, Argonaut Games, the company that worked with Nintendo to produce StarFox and the SNES SuperFX chip. Their first interaction with Nintendo was when "Argonaut submitted a proof-of-concept method of defeating the Game Boy's copyright protection mechanism."

Another fun fact: Argonaut later evolved the very same SuperFX chip into the [https://en.wikipedia.org/wiki/ARC_(processor)](https://en.wikipedia.org/wiki/ARC_\(processor\)), which is used in, among [many] other things, Intel's infamous Management Engine. You very likely have an Argonaut core in your computer.

</comment></comment></comment></comment><comment><USER8> Surely the first step should have been to attach a logic analyzer to the cartridge in circuit? For all we know, it might be using a well-known protocol like SDIO...

<comment><USER4> It does look extremely similar to an SD card in construction, with a large flash die and a smaller controller: [https://www.bunniestudios.com/blog/?page_id=1022](https://www.bunniestudios.com/blog/?page_id=1022)

The part number on the IC, after some contrast enhancements, appears to be MX28K128GL0 --- not a publicly documented Macronix part number, but may be related to the 28F128, a common 16MB (128Mb) NOR flash.

<comment><USER9> Considering the download size of the games, a 16GB (128Gbit) chip is more likely

</comment></comment></comment><comment><USER10> You're pretty determined when you decide to dissolve the packaging of an IC :)

<comment><USER11> Decapping an IC is simpler than it looks. Heck, anyone with access to a university cleanroom can (with practice) easily reverse a commercial IC. Understanding how it works is a different matter entirely though -- that's where microscopy and circuits knowledge come in. Analog circuits are significantly more complex as you need to characterize (measure resistance, capacitance, etc.) individual components to be able to accurately model their behavior.

<comment><USER12> Curious what your thoughts are on this:

[https://reverseengineering.stackexchange.com/questions/5878/...](https://reverseengineering.stackexchange.com/questions/5878/reverse- engineering-modern-intel-cpus)

<comment><USER11> A modern Intel CPU is a different beast entirely. Even relatively simple ICs become exceedingly difficult to reverse at lower process nodes, so I agree with the answer. My comment was more geared towards simpler ICs at a fairly accessible process node (65 nm and older). Also, my use of the word "reverse" in no way includes the process of figuring out what each part of the circuit does in detail.

Nonetheless, at least in my field of research, the assumption is that there exist nation states with "unlimited" resources that can in fact reverse complex ICs. In reality, I doubt even the US DoD has that level of resources available, so I like to think of the assumption as an analogue to the oracle model in cryptography.

<comment><USER4> _In reality, I doubt even the US DoD has that level of resources available, so I like to think of the assumption as an analogue to the oracle model in cryptography._

Actually I would look East, to China and Russia, for the latest technologies in IC reverse-engineering. I don't think nation-state levels of resources are necessary even to RE something like an Intel CPU. To actually understand how it all works is a different matter, but if you're talking about just deriving a transistor-level or gate-level schematic, or turning that into HDL, from my understanding it's actually quite affordable now. You can already recover code from most microcontrollers with <$10K USD (and I personally know others who have used those services before); I'd estimate getting a schematic to cost maybe 10x that.

<comment><USER13> Modern intel CPUs are very different beasts from your average microcontroller.

</comment></comment></comment></comment></comment></comment><comment><USER14> It's interesting that almost half of the plastic enclosure is empty. Could this be to allow for higher-capacity cartridges without having to use higher- density storage?

<comment><USER15> I think that they might have picked the size due to ergonomics. It's hard and incovienent to use very small obejcts and Nintendo seems to target players of all ages.

<comment><USER16> I suspect this is true. If they made it microSD-sized, it'd be very difficult to change games on the go and would easily get lost in the bottom of a backpack.

You see this on the PS Vita as well: the memory cards, which are meant to be changed rarely if ever, are roughly the size of a microSD card while the game cartridges are probably double the width and height even though the storage capacity of the carts tend to be much less (2-4GB) than the memory cards (8-64 GB).

</comment></comment></comment><comment><USER17> Hi everyone and thanks for talking about our article.

For those who wants to go further: Zelda's Chip ID is out! [https://www.texplained-store.com/en/10-chip-id](https://www.texplained- store.com/en/10-chip-id)

</comment><comment><USER18> Interestingly enough, different games seem to have different internals. Here's a more traditional PCB design found inside a 1-2-Switch cart: [http://imgur.com/a/FndZC](http://imgur.com/a/FndZC)

</comment><comment><USER19> Funny: I felt this was so interesting that I could not imagine the wizardry was taking place anywhere close to my area (FR).

It appears they are located on my daily commute.

Could not have known without HN, cool!

(EDIT: typo)</comment>


Ansible vs. Chef - <AUTHOR> http://tjheeta.github.io/2015/04/15/ansible-vs-chef/ <comment><USER2> i have to use chef at work. never ever again, this is just pain in the a __, constantly. Never got so annoyed from any software ever.

my favorites:

for large deployments: saltstack small deployments: ansible or saltstack</comment>


Facebook's Experimental Desktop Notifications App For Mac - <AUTHOR> http://www.techcrunch.com/2009/09/09/facebooks-experimental-notifications-app-for-mac-is-very-very-slick/ <comment><AUTHOR> this is very well done for a v .5.

I post articles like this for another reason:

Someone please build this for "everything". I currently have a fb, twitter, and gmail notifier app. I'd love instant RSS updates, along with stocks. Push it to me. Also make it an open api that any company can push to. There's adobe wave, but that's missing the mark somehow. I'd pay for this, without a doubt.

If there's some lone hacker out there with a half filled out YC W10 app and/or some code going on in textmate, please please please make this. I'd love to give you my money.

<comment><USER2> Growl could get there.

<comment><USER3> Isn't Growl there already?

</comment></comment></comment><comment><USER4> I've hardly been using Facebook at all lately, but I bet it that combining an application like this with deleting 90% of my "friends" would make it very useful. I think maybe the killer feature that Facebook is missing is marking someone as your actual friend.

<comment><AUTHOR> Do what I did:

[http://www.businessinsider.com/how-to-filter-out-facebook- fr...](http://www.businessinsider.com/how-to-filter-out-facebook-friends- without-them-knowing-2009-6)

I have 1500 "friends". I made a list of < 70 people I actually know. That's my main news feed. Love it.

<comment><USER4> This just made my day!</comment></comment></comment>


GitHub testing new Issues-like Discussions feature? - <AUTHOR> https://github.com/jekyll/jekyll-sitemap/discussions

<comment><USER2> 404

<comment><AUTHOR> They took it down again. Wonder what it was they accidentally exposed.

People in the thread could also edit each other's comments.</comment></comment>


Everyone will be able to run their iOS apps on their devices, for Free - <AUTHOR> http://morganwilde.svbtle.com/everyone-will-be-able-to-get-their-apps-on-their-iphones

<comment><USER2> sweeet!

small typo: `s/devices/idevices`</comment>


Mispredicted branches can multiply your running times - <AUTHOR> https://lemire.me/blog/2019/10/15/mispredicted-branches-can-multiply-your-running-times/ <comment><USER2> This is the main reason why I've codified a bunch of bit tricks so I don't forget them [1]. They're often not worth using, but can sometimes work as a last-mile optimization after you've done all your algorithmic changes, cache locality, sizing, alignment, etc.

[1] [https://github.com/kstenerud/bit- tricks](https://github.com/kstenerud/bit-tricks)

<comment><USER3> > [https://github.com/kstenerud/bit- > tricks/blob/master/bytes_re...](https://github.com/kstenerud/bit- > tricks/blob/master/bytes_required_for_bits.h)

looks like over-engineering of (bits + 7) >> 3

<comment><USER4> Your solution can overflow.

<comment><USER3> this won't: (bits + 7LL) >> 3

</comment></comment></comment></comment><comment><USER5> I am not a computer engineer and I always wondered:

What if we had a modern, pipelined CPU architecture with no branch predictor, which instead unconditionally executed the X instructions immediately following every branch before (possibly) proceeding with the branch's target instruction?

Would compilers and programmers be able to find most of the efficiencies that we currently rely on the branch predictor to find? What would be the common cases where it would be hard to do that?

How much circuitry would we save by leaving out the predictor? Enough to allow a measurable speedup in the CPU clock speed?

<comment><USER6> You just reinvented delay slots [1].

Two issues:

\- It is not easy for the compiler to always fill up a single delay slot. Filling dozen of them (as required for a deeply pipelined modern processor) would be significantly harder.

\- The number of delay slots would depend on the depth of the cpu pipeline. If you do not want to expose microarchitectural details in your ISA, you need either JIT or install time specialization. edit: or stick with a potentially suboptimal number.

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

<comment><USER7> Oh this takes me back to a horrible time in my life when I was tracking down a terrible intermittent crash on a LEON (SPARC) processor. I was down at the assembly level, stepping over instructions. It was a bit mind bending to always have an instruction execute AFTER the branch (you wouldn't know if the branch was taken or not until AFTER the delay slot instruction). Often the delay instruction was a NOP, showing the difficulty in filling the delay slots as you mentioned. If you were really lucky, your branch would also result in a register window overflow. By the time handling that was done, you lost your mental context of what was going on. _shudder_

<comment><USER6> Right, SPARC has both register windows and branch delay slots, truly a great collection of architectural dead ends :).

</comment></comment></comment></comment><comment><USER8> > If you are accessing the content of an array, many languages will add "bound > checking": before accessing the array value, there will be a hidden check to > see whether the index is valid. If the index is not valid, then an error is > generated, otherwise the code proceeds normally. Bound checks are > predictable since all accesses should (normally) be valid. Consequently, > most processors should be able to predict the outcome nearly perfectly.

Warning! This is just a stone's throw from the kind of thing that got us Spectre, so keep in mind this sort of optimization can occasionally come back to bite you…

<comment><USER9> At the software level, you don't get a choice about this thou, the CPU is going to speculate about a bounds check regardless, the optimization is it a different abstraction layer.

Pretty much any thing on the market with the compute power of a cellphone, is going to have a feature like this too

</comment></comment><comment> Const-me > However, there are tricks that compilers cannot use safely.

Why not? VC++ emits cmov quite often, for operator ? and similar code.

</comment><comment><USER10> related stackoverflow example:

[https://stackoverflow.com/questions/11227809/why-is- processi...](https://stackoverflow.com/questions/11227809/why-is-processing-a- sorted-array-faster-than-processing-an-unsorted-array)

</comment><comment><USER11> > most loops are actually implemented as branches.

No kidding!

But the article does call attention to a very important technique. It merits serious thought over all the ways it can be applied, that may not look much like this one, on the surface.

<comment><USER12> > no kidding

Well, that also means that some loops are fully unrolled :-)

<comment><USER5> And some loops use only unconditional jumps.

<comment><USER12> Yes, those of the infinite variety

<comment><USER13> Haven't seen any, and I never expect to. (will it halt? == yes)

<comment><USER12> sure, pulling the plug is perfectly valid mechanism for terminating a loop, albeit an external one :-)

</comment></comment></comment></comment></comment></comment><comment><USER14> And just like that, a micro-optimisation has introduced a bug.

If the last number generated is even, it will still appear in the result set in the new code, and not in the old code.

<comment><USER15> The code assumes that, once the loop finishes, out[0] through out[index-1] contains the desired output. out[index] is _not_ a part of that output.

<comment><USER14> Then you've got a bug which crashes if all your results were even and index is left zero.

<comment><USER2> The original code can end with index = 0 as well. The only difference is that in the optimized code, it will write to index 0, whereas in the original it will not.

<comment><USER14> In the original code, an index = 0 would not be a problem.

Here, trying to access out[index-1] would error.

Yes, you could then guard against that of course, but then that's even more code to maintain.

If this code is a critical hot-path then sure, micro-optimizations can make sense but doing so without over-commenting and a rigorous test suite to catch introduced bugs is a recipe for disaster.

<comment><USER2> I think you may have misread the code:

        while (howmany != 0) {
            val = random();
            if( val is odd) {
              out[index] =  val;
              index += 1;
            }
            howmany--;
        }

vs

        while (howmany != 0) {
            val = random();
            out[index] = val;
            index += (val bitand 1);
            howmany--;
        }

Both of these store a list of odd numbers in out[], with "index" containing the resulting count of how many numbers are in out[]. Both will have an "index" (count) value of 0 if all inputs were even, and neither attempts to access out[index-1].

<comment><USER14> You were right I misinterpreted "out[0] to out[index-1]" but your next statement:

> count of how many numbers are in out[]

is not true, in the latter case it's a count of how many numbers you want to be in out[].

Consider what happens if howmany is 1 and it generates a single even number. In the original you have an empty array and index 0, in the newer one you have an array e.g. [2] and an index 0.

Yes, you can solve this by 'manually' only returning the first "index" elements but it's just asking for trouble and a source of bugs as seen in your attempt to describe it have a difference between the reality and your description.

You might not consider that to matter, but the point I'm trying to make isn't just nitpicking, it's that there are certain expected behaviours from code, and an array which is "all odd numbers, except maybe all odd but one last even number" is bound to lead to broken expectations.

<comment><USER2> > > count of how many numbers are in out[]

> is not true, in the latter case it's a count of how many numbers you want to > be in out[].

I'm failing to see how "index" is the count of how many numbers you want to be in out[] rather than the count of how many numbers actually ARE in out[], or why this would be different between code examples.

> Consider what happens if howmany is 1 and it generates a single even number. > In the original you have an empty array and index 0, in the newer one you > have an array e.g. [2] and an index 0.

Yes, that's the point, as was explicitly stated in the article.

> Yes, you can solve this by 'manually' only returning the first "index" > elements but it's just asking for trouble and a source of bugs as seen in > your attempt to describe it have a difference between the reality and your > description.

What is there to solve? The end result in both cases is that variable "index" is 0, because 0 of the values in out[] are valid.

> You might not consider that to matter, but the point I'm trying to make > isn't just nitpicking, it's that there are certain expected behaviours from > code, and an array which is "all odd numbers, except maybe all odd but one > last even number" is bound to lead to broken expectations.

Yes, and the expectation is that "index" tells you where the first garbage element is in the array (in both examples). You're either going to have an array with all garbage (index = 0), all garbage except the first element (index = 1), all garbage except the first and second elements (index = 2), and so on. What actual values are in a garbage index (even or odd or 0 or 1 or 2 or Martin Luther's birth year), are irrelevant because you're not going to read from those indices.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> This is one of those things that is completely lost on someone who has never written in a low level language. I automatically assume JavaScript developers to be completely oblivious to this entire class of software development knowledge.

It is important to understand your platform all the way down to the CPU, including things like branch prediction and caches if you want to have performant software.

Software has been getting slower more rapidly than hardware has been getting faster for nearly a decade, and the free performance gains that software people have taken advantage of when better hardware is made available are just about exhausted.

It's time to learn your platforms, software people.

[later addition] This kind of thing is also one of the reasons that teaching OOP principles as they are taught today is so bad for software performance. Modeling object relationships to match the real world will, in every non-toy program, produce object structures that are actively unfriendly to cache efficiency, and will therefore produce software which performs very poorly when compared to software that was written with the hardware platform in mind.

<comment><USER17> >It is important to understand your platform all the way down to the CPU, including things like branch prediction and caches if you want to have performant software.

Let's not drastically increase job requirements for no good reason.

>It's time to learn your platforms, software people.

Many of these platforms have undocumented CPU instructions, so until you get a full accounting of that, what's the point? You can't learn the platform fully if they keep that a secret.

Secondly, we've had CPU-level issues like spectre and meltdown introduced that affected performance in some cases. We can't even trust the platform makers to get it right!

<comment><USER16> > Let's not drastically increase job requirements for no good reason.

Well, I would say that it's a very good reason, and that learning about branch prediction and caches is not a "drastic" step by any means.

Is there _any_ software that you write whose users would not be made happier if the software performed better? Any at all?

> Many of these platforms have undocumented CPU instructions

You don't need to know the secrets of a platform to understand branch prediction and caches, or to use that knowledge to produce software that performs far better than software written without that knowledge. You don't need to know the platform on a logic gate level, you need to understand how the platform executes your code, so that you can take advantage of the strengths of the platform. You don't need to know any hidden instructions or secrets to take advantage of the platform.

> we've had CPU-level issues like spectre and meltdown introduced that > affected performance in some cases

those things didn't affect performance, the fixes for those things did. The fixes also required no code changes outside of the firmware and the operating system, and knowing the platform is still the best way to write performant software, no matter what is going on to avoid hardware vulnerabilities.

<comment><USER17> >Is there any software that you write whose users would not be made happier if the software performed better? Any at all?

I'd say security is a bigger issue than performance most of the time.

And most gains are going to happen within the code itself by, e.g., not writing n^2 when there's a log(n) solution or something similar.

Plus we're talking about javascript, and that's likely to be software with network concerns, so your optimizations might be a rounding error compared to performance degradation from slow network connections.

>You don't need to know any hidden instructions or secrets to take advantage of the platform.

You don't know what they do though. Some of those ops could be more advantageous to performance to use in some cases. You can't fully know the platform if there are secret ops.

You can still make optimizations with partial knowledge, but don't pretend to know the platform when the platform manufacturer doesn't tell you everything about it.

>The fixes also required no code changes outside of the firmware and the operating system, and knowing the platform is still the best way to write performant software, no matter what is going on to avoid hardware vulnerabilities.

Good algorithm knowledge and practice is the most cost-effective way of writing performant code and is more than likely going to be the lion's share of issues.

<comment><USER18> > Good algorithm knowledge and practice is the most cost-effective way of > writing performant code

I'd love to see that common thought validated because in practice I've seen it to not be true at all.

There are lots of cases where the complexity effects of the algorithm are swamped by cache effects. In fact basic foundational assumptions about complexity analysis are dangerously untrue on modern systems.

In my experience in either high throughput or low latency systems algorithmic complexity is never the issue. It's always cache coherence, CPU prefectching/prediction, lock contention or over copying of data.

<comment><USER17> >I'd love to see that common thought validated because in practice I've seen it to not be true at all.

If you have Javascript devs that came out of some boot camp with no knowledge of either, do you teach algorithms 101 or low-level CPU programming 101 first?

I would argue your codebase would benefit from teaching them algorithms first, then the other one.

>In my experience in either high throughput or low latency systems algorithmic complexity is never the issue.

Do you encounter those workloads written in Javascript often?

<comment><USER19> >If you have Javascript devs that came out of some boot camp

Do you also go to a doctor that came out of a bootcamp? Is your house built by a constructor that came out of a bootcamp? Would you fly with an aviator that came out of a bootcamp? Would you run banking software made by a developer that came out of a bootcamp?

<comment><USER20> So how, precisely, is anyone supposed to get experience if it's unacceptable to hire them fresh out of "boot camp".

Even if you go "INTERNSHIP". Well what, is everyone supposed to stick the unpaid intern on toy apps that don't give them any actual real world experience writing actual production software?

Cause then the next argument will just be "Do you also go to a doctor that came out of an internship? Is you house built by a constructor that came out of an internship?".

Elitism at its finest.

<comment><USER19> >Elitism at its finest.

Do you think doctors in training get to do open heart surgeries by themselves fresh out of university? Do you think we train aviators that can only fly using the autopilot? Because that's the way we treat software developers. This has nothing to do with elitism and everything with professionalism. Our industry has built training wheels in form of various VMs and high level languages because it missed the opportunity to properly train its workforce.

<comment><USER20> Again, just more insane elitism.

You keep going to the "OH MY GOD, PEOPLE WOULD DIE" examples to try and make a fairly weak point.

No one is going to die, because some noob made a crappy little site out of the millions of crappy little sites, and it's not performing like a demi-god.

VMs and high level languages aren't "training wheels". Especially not VMs, that's just complete and utter non-sense. Unless you think literally every website on the web should have a 100% dedicated server box.

VMs are good for a great many of things, both noob-friendly and not.

As for high level languages, they were meant for one particular thing. To get a task done quickly. Which is largely the real reason why so much software out in the wild performs like crap.

Anyone can sit down and spend years making a highly performant piece of software. But when things have to move fast, corners get cut & there's not enough time dedicated to researching to get said product to be as highly performant.

<comment><USER19> Just to be clear: VM means a language VM like the JVM. I don't have a problem with high level languages in general, but the gains in developer efficiency tend to be paid for by the CPU.

No I don't think people die (although I wouldn't be surprised if that was the case). I just don't want to have to buy a 3000$ PC so I can run a fucking chat app, an editor and a browser somewhat decently. The opportunity cost of bad software is paid by billions of users every day.

<comment><USER21> Yet all that performance optimization gets thrown away when running on virtualized containers alongside sanitizers.

By the way, my language VM is your language runtime.

<comment><USER19> Yes runtime is the better word and the JVM was a bad example anyway. There are much worse offenders when it comes to throwing away CPU power.</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment>


The psychology behind the placebo effect just got stranger - <AUTHOR> https://www.newscientist.com/article/2229542-the-psychology-behind-the-placebo-effect-just-got-stranger/ <comment><AUTHOR> [https://doi.org/10.1097/ALN.0000000000003076](https://doi.org/10.1097/ALN.0000000000003076)

</comment><comment><USER2> Is there a version not behind a paywall?

</comment><comment><USER3> paywalled</comment>


Who's the Most Innovative Flight Search Engine? - <AUTHOR> http://www.google.com/search?q=innovative+flight+search

<comment><USER2> Its a link to Google search results. No idea why this is here. But interesting to see Google already found it: [http://imagebin.ca/v/26hjcGX0K0S1](http://imagebin.ca/v/26hjcGX0K0S1)

So this is some kind of self fulfilling prophesy ;-)

And shows that being on HN can be good for your website's SEO.

</comment><comment><USER3> Google's calendar view to find the right dates, Skyscanner to find the cheapest flight for a particular date.

I want a desktop UI for with APIs for all of the flight websites that can download data in bulk and apply my preferences, filters, searches etc client- side.</comment>


Buying a Used Car - <AUTHOR> http://www.barlowfarms.com/index.html?cm_id=1868291

<comment><USER2> Is it a good idea to buy a used car from a rental company, say entreprise or hertz? What is the best way for someone international to go about buying a car in the bay area?</comment>


Schwarzenegger: I don't give a damn if we agree about climate change - <AUTHOR> https://www.facebook.com/notes/arnold-schwarzenegger/i-dont-give-a-if-we-agree-about-climate-change/10153855713574658 <comment><USER3> I like that he makes it more about the economics of saving lives, which should be the primary argument.

But that is a tricky problem since we have 4 million a year dying from indoor cooking smoke, and millions more from other various aspects of extreme poverty. Most of which would be a greater ameliorated by cheap coal plants. Cheap coals plants are horrible polluters, but they are cheap, aren't as bad as indoor pollution, and allow countries to pull themselves out of abject poverty, thus saving lives immediately by fertilizing crops, making cheap concrete, powering factories, all the things a richer society needs.

<comment><USER4> With too much reliance on cheap coal for economic growth, you end up here:

[http://www.theverge.com/2015/12/7/9861174/beijing- pollution-...](http://www.theverge.com/2015/12/7/9861174/beijing-pollution- warning-severe-smog-china)

China's use of coal has probably peaked. Any developing country would do well to follow China's lead and build renewables rather than coal, whatever its short-term advantages.

<comment><USER5> China added 39 gigawatts of new coal power capacity in 2014. They issued permits for at least 150 new coal plants in 2015. They're building a new coal power plant every week, and issuing a new permit every two days. Just the new permits issued for 2015 alone would be equal to 40%+ of all US coal power plant output. While we're at it, let's remember to throw in the recent 14% revision upward in their coal use.

Their coal use clearly hasn't even remotely peaked. All the plans on their table right now call for building a lot more coal power plants.

[http://mobile.nytimes.com/2015/11/12/world/asia/china- coal-p...](http://mobile.nytimes.com/2015/11/12/world/asia/china-coal-power- energy-policy.html)

<comment><USER4> Not everyone agrees. Greenpeace's analysis suggests that the new coal capability isn't being used (yet), which has lead to a 4% drop in actual coal consumption this year:

[http://energydesk.greenpeace.org/2015/11/09/2015-the-year- gl...](http://energydesk.greenpeace.org/2015/11/09/2015-the-year-global-coal- consumption-fell-off-a-cliff/)

Their analysts are working on the ground in China, whereas many other Western agencies just look at official numbers... So the truth may be somewhere in between, but Greenpeace's analysis can't be summarily discounted.

</comment></comment></comment></comment><comment><USER6> The global warming brigade hijacked the pollution issue.

There always will be a debate on global warming. So keeping global warming as the prime focus of fossil fuel usage kept people divided.

If pollution was the prime focus from day one, then more push would have been given to renewable.

Maybe, Arnold is able to bring more people to think in this direction.

<comment><USER7> I agree with this. Amazing that we need AS to give people a dose of wisdom. I have to agree with everything he said. I am not convinced about CO2 causing global warming but I am 100% ok with our society pushing away from coal, gasoline and fracking.

<comment><USER8> "I am not convinced about CO2 causing global warming"

Honestly, how convinced you are about it is only relevant because economic interests have planted a seed of doubt about it.

Your position to question the science on climate change is about as good as it is on a myriad other issues which no one seems keen on questioning. If there weren't a lobby doing it, your uncertainty would be as much as what qualified experts have.

<comment><USER9> To be fair, opposing interests (the "green" movement) have also influenced people based on economics.

Let's not look at who is on what side of the fight when making these decisions. Both sides currently have entrenched economic interests, both sides are turning it from a practical issue to one that is moral and identity politics, ruining the conversation.

<comment><USER10> What entrenched economic interests are on the "global warming is real" side? There are a bunch of upstarts, of course, but nothing entrenched that I can think of. Given that the whole movement only took off in the last few decades I don't even see how it would be possible. Further, I frequently see companies on that side making choices that are _against_ their own economic interests, by spending more on electricity to ensure it's from renewable sources, using more expensive but more recyclable packing, and similar.

<comment><USER9> According to [0], private sector investment in clean energy in the US alone was over $100 billion in the US. In 2012.

[0] [http://www.acore.org/files/pdfs/ACORE_Outlook_for_RE_2014.pd...](http://www.acore.org/files/pdfs/ACORE_Outlook_for_RE_2014.pdf)

<comment><USER10> How much of that is from "entrenched economic interests," and what's the number for fossil energy?

<comment><USER9> We may have to disagree at this point, but there are 100 billion worth of dollars, which is going to create some pretty strong economic interests. Are you using "entrenched" in a historical sense? I suppose I'm using it more as a substitute for "heavyweight".

Anyhow, I don't think it's a stretch to believe that there are strong economic powerhouses controlling billions of dollars trying to promote the green movement.

I'm not totally sure if the other side of the coin is particularly relevant, unless it's the case that politicians are all already bought and paid for by fossil fuel interests, and thus not available to be bought by newer "green" economic interests.

Regardless, what were we discussing?

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> I absolutely don't believe that human-created CO2 emissions cause global warming. However, I consider myself a staunch environmentalist.

I believe we should be doing whatever we can to control pollution. It sickens me that factories pump out pollution, that we can barely eat fish anymore because of all the garbage and poisons we pump into our oceans. I think we need very strict controls on every form of pollution as well as garbage and creating plastic waste (including microplastic particles in our oceans), although I do believe CO2 pollution is on the bottom of the scale in terms of importance. I believe that fines for factories that pollute the environment should be material, ie. very heavy relative to yearly revenues. Personally, I do my best to ensure that I create as little waste as possible, and that I do my part in terms of recycling, composting, etc.

So I consider myself an environmentalist, I just don't believe that global warming is caused by human activity, and CO2 pollution is the least critical of the pollutions.

<comment><USER12> Can you explain your lack of belief when 97% of climate scientists (there's conflicting data on this; some reports show as high as 99%) agree that human activity is causing global warming?

EDIT: That's not rhetorical. I'll entertain any logical reasoning you have as to why your reasoning is superior to those educated and practicing the subject daily.

<comment><USER13> I'm sure a large majority of nutrition scientists supported a low fat diet 20 years ago. (Food for thought)

<comment><USER14> > _I 'm sure a large majority of nutrition scientists supported a low fat diet > 20 years ago. (Food for thought)_

Sure, and a large majority of physicists supported General Relativity 20 years ago.

If your point is that vague analogies aren't helpful and specifics are needed, I think that was precisely what toomuchtodo was getting at.

<comment><USER15> General relativity I much easier to test in simple systems, like planets traveling in the vacuum, or to get more precision you can test it in the lab [https://en.wikipedia.org/wiki/Tests_of_general_relativity](https://en.wikipedia.org/wiki/Tests_of_general_relativity) . I'm not sure if this is the more accurate current test but from [https://en.wikipedia.org/wiki/Pound%E2%80%93Rebka_experiment](https://en.wikipedia.org/wiki/Pound%E2%80%93Rebka_experiment) :

> _The result confirmed that the predictions of general relativity were borne > out at the 10% level. This was later improved to better than the 1% level by > Pound and Snider. Another test involving a space-borne hydrogen maser > increased the accuracy of the measurement to about 10^−4 (0.01%)._

Nutrition and diets are more difficult to measure (you can't enclose a few thousand persons in the lab for 20 years) and it's full of side effects and interactions. IIRC a low fat diet is still recommended. I think that a better example of the changes in nutrition is the butter vs margarine recommendations, see for example [http://www.telegraph.co.uk/news/science/science- news/1179683...](http://www.telegraph.co.uk/news/science/science- news/11796834/Butter-unlikely-to-harm-health-but-margarine-could-be- deadly.html)

</comment></comment></comment></comment></comment><comment><USER16> When speaking with people who do not agree with me on the correctness or urgency of global warming, this is the argument I traditionally make: let's examine the worst-case scenarios. Regardless of whether or not you agree with the science, taking it seriously is a logical choice.

The plausible worst-case scenario of charging ahead with measures to combat climate change isn't actually that bad, not to mention the ancillary benefits outlined by Schwarzenegger. Aggressively stimulating the renewables economy would be a death knell for the fossil-fuel industry, which could harm the overall economy (though renewables would also contribute positively). It would be disruptive to sections of the country that are dependent upon the fossil- fuel industry (coal country in Kentucky, for instance), which would be very hard on the people living there. This is certainly bad and should not be done lightly, but it's hardly apocalyptic.

The plausible worst-case scenario of failing to address climate change is _really_ bad, ranging from property destruction all the way to civilizational collapse or even potentially human extinction[1]. In a world with nuclear weapons, large-scale destabilization resulting from famine, drought and loss of land to flooding is a very dangerous thing. The Earth is the only home we have, why even flirt with the possibility of disrupting our currently livable climate?

...and that argument doesn't even take the scientific consensus on the existence of human-cased global warming into account.

[1]: [https://en.wikipedia.org/wiki/Anoxic_event#Atmospheric_effec...](https://en.wikipedia.org/wiki/Anoxic_event#Atmospheric_effects)

<comment><USER17> Isn't this the same as Pascals Wager then? We should pray to God since the upside result is worth the downside cost.

<comment><USER18> The problem with Pascal's Wager: which God and thus which set of rituals and rules do you follow? You've got quite a selection to choose from. You go from having a simple Yes/No choice to having thousands of choices.

In the case of action against climate change, the downsides of doing something are minimal compared to the downsides of inaction. It's a much more binary choice than what Pascal put forward.

<comment><USER19> Not to criticize taxing CO2 emissions (which has a solid case), but there is indeed an analogous dynamic here to Pascal's Wager: just as you ask "which God", one could ask "which emergency?", sampled from the set of events that respectable scientific movements have demanded immediate action on.

In the 70s, for example, one respected movement held that there would be an overpopulation crisis that justified drastic measures to halt the birth rate. There have been similar movements against nuclear power.

Alternatively, if we took immediate action on the crisis global poverty and got everyone up to Western living standards, that would conflict with the goal of reducing our environmental load. (Just as taking Pascal's Wager for God one conflicts with God 2.)

<comment><USER18> _there is indeed an analogous dynamic here to Pascal 's Wager: just as you ask "which God", one could ask "which emergency?"_

Is it an analogous dynamic if the cure for almost all of the emergencies in the basket is reduction in harmful levels of pollution including inefficient farming/manufacturing/transport methods, noting the associated benefits such as food security that comes with unpolluted waterways in poor villages, not acidifying oceans, not tainting arable land with heavy metals etc? Belief in a certain God among many seems more variable than _reduce pollution, aim for zero._

 _if we took immediate action on the crisis global poverty and got everyone up to Western living standards, that would conflict with the goal of reducing our environmental load_

You make an interesting point - the big one is India which needs cheap energy to bring itself up from having no clean running water, no integrated sewerage system and severe poverty to competing with Europe and the Americas who have reaped the benefit of cheap [polluting] energy for a long time and before emissions were taxed.

But I see it as a benefit, at least in the long term, to start from this stage. Just as African countries have benefited from mobile networks and services like M-Pesa money transfer and microfinancing, never having to deal with maintaining an aging wired telecom infrastructure - India could reap the benefits of starting with a peer-to-peer energy network using residential solar, similar to what Germany has implemented. Of course this would need to be supplemented, however using fewer base load power stations than if it were purely centralized energy production.

<comment><USER19> >Is it an analogous dynamic if the cure for almost all of the emergencies in the basket is reduction in harmful levels of pollution including inefficient farming/manufacturing/transport methods, noting the associated benefits such as food security that comes with unpolluted waterways in poor villages, not acidifying oceans, not tainting arable land with heavy metals etc? Belief in a certain God among many seems more variable than reduce pollution, aim for zero.

But what you really want is a method of weighing the harm of a given amount of pollution against the benefit. "Reduce it" doesn't translate into a heuristic for deciding which uses should be targeted first, and regresses to the original problem of "for which crisis is it okay to emit an additional unit of pollution to emit in service of fighting?"

</comment></comment></comment></comment></comment></comment><comment><USER20> Lots of very partisan folks here. My mother is an avid believer that climate change is a hoax and we don't need to take care of the planet. She says 'Mother earth knows how to take care of herself', but she deeply respects Arnold as a businessman, politician, and self-made man.

This is the type of thing that can reach her and change people in her boat's way of thinking. Way to go Arnold.

</comment><comment><USER21> 1\. "WHO estimates indoor air pollution was linked to 4.3 million deaths in 2012 in households cooking over coal, wood and biomass stoves."

If the majority of the "7 million" die from indoor cooking, It seems like it would be better to focus our resources on developing infrastructure in SE Asia so that every household has electricity and modern cooking appliances.

<comment><USER22> It's relatively easy to fix indoor cooking, but it's hard to fix CO2 once it's out there.

</comment></comment><comment><USER23> Regarding the third question, it's a nice analogy there but is he suggesting that electric power is predominantly clean?

Across the US, 37.4% of our electric power comes from coal. I don't want to detract from the overall message because it is clear and accurate but I think it's important to think about how electric power is currently generated.

Coal statistic pulled from: [http://www.epa.gov/sites/production/files/2015-10/documents/...](http://www.epa.gov/sites/production/files/2015-10/documents/egrid2012_summarytables_0.pdf)

<comment><USER24> Coal as a source of our electric power has _plummeted_ in a decade, being taken up mostly by natural gas (but also in small part by solar/wind). Additionally, there is no change needed for an end consumer if the power they use is switched to a different source, whereas to switch a fuel for cars means switching cars. The drive to get people on electric cars means that switching everything off of fossil fuels is a matter of switching the power plants (which we've seen is something that can be done quickly as with coal->natural gas).

<comment><USER25> I would be very interested in an all-electric minivan with enough range for my frequent 600-mile trips to my wife's home town. Sadly, this does not yet exist.

<comment><USER26> You make a 10-hour-each-way trip frequently? Man, stop throwing away your life like that. Downsize your house, take a pay cut, do whatever it is you have to to move somewhere closer. I struggle to even begin to imagine the misery of what you're doing.

<comment><USER27> Many people choose their car based on their peak requirements, rather than their average requirements.

I've seen people commute in a minivan every day because the space was useful taking their kids' stuff back and forth to college a handful of times a year. I've seen people buy SUVs because they tow a boat or a horse box once every six months. I've seen people buying larger cars so they can transport five adults in greater comfort - even though they only need to do that a handful of times a year.

Now, it's possible that these people would be better served by one car for their everyday needs, hiring different cars for these occasional needs - <USER2> most car buyers aren't used to behaving that way at the moment.

<comment><USER25> > Many people choose their car based on their peak requirements

Exactly right. I don't want to pay for and maintain cars for different purposes, so I buy based on peak requirements.

</comment></comment></comment></comment></comment></comment><comment><USER28> If it takes Arnold Schwarzenegger and a frankly preposterous "sealed room" analogy in order to convince people to slow down on emissions, and recasting the emissions issue as a pollution issue -- as if there was a difference -- in order for them to safe face, so be it.

Of course those electric cars _still_ virtually emit CO2^Wpollution when you refuel them using coal-generated power, so I guess we can go back to going back and forth about the pros and cons of nuclear energy now.

</comment><comment><USER29> Ohh man, does Hackernews bring out all the tinfoiled gentlemen from nuclear apocalypse bunkers once in a while !

See: comments here.

</comment><comment><USER30> I really enjoy when people take a fresh perspective on things. Climate change has been cited by Pew Research Center as the top greatest threat, and putting a different spin on things will always be nice to try and convince people.

The top reason to reduce carbon emissions is not to reduce global toxicity and prevent climate change. Saving the planet is a bonus. Energy independence creates a stable geo political environment, almost all wars have a root cause of fighting over resources. There's little point in saving the planet if we're going to kill ourselves by the time comes when need to save it.

</comment><comment><USER31> "California has some of the most revolutionary environmental laws in the United States, we get 40% of our power from renewables, and we are 40% more energy efficient than the rest of the country."

California also has the second highest energy costs in the continental United States.

[https://www.eia.gov/electricity/monthly/epm_table_grapher.cf...](https://www.eia.gov/electricity/monthly/epm_table_grapher.cfm?t=epmt_5_6_a)

<comment><USER14> From that chart it appears a large reason for that is they charge Commercial customers the same rates as Residential ones, unlike most states.

Also worth considering is economic activity per unit energy, where California is placed third in efficiency, so it looks like those energy prices are doing fine.

[http://www.eia.gov/environment/emissions/state/analysis/pdf/...](http://www.eia.gov/environment/emissions/state/analysis/pdf/table6.pdf)

</comment></comment><comment><USER32> I wonder why, in the debate about fossil fuels, we never bring up the point that oil has been the cause of a lot of issues in the Middle East. Many guns and bombs have gone off in order to get to the Middle Eastern oil, and much of the funding behind ISIS comes from oil money in Saudi Arabia. Oil has had a pretty steep moral price tag.

</comment><comment><USER33> I believe that man-made CO2 emissions likely have a significant impact on the climate, and we should do something about it, but even so the issue is a very complex one and its politicization hasn't helped. Here's why it's not so easy:

1\. The data is crap. What you need is average temperatures and other data (humidity, pressure, cloud cover, albedo, etc.) over the entire Earth down to a fairly small scale. What we have is a mismash of horribly calibrated weather station data near cities combined with limited satellite data and various proxies, all of which has to be massaged a great deal to make it usable. Sea level data has the same sort of problems, nearly impossible to properly calibrate to sufficient precision. The fact that people have poured tons of effort into collecting and attempting to calibrate data doesn't mean the data is actually very good.

2\. The models are also crap. A century ago Svante Arrhenius came up with the greenhouse effect theory and did some back of the envelope calculations on its magnitude, coming up with a figure of climate sensitivity of about 2 deg. C per CO2 doubling. Today all of our vaunted climate modelling hasn't managed to come up with a more accurate figure than that. Current estimates are still "maybe 2 deg. C per doubling, with some enormous error bars". Modern models have several problems. The conceit is that climate models are de novo elaborations from first principles and are as rock solid as our understanding of the laws of physics. In practice all climate models contain multiple "empirically determined" fudge factors. They _fit_ the data, they don't _predict_ it. And that's assuming we even had enough good data to really run good prediction checks, which is dubious at best.

3\. The climatology scientific community is very problematic. There is little indication of sufficient rigor, and criticizing results is an easy way to get effectively excommunicated from the community. Take, for example, the famed "hockey stick" paper, which has now been thoroughly discredited, but all of the discrediting happened effectively "behind the scenes" and quietly. Science works best when it's open and boisterous. It's surprising that climatology isn't in even worse state given how insular and political it is.

4\. Even if we assumed that man-made carbon emissions were going to cause a huge degree of global warming there is still a huge gap between that fact and figuring out what to do about it, which many folks simply skip over. The actual damage (to the biosphere and to human activities) is just as difficult to determine as the climate is to predict. The right course of action to take depends a great deal on lots of different factors: sociological, technological, and economic. Especially since a lot of the CO2 production of the 21st century will come from economies that are climbing out of poverty and into affluence. It may well be the smartest choice to simply continue polluting until the world is richer and more technologically advanced and then consider mitigation strategies.

4a. CO2 emissions may not be, and likely is not, the most important pollution issue everywhere in the world currently. But it gets the most attention and sometimes that makes it more difficult to get traction on other issues.

Meanwhile, there really are serious "climate change denialists" and some of the folks on that side are absolutely terrible. Canadian PM Harper banned government scientists from talking to the press, for example. But the answer to science being perverted for political reasons isn't to simply pervert it in the opposite direction to compensate.

It's just a complete shit-show across the board and I'm not happy with how any of it is being handled at either the level of scientific inquiry or public policy.

<comment><USER34> I was skeptic until I studied the history of the subject. It's a sad state. Nobody would expect to study lets say material science from historical perspective.

[https://en.wikipedia.org/wiki/History_of_climate_change_scie...](https://en.wikipedia.org/wiki/History_of_climate_change_science#First_calculations_of_human- induced_climate_change.2C_1896)

There could be some major breakthroughs since 1970, but the whole shebang is so polarized, that I would not know that to believe.

From policy point of view human emotions have to be taken to account. Motivations for denialism are often either "nah, it doesn't matter" or alternatively "They say we all die! I don't want to believe that." I was in the latter camp.

Prehistoric events show us that climate change is probably not the end of humanity.

[https://en.wikipedia.org/wiki/Paleocene%E2%80%93Eocene_Therm...](https://en.wikipedia.org/wiki/Paleocene%E2%80%93Eocene_Thermal_Maximum)

And on the other hand ask any farmer how he feels about unpredictable weather. Agriculture is completely based on predictable seasons. It's very likely that combating climate change could save millions of lives.

</comment></comment><comment><USER35> Kind of proud that this man signed my diploma.

</comment><comment><USER36> Where does the 7 million figure come from?

<comment><USER37> [http://www.who.int/mediacentre/news/releases/2014/air- pollut...](http://www.who.int/mediacentre/news/releases/2014/air- pollution/en/)

</comment></comment><comment><USER38> [http://www.cowspiracy.com/](http://www.cowspiracy.com/)

<comment><USER39> > the film that environmental organizations don't want you to see!

I despise this type of rhetoric.

</comment></comment><comment><USER40> tl;dr Even climate change deniers must face that fossil fuels are polluting our air and water and are eventually going to run out. Investing in clean energy is just pragmatic and doesn't make you a tax-and-spend liberal.

<comment><USER41> the lie was not neccesary. climate change deniers are worried about the government getting its nose into everything and destroying a country to favour some bankers. if you started with the right arguments like arnold the story would be different.. and its not late.

<comment><USER42> Come on man. Not everything is a conspiracy of bankers.

</comment></comment></comment><comment><USER43> I was kinda hoping there would be a second message down the left side:

[http://www.wired.com/2009/10/schwarzenegger/](http://www.wired.com/2009/10/schwarzenegger/)

</comment><comment><USER44> Unrelated: Facebook notes look good. I wonder if it's a direct competitor to to Medium / Svbtle.

<comment><USER45> You mean placing text in a rectangle? Looks like it.

<comment><USER44> Reading this made me realize: it looks good read because there are no ads on the page. It's crazy how obtrusive ads are these days..

</comment></comment></comment><comment><USER46> Energy in general doesn't look like a good investment in the near future.

</comment><comment> j-l- I really wonder. So much money and freedom was spent and 7 millions of people are still dying? Smart choice would be Termination, not Terminator.

</comment><comment><USER47> Door 2 is also likely fatal. Most electric motors produce ozone :)

<comment><USER48> You are most certainly technically incorrect, which is the worst kind of incorrect. It would take very very high levels of ozone to be anywhere near as promptly fatal as carbon monoxide poisoning from running a gasoline powered car inside a closed garage. As far as I know, no one commits suicide by running an electric motor in a closed room. Ozone causes oxidative damage to tissues, including the delicate tissues of your lungs. Carbon monoxide shuts down the oxygen carrying function your hemoglobin. You can be killed by unnoticeable levels of carbon monoxide. It's highly unlikely you won't be able to sense dangerous levels of ozone. In fact, it's likely to be unpleasant enough to drive you from the room. Whereas CO makes you feel sleepy as you slip down to unconsciousness forever.

(EDIT: That said, ozone in rather small amounts can be quite damaging to long term health.)

<comment><USER47> It is plainly obvious that CO and even CO2 from IC engines is drastically more fatal than anything coming out of an electric motor...I thought the trolling attempt was transparent, but apparently not. If I really wanted to provide a counter to the article, pollution from battery manufacturing is far more concerning than ozone (which has a half life measured in days) from brushed electric motors. And even that appears to be far less of a problem than the carbon economy.

That being said, ozone can be fatal over the long term, and researchers regularly segment pollution death estimates to include ozone pollution [1].

[1] [http://www.iop.org/news/13/jul/page_60518.html](http://www.iop.org/news/13/jul/page_60518.html)

</comment></comment></comment><comment><USER49> _There are two doors. Behind Door Number One is a completely sealed room, with a regular, gasoline-fueled car. Behind Door Number Two is an identical, completely sealed room, with an electric car. Both engines are running full blast._

 _I want you to pick a door to open, and enter the room and shut the door behind you. You have to stay in the room you choose for one hour. You cannot turn off the engine. You do not get a gas mask._

 _I 'm guessing you chose the Door Number Two, with the electric car, right? Door number one is a fatal choice - who would ever want to breathe those fumes?_

 _This is the choice the world is making right now._

The choices aren't that simple, Arnold, and the analogy you're making isn't valid, either. Does he not understand that that "clean" electric car requires an energy grid to run on? And that this grid is very far from "clean", and will be for quite some time? And that the process of creating (and decomissioning) electric cars is very far from environmentally harmless, also?

I'm not saying that there's no positive trade-off in favor of electric cars; most likely there is. But fear-driven arguments (even if pointed in the "right" direction) don't help much, and have a similar effect on the brain as carbon monoxide, over time.

<comment><USER42> The point here is it's easier to control emissions at large-scale power generation plants than it is on millions of individual vehicles. How many cars would fail an inspection if exposed to one?

The same cannot be said about power plants.

There's also the renewable angle. Surplus wind power, as experienced in Spain, would basically provide free power for recharging vehicles overnight. You cannot do this with gasoline.

The sealed room is also a way of presenting what we're doing to our climate, that the automobile emissions don't just go "into the air", but become part of the environment.

<comment><USER49> I don't dispute the electric cars are, overall, _clean_. Just that the image that Arnold is promoting with his "Gedankenexperiment", per my quote above (that electric cars are somehow 100% clean and environmentally harmless) is simply false, anti-intellectual, and unscientific.

<comment><USER50> One of my thoughts was that if you enter the first room you're only poisoning yourself. If you enter the second you've already polluted areas and/or people that have no interested in your transport.

Bit of a silly analogy though, as many are. Would not say that is 'anti- intellectual' though.

</comment></comment></comment></comment><comment><USER51> If I believe your number:

> First - do you believe it is acceptable that 7 million people die every year > from pollution?

Answer this, how many of that 7 million year over year die from carbon dioxide?

This is the major issue with deniers. Carbon dioxide != pollution.

Edit:

I don't know anyone not in favor of clean energy. I know plenty who warn of government overreaching using climate change scare tactics.

You want to take a stance on pollution, then do that. Don't rant about climate change deniers.

<comment><USER52> You're mixing pollution with green house gases

<comment><USER3> I think it's a valid point since the EPA labels CO2 as pollution.

[EDIT] Since I'm getting so many down votes, thought I'd link the EPA calling CO2 pollution. [http://www.epa.gov/cleanpowerplan](http://www.epa.gov/cleanpowerplan)</comment></comment></comment>


Marine glass sponge that builds silica skeletons - <AUTHOR> https://en.wikipedia.org/wiki/Venus%27_flower_basket <comment><USER2> Could you grow sponges on the moon to build glass structures in space? Ie so the marine glass sponge consume silica from the moon surface? Thinking in terms of terraforming.

<comment><USER3> The sponge would also need to be able to survive the cold of space and heat of the sun.</comment></comment>


California legislature wants to mandate radio-readable driver's licenses - <AUTHOR> http://boingboing.net/2015/09/08/california-legislature-wants-t.html <comment><USER2> Not that I like it but I'm not surprised. It's not called Commiefornia for no reason...</comment>


Scales for building your own slide rule (1999) - <AUTHOR> http://sliderulemuseum.com/SR_Scales.htm <comment><USER3> I can't get the link to load, it is available on Wayback Machine: [https://web.archive.org/web/20170713203824/sliderulemuseum.c...](https://web.archive.org/web/20170713203824/sliderulemuseum.com/SR_Course.htm)

I like the footer:

>In the beginning, at the time of the great flood, Noah went thru his ark after it landed, and found two small snakes huddled in a corner. Noah looked at these poor specimens - and said "I told you to go forth and multiply - <USER2> haven't you?"

>The poor snakes looked up at Noah and replied "We can't because we are adders....."

>Noah looked a bit perplexed, and then proceeded to tear bits of planking from his ark. He went on to build a beautiful wooden platform. He gathered up the snakes and placed them on the platform, and joyfully told the snakes - "Now go forth and multiply, because even adders can multiply on a log table"

</comment><comment><USER4> While it may have made sense to exchange the "Slide Rule Reference Scales" images as a ZIP archive of 700-pixel-wide GIF images in 1999, this seems like the type of project that's begging to be encoded as an SVG. Or a PDF as in some of the examples.

I wonder how much error is introduced by storing these as pixel-aligned GIFs?

<comment><USER5> At least three (I didn't test more) of the bitmap images under each of the "scales to make..." are links to PDF versions of the same scale.

Also, the error for a pure monochrome version (that doesn't do subpixel resolution) would be at most 1/1400 pixel. Assuming a 1:10 scale for that, the error would be at most 10^(1/1400), or a factor of about 1.001646.

(Of course, that would increase once you start using the slide rule)

</comment></comment><comment><USER6> I've owned a bright yellow Pickett slide rule since about 1964 or 1965; I bought it with money I had saved while delivering newspapers before school every day. It was my second "computer" \-- my first was a Chinese abacus.

I was never practiced enough to be good at an abacus, but learning to use a slide rule is pretty easy. First, learn how logarithms can be used to do computation. Back then every engineer or even science student, as I was, learned to use tables of logarithms to perform multiplication, division, and exponentiation rapidly. Today this is a bit of a lost art, but if you understand it, the operation of a slide rule becomes obvious. The most basic scales are just marked off logarithmically. The scales are a compact version of the log table values. Appending logarithmic scales corresponds to multiplication and so forth. It's like learning vim, learn a few basics and then tinker around with it to get better.

The great multiplicity of scales on slide rules from that period also provided access to trig values, natural logs, hyperbolics, square roots (same log scales but scaled by half), etc.

For many problems, one could approach three significant digits of accuracy with a slide rule. The scales didn't have to be straight they could be circular. This led to a circular slide rule, less convenient to hang from ones belt in a holster, but with some larger (and some smaller) resolution scales. I have even seen cylindrical slide rules with helical scales wrapped around the surface of a cylinder. These could obtain an extra digit or more of accuracy.

</comment><comment><USER7> See also [https://en.wikipedia.org/wiki/Nomogram](https://en.wikipedia.org/wiki/Nomogram)</comment>


Secret WhatsApp (Encrypted Messages) – Firefox Extension - <AUTHOR> https://addons.mozilla.org/en-US/firefox/addon/secret-whatsapp/ <comment><USER2> But isn't WhatsApp already encrypted? Or is this encryption on top of encryption?</comment>


How do trains stay on their tracks? Not what you may think. [video] - <AUTHOR> http://www.youtube.com/watch?v=y7h4OtFDnYE&feature=related

<comment><USER2> beautiful.</comment>


A Dam-Building Boom Is Transforming the Brazilian Amazon - <AUTHOR> http://e360.yale.edu/features/how-a-dam-building-boom-is-transforming-the-brazilian-amazon <comment><USER2> I think it's a fair move. A lot of people around the world and organizations try to do anything on their hands to protect Brazil from using its own lands. Meanwhile all countries have devastated their own forests to build ships and make wars, people from Brazil are hungry and the country must grow to make the lives of all the human beings there good.

But no, instead we've got first world countries which give us always very shitty trade deals speaking about what we do with our own land, when they complete wrecked theirs. And if you check their energy solutions, it's always coal, or they all got cars, or anything. They've got their own problems, which are potentially even worse for the environment but they keep looking at a poor country, just as they did in the past, to perhaps steal gold, slave people, make money... They want us to follow their crappy and shitty agenda when they can't even get decent politicians, they get shitty ones as we do, they go on middle-east and make fucking wars everytime, killing millions. But no, we can't do whatever the fuck we want with our forests.

The sad part is that much of Brazil has succumbed to environmentalists from abroad. If those who complain about it would go to Brazil and try to live a middle-class life there with a job in shitty conditions going through a crisis every decade, always feeling things aren't stable enough to make a living. Perhaps living in a big city, taking 2-3 hours to go to work, then 2-3 hours to go back, I've bet that they wouldn't care too much about Amazon or whatever countries from abroad says... but they don't, they come from privileged backgrounds, sometimes they say that they know poverty, sure, everybody can look at a magazine, but did they ever feel it like they do in a country like Brazil?

my 2 cents, thumbs down as much as you feel like.

ps: I completely get the point of environmentalists, but this will never work out while people are still hungry. Perhaps you should ask for your country to help Brazil to reach its enlightenment and then have enough cash and businesses to be willing to protect its own forest. But no, you just make the situation worse.

<comment><USER3> Not downvoting, but as a Brazilian living in Brazil I don't agree with the false dichotomy you imply here, that you can't develop in an environmentally sane way. What the current government is implementing is criminally irresponsible and walks us back to 20th century exploitation. My dad worked for Shell and Rio Tinto for years, and travelling with him around the country you could see how practices changed as environmental regulations came into play. It was definitely less lucrative for the companies, but they were not major employers or generators of local business anyway. We can do better than suggesting we should replicate environmental damage the first world committed.

<comment><USER4> There is environment friendly development, and there is pushing a country into forbidding every kind of energy generation available. What do you want to replace hydroelectricity with?

<comment><USER5> > there is pushing a country into forbidding every kind of energy generation > available

which is _not_ what is happening in Brazil. There are enormous opportunities for energy generation far away from the Amazon. In fact, a lot of foreigners don't know but the vast majority of Brazilian population lives _nowhere near_ the Amazon. Creating an energy grid in the forest is a great way to waste energy due to traveling long distances in transition cables.

<comment><USER4> > There are enormous opportunities for energy generation far away from the > Amazon.

Like where?

The Amazon is 50% of the area of Brazil, and the only place where most large falls aren't harvested yet. Besides, most of the Brazilian rivers are there by number, and an even bigger share of them by volume.

<comment><USER6> Wind energy in the south, solar in the northeast - both closer to major population centers.

<comment><USER4> You know, there are plenty of articles just like this one criticizing the construction of wind farms in the NE (there, because the South is way too small to have a sizeable project).

There aren't enough articles criticizing Brazilian solar farms. That's probably because they are expensive. As they get cheap enough to turn a profit, you can be sure the articles will appear.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> It's sensible to understand (for us, brazilians) that much of our land is a bastion of pristine environment and that we should preserve it. On the other hand I think it's very hypocritical of many countries to point a finger at us when they have enriched themselves through pillage, exploitation of their own environment, slavery and shady practices from their government and corporations, most of which had consequences on the troublesome political and economical development of the (South American) region.

That being sa(i)d, does not justify bad behaviour from both parts and a mutual understanding can only arise when both sides have a dialogue to work together on these issues.

If you want people not to burn forests to grow cattle then you need to understand why there's economical sense on that and mitigate the issue on it's root instead of trying to enforce a law that's very difficult to apply. Same thing for energy requirements of a country vs exploitation of it's environment where it's so much easier to point a finger than to propose and help on a solution. Case in point: [http://www.npr.org/sections/money/2013/09/02/216878935/ecuad...](http://www.npr.org/sections/money/2013/09/02/216878935/ecuador- to-world-pay-up-to-save-the-rainforest-world-to-ecuador-meh)

> _President Correa said scrapping the program was one of the hardest > decisions of his presidency. "The real dilemma is this," he said in a > televised address last week. "Do we protect 100 percent of the Yasuní and > have no resources to meet the urgent needs of our people, or do we save 99 > percent of it and have $18 billion to fight poverty?"_

I also looked for a translation of a great speech form Cristovam Buarque for when there was pressure to internationalize the Amazon, it's worth the read: [http://www.diaplous.org/amazo.htm](http://www.diaplous.org/amazo.htm)

> _If the Amazon Region, from a humanist΄s point of view, has to be > internationalized, then we should internationalize the oil reserves of the > entire the world as well. Oil is just as important to the well being of > humanity as the Amazon Region for our future. Nevertheless, the owners of > oil reserves feel it is in their right to increase or decrease oil > production and to raise or lower the price. The rich of the world, feel they > have the right to burn this valuable possession of humanity. Similarly, the > financial capital of the wealthy nations should be internationalized. If the > Amazon Region is a natural reserve for every human being, then it could not > be burned down by the decision of a landowner or a country. To burn down the > Amazon Region is so tragic, as the unemployment provoked by the arbitrary > decisions of world wide speculators. We cannot permit that the world΄s > financial reserves serve to burn down entire nations according to the whims > of speculacion._

</comment><comment><USER8> And when those dams all silt up, what next - whining?

<comment><USER9> The silt is the key to fertile soil. Can you image what happens when soil becomes infertile?

<comment><USER10> Yeah, that's also true. But the dams will still silt up. This is a huge problem worldwide.

<comment><USER8> Yes, the foreigners put up the foreign aid to build it. The corrupt people running it simply thieve the $$ they sell the power for and do not manage the silt</comment></comment></comment></comment>


Hacking the NHS for Fun and No Profit - <AUTHOR> https://medium.com/@nmalcolm/hacking-the-nhs-for-fun-and-no-profit-90931029dcb4 <comment><USER2> This seems really brave (and stupid) to do. Especially when he went past the step of scanning for the SQL injection to actually using the SQL injection to grab admin user credentials and login to the application.

I feel like if one were to do this in the US, without permission, that they'd be running a high risk of ending up in jail.

That said, it's scary to see that common 90s and 2000 era security issues are still so common.</comment>


Show HN: Sharing economy comes to personal investing, on your iPhone - <AUTHOR> https://openfolio.com/producthunt/

<comment><USER2> I'm one of the engineers at Openfolio focusing mainly on the iOS app. We're really excited about our launch, and we're all around to answer any questions about the app or Openfolio as a whole.

</comment><comment><AUTHOR> I wrote a lot of the backend/API at Openfolio. We put together a blog post with a little bit about our stack, and challenges if anyone is interested: [http://code.openfolio.com/post/96462395197/openfolios- stack](http://code.openfolio.com/post/96462395197/openfolios-stack)</comment>


All Of Ron Conway's Investments Since 2005 - <AUTHOR> http://www.businessinsider.com/sv-angel-portfolio-2011-2?slop=1

<comment><USER2> He's invested in more companies than I have heard of.

</comment><comment><USER3> This is amazing, I'm geeking out over here.

<comment><AUTHOR> It's a shame that this one won't hit the front page. I was really looking forward to an HN discussion on this.

Oh well, lesson learned. Next time I'll wait until things die down before I hit submit.</comment></comment>


A Well Known but Forgotten Trick: Object Pooling - <AUTHOR> http://highscalability.com/blog/2015/7/29/a-well-known-but-forgotten-trick-object-pooling.html <comment><USER2> Object pooling was very common in Java last century. Today, it survives only for the most heavyweight objects: threads, database connections, web browsers, that sort of thing.

What killed it off was generational collection. Compacting generational collectors make allocation very cheap, and they make maintenance of short- lived objects very cheap. As a result, it's reliably cheaper to allocate an object and throw it away than it is to attempt to reuse it.

So it's surprising and interesting to read that the author of this article clearly thinks that there are still benefits to object pooling. Since Alex Petrov is a very sharp guy, i have to take him at his word. But it's a shame he didn't include benchmarks to compare it to idiomatic use of a modern GC.

<comment><USER3> It's very much alive in the java low latency space where even young GCs are a problem. Allocations of temps/short lived objects also wash your cpu caches, and generally there are other reasons to avoid any GC in this space.

<comment><USER4> > java low latency space where even young GCs are a problem ... there are > other reasons to avoid any GC in this space

I'm no Java hater, but that sounds like the wrong place to use Java in the first place

<comment><USER3> It has its pros/cons but you'd be surprised (perhaps) at the throughput and latency you can get if you're mindful of things to avoid.

<comment><USER5> Which is, IMO, a part of the reason why Java isn't great for that. A serious pro can make it go like a race horse, but beginners and even long time users may fall into traps. If a language has less things to be mindful of, it's users may be less mindful with fewer dire consequences.

Of course, this totally depends on who might be touching the codebase...

<comment><USER6> I think this is more an article about garbage collecting vm's, namely the JVM, than it is about java, the language.

The JVM is being used in Mt. Everest-sized workloads. Object pooling is a useful tool when architecting something huge and performance sensitive.

</comment></comment></comment></comment></comment></comment><comment><USER7> Object pools are certainly a very useful technique, but can they really be considered a "forgotten trick"? This kind of pooling is pretty basic CS knowledge, and thus is a very popular technique in many applications, libraries, etc. I would have assumed most people working with a need for scale in a GC language like Java would be familiar with this technique (dare I call it a "design pattern")

Perhaps I am wrong and the technique is less familiar than I had thought?.

<comment><USER8> It's everywhere in java ee. Still I guess people writing fronted may have never heard of it (except thread pools?).

<comment><USER9> People writing frontend learn how to pool objects very quickly in both iOS and Android for list/collection view cells.

</comment></comment></comment><comment><USER10> Another example of this: table views in Cocoa. Enough cells to fill the screen are allocated and then just updated instead of re-created as cells scroll off screen.

</comment><comment><USER11> IIRC, LMAX Disruptor[0] uses the same concept with its ring buffer to avoid GC-related slowdown.

[0]: [https://github.com/LMAX-Exchange/disruptor](https://github.com/LMAX- Exchange/disruptor)

<comment><USER3> While it does avoid GC, it's mostly a faster way to share data between threads than the builtin concurrent collections.

<comment><USER11> Yep, that's what Disruptor is for. Here's a blog post by one of the devs giving more details about the ring buffer where she specifically mentions that objects are pooled to avoid the GC [http://mechanitis.blogspot.com/2011/06/dissecting- disruptor-...](http://mechanitis.blogspot.com/2011/06/dissecting-disruptor- whats-so-special.html)

</comment></comment></comment><comment><USER12> If this is a forgotten trick, then why did we learn about this in school? It was in Java classes though, never heard of it being needed elsewhere, but the concept is generally applicable.

<comment><USER13> IIRC it's discussed in Bulka & Mayhew - Efficient C++: performance programming techniques

[http://dl.acm.org/citation.cfm?id=320041](http://dl.acm.org/citation.cfm?id=320041)

</comment></comment><comment><USER14> Pooling and in-place reuse are two different things, to be sure.

This was a fun thing I remember writing: [https://github.com/newobj/ffwd/blob/master/Src/Core/Std/Allo...](https://github.com/newobj/ffwd/blob/master/Src/Core/Std/Allocator.h) When returned to the pool, each object used the first 4 bytes of itself to point to the next free one in a list, so there was no additional overhead.

</comment><comment><USER15> I can see a security nightmare lurking around the corner.

<comment><USER16> I don't know why this was downvoted. This vulnerability in Jetty was the result of sharing a buffer between requests: [http://blog.gdssecurity.com/labs/2015/2/25/jetleak- vulnerabi...](http://blog.gdssecurity.com/labs/2015/2/25/jetleak- vulnerability-remote-leakage-of-shared-buffers-in-je.html)

</comment></comment><comment><USER17> It's been a while, but this was a common technique for agent based modeling in MASON back in the day.

Having tens of thousands of agents constantly being garbage invalidated was the use case.

</comment><comment><USER18> If it's well-known it's not forgotten.

(Not really sure it's forgotten, either; it's used regularly for heavy objects, or when speed is _absolutely_ critical.)

</comment><comment><USER19> Object pooling is essential for performance in Unity 3D if you're dealing with large amounts of game objects.

</comment><comment><USER20> Object pooling is alive and well. Take a look at go's sync.Pool.

</comment><comment><USER21> question:

which is cheaper, stack object allocation/creation or object pooling, in languages like C/C++/Rust?

<comment><USER7> The stack is cheaper, but it is a limited size. If you need more objects than would fit on the stack, pooling might be a better choice.

<comment><USER22> The stack doesn't have to be limited. On a 64-bit system, you can give each thread a couple of terabytes of stack space with no problem.

<comment><USER23> For amd64 on linux you only have 128TB; with green threads I regularly use a lot more than 64 threads.</comment></comment></comment></comment>


Death of a troll - <AUTHOR> http://www.theguardian.com/technology/2016/jan/28/death-of-a-troll <comment><AUTHOR> Epic tale of a troll in an online Mafia game, where the players seem obsessed with doxing. A tad long but worth the read.

</comment><comment><USER2> I will never understand humans : be nice to them, treat them with respect and you won't make a big impression in their lives. But do the exact opposite and they'll love you for it. Go figure ...</comment>


Doomed Engineers: Careers even worse than yours  - <AUTHOR> http://world.std.com/~jlr/doom/doom_eng.htm

<comment><USER2> Every time I see Alan Turing's name associated with suicide I get angry and sad. He was killed by PTSD, effectively, given by his own country in gratitude for serving it so effectively.

<comment><USER3> True. Could he be made a British knight posthumous?

</comment></comment><comment><USER4> Perhaps it's because the story's apocryphal, but the story of Perillos of Athens probably belongs here:

"The Bronze Bull, Brazen Bull, or the Sicilian Bull, is an execution/torture device designed in ancient Greece. Perillos of Athens, a brass-founder, proposed to Phalaris, the tyrant of Akragas, Sicily, the invention of a new means for executing criminals; accordingly, he cast a bull, made entirely of brass, hollow, with a door in the side. The condemned were shut in the bull and a fire was set under it, heating the metal until it became "yellow hot" and causing the person inside to roast to death...

Phalaris commended the invention, and ordered its horn sound system to be tested on Perillos himself. When Perillos entered, he was immediately locked in, and the fire was set, so that Phalaris could hear the sound of his screams.

Before Perillos could die, Phalaris opened the door and took him away. Perillos believed he would receive a reward for his invention; instead, after freeing him from the bull, Phalaris threw him from the top of a hill, killing him."

\-- <http://en.wikipedia.org/wiki/Brazen_bull>

</comment><comment><USER5> Forgot to mention Frank Rosenblatt of the Rosenblatt Perceptron - <http://en.wikipedia.org/wiki/Frank_Rosenblatt> \- killed in boating accident.

<comment><USER6> Is Jim Gray - <http://en.wikipedia.org/wiki/Jim_Gray_(computer_scientist)> \- considered dead?

<comment><USER3> Since he was lost in early 2007, I would say yes for all practical purposes.

</comment></comment></comment><comment><USER7> Who: Henry Smolinski and Hal Blake

Deceased: 1973

Invention: Winged automobiles

Cause of Death: A suddenly wingless automobile</comment>


Bail Bloc: A cryptocurrency scheme to end bail - <AUTHOR> https://thenewinquiry.com/bail-bloc/ <comment><USER2> CoinHive + Social Cause = Bail Bloc

I've seen variations of this such as hurricane relief, etc. I'm not too keen on having Monero being the crypto because of the anonymous focus of Cryptonight altcoins. Here you'd want more transparency to see where the money trail goes.

The name escapes me but there was an ICO for a giving altcoin whose purpose was to track projects and spending. This way, you don't have Red Cross collecting from a disaster but not using the donations for that disaster.</comment>


The Apple Haters' 7 Stages of Grief - <AUTHOR> http://farley.tumblr.com/post/35132645118/the-apple-haters-7-stages-of-grief <comment><USER2> This started off okay, well I'll never predict an Apple product to fail, that'd be dumb based on points 2 and 3. But then after 4 it went way off the mark.

I would never purchase a sub-standard, expensive product for a friend or myself. Don't get me wrong, Apple products are good, great even in some regards. But they aren't the best and they are far from good value relative to competitors.

So at 4 I'd instead say: Compare current market leaders Nexus 4, Samsung S3, HTC One X+, iPhone 5, checking all those juicy specs like a good analytic nerd. Take into account aesthetics, OS preference, budget. Then make a decision. And by then I'd probably still hate Apple for their easy market dominance, but I'd be happy because I'd have a better device.

<comment><USER3> Isn't the iPhone 5 leading most if not all of the popular benchmarks? Hell it's even got LTE which apparently isn't a big thing any more.

Apart from screen size that list of android phones are inferior to the iPhone and aren't we all told that its not how big it is but what you do with it?

<comment><USER4> Not really, Nokia's Lumia 920 does better on most:

* Higher PPI and raw resolution * Better camera * NFC

Benchmarks, the Nokia wins with SunSpider...

Even versus the Galaxy S3, when benchmarked with ICS (though the phone was manufactured after ICS and specifically described as being optimized for Jellybean), the results were a very mixed bag (<http://news.ycombinator.com/item?id=4558580>):

iPhone 5 won in Browsermark, lost in GUImark, and Sunspider.

(That whole article was a little frustrating - many problems with the benchmarking, and the conclusion)

Disclosure: I've had an iPhone 4, 4S, iPad 3, which I recently (this weekend) moved away from to the Lumia 920.</comment></comment></comment>


Empty State: The Most Overlooked Aspect of UX Design - <AUTHOR> https://medium.com/@benjbrandall/the-most-overlooked-aspect-of-ux-design-could-be-the-most-important-f1df7a5729e9#.c6l84n810 <comment><USER2> For a post about UX, I was expecting to _see something_ above the fold! I actually thought it was broken (eg due to adblock/ghostery) and almost closed the tab without scrolling down.

Good post though. I've seen some pretty terrible empty states in various apps...

</comment><comment><USER3> Great post. Every app designer should think about this.</comment>


So...Google admits they've been watching you! - <AUTHOR> http://www.routermods.com/2007/02/21/so-google-admits-theyve-been-watching-you/ <comment><USER2> Google has alot of data and as you can see alot of reasons to share it!

</comment><comment><USER3> Interesting to know what they have the power of doing!</comment>


Django Deployment Workshop by Jacob Kaplan-Moss - <AUTHOR> http://ontwik.com/python/django-deployment-workshop-by-jacob-kaplan-moss/

<comment><USER2> I learned a lot by watching this and I highly recommend it but the viewer should be warned that many of the tools and techniques seem to have fallen out of favor in the Django community.

In my personal experience nginx+gunicorn turned out to be _much_ easier to deal with than the reference Apache+mod_wsgi. It also seems to be JKM's current preference. Likewise, buildout, while very powerful can be a bit burdensome, and has fallen out of favor relative to pip+virtualenv.

For more current info, check out this extended chat with JKM and other lead Django developers here:

[discuss] <http://news.ycombinator.com/item?id=2112160> [direct] <http://www.revsys.com/officehours/2010/nov/05/>

Note: This video is a dup to <http://news.ycombinator.com/item?id=1830696> though I'm surprised that post only got one point. There are probably others.

<comment><USER3> Also, use PIP and VirtualEnv! Makes deps and packages so easy. Especially with virtualenvwrapper.

</comment></comment><comment><USER4> I can recommend this. I've used this workshop to set up a few of my own production Django websites.

All materials, source code etc. are here.

<https://github.com/jacobian/django-deployment-workshop>

One trick I love is that he deletes all Apache configuration files and starts from scratch. I've found this a great way to learn what is necessary and what is overhead. Anybody else using this approach?

<comment><USER5> Stopped using apache long ago, but back then and today I delete every config line I don't understand. Which usually breaks stuff, which usually leads to me understanding (learning) what that config line did and why it's needed.

</comment></comment><comment><USER6> Why is pulling caching into the middle of an app a good idea? Memcached should be a last resort. The database should have a cache for things that get asked for over and over. Having a full page caching solution like Varnish is pretty doable for most sites where the only customization is the username at the top of the page which could be populated with javascript. Cache invalidation is a hard problem, why would most devs want anything to do with it? On lightly customizable sites, the only thing I would consider using memcached for is a faster session store.

<comment><USER7> So caching on the front and back ends is perfectly acceptable, but in the middle is not?

In reality, large sites would and should use all three to their advantage.

<comment><USER6> It's perfectly acceptable. I just think it should be the last thing you do instead of the first. If you are Twitter or Facebook caching in the middle is a must, pages are just too unique. If you have some newspapper site, why add the complexity to your app when there are great solutions on the front and back ends written by really smart developers.</comment></comment></comment>


Learning Racket #1: Introduction - <AUTHOR> https://artyom.me/learning-racket-1 <comment><USER2> From the index page: _Warning: as of January 2016, I have abandoned this series (the first post was written in February 2014)._</comment>


How to protect humans in a fully automated society - <AUTHOR> https://www.theverge.com/2019/2/1/18205204/automation-ai-software-disruption-artificial-intelligence-big-picture <comment><USER2> I have always wondered if we need to change currency for transactions if machines and automation can do everything humans used to do...for example, reputation can be form of currency..health is another form of currency..can you create transactions based on one or more forms of common / human universal values?

<comment><USER3> This is a really stupid idea, because basically it will open up loopholes of moral relativism, and you'll see them exploited through arbitrage.

How might this prove worse than what already happens? Simply put, amoral transactions are weakened by risky barter trades.

A codified exchange means that a more exacting moral relativism is hardened, and the capacity for pettiness goes up. Sort of like how vacation days work, but now, we're talking about prostitution in exchange for starvation, based on whether web browsing habits indicate a propensity for racism, which carries a cost to one's reputation index.

Then we get into political re-education, to boost credit score, and so on. Defensive driver credits improve insurance prices, but what if your IQ qualifies your decision making to a degree that authorizes participation in targeted political assasination for the greater good. The smartest among us are the best people to entrust in killing those who are of potentially devastating cost to society, no?

So, what if we needed to kill people now, to prevent the next potentially horrible election? Would we entertain the thought of murder to cleanse the ballot of absurd votes?

<comment><USER2> I think I understand what you are saying.

But it makes me want to go back and question 1. Why does moral relativism exist? 2. Is it naturally selected for the population and culture?

Let us consider an 'idea'. It can be 1. Moral 2. Immoral 3. Amoral. The evolutionary fitness of an idea places it on a scale with one end being moral and the other end being immoral. So any idea is somewhere on the spectrum.

It's a human universal that murder is 'wrong' but it is 'less wrong' if it was in self defense. It will be bordering 'not wrong' if it was to save one or more innocent lives.

I think any society has its own laws and values are on a sliding scale already. We are simply creating a reputation system. Reputation systems have always existed. In fact, the erosion of reputation tracking and shunning of moral relativism by assuming that all 'morals' have a static value is likely worse for our modern times.

I would request you to consider the alternative. That everyone follows the same moral code..and how that would go down if we made it a global rule. Every culture is an unique ecosystem in a petri dish...society is always poking and prodding and experimenting as times change.

I would even suggest that the economic construct we call 'money' has altered morals and values over time and continents and cultures.

People are diverse...why can't morality be on a sliding scale. It seems absolutely plausible to me.

The more I think about it..a reputation system is a self correcting mechanism in the eco system it is contained.

That's as far as I have thought this out. I will have to think more about this.</comment></comment></comment>


Show HN: iOS App to get toilets within walking distance using OpenStreetMaps - <AUTHOR> https://github.com/samkhawse/OpenStreetAmenities <comment><AUTHOR> I like playing with OpenStreetMaps, but there aren't many sample apps that use it as a playground. This app is a fun exercise in creating an testable MVVM app using Swift. I'd be happy to hear any feedback that you guys have.

</comment><comment><USER2> This is literally the same as an app from the Seinfeld reunion episode [1] on Curb Your Enthusiasm 2012, except theirs was called: "iToilet".

[1] [https://www.youtube.com/watch?v=Pci_7o6cCbM](https://www.youtube.com/watch?v=Pci_7o6cCbM)</comment>