The USA Freedom Act: What's to Come and What You Need to Know - <AUTHOR> https://www.eff.org/deeplinks/2014/11/usa-freedom-act-week-whats-come-and-what-you-need-know <comment><USER2> This page, content-wise, doesn't appear to have a clear message.

EFF -- if you're listening -- it would be great to stake a very clear position on this bill at the very top of your statement.

Something like "We urge you to support the USA Freedom Act."

Since neither the name of the bill itself, nor anything on the page, makes it clear that the "Freedom Act" is an act _against_ the digital surveillance of US citizens, someone who had never heard of the Act, or someone skimming the page, would not gain a meaningful conclusion.

I was unsure at first whether to support or decry the bill, and heck, the name even sounds like "Patriot Act." The title of the page itself does no help: it paints an ominous message in a severe tone.

Marketing: it's important. Be clear.

"The signals we give—yes, or no, or maybe— should be clear; the darkness around us is deep."

William Stafford -- [http://williamstafford.org/spoems/pages/ritual.html](http://williamstafford.org/spoems/pages/ritual.html)

<comment><USER3> The first sentences are:

"The USA Freedom Act, the leading contender for NSA reform, is set for a vote this week. The bill has some problems, but is a major step forward for surveillance reform. That's why we're asking you to call your Senator and urge them to support the USA Freedom Act."

How much more clear do you want it?

<comment><USER4> The HN title, which is all I've read so far, leads me to believe this is another Patriot Act. Clicking through, it appears this is also the title of the article, so it's hardly HN trying to editorialize.

Since I have enough information to determine that I don't want the Freedom Act to pass, why would I click through to the article?

<comment><USER5> >The HN title, which is all I've read so far

So you didn't read the article, which was the original complaint of the root comment. If you can't take 30 seconds to read about legislation that could significantly impact the power of the security state to spy on the American public, you're not doing your duty as a citizen.

<comment><USER4> Nothing in the title indicated that it was about legislation that could significantly impact the power of the security state to spy on the American public. I thought Obama was legalizing torture.

So why would I read it?

</comment></comment></comment></comment></comment><comment><USER6> The bill isn't all it's cracked up to be. It creates new legal basis for some surveillance activities that are arguably illegal, immunizes companies who participate in mass surveillance, and (most problematically), reauthorizes the Patriot Act. See: [http://sunlightfoundation.com/blog/2014/09/15/sunlight- ellsb...](http://sunlightfoundation.com/blog/2014/09/15/sunlight-ellsberg- pccc-tenth-amendment-center-and-others-oppose-the-senate-version-of-the-usa- freedom-act/)

<comment><USER7> I've noticed this quite a bit recently.. Maybe I'm just older and it has being going on forever. Bills on the surface that look like they are accomplishing what you want, but when you read between the lines they actually give the nod to stuff you don't want to be happening at all.

Secret courts? Advocate. Now secret courts are more OK because apparently we reviewed them and decided they are fine with an advocate. This just cements the status quo into our system.

<comment><USER8> Rome wasn't built in a day. Legislation is a series of compromises. Think of it more as moving down the field towards your goal against the opposite team, instead of just teleporting there. Specifically, this bill makes phone spying much more onerous, and critically increases transparency which will immediately curtail abuses and fuel further debate. This isn't the last word on the topic.

<comment><USER9> > This isn't the last word on the topic.

Are you sure about that? Because once such law get effective, replacing it will read like an admission of failure to everybody that helped it pass.

</comment></comment></comment></comment><comment><USER10> Wait, why is a bill even needed? Aren't current laws and the constitution itself already enough? If they are breaking the law now, why should we believe they won't disregard the Freedom Act?

<comment><USER11> Because there are people of good faith who work at the NSA. They have been told by their losses that the programs they are implementing have been reviewed and are perfectly legal. If Congress makes a clear statement on the matter then that fig leaf will no longer apply.

</comment></comment><comment><USER12> I don't think the EFF has adequately answered the concerns raised by Marcy Wheeler about the risks and weaknesses of this bill: [https://www.emptywheel.net/2014/11/12/why-i-dont-support- usa...](https://www.emptywheel.net/2014/11/12/why-i-dont-support-usa-freedom- act/)

<comment><AUTHOR> If I'm not mistaken, this is EFF's latest analysis of the bill, as well as their justification for supporting:

[https://www.eff.org/deeplinks/2014/08/understanding-new- usa-...](https://www.eff.org/deeplinks/2014/08/understanding-new-usa-freedom- act-questions-concerns-and-effs-decision-support)

The bill isn't perfect, but it'll mean that the government collects less information on innocent people, there'll be greater transparency, and an advocate for citizen privacy in the FISA court. Beyond that, it's the most likely vehicle for NSA reform. We're unlikely to see anything stronger if this doesn't pass. And it seems like a better bet than trying to push for Section 215 to sunset next year.

<comment><USER12> As per the article I linked, it also likely nullifies the Klayman case, a case which could very likely turn out to have an even bigger effect than this bill.

<comment><USER13> Some background to those not familiar from Wikipedia[0]:

~Filing~

 _" In Klayman I, the plaintiffs, subscribers of Verizon Wireless, brought suit against the NSA, the Department of Justice, Verizon Communications, President Barack Obama, Eric Holder, the United States Attorney General, and General Keith B. Alexander, the Director of the National Security Agency.[5] The plaintiffs alleged that the government is conducting a "secret and illegal government scheme to intercept vast quantities of domestic telephonic communications" and that the program violates First, Fourth and Fifth Amendment and exceeds statutory authority granted by Section 215.[5] In Klayman II, the plaintiffs sued the same government defendants and in addition, Facebook, Yahoo!, Google, Microsoft, YouTube, AOL, PalTalk, Skype, Sprint, AT&T, Apple again alleging the bulk metadata collection violates the First, Fourth and Fifth Amendment and constitutes divulgence of communication records in violation of Section 2702 of Stored Communications Act.[4]"_

~Current Status~

 _" On January 3, 2014 the government filed notice of appeal. On February 21, 2014 government filed a motion for extension of time to file dispositive motions in wake of the President's changes to Section 215 metadata program on January 17, 2014.[17][18] The parties argued the case before a three-judge panel of the D.C. Circuit Court of Appeals on November 4, 2014.[19]"_

[0]: [https://en.wikipedia.org/wiki/Klayman_v._Obama](https://en.wikipedia.org/wiki/Klayman_v._Obama)

</comment></comment></comment></comment><comment><USER14> This is pretty light on details.

Is there a TLDR of the changes around? Post-water-down version ideally.

<comment><USER15> [https://www.leahy.senate.gov/download/usa-freedom-act-two- pa...](https://www.leahy.senate.gov/download/usa-freedom-act-two-pager-final)

<comment><USER16> Wow a bill that isn't the exact opposite of what its name would imply. Admittedly I was not encouraged when I saw the phrase "USA Freedom".

<comment><USER17> Names of bills nowadays have little to do with their content. Maybe we should just get rid of names altogether and refer to them by SHA hashes of their content...

"Some moron amended bill f7eed03, now it's bill f5ba821. Do you know how much I had to tweak the language in order to generate a hash that looks like 'freedom'?"

<comment><USER18> Why not refer to the bill as H.R.3361.

For anyone interested, here is the bill in question: [https://www.congress.gov/bill/113th-congress/house- bill/3361](https://www.congress.gov/bill/113th-congress/house-bill/3361)

<comment><USER17> Hashes would make it a lot easier to detect sneaky last-minute changes.

<comment><USER19> At the same time, though, you lose the thread if you miss any "X is the next version of Y" update. Probably HR-number-hash would be ideal.

<comment><USER20> or maybe just 'version numbers'.

HR3361.4 HR3361.5 HR3361.6

etc

Easier for everyone to understand, not just geeks...

<comment><USER19> People get tempted to play shenanigans like reusing numbers.

<comment><USER20> datetime?

HR3361.20141106142502

almost as bad as hash, but immediately parseable and understood if a version was before or after something else.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER21> Yeah, because the EFF is going to be unbiased when it comes to explaining legislation.

I'm so sick of how partisan the EFF has become.

<comment><USER22> What does "unbiased" mean in the context of a group that has a stated advocacy purpose?

Why would we expect or want anything else?

You're free to act or not upon the EFF's urging - but at least they're honest about their goals.

<comment><USER21> They misrepresent views and lie about legislation.

What's honest about that?

<comment><USER23> What misrepresentation? What lies?

FWIW, I've read some other articles about this bill, and my opinion of it has _improved_ slightly since reading the EFF brief here.

<comment><USER21> Last time I paid attention to what the EFF had to say, they were spewing lies and propaganda about CISPA.</comment></comment></comment></comment></comment>


Bitcasa and convergent encryption - <AUTHOR> http://cdixon.posterous.com/bitcasa-and-convergent-encryption <comment><USER2> SpiderOak has a post on why they don't do this: [https://spideroak.com/blog/20100827150530-why-spideroak- does...](https://spideroak.com/blog/20100827150530-why-spideroak-doesnt-de- duplicate-data-across-users-and-why-it-should-worry-you-if-we-did)

<comment><USER3> If the average consumer thinks the problem bitcasa is solving is a strong enough pain point and use bitcasa's product anyway, then I can see SpiderOak moving into this area regardless of the security issues it brings up. Unfortunately, the average consumer doesn't care enough about security for "implementation details" to sway them if they have a pain point that the product solves - even if those implementation details make a world of difference in terms of privacy. There are already products out there that store files from a user's devices (laptops, desktops, etc.) on the cloud with no mention of not having access to the encryption keys if they do do encryption: <https://www.sugarsync.com/> is an example.

A little off topic: I do think that the community has done a good job drilling it into the average user to look for the green bar and padlock in their browser when they go to their bank's website. It means Security. heh.

</comment></comment><comment><USER4> I am missing something.

The encryption key is the hash of a chunk of data, so for identical chunks the encrypted data is identical. Understand.

But suppose I want to decrypt. To generate the key, I need to hash the unencrypted chunk of data. But if I have unencrypted data, I don't really need decryption.

I guess my question is - how does decryption work when I have lost the files on my local machine, but I remember my password?

<comment><USER5> Good question!

[Wild thought] Create a file with a list of H(chunk) forall chunk you own. You encrypt this file with a local password that the storage provider does NOT see and plainly store it.

<comment><USER4> I re-read the paper, and they seem to be doing what you describe. The list of H(chunk) is called "Chunk Map", and local password is called "dedicated map key"...

.. but after that they get into another round of encryption with the users public key - that's where I get lost.

</comment></comment></comment><comment><USER6> He mentions homomorphic encryption, but isn't that more for changing data, not searching it?

<comment><USER7> It's for performing any function on the data. A search is a function which takes the data as input and returns the search results as output.

<comment><USER6> All the homomorphic schemes I've seen do addition and/or multiplication. Is there one that does substring matching, or can you somehow use addition and multiplication to search?

<comment><USER8> I wonder if you could develop a parameterized algebra over a search string _x_ that defined _x_ as the identity for addition or multiplication.</comment></comment></comment></comment>


How to handle division by zero in a language that doesn't support exceptions? - <AUTHOR> http://programmers.stackexchange.com/questions/208677/how-to-handle-divide-by-zero-in-a-language-that-doesnt-support-exceptions <comment><USER2> Thinking back to when I was a novice programmer, and the consequences of my mistakes when working on stuff that was probably over my head, "terminate with extreme prejudice" seems like the only acceptable option. No result and a call from a user seems better than a wrong result. Folks will use a tool for safety (personal or financial) critical tasks without really thinking about failure modes.

Things like pocket calculators, Excel, and even web forms, will cough up a lung and quit when they hit an exception. So I think that novices of today are probably amply familiar with this mode of operation, even before learning to program.

<comment><USER3> It's bad enough even when you've got years of experience of debugging programs and you find an error that only reveals itself at the end of some long sequence of operations. For a language that's supposed to be targeted at the inexperienced, letting bogus results propagate is just cruel.

I'd definitely incline towards an immediate abort. But for processes that run overnight, presumably because they take a long time, who can say? If there's a 1 day turnaround time, and the results are so important that it absolutely must not stop, and yet inexperienced programmers are responsible for writing the code that runs... well, I'm not sure one thing is going to be a huge improvement over something else. It's probably going to end up a bit painful whatever you do.

</comment></comment><comment><USER4> For IEEE floating point, there is NaN and +/-Infinity which are raised when dividing by zero: [http://grouper.ieee.org/groups/754/faq.html#exceptions](http://grouper.ieee.org/groups/754/faq.html#exceptions)

For integers that don't have NaN/infinity values the options are less clear. Note that languages with two's complement fixed width signed types like int32 have the same problem with INT32_MIN / -1, since the result is not representable as an int32.

<comment><USER5> Yeah, but they usually just say that the result is undefined. At least that's what C and C++ do. And it's useful for optimizers, because they can assume more about basic arithmetic in signed types and do some neat tricks.

<comment><USER4> > Yeah, but they usually just say that the result is undefined.

Just to clarify, I think you're talking about the INT_MIN / -1 case?

I think that floating-point division by zero is defined in C and C++.

<comment><USER5> Yes, I was talking about the signed integer overflow. Floating point division by zero is of course defined in C/C++, as per IEEE 754.

</comment></comment></comment></comment><comment><USER6> NaNs are an incredibly good idea, but it turns out we really need only one.

Also, two's complement signed integers have an asymmetry that INT_MIN < -INT_MAX.

Therefore, I were to design a CPU today, I would add arithmetic instructions that treated INT_MIN as a NaN, thus removing the asymmetry, and giving us an integer NaN.

16 bit int values would range from -32767 to +32767, with the bit pattern now used for -32768 being NaN. You would use it for everything that isn't representable as an int (overflow, underflow, 3/2 (as opposed to 3 mod 2), etc)

Yes, that CPU would also would have instructions for doing the regular modulo 2^16 arithmetic, but 'sane ints' would help not penalize programming languages that want to do sane integer arithmetic.

<comment><USER7> 2's complement (the binary representation of numbers in a cpu) has one awesome feature, if you add two signed numbers, even if one or both are negative, you get the right answer. This means that you can add two numbers without checking if one is negative, saving time and scarce circuit space. In order to add a NaN, you'd need a check for NaN. This would basically double the amount of time an add would take, and add more circuit paths to the core of the cpu.

If we use a single bit dedicated to signalling NaN, the overhead might be worth it. Of course, we lose half of our range in doing so.

<comment><USER8> It wouldn't double the amount of time for an add (or any other operation), if it's implemented in hardware the comparison can be done in parallel with the addition, and the result of the addition ignored at the end if the compare returned true.

It would increase the use of space by the circuit, but not by much. And we already have circuitry doing similar things to set the flags (zero, carry, overflow, parity...).

If you want a real-world system with a single extra bit for every value (on registers at least), see the Itanium and its NaT bit (used for speculative loads).

<comment><USER7> After writing it, I realised that you could just do both in parallel, but it soon makes things much more complicated since nearly everything is based on adds.

</comment></comment></comment></comment><comment><USER9> I liked the ternary operator where you provide an alternate value in case the denumerator is 0.

One more idea I didn't see is to mark the variable as "invalid". A general "this variable doesn't have a value because the program did something bad", which carries a full stack trace with itself. Then, if you ever use that value anywhere, the result is again invalid, with the new operation attempted on top (i.e. if the invalid value ever appears in an expression, the entire expression yields invalid and no function calls are attempted; an exception would be boolean operators - true or invalid is true and false and invalid is false - there may be other exceptions to that, too). Once that value is no longer referenced anywhere, you log a nice long description of the entire chain where things were wrong and continue business as usual. Maybe email the trace to the project lead or something.

Something like the Maybe monad basically. It will work with anything else that can fail, too, and you can allow people to construct their own invalids. And the program will continue to run as long as the error isn't too deep, which is what is really wanted here, I think.

<comment><USER10> > One more idea I didn't see is to mark the variable as "invalid". A general > "this variable doesn't have a value because the program did something bad", > which carries a full stack trace with itself.

A simple way to handle exceptions like that (and I didn't see it mentioned among the answers) is to return 2-tuple from the function: result value and error information. The latter could be empty, but both could be present.

Though this might be overcomplicating things, given that OP targets the language at novices.

<comment><USER11> Yep. You'd think that in, say, Haskell, the division operator would return Maybe Num. It's much more obvious when you've got Nothing than when you've got NaN.

</comment></comment></comment><comment><USER12> My favorite non-discussed answer on SE or here on HN (or at least I didn't find it) is to disallow division other than as syntactic sugar for literal definitions (and just output an error message if your syntactic sugar has a zero denominator)

But but but how would they ... don't worry about it, its a programming language for novices. If they knew what to do, they wouldn't be novices using a novice language anyway.

I like this design because its self limiting. If they don't understand the problem, they certainly won't understand how to fix it when it breaks anyway.

The problem with giving 3 year olds matches and knives and guns is not some weird inherent moral argument about the items, its because the kids have no idea how to fix some resulting problems and even the non-noobs can't fix some of the resulting problems. So don't give noobs the ability to shoot themselves in their foot. Its pretty simple.

Of course a logical next extension is removal of logarithms and many other math functions. Thats OK. Its a language for noobs so it doesn't have to have a full set of arithmetic. Unless this guy is implementing the next "mathematica" or "R" or similar, in which case he has big problems.

</comment><comment><USER13> Sounds to me like a language targeted at novice developers (and I suppose with that author means people with no programming background) should add a very strong emphasis on simulations and notifications.

Won't it be ok that program crashes if :

1\. it was likely the error was catch during a simulation before deployment

2\. author of code received a mail immediately to let know something bad occurred

Such a language should probably be much bigger than our usual programming language and include at core what is usually added by dev tools (tests and notifications).

There was a discussion on HN a few days ago on "test only development" (link has been marked "dead" since then, though), that is tests that produce code. It reminds me of what "programming" a holodeck looks like in star trek : you describe what you want and computer manage to produce code that achieves it.

Without getting so far, you could ask your users to describe what data looks like in input and what it should looks like on ouput, as a core feature of the language rather than on a separated and optional layer. Then, on build, you run a "simulation" (yes, that is just testing) to ensure code behaves as expected.

And you build notifications (by mail, for exemple) as a core feature of the language too, maybe even include version control (you have to think hard how to make that user friendly for your target) in order everybody has a idea of what changed before the crash (this could be reported in notification).

When you have all of that, it does not matter if division by zero makes program crash.

</comment><comment><USER14> This isn't related to the question at hand, but one of the most interesting ways to handle this was in a smalltalk app i saw, which turned the result into a custom NaN and stuffed the execution context into the variable so even if you restored it from the database, you'd know exactly where the divide by zero occurred. That's different from all the other languages where NaNs propagate but you don't know their origin.

</comment><comment><USER15> It entirely depends on the application's role.

If it's used in a video game with no save slots, where a crash is just going to lose lots of progress, I'd rather attempt to keep going even if there's an error, but only in release builds. Crash in debug builds to try and alert the programmer.

If it's used to save important work, where the bad divide could lead to data corruption, it's probably better to crash than risk the corruption. Although if you have the capability to ask the user what to do, that would be ideal.

If it's to develop something that handles money or lives, or is eg deployed on a satellite, not even crashing is acceptable. In that case, I'd force the language to have the user test with something like Haskell's "Maybe". For instance:

        if(result = x / y) {  //x / y returns an object: maybe<int>
          z = result.get()
        }  // } else { handle division by zero case }

(edit: of course even that isn't fool-proof if the user tries hard enough to work around your safeguards. But you can't blame the language if the user is actively thwarting it.)

<comment><USER16> There's two competing software philosophies which are sometimes called "banker" and "moon rover." If you are writing a bank program, you want to catch errors immediately, to ensure that mistakes can't silently propagate. But if you are writing a moon rover, under no circumstances abort: keep going no matter what!

We have two Mars rovers right now, Opportunity and Curiosity. Fittingly, these use PowerPC chips, which are in the moon rover camp: divide-by-zero is zero. Really! Go get a PowerPC Mac, do a divide-by-zero, and you just silently get zero. Solution #1 baked into the ISA. Not many people seem to have noticed, so it can't have caused too much trouble.

(Apologies for reposting my reddit comment here)

<comment><USER15> Yep, this is also the case with some gaming systems; eg the SNES CPU's ALU, and also its Sony APU (SPC700). Division by zero continues on instead of crashing. They usually return 0 for the quotient, and ~0 ("-1") for the remainder.

So if it's not too much work, I'd like my language to give me the option based on the type of application I want. But if it were forced to be a choice, I'd probably err on the side of safety.

</comment></comment></comment><comment><USER5> Sounds like a new PHP in the making, someone even mentioned it in the link. I think it's the only language I have worked with that's so happy to chug along and ignore errors that arise in execution. And the exception system was just thrown on top of it in PHP5 as an afterthought. Ugh.

<comment><USER15> I greatly dislike the language myself, but to be fair, it does allow the case where even a notice will terminate execution; and then to special-case functions that can safely fail with an @ prefix. Most people just turn all of that off with error_reporting()

</comment></comment><comment><USER17> Would this not be an excellent case for an optional type or Maybe monad? Instead of all NaN operations returning NaN, have them all return an optional type, similar to how swift dictionaries return an optional for property access. This is enforceable by the compiler.

<comment><USER18> That's was I proposed at reddit (a maybe monad).

</comment></comment><comment><USER19> There was, well, a _long_ thread on integer overflow on rust-dev a couple weeks ago.

[https://mail.mozilla.org/pipermail/rust- dev/2014-June/010363...](https://mail.mozilla.org/pipermail/rust- dev/2014-June/010363.html)

</comment><comment><USER20> Crash immediately. A divide by zero is always an unrecoverable error. Same story with array out-of-bounds access and null dereferences.

<comment><USER21> Not really. Sometimes it's faster to do the calculations and check after the fact if NaN flag was set instead of checking for division by zero at every point. Languages that auto crash on division by zero will always be slower at such applications.

</comment></comment><comment><USER22> A really sly option would be to, effectively, allow infinitesimals. So 10/0 would return 10/0 (perhaps a kind of NaN but with more information retained), and if you multiplied it by 0 elsewhere you'd get 10. Probably a bad idea for novice programmers but interesting to consider.

<comment><USER19> No, this is wrong.

In order to work with infinitesimals in any reasonable way, you have to define how they work. There _is_ a reasonable way to extend the real numbers in a larger field containing infinitesimals. Such a field is non-Archimedean and has very surprising properties: for example, you can construct a geometry in which Euclid's fifth postulate is false, and yet the angles on a triangle still always add up to 180. These fields also allow you to formalize your intuition about the way infinitesimals like "dx" and "dy" in calculus and analysis work: you can take an equation and multiply both sides by dx, for example. This is ordinarily meaningless, since the term dy/dx is ordinarily just notation that does not actually signify a fraction. In non-standard analysis, it IS a fraction. I think it's a shame that analysis classes in college don't use non-Archimedean fields because the proofs are so much simpler.

However, even in these fields which admit infinitesimals, there is no definition for x/0\. You can prove it for yourself.

Suppose x = 10/0.

        0*x = 10
        (0+0)*x = 10
        0*x + 0*x = 10
        10 + 10 = 10
        20 = 10

So this is just an all-around bad idea, because it permits us to say that 10 = 20. And all we had to say that 10/0 had a value... we didn't even say what that value was.

P.S. Although infinitesimals exist, non-standard analysis still does not permit you to, say, plug ∞ into an equation, because there are many different infinite numbers. However, other systems (projective geometry) admit ∞ as a value.

<comment><USER23> But in an environment manipulating symbols where one of them 'x' has the property that multiplying by zero gives ten, I don't think the above sequence could happen, or at least the symbolic evaluator would arrange things so that the first time it sees '0 * x' it replaces that with 10. So to evaluate the truth of the expression '(a+b) * x = 10' with 'a' and 'b' equal to zero, we just need to ensure the 'a+b' is evaluated to zero before the multiplication, using the axiom 'n+0=n' and we are back to '0 * x' on the LHS, which is ten.

I think it should be possible with appropriate precedence of the evaluation rules?

<comment><USER19> You're turning something which is merely wrong into a total nightmare. Suddenly, 0+0 is not 0, because you have to wait to see if you multiply it by x first before you can evaluate 0+0! Now there are multiple distinct values for 0! Chaos and disharmony abound! In your system, 0+0=0+0, and 1+1=1+1. You can't simplify any of your equations! In your system, 1+1=2 is FALSE!

No, seriously. Quit while you're ahead. Now that you know that dividing by zero and getting a result is not a logically consistent proposition, you can stop trying. That's the awesome thing about logic: once you PROVE something is impossible, you're done.

</comment></comment></comment></comment><comment><USER24> How do you specify a value that is neither greater than nor less than in no more than 2 bits?

<comment><USER25> It would be equal. (to what?)

<comment><USER26> It could also be fuzzy!

In combinatorial game theory, the star game is fuzzy with zero: not less or greater, but not equal either.

The zero game is (iirc) the game where neither the left nor the right player have any moves, so whoever's turn it is loses.

The star game (*) is iirc the game where both players have the move to move to the zero game, so whoever starts wins.

But the star game is fuzzy with the zero game, less than the 1 game, and more than the -1 game.

Iirc.

<comment><USER19> Yes. To elaborate, this construction is called the "surreal numbers", and it is the largest ordered field. All ordered fields are isomorphic to subsets of the surreal numbers.

</comment></comment></comment></comment><comment><USER27>
       result, err := x / y
       if err != nil {
          do something
       }

<comment><USER28> Since you are using go syntax... I don't think that this will work in go, because division by zero will cause the function to panic.

<comment><USER27> Actually, it doesn't even compile in go, because / doesn't return two arguments. But he's writing his own language, not using go, so this limitation need not apply.

</comment></comment></comment><comment><USER29> What's the difference between option 3 and an exception?

<comment><USER19> Option 3 is like calling abort() in C: you can't stop it from killing the process, unlike exceptions which can be caught and handled.

<comment><USER29> But why would you want to catch and handle division by zero? Seems like the normal thing an exception should do in that case is to kill the process.

</comment></comment></comment><comment><USER30> I would have said you can do it like this as in swift.

let x = 1231231 let z = 0

if z == 0 { println("Cant divide by zero") } else { println(x / z) }

But swift doesn't support exceptions either. :/

</comment><comment><USER31> To paraphrase a famous quote:

If when faced with a problem you say "I know, I'll make my own computer language!" Now you have 2 problems.</comment>


What is new in IPython 1.0 - <AUTHOR> http://ipython.org/ipython-doc/dev/whatsnew/version1.0.html <comment><USER2> Please, this is an alpha. There are still things to polish even after a long week of hacking all together in berkley. Try not Tweet and CO. that it has been released, warn people that this is an __alpha __. But we gladly accept feedback (and fixes) on bugs and docs. Yes it will be on PiPy soon, but only when ready.

Telling to everyone to read the release when it is not done will make more harm than good as people continue to visit dev-doc afterward, and the current version is/will be inaccurate because of last minutes changes.

Thanks a lot for your enthousiasme.

<comment><USER3> Please note it as such in the release notes until it is finally released, like LLVM and GCC do.

<comment><USER2> Will do, but usually the link contains `dev` prefix, the root of the doc says `1.0.0a`. We never link directly from main web site to dev doc; You have to manually enter the dev docs. It is still a lot of protection. We'll try to add a prefix on every pages.

</comment></comment></comment><comment><USER4> Very cool, I'm looking forward to checking this out. Support for injecting HTML, javascript, etc. into the notebook and even loading custom css & javascript sounds great. I suspect we'll start seeing some really slick looking notebooks with pretty themes.

<comment><USER5> Woah, support for inject HTML, etc. sounds very interesting, and seems like a big deal.

On another point: I'm increasingly intrigued by the idea of having something like IPython (or perhaps, IPython itself) be used as your command-line shell. Right now it's possible, but in a bit of a long-winded way. I think this is a matter worth looking a little more into.

<comment><USER6> > Right now it's possible, but in a long-winded way

How is it long-winded? Basic operations such as cd, ls, etc., all work inside IPython.

Also, try envoy[0] for subprocesses.

[https://github.com/kennethreitz/envoy](https://github.com/kennethreitz/envoy)

<comment><USER5> Those very basic operations work, but it's not feasible yet to use it exclusively as a shell and be able to do anything moderately complex without getting fancy with subprocesses and so on. Though, it's been a while since I used it (2 years) -- have things changed significantly in this time that now make it a good candidate to use as a command-line terminal?

<comment><USER7> Precede any command by "!" and it sends it to bash, you can use git etc. like this.

<comment><USER5> Cool, I didn't know this.

However, still I wonder if that's enough. I mean, I can imagine that could get annoying really fast considering ! is a little tough to get to on the keyboard. Maybe a modal switch (a la vim, a mode for full blown shell, a mode with IPython being normal IPython) is a good option.

I really hope something like this eventually works out. Command-line shells seem too much like relics of the past, they can stand to be improved with some of the new UI sensibilities. IPython is one thing I can think of that is poised to fit and interact well with shells.

<comment><USER8> [http://ipython.org/ipython- doc/dev/interactive/shell.html](http://ipython.org/ipython- doc/dev/interactive/shell.html)

Check that out, I think that's along the lines you are thinking.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> If you are a pythonista and not using iPython Notebook for exploration... I posit that you are, in fact, doing it wrong. Its soooooo goood.

<comment><USER10> I upvoted you, but I am ashamed to say that I don't really understand how to use IPython notebooks. Can you recommend a good resource for learning how to use them?

So much of my exploratory work with IPython is to explore the Django models I use in my apps, and I am having trouble seeing what a notebook adds for me.

<comment><USER11> Watch a good tech talk at x2 speed. I would say most technical talks end up on Youtube and/or Vimeo (or Blip.tv). I remember there was a good one from Pycon..

If the project is notable enough a search like this usually works: [http://www.youtube.com/results?search_sort=video_view_count&...](http://www.youtube.com/results?search_sort=video_view_count&search_query=ipython)

<comment><USER12> How do you watch a YouTube or Vimeo video at 2x speed? Is there a browser extension or something? I've often wanted to do that.

<comment> iso-8859-1 If there's no option, just use keepvid.com or similar and play it with Mplayer. Uses way less CPU too.

<comment><USER13> [http://rg3.github.io/youtube-dl/](http://rg3.github.io/youtube-dl/)

</comment></comment></comment></comment></comment></comment><comment><USER14> But they have not fixed the embed bug that prevents you from embedding IPython within another IPython session. I find the embedded IPython _so_ useful during debugging. I really wish it could work from within an IPython session.

<comment><USER15> I'm not familiar with embedding ipython, so maybe I"m way off the mark, but I use ipdb for the use case you're referring to. Works within ipython and all

<comment><USER14> I should try ipdb. I've been using pdb (which I usually do using postmortem pdb.pm(), after my program crashes). But try out

from IPython import embed; embed()

instead of pdb.set_trace()

It starts a whole IPython interpreter right there with all variables loaded. I like it because I can do inspection, plotting etc etc.

<comment><USER15> Ah, yeah ipdb has much of the same functionality but not a full-fledged ipython instance, I don't believe.

</comment></comment></comment></comment><comment><USER16> Sounds kind of interesting, but when I go to check it out I find out that IPython 1.0 has not been released yet. Couldn't you have waited to make this post untill it was actually available? You're missing out on installs this way.

<comment><USER17> This is the documentation for the development version of IPython. I don't think they care that they're "missing out on installs" by releasing documentation about what's changed in version 1.0

However, if you'd like to try out IPython 1.0, it's an open source project. You can checkout the latest code at [https://github.com/ipython/ipython](https://github.com/ipython/ipython)

</comment></comment><comment><USER18> what are the typical releases for ipython? is 1.00a1 supposed to replace 0.13 in pypi?

<comment><USER19> I suspect they'll wait a few more alpha-beta point releases before updating PyPI, but not sure. Any devs reading?

<comment><USER20> Yep, it should only become the default version you get from PyPI when it's a final release. I think PyPI/pip can handle pre-release versions without making them the default - in that case, we might put betas up.</comment></comment></comment>


How I Taught A Web Designer to Sell $10k+ Projects - <AUTHOR> http://www.ugurus.com/blog/how-i-taught-a-web-designer-to-sell-10k-projects <comment><USER2> Isn't this a rather blatant sales pitch... err 'inbound marketing'.. for the author's "Online Business Ecosystem paradigm"? (I didn't make that up. It is in the article)

Random Anecdotes. Check. Softsell, some obvious truisms . Check. Throw in a reference to Apple marketing the IPod and tie it into whatever the point being made is. Check.

Why does this marketroid article get so much love on HN?

<comment><USER3> I write about my experience without thinking of my products. My editorial team will typically go back through and add relevant links. Of course I think my products are relevant as that is what pays for me to give away a bunch of free advice and blog about my past experiences growing my web agency. But just to make sure you know, I don't have a product called "Online Business Ecosystem paradigm".

</comment></comment><comment><USER4> I like this a lot. However I would add one more powerful thing. Take the existing technology you have (open source, in-house, etc.) and make a mobile prototype for them in one of the meetings. As you talk, you can whip out your phone and say you've been throwing some things together.

That'll put you ahead of everyone else who has done nothing but talk and it will let the customer start seeing what the vision could look like ... and start CRITICISIZING and RECOMMENDING things. And that's the point at which they are emotionally invested in YOUR service, because they are now thinking about what to change in your mockups and how to use your prototypes.

</comment><comment><USER5> Talking business vision over the coffee (or lunch) with the prospect could be intellectually stimulating, but to begin with you'll have to start with the person who has $10k+ burning the hole in their pocket.

Otherwise by delaying the money talk you'll be facing the frequent "Oh, I thought it won't cost that much. Let me think about that".

<comment><USER6> If they're thinking about how much it will cost, you haven't done your job, and you shouldn't be charging them $10k+.

In fact, they should be thinking about how much money they will lose out on if they don't hire you.

Your mission, as a provider of services, should be to increase the wealth of your customers. This means that you need to find a way to make them more than $10k.

If your services won't be creating more revenue than you are charging, then you probably shouldn't be doing business.

This also means that the more value you are able to provide, the more you are able to charge.

What's $10k when you're building a business for your client that will generate $10k many times over?

And yes, you should be building your client's business. NOT their website.

If they're thinking about how much a website will cost, you've completely failed in selling them a vision.

If they're thinking about how your partnership will grow their business in a whole new way, then you are on the right track. And they won't be thinking "how much will this cost?" They'll be thinking "wow, I'm excited to earn this much money."

<comment><USER5> I actually like your reply.

I'd add that the mindset as well as experience of a service provider should contain a clear path for client to make more than the cost of the service.

And that includes the understanding that some clients are not willing to make money, even if they have valuable business to offer. That happens more often than not and such clients needs to be filtered out early.

</comment></comment></comment><comment><USER7> This really reminded me of an older post, "Never say wordpress when selling a web design project". And, that's because it's the same author: [https://news.ycombinator.com/item?id=5570679](https://news.ycombinator.com/item?id=5570679)

<comment><USER3> Nice observation :)

</comment></comment><comment><USER8> These days I find myself afraid that Facebook is going to eat everything and there will be no jobs outside Facebook. Its so easy to setup a Facebook page instead of a website, and it normally has the up-to-date information that people are looking for ("What band is playing on this bar tonight?")

Some of those are also already selling through Facebook and just let their websites die...

</comment><comment><USER9> "When Apple sold the original iPod, they weren't selling an MP3 player (those were already on the market), they were selling 5,000 songs in your pocket. The simple shift in value statements changed the game. The net result was that Apple's product not only cost a lot more, but it became one of the first devices to be sold worldwide with universal love."

Uh, I feel like there was a lot more to this than mentioned

<comment><USER10> Agreed. I hate "business speak" statements like this that just float on marketing terms.

From a consumer and tech perspective the first ipod was a godsend in the days of shitty AA-powered mp3 players with difficult controls, tiny screens, and usually with no library management software. I had a nomad that took 4 AA batteries and ate them like you wouldn't believe. So the cost of buying rechargables and chargers was passed on to me.

No, it didn't launch with universal love. The original was interesting, but it wasn't until later versions when they had USB support, itunes on Windows, and better price points that it really broke through.

</comment></comment><comment><USER11> I could never trust a person who tried to sell me a 'vision' for money.</comment>


High-tech sector no longer Israel's growth engine - <AUTHOR> http://webcache.googleusercontent.com/search?q=cache:dTzRpS5EK_oJ:www.haaretz.com/business/.premium-1.610443+&cd=1&hl=en&ct=clnk&gl=ar

<comment><USER2> Can I put in an HN book request based on this article?

I'd be interested in a history of Israel's high tech sector, if anyone knows of a good book. Notable companies and talented developers, arguments for why the sector was such a success in Israel (favorable laws? culture? lack of other opportunities?).

<comment><USER3> Wikipedia has a decent relevant page: [http://en.wikipedia.org/wiki/Start- up_Nation](http://en.wikipedia.org/wiki/Start-up_Nation)</comment></comment>


U.S. Bans Trans Fat - <AUTHOR> http://www.bloomberg.com/news/articles/2015-06-16/u-s-bans-trans-fat-in-a-boost-for-palm-oil-and-a-blow-for-pie <comment><USER2> > The U.S. market size for palm oil is 2.6 billion pounds (1.2 billion > kilograms) annually, he said. He expects that to increase by half a billion > pounds a year once trans fats are eliminated.

This is really, really bad news.

[http://www.saynotopalmoil.com/Whats_the_issue.php](http://www.saynotopalmoil.com/Whats_the_issue.php)

<comment><USER3> To select just one of their arguments--that palm oil's production results in deforestation/climate change--one can make the same sort of argument about nearly any industry. E.g. if solar power companies of the future were to deforest mass swaths of land to make way for large solar farms, then one might argue that the solar industry contributes to climate change. It's a poor argument because the production of solar energy in no way necessitates deforestation; similarly palm oil production does not necessitate deforestation, animal cruelty, and non-sustainable production methods.

I'm not arguing for or against palm oil. I know virtually nothing about palm oil; I'm simply criticizing the source.

<comment><USER4> Currently the biggest pressure on demand for palm oil is for biofuels. The result has been a significant recent and planned expansion of palm oil plantations in Indonesia and Malaysia. It doesn't help that many countries now have a mandatory biofuel component. I think the potential increase in demand for replacing trans fat is probably not that big compared to what comes as a result of demand for biodiesel.

<comment><USER5> I guess we should ramp up electric vehicle production to eliminate the need for those biofuels.

</comment></comment></comment></comment><comment><USER6> Does anyone else remember when the Center for Science in The Public Interest pressured everyone to move away from saturated fats to trans fats?

The people leading the charge on this are the primary reason why we went to trans fats in the first place!

<comment><USER7> Yeah, that's how science works.

We start from a position of ignorance, and we incrementally gain new pieces of knowledge. Years ago, we learned about the health risks of saturated fats and moved away from them. More recently, we learned about the risks of trans fats and are now moving away from them. The people at the Center for whatever are updating their position based on the latest findings rather than sticking to outdated facts that have been disproven. I wish more policy-makers would do that.

Our knowledge and understanding of the totality of nutrition and health is still pretty small, in part because there are lots of interacting components and because many aspects of nutrition are correlated with ethnicity and lifestyle. Nonetheless, it has been demonstrated that trans fats are bad for your health, independent of other factors. We shouldn't keep consuming them just because science didn't manage to uncover this fact until recently.

<comment><USER8> But they were 180-degrees wrong on trans fats. They were touted as a _healthy_ replacement for saturated fat.

A fundamental tennent of all heath care/policy is "first, do no harm." If you change or do nothing, people are no worse off than they were to begin with. If you want to change something, you better be _damn_ sure you aren't making matters worse.

<comment><USER9> Chicken and egg. Hard to tell if widespread use of X is not harmful in anyway until widespread use of X has been studied.

<comment><USER10> Should we be looking forward to the arsenic diet, then?

<comment><USER9> > is not harmful in anyway

</comment></comment></comment></comment></comment></comment><comment><USER11> > "I don't know how many lives will be saved, but probably in the thousands > per year when all the companies are in compliance," said Michael Jacobson, > executive director of the Center for Science in the Public Interest.

Ironic since CSPI is one of the major reasons that we are using trans-fats today.

<comment><USER12> One of them? From what I've read and documentaries watched, they are the major reason. Typically example of people going out of their way to order people how to live their lives for the "better" but ends up being worse. Plus it seems they are being revisionist about trying to act as if their pro trans-fat stance never happened.

<comment><USER6> They are the primary reason.

</comment></comment></comment><comment><USER13> Thank goodness. This will finally put an end to companies including trans fat in their products but labeling 0 grams of trans fat due to serving size and other stupid tricks. I think consumers as a whole can get over pie crust not feeling the same for a little bit, as well as a slightly different texture for frosting.

<comment><USER14> This already happened several years ago. There was about a year where all snack foods were utterly disgusting - Cheetos were like fried glass, potato chips were limp and off tasting, Oreo cookies were brittle and the filling tasted like chemicals.

They slowly figured out replacements for the trans fats that improved the quality. We'll never know quite what they are because of trade secrets. But it's probably far less natural than hydrogenated oils.

Oreo cookies, by the way, never recovered. They are terrible.

<comment><USER13> I still go to stores and see products proudly labeled with 0 grams of trans fat that actually contain trans fat after consulting the ingredients list. This did not stop years ago.

<comment><USER14> The wholesale frying/baking of foods in vegetable shortening did in fact stop. There are still small amounts of trans fats in many foods per the FDAs allowance.

<comment><USER13> "Small amounts" is certainly a very relative term given that the serving size can be arbitrarily small to misrepresent the amount of trans fat actually present as 0 grams.

For example, say I'm selling a product with the ingredients list "Partially hydrogenated soybean oil". If I label the serving size as .49 grams I could label the amount of trans fat as 0 grams per serving. Now this is obviously an exaggerated example, but it's easy to see from this example that a product could contain a non-trivial amount of trans fat with a specifically chosen serving size to label the amount of that trans fat as 0 grams (trivial). Therein lies the issue.

<comment><USER15> I learned in Nutrition class that there are standard serving sizes for various types of food. I think it probable that the FDA requires companies to use those standard serving sizes, and forbids them from choosing arbitrarily small sizes like you fear.

For example, one serving of meat is about the size of a deck of cards. If a company sells a meat product the size of two decks of cards, the FDA probably requires that the product be labeled as containing two servings.

<comment><USER13> Hmm.. That is interesting and comforting to know actually. I always figured there was some lower bound that a company would get called out on somewhere along the process if it was too egregious, but it's nice that there's at least some semblance of a standard.

</comment></comment></comment></comment></comment></comment></comment><comment><USER16> This story is a great reminder that there's a lot of potential for studying Regulations.gov API and writing an interface (and heuristic) for surfacing interesting rules and regulations...the trans-fat rule has been up for comment for long while now:

[http://www.regulations.gov/#!docketDetail;D=FDA-2013-N-1317](http://www.regulations.gov/#!docketDetail;D=FDA-2013-N-1317)

Maybe I'm in the minority of people who hadn't heard that this transfat regulation was soon to be implemented (as a former New Yorker, it caught me by surprise)...but there are probably many upcoming rules that are worth knowing about before they get published.

</comment><comment><USER17> Pros and cons to everything. Replacing trans fat with palm oil will likely increase the negative impact some of that industry has on the environment.

[https://news.vice.com/article/indonesia-is-killing-the- plane...](https://news.vice.com/article/indonesia-is-killing-the-planet-for- palm-oil)

</comment><comment><USER18> > "I don't know how many lives will be saved, but probably in the thousands > per year when all the companies are in compliance,"

I doubt it. People are going to continue to eat way to much of things they shouldn't, or too much of things that should be only eaten in moderation. It's not like Trans-Fats are the only thing people are eating too much of that is killing them.

<comment><USER19> Very few things in food are categorically bad for you. Even stuff like fat & sodium, which people generally think of as "not good for you" are required for your body. If you tried to make a list of foods that actively harm you or that cannot be made a part of a healthy diet then your list would be very small.

Transfats are one of the few things that the above does not apply to. They are actively bad for you and there are no known redeeming qualities.

<comment><USER20> It is quite disturbing how big the anti-fat (in food) sentiment got in the 1980s and 1990s. And even though it has been heavily debunked, people still look at fat quantity in food to decide what is "healthy." Ignoring the fact that fat (not transfats, regular dietary fat) is extremely good for you, and won't cause you to gain weight.

There are even still "low fat" foods on the shelf which intentionally remove dietary fat and replace it with complex carbohydrates (mostly sugars), which are bad for you.

Remember the whole "red meat will kill you!" thing? Yeah, utter nonsense. There's a small amount of cancer risk from the cooking process (and glazing/smoking) but broadly speaking raw meats are one of the healthiest non- vegetables you can eat. Much healthier than processed foods. The more fat the better.

When you order a burger, the bun is by far the most unhealthy part. Then the sugared sauce (e.g. ketchup, mayo, etc), then the american "cheese," and last of all the meat. But most modern burgers are just "sugar delivery devices" in the sense that the % of meat is tiny and % of sugar (from bun, cheese, and sauce) is getting higher and higher.

<comment><USER21> Sorry to comment without adding anything beyond my upvote, but I think this may be a typo :)

> broadly speaking raw meats are one of the healthiest non-vegetables you can > eat.

<comment><USER20> I'm not sure I follow? I am trying to say (maybe unclearly) that vegetables are healthiest and then [unprocessed] meats. So meats are the healthiest non- vegetable.

Vegetables, raw meats, everything else.

Fruits are a tough category as some are extremely healthy (e.g. Blueberries) while others are barely better than candy (e.g. Figs, Grapes, etc).

<comment><USER22> To clarify here: You mean eating, for instance, bacon that is less processed (not injected with tenderizers, salt, msg, etc) is 'healthier' for you than bacon that is processed (all that stuff injected). You do NOT mean that eating less heated and cooked meat is 'healthier' than eating cooked meats. That the cooking process is independent (mostly) from the 'healthiness' of the meat.

Am I correct here?

<comment><USER20> Yeah. I feel like the above post is gibberish now. :)

I should have said "unprocessed meat" not "raw meat" since raw is often used to described uncooked meat.

Bacon gets a bad wrap because it is often cooked in unhealthy oils and smoked. Both of which are "bad." You stick un-smoked bacon on a george forman grill and you have a darn healthy piece of meat.

<comment><USER23> > Bacon gets a bad wrap

"rap", not "wrap"

> because it is often cooked in unhealthy oils and smoked.

No, it gets a bad rap because its usually cured with nitrates/nitrites (including must "nitrate free" bacon, which isn't, it just uses celery salt, which contains nitrates that do exactly what other nitrates/nitrites do, but because its considered a flavoring agent and not a preservative and isn't synthized nitrate/nitrite, doesn't have to be labeled as a nitrate/nitrite), which have some adverse health effects in certain circumstances (though the USDA has taken action to require steps to mitigate those effects the same way that, e.g., the naturally occurring sources of nitrates in green vegetables naturally do, though the bad rap was already established by then), and also because of the high quantity of animal fat, which itself has a bad rap.

Uncured bacon obviously exists and doesn't have nitrates/nitrites (even stealth ones), but it probably isn't meaningfully more healthy than cured bacon.

Cooking bacon in oil is silly; its often used as a _source_ of fat _instead of_ oil in cooking.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER24> By these standards, how is alcohol still legal?

Alcohol-Related Deaths: Nearly 88,000 people (approximately 62,000 men and 26,000 women) die from alcohol-related causes annually, making it the third leading preventable cause of death in the United States.

-[http://www.niaaa.nih.gov/alcohol-health/overview-alcohol-con...](http://www.niaaa.nih.gov/alcohol-health/overview-alcohol-consumption/alcohol-facts-and-statistics)

EDIT: I'm not advocating that alcohol be illegal. I couldn't care less to be honest.

I guess my comment was more of a question of how can you ban substance "A" because "Its bad for you"; but not ban substance "B" which kills 90k people in the U.S. annually? It just seems cherry picked is all. If the gov't is going to ban bad things, how does substance "B" get a pass?

<comment><USER25> Don't get me started. people seem to always look at me strangely when I tell them I don't drink. People like it and it is important to them so anything said against alcohol is RADICAL. People love being emotionally numbed and I guess people have a right to depress their emotions with drinking or whatever legal/prescribed drugs they want. There is very little said in terms of the emotional/relationship cost of their use.

1 in 10 US Deaths are directly related to Alcohol Use [[http://www.pbs.org/newshour/rundown/alcohol- responsible-1-10...](http://www.pbs.org/newshour/rundown/alcohol- responsible-1-10-u-s-deaths/)]

World Wide: In the age group 20 – 39 years approximately 25 % of the total deaths are alcohol-attributable. [[http://www.who.int/mediacentre/factsheets/fs349/en/](http://www.who.int/mediacentre/factsheets/fs349/en/)]

<comment><USER26> Road traffic accidents are the leading cause of death for young people. Why not ban cars while we are at it.

<comment><USER4> I find alcohol is good way to explain to people outside of the US how it is unlikely to get a ban on guns in the USA, even though it's obvious that would prevent death by a madman going on a shooting spree at a school. It would be like suggesting we ban beer in Germany or wine in France because of all the known alcohol related deaths.

<comment><USER27> A madman would steal a gun or otherwise obtain a gun illegally. Just like people obtained alcohol illegally during prohibition.

I'm not really disagreeing with your main point, just the "it's obvious that would prevent death by a madman going on a shooting spree".

Hell, if the US banned guns I would still own one I would just hide it better.

<comment><USER28> > Hell, if the US banned guns I would still own one I would just hide it > better.

You probably wouldn't, because the risk of ending up in jail or prison would be unacceptable.

<comment><USER27> Over someone who illegally has obtained a gun breaking into my house and shooting me? I'll take the jail.

<comment><USER28> The gun is not a shield, it doesn't prevent you from getting shot. It can only help you if you shoot first at any sign of home invasion. Most of the time it's just a family member or intimate acquaintance: [http://www.nejm.org/doi/pdf/10.1056/NEJM199310073291506](http://www.nejm.org/doi/pdf/10.1056/NEJM199310073291506)

<comment><USER27> The study sounds correct for what it studies. People who keep a gun in their home are more likely to accidentally kill someone else that they already know. That makes sense, since people without one aren't likely to grab a knife and run at a perceived threat. Even if they did, it gives more time for the other person to react and announce that they are a friend.

However, as an anecdote, most people I know of who actually know what they are doing (as in people who are gun enthusiasts, not people who bought a gun "for protection" and shot it enough to take a class then put it in a drawer) announce themselves before shooting as the goal is to get the intruder to leave.

Quite often this alerts the intruder to your location and, in the case that they are an actual threat, they will charge at you (this is counter intuitive for me, but most stories I've read of home invasion with an armed resident seem to end this way). I only typically hear about these stories from survivors, but the cases I know of the resident killed or wounded their attackers and were safe.

Basically, that long-winded group of anecdotes is to say that it is not the case that a gun can only help you if you shoot first at any sign of home invasion. Anyone who actually knows something about guns knows that you only point a gun at a target you have identified and are prepared to destroy. For the most part, that means you won't shoot first at any sign of home invasion.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER29> > "I don't know how many lives will be saved, but probably in the thousands > per year when all the companies are in compliance," said Michael Jacobson, > executive director of the Center for Science in the Public Interest.

"Saved" in this context means what, living 3 months longer because your heart disease is slightly milder than it would otherwise have been?

</comment><comment><USER30> That's nice, but I think will be ineffectual in practice. As soon as you start cooking with any unsaturated fats, a portion will isomerize to trans fats. I doubt major food manufacturers are using only trans-fat sources in today's climate of health conscious (or hypervigilant) practices.

<comment><USER31> I thought it required heat plus a metal catalyst to convert unsaturated fats to trans fats.

<comment><USER32> You'd also need a hydrogen source; catalysts might be available, but you need bulk hydrogen to get anywhere.

</comment></comment></comment><comment><USER14> The food police were wrong and killed a lot of people with trans fats. Can we have our lard back now? Oreo cookies taste like crap with whatever they've replaced the trans fats with.

</comment><comment><USER33> I still don't quite get it; couldn't they have just mandated the usage/inclusion of trans-fat in product, and let the _consumers_ avoid it? By the same standards, we're still letting people smoke and drink.

<comment><USER13> It's already required for them to label it, but there's several problems with that solution that we've been dealing with since that was mandated.

For one, if you have less than 0.5 grams per serving in your product you can label it as 0 grams of trans fat. This is a problem because serving size is arbitrarily determined by the producer of the product, which with a small enough portion size can still leave trans fat in significant portions while labeling it at zero grams. Other tricks exist like using different types of oils (trans and regular oils) in different manufacturing plants and calculating the average amount over all locations the product is produced. The other issue with this is that even relatively small amounts (relative to how much food we consume) can be very detrimental to your health.

The other issue is related to the first and that even consumers that want to avoid trans fats can have trouble doing so if they don't realize the first point I made, and the only way to avoid that is to scan every ingredients list for partially hydrogenated oils.

<comment><USER34> _For one, if you have less than 0.5 grams per serving in your product you can label it as 0 grams of trans fat._

Simple fix. Require transfats to be reported in milligrams instead of grams

<comment><USER13> Oh I agree that would definitely have a good effect for increasing knowledge of what one is actually consuming, but I think uncertainty comes into play at some point.

In any event I don't think that banning trans fat was the only way to solve the problems I listed. Though I do detest trans fat and it annoys me when I can't consume or purchase a product because I noticed there is a non-trivial amount of trans fat in it. In this way, banning trans fats is definitely a convenient solution for me and I don't see many downsides to supporting it.

</comment></comment></comment></comment><comment><USER35> Maybe I'll finally be able to find snack cakes and biscuits without partially hydrogenated oil. That stuff is everywhere, even when the label proudly claims '0 trans fat!'. Such a crock.

<comment><USER36> The label currently can say 0 trans fat _per serving_ , and what they actually mean is _less than 0.5g per serving_.

From the prev FDA rule:

>Trans fatty acids should be listed as "Trans fat" or "Trans" on a separate line under the listing of saturated fat in the nutrition label. Trans fat content must be expressed as grams per serving to the nearest 0.5-gram increment below 5 grams and to the nearest gram above 5 grams. If a serving contains less than 0.5 gram, the content, when declared, must be expressed as "0 g."

[http://www.fda.gov/Food/GuidanceRegulation/GuidanceDocuments...](http://www.fda.gov/Food/GuidanceRegulation/GuidanceDocumentsRegulatoryInformation/LabelingNutrition/ucm053479.htm)

</comment></comment><comment><USER37> But vegetable shortening necessarily contains large amounts of trans fat. Does this mean that currently vegetarian foodstuffs will switch back to lard?

<comment><USER10> Baked goods that require flakiness, and can't use trans fats, probably have to include _some_ lard. Butter alone just doesn't seem to get the job done.

Of course the chemists might come up with some other bizarre substance they can add to food, but I won't be the first to eat it.

</comment></comment><comment><USER38> Shouldn't there be some kind of regulation on products that use a lot of sugar? Specially those sold in large quantities ..

<comment><USER39> They could start by putting a % value next to it, like they do with other nutrients.

</comment></comment><comment><USER40> This issue is the most important health and safety issue in the country right now. Add up all of the deaths due to obesity-related diseases and it's an obvious low-hanging fruit for improvement. For all the yellow-jacket journalism surrounding cars or drugs or strangers or vaccines or guns, they are all drops in the bucket compared to heart disease.

But that said, I don't think the FDA or CDC are doing anything functionally significant towards improving the issue. There is a greater underlying question that still needs to be answered: why has the problem continued to get worse, despite ALL efforts otherwise?

There is a gun against the head of 2/3rds of Americans and nobody is asking how it got there and why it's still there. I'm afraid it's because we keep arguing about the shape and color of the bullets and how you should really be better at dodging bullets of you want to stay alive.

<comment><USER32> Not necessarily; another "unnatural" recommendation by our betters, to shift from fats and meats to carbohydrates, could easily be worse, and maybe synergistic.

"Unnatural" in that we were advised to shift from natural saturated fats, and from something resembling the more balanced pre-agriculture diet. And I'm suspicious of mass quantities of unsaturated cis-fats, which I gather weren't quite so common prior to cultivation of oil seeds.

<comment><USER40> Huh? You mustn't have read my post very closely.

<comment><USER32> Ah, yes, I too narrowly focused on this particular issue of trans vs. cis and saturated fats and incorrectly inferred what you meant by the "this issue". Taking a step back, yep, the postulated (and being tested by Taubes and company) carbohydrate hypothesis is a part of what your comment is addressing.

</comment></comment></comment></comment><comment><USER41> There is something about nutrition that always sparks a 500 comment thread on HN. I am not sure why.

<comment><USER42> Everybody eats? Not everybody uses Go/Haskell/Lisp/JS/etc?

</comment></comment><comment><USER43> It's strange that they're putting these measures in place when sugar is significantly more damaging to people. High fructose corn syrup would have been a much better target.

</comment><comment><USER44> Since this is by regulation and not statue, what's to stop the next administration from simply changing its mind?

<comment><AUTHOR> The practical context of it all. Once most of the food industry moves away from it, the cost of reintroduction and the well known health dangers (terrible PR headlines), are what act to prevent companies from bothering to lobby about it. The companies spend large amounts of money to move on to alternatives, and that's that.

</comment></comment><comment><USER45> I live in france and apparently there is no law to force manufacturers to indicate those. I often see "hydrogenated oil", but I don't know if it's possible to get away with those tricks mentioned in the article.

Got coronary disease in my family...

</comment><comment><USER46> wow - that is amazing. An outright ban. No, "strict labelling laws", no "strict regulation" in the amount or limitation on the kinds of foods that can still have it. Ban.

I'm surprised!

<comment><USER47> It is not an outright ban. As the fine article says:

 _Food companies will be able to petition the FDA to gain approval of specific uses of partially hydrogenated oils if they have data proving the use isn't harmful. Companies will have until June 2018 to comply with the FDA's determination either by removing trans fat or gaining a waiver._

<comment><USER46> I went on the title - I'm a busy guy! (Okay, I did skim.) Still, what you quoted is quite different from how I thought something like this would go down. In particular the standard of proving it isn't harmful is quite high!

I would have thought consumers would be allowed to choose it in certain cases, despite its being harmful. (As they can in other cases.) Or, a small amount might have been allowed even though it is obviously deleterious, e.g. in foods consumed in small amounts and which are obviously exception and not considered healthy.

<comment><USER47> The only real consumer benefit is that trans fats have properties that keep costs down. I don't have a great characterization of how much they do that, but I guess it is swamped by other costs, so it is probably better described as trans fats being slightly more profitable for producers, not in terms of them costing consumers less.

<comment><USER46> You misunderstood, I didn't mean that there has to be a consumer benefit. I just mean I thought consumers would still be able to choose it in many cases. Or the amount could be limited, rather than banned. I'm not arguing for this, I'm just saying it's shocking!

I mean, it is obvious that if you were to ban sugar, high fructose corn syrup, corn starch, and even all-purpose white flour, forcing all food companies to use alternatives, there would be an instant health benefit for the entire country starting the same day. But that doesn't mean such a ban wouldn't absolutely shock me, especially as an outright ban rather than limitation, labelling, etc. The only thing I'm expressing is surprise.

<comment><USER48> > ban sugar, high fructose corn syrup, corn starch, and even all-purpose white > flour,

There is zero evidence that any of these things are a problem when not eaten to caloric excess.

<comment><USER46> you're right. in contrast to my examples wikipedia's trans fat article says,

>Because of these facts and concerns, the NAS has concluded there is no safe level of trans fat consumption. There is no adequate level, recommended daily amount or tolerable upper limit for trans fats. This is because any incremental increase in trans fat intake increases the risk of coronary heart disease.

maybe a better example than the ones I listed (for which as you point out there are safe levels of consumption), would be smoking tobacco, which I think matches the above description and has no safe level. But it is not banned outright. (at least not yet.)

</comment></comment></comment></comment></comment></comment></comment><comment><USER49> And so dies the last of Indonesia's remaining natural forests. Covered by cultivated palm trees.

</comment><comment><USER50> ADM, you are going to have to pry the coconut oil out of my cold, dead, greasy hands!

</comment><comment><USER51> But what about biscuits!!!

Fried Chicken!!!

Alton Brown recommends using Crisco, he's like a scientist.

<comment><USER52> I use white lily self rising flour, buttermilk, and butter flavored crisco in my biscuits and they are phenomenal. I add a little cornstarch for extra crispiness. But I bet they would be better with original crisco before all the changes.

[https://en.wikipedia.org/wiki/Crisco#Changes_in_fat_content](https://en.wikipedia.org/wiki/Crisco#Changes_in_fat_content)

I've tried with butter and low-fat milk and it just wasn't the same.

I use peanut oil for fried chicken. Not sure if it's healthy or not, I just know it's good for frying.

</comment></comment><comment><USER48> Does this mean the end of no-stir peanut butter? I hate that stuff you have to mix all the time.

<comment><USER53> I've always used peanut butter that comes separated. It's never reseparated after being mixed, though. Do you keep your peanut butter refrigerated?

<comment><USER54> People refrigerate peanut butter?

<comment><USER53> Yes, because otherwise it separates. :p

<comment><USER54> Never had that problem.

Heretics.

</comment></comment></comment></comment></comment><comment><USER55> I thought this stuff was already banned in the 90's.

</comment><comment><USER56> "As for frying, palm oil is expected to be a go-to alternative"

That's like jumping out of the frying pan into the fire, pun intended!

</comment><comment><USER57> "As for frying, palm oil is expected to be a go-to..." uhoh

</comment><comment> rm_-rf_slash Huh, so apparently processed foods will be harder to make.

What a shame.

</comment><comment><USER58> I'll just leave this here: [https://news.vice.com/article/indonesia-is- killing-the-plane...](https://news.vice.com/article/indonesia-is-killing-the- planet-for-palm-oil)</comment>


The most and least politically open-minded counties in the United States - <AUTHOR> https://www.theatlantic.com/politics/archive/2019/03/us-counties-vary-their-degree-partisan-prejudice/583072/ <comment><USER2> Can someone explain to me as a non-American? What causes those hard boundaries in opinions along the state lines? Eg. Between Utah and Wyoming, or South Carolina and everywhere around it

<comment><USER3> I suspect a lot of the state-level stuff is artifacts of the algorithm. The article says that only 2000 people were polled, and there are about 3000 counties, so there's a lot of modeling that goes on to get from the poll results to the map. It's a two-step process: (1) build a model which predicts partisanship from individual demographics. (2) apply this to individual-level demographic data and aggregate to get partisanship by county.

But! The demographics come from voter files. And voter files are maintained by the states. So the people _overall_ in some county in South Carolina might be quite similar to those in a bordering county in North Carolina, but the ones _in the voter file_ are not.

I'd take within-state differences seriously, but I wouldn't take between-state differences seriously.

(However! Utah is dominated by Mormons and you really do see differences in a lot of maps between Utah and adjacent states.)

</comment></comment><comment><USER4> > the most politically intolerant county in America appears to be Suffolk > County, Massachusetts, which includes the city of Boston

This surprises exactly nobody outside of the Boston area.

>We are now judging one another's fundamental decency based on whether we eat at Chipotle or Chick-fil-A

This describes a running joke in my office perfectly. The "sieze the means" socialist prefers Chipotle and thinks Chick-Fil-a is terrible. The right leaning libertarian strongly prefers Chick-Fil-A and dislikes Chipotle. We all agree that Panera is overpriced for what it is, Market Basket has great deals on prepared food and the mayor of Boston has no business telling a business they're aren't welcome because he doesn't like who they give money to.</comment>


The college degree has become the new high school degree - <AUTHOR> http://www.washingtonpost.com/opinions/catherine-rampell-the-college-degree-has-become-the-new-high-school-degree/2014/09/08/e935b68c-378a-11e4-8601-97ba88884ffd_story.html

<comment><USER2> This is more-or-less the result of the "everybody should go to college" public policy of the past few decades. Degree inflation is the natural consequence.

Degrees are used (rightly or wrongly) by employers as signifiers of where the candidate lies in the normal distribution of potential employees. Pushing more people into college does not fundamentally change the shape of this distribution, it merely inflates the credentials required to find the top X percentile.</comment>


Spoofing Google Search Results - <AUTHOR> https://wietzebeukema.nl/blog/spoofing-google-search-results <comment><USER2> > unfortunately Knowledge Graph doesn't tell you where it got the information > from

This is really the biggest problem I have with the cards. They don't tell you anything at all about their source, and lead people to believe that Google itself has verified and checked the source of the information, making it very easy to treat them as "facts". A somewhat (possibly overly?) cynical viewpoint is that Google likes to keep it this way, since it makes it seem as if they're the arbiter of that information.

<comment><USER3> Not only that, the legal status of this info is murky at best and a clear case of copyright violation at worst.

<comment><USER4> I thought the Knowledge Graph was based on Freebase[1].

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

<comment><USER5> The text usually is from Wikipedia and the tabulated data seems to come from Wikidata.

<comment><USER6> Wikipedia's text content is licensed under CC-BY-SA, which means that if Google isn't giving attribution somewhere then they would be in violation of the license.

<comment><USER7> Google gives attribution when text content is used.

For simple bibliographical information like who someone's spouses is, it is not copyrightable, and no attribution is needed.

<comment><USER8> Facts may not be copyrightable, but by _academic standards_ they should still be sourced. Google doesn't derive shareholder value from training people to seek primary sources, though.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Not gonna lie: I wish google had been a bit slower fixing this. I was looking forward to having some (mostly) harmless fun!

</comment><comment><USER10> it's still happening for me in case of [https://www.google.com/search?q=The+Beatles&kgmid=/m/03j24kf](https://www.google.com/search?q=The+Beatles&kgmid=/m/03j24kf), so it seems it may have not been fixed yet? [https://imgur.com/a/8UypW5k](https://imgur.com/a/8UypW5k)

<comment><USER11> And attaching &kponly to the url also hides the search results for me: [https://www.google.com/search?q=The+Beatles&kgmid=/m/03j24kf...](https://www.google.com/search?q=The+Beatles&kgmid=/m/03j24kf&kponly=)

Maybe the change hasn't been rolled out completely yet? I'm in Germany.

<comment><USER10> I am in India. Yeah &kponly seems to be working as well hiding the search results completely.

</comment></comment></comment><comment><USER12> Known issue since 2016 [https://plus.google.com/+AaronBradley/posts/92wjiusi2YC](https://plus.google.com/+AaronBradley/posts/92wjiusi2YC)

<comment><USER3> Looks like he managed to put enough indirect pressure on the big G to get this fixed.

</comment></comment><comment><USER13> The example links do not work for me, meaning they show sane results. Is this issue fixed? Or is uBlock interfering? Or is my "Google location" (Europe/Germany) changing the results?

<comment><USER14> >Update - Two days after the publication of this blog post, Google seems to have fixed the issue, after TechCrunch asked the firm whether it was planning on taking any action. Although no official announcement was made, it looks like the kgmid parameter has been disabled. As a result, the flaw described below is no longer working.

Very top of the article.

</comment></comment><comment><USER15> Interestingly only one of these parameters has been fixed. You can still use 'kponly' to force empty results.

</comment><comment> to-maruf Seems like google figured it out

</comment><comment><USER16> [https://www.wietzebeukema.nl/assets/2019-01-07-knowledge- gra...](https://www.wietzebeukema.nl/assets/2019-01-07-knowledge-graph-2.jpg)

Define "fake results".</comment>


Fully Homomorphic Encryption with relatively small key and ciphertext sizes - <AUTHOR> http://eprint.iacr.org/2009/571

<comment><USER2> Another fully homomorphic paper recently on eprint: <http://eprint.iacr.org/2009/616>

It's also on HN: <http://news.ycombinator.com/item?id=995203>

</comment><comment><USER3> _We see that in practice our scheme appears to obtain a better depth of decryption circuit than theory predicts, although still not deep enough to enable fully homomorphic encryption; at least at practical key sizes._

</comment><comment><USER4> Wow. I _way_ misread that title at first glance.</comment>


Now Weather - just released, visual weather app for iPhone - <AUTHOR> http://www.kickstandapps.com/2013/08/now-weather-just-released/

<comment><USER2> If it doesn't have animated weather maps, it's just a waste of disk space.

</comment><comment><USER3> Weather widget on android is really nice, and requires 0-clicks.

<comment><USER4> Same thing on iOS, really. The weather in notification center meets most of my needs, and when it doesn't, I click through to the Apple weather app.

The only third-party weather app I use now is Dark Sky, which answers a different question: when will it stop raining?

</comment></comment><comment><USER4> Is there really still a market for paid general weather apps?

<comment><USER5> I just use [http://forecast.io](http://forecast.io) saved to my home screen.

<comment><USER6> It's not really "beautiful", but I like [http://mobile.weather.gov](http://mobile.weather.gov).</comment></comment></comment>