skysight-inc/HackerNews huggingface dataset:
This is one of those things that's well known by people who spend a lot of time doing low-level nonsense that really ought to get wider press. You really don't want to use x86 hardware transcendental instructions.

I've seen people try to measure the effectiveness of their approximation by comparing against built-in hardware, but their approximation is probably better than the hardware! If you're not writing your own assembly, you'll be ok on most modern platforms if you just link with "-lm" and use whatever math library happens to be lying around as the default, but it's still possible to get caught by this. On obscure platforms, it's basically a coin flip.

I used to work for another CPU vendor, and when we implemented more accurate sin/cos functions, some benchmarks would fail us for getting the wrong result.

Turns out those benchmarks hardcode a check for a couple results, and that check is based on what Intel has been doing for ages. My recollection is that we had a switch to enable the extra accuracy, but that it wasn't enabled by default because it was too much of a risk to break compatibility with Intel.

If that sounds too risk averse, there's a lot of code out there that depends on your processor precisely matching Intel's behavior on undefined flags and other things that code has no business depending on. It's basically the same thing Raymond Chen is always talking about, but down one level of abstraction. I've seen what happens if you just implement something that matches the "spec" (the Intel manual) and do whatever you want for "undefined" cases. You get a chip that's basically useless because existing software will crash on it.
> the imgurl community is always asking for more servers and bandwidth

They serve 2 billion images per day, and they never delete pictures that are still actively accessible from the internet.
At no cost to the user.

In any case, cache is golden, and a 5 MB gifs off of their front page could be a 500kb MP4. That difference adds up superfast it's off of their front page and has 30M views.
Nice, Tinder for Food.
Not yet, but I'll take this as a vote for it
Nobel Prize snub: Why blue LED is worthy while the very first LED was not
How Pinball Wizards Are Defining the Game's Future (2013)
> perhaps Apple and Google could invent a kind of secure golden key they would retain and use only when a court has approved a search warrant

Even if the Washington Post has no idea how cryptography works, this is incredibly naive politically.

"A court", you say? From which country? Google and Apple do business worldwide. Can China's courts access my data? Iran's? If Apple employees have the key, they decide. And if they decide, any country with enough monetary leverage can get the key. "You can't do business in China unless you give us access."

(Not to mention the head-in-the-sand implication that the US government would only get data using due process.)

The only way this can work is if the tech firm cannot access the data.
http://www.engadget.com/2014/10/09/amazon-store-manhattan/

Seems unnecessary. I guess Amazon is getting so bored making money in sane ways that they want to lose money in insane ways.
From this reddit comment[1]:

#debian-security at OFTC :

[20:41] <clopez> PSA: #shellshock still unfixed except in Debian unstable

[20:41] <clopez> http://evolvisforge.blog.tarent.de/archives/93

[20:42] <clopez> is that true? I don't think so... but I guessed that better ask

[20:43] <clopez> (this appeared on planet.debian.org)

[20:43] <adsb> no. there are still parser bugs, but they are no longer exploitable

[20:44] <adsb> (and some argument as to whether some of the later stuff should even have been given CVEs)

[20:44] <clopez> oh... I see, thanks

[1] http://www.reddit.com/r/linux/comments/2is3a4/shellshock_sti...
Thank you for the recommendation. This looks great. This excerpt from a review sold me on it:

"Tonight I had a few (lovely, organic) chicken breasts in the fridge that were getting perilously close to the date. As it is the end of the weekend, I haven't shopped in days and I don't have the ingredients to make any of my glossy paged cookbook recipes. There was some stuff in the fridge, yet I would have thought "nothing to make". Thanks to Tamar Adler, I pulled out my trusty pot, boiled some very salty water and starting by boiling the chicken (who does that???) with a handful of Tuscan spice blend. Then I sauteed a diced onion with some leftover mushrooms (that also would have gone bad), chopped celery ends my kids didn't eat from their Ants on a Log, then made a little roux. I created a sauce with a couple of cups of the broth from the chicken breasts and a cup of milk and random cheese bits. Then I tossed some random leftover cooked veggies and the diced chicken breasts in my lovely mushroom sauce. I also found some too-stale-for-salad croutons in the pantry, so I threw them in the rest of my seasoned broth, making a kind of stuffing, and put it on top of my mushroom saucey chicken concoction and baked for a few minutes. My family declared this makeshift casserole the best thing ever. And there was enough to put another one in the freezer, so I have solved "what's for dinner" twice, never having touched a single recipe. Everything except the chicken, onion, and cup of milk was what Tamar calls "ends", most of which would likely have been in the garbage."
How is this different from the heretofore prolific Word2Vec? I see they mention it but don't provide information about how it is distinct from their approach.

EDIT: My fault. I was only reading through the site instead of the paper. It looks like they utilize a similar approach to training (even making use of Word2Vec), but their approach involves using a smaller, specially chosen subset of the data to improve the robustness of the comparison between two word vectors.
I have seen this argument numerous times before.

It doesn't hold water, because potentially initializing variables to wrong values is just as much as consequence of using that static tool, as it is a consequence of an "always initialize" coding habit.

The static tool produces a report of uninitialized variables or potentially uninitialized ones. The developers react to this by fixing all those instances, so that the tool is "shut up". Once that happens, they have a code base for which the tool doesn't report anything, just like the other developers who always initialize.

There is no reason to believe that either team has a lower or higher rate of incorrect-initial-value bugs. Or is there?

I would argue that the developer who is writing the code, at that moment, quite possibly has a better idea of what the correct initial value should be, than someone who is running a tool across a large code base and following up (by him or herself).

Really, the coding convention should be "always initialize, with the correct value which doesn't need to be overwritten later."

Even in imperative languages, we should program as "functionally" as is reasonably possible.

Imperative code that mutates local variables should only do so if it implements iteration. If the code has no loops and is setting local variables conditionally, that shows that it's trying to influence the behavior of some common code where the control flow paths merge --- instead of putting it into a function!

In the specific program we are looking at, for instance, the function is trying to use the head processing block at the end, but over different input streams. This can be done by putting it into a function, so then there is no assignment to the fp variable:

if (!*argv) {
head_processing(stdin);
} else {
FILE *fp = fopen(*argv, "r");
/* check for fopen failure ... */
head_processing(fp);
fclose(fp);
}

We can eliminate assignments out of loops, too, but that requires tail recursion:

/* pseudo code */
head(int argc, char **argv, int first_time)
{
if (argc == 0 && first_time) {
return head_processing(stdin);
} else if (argc == 0) {
return 0;
} else {
FILE *fp = fopen(*argv, "r");
/* head_processing checks for null */
int status = head_processing(fp);
fclose(fp);

/* tail call, if status was good */
return (status != 0)
? status : head(argc - 1, argv + 1, 0);
}
}

C programmers will tend not to be comfortable with this style, and it requires tail call support in the compiler to not generate O(N) stack. So for pragmatic reasons, you can't make a coding convention out of this.
Since we all don't have a wsj account...

http://www.marketwatch.com/story/amazon-to-open-first-physic...
> "When I meet a start-up I always ask them who is the lead singer. Because in a band the lead singer doesn’t have to play an instrument. They just have to lead."

Who was the lead singer of Peter, Paul, and Mary? Of The Beatles? David Lee Roth and Sammy Hagar were lead singers of Van Halen, but were not the leaders of the band.

It seems a bit odd, in an article about ageism, that the topic should veer so quickly to trying to fit a startup into a certain model of rock band, given that several extremely successful rock bands don't follow that model.
A Brief History of Scientists Hunting for Time Travelers
If you downvote too frequently the software detects it and stops your downvoting from having any effect. (I think?)

Downvotes for poor reasons are often corrected.

Some topics attract a disproportionate amount of downvoting. This is a good thing because those topics are intensely but shallowly interesting and the downvotes should be training people to avoid those threads. (Except people seem to say "the downvotes prove me right")

I can't think of an example where I received a "bad" downvote. I'm kind of surprised I haven't got more.
Does anything preclude M:N threading in a library? It is really useful in quite a number of scenarios.
Can you explain or point to the Chrome issue? Very curious.
> We need a full stop replacement for the GIF that uses a modern encoder.

Keeping in mind that one of the big advantages of GIF is NO AUDIO.

It's just deeply anti-social to play audio in some contexts, and a file format which enforces that is a very good thing.
What does this do that Yelp doesn't currently. (On mobile so lazy to click through is the site explains it).

I ask because I use Yelp for this a lot
The template was inspired by the minamalist checkout flow that Coin used for their pre-order launch
It's not possible to implement a more precise fsin() without breaking apps?

One scenario I can imagine an app breaking is if someone executed fsin(x), pasted the result into their code, and then tested some other float against it using the == operator.

I suppose a more common breakage scenario would be if someone did something like floor(x + fsin(x)), since that'd very slightly change where the floor "triggers" with respect to the input. But how could that cause an app to break? Every scenario I can think of comes back to someone using == to test floats, which everyone knows is a no-no for dynamic results, such as the output of a function like fsin().

I guess a programmer wouldn't really expect the result of "x + fsin(x)" to ever change for a certain value of x, so maybe they executed it with that certain value, stored the result, and did an equality comparison later, which would always work unless the implementation of fsin() changed, and the thought process went something like, "This should be reliable because realistically the implementation of fsin() won't change."

Can anyone think of some obvious way that making fsin() more accurate could cause serious breakage in an app that isn't testing floats with the equality operator?
Automatic versioning and increment using Git tags and Gradle
Unless you need the extra precision, using a float makes more sense than a double.

But with integers, it's different. It's not so much that an i32 _can't_ index an array, but that it _might not be able to_. On a 64 bit machine, you could have a very large array that's bigger than an i32 in size.
Wonder how much he paid for it.
Because WebP is aimed to replace PNG, WebM can replace both MP4 and animated GIF.
Invite-only. Also NeoCities doesn't give you a full shell account
So, yes, we should be taking your knowledge of PA/JACK/UNIX with a large grain of salt.

Further, your reply is largely a strawman argument (when did I say you were lying or crazy? what's this about the Universe?), and a borderline ad-hominem. I feel this speaks for itself.
Blue LEDs, and the more general Gallium Nitride film technologies have tremendous impact in our everyday world. Enormous, tangible energy savings in lighting. Enabling of zillion medical applications. Blu-Rays, high density DVDs, high mobility transistors...seriously, what discovery do you have in mind?

Secondly: There are different committees for each category. The Peace prize (which I agree it's a joke) is awarded by the Norwegian Nobel committee.

I strongly disagree with your claim that the other prizes, specifically physics and chemistry, are either incompetent or obviously biased.
At uni I used to keep a text file with huge ascii art one word messages (redundant but large) and I'd "write myfriend lunch.txt" or whatever and they'd get a huge "lunch?" on their terminal. It was even more disruptive than texting is today ;-)
Good question. I think if you click through you'll see the use case, but where Yelp is the Yellow Pages, Eating Around is a hotel concierge.

We give you two inputs: food type & distance. That's it. Then we show you pretty pictures.

In short: a better user experience.
Prepress industry was an early adopter for the internet. Not that surprising that Adobe, whose postscript format as fundamental to that shift to electronic transmission of printable artifacts, were early to the net.
MedXT is YC 2013.

Congratulations to Reshma and Cody, they've been working extremely hard on producing a very impressive product.
Registration now open for Cybathlon 2016
So, like Argos, but with the internet and stuff. And presumably with better fixtures.
Amazon's first brick-and-mortar store said to open in Manhattan
Oh, IRC https://github.com/tildeclub/tilde.club/blob/master/docs/irc...
Dear Mona, Does Living Together Before Marriage Increase the Risk of Divorce?
The subject of the piece (Stephen Booth) has written "400 pages of virtuosic commentary exploring the ambiguity and polysemy of Shakespeare’s verse." Does anyone know if he addresses Step Zero of appreciating the sonnets, which is to use Original Pronunciation (OP)? [1] Many of the sonnets don't even rhyme properly when pronounced in modern British or American English, but they do in OP. [2]

[1]: http://www.pronouncingshakespeare.com/

[2]: See, for example, the recitation of Sonnet 116 at https://www.youtube.com/watch?v=bt7OynPUIY8.
> Digressing, were there any discussions about using var like in Swift (instead of let mut)? What is the rationale for not making that more minimalistic?

I was interested in the answer to this too. I found these which helped me understand:

https://github.com/rust-lang/rust/issues/1273

https://github.com/rust-lang/rust/issues/2643
There is a term for this - it is "peak internet". I suggest that peak internet occurred in 2010, give or take:

http://blog.kozubik.com/john_kozubik/2010/12/peak-internet.h...
The MOST important framework for any business
> This is a good thing because those topics are intensely but shallowly interesting and the downvotes should be training people to avoid those threads.

This is not an objective fact, though. This is just your personal taste (and obviously, that of downvoters who would agree with you.)

It's entirely possible (and I would argue, preferable) to avoid threads you don't find interesting without having to 'train' others to agree with you. Just don't read them.
The problem is not so much "Intel stuff is old and broken" as it is "Intel wrote the standard and there's no process to move it forward"?
There is a mathematical reason for why this is not completely horrible, even though this would catch you off guard. When x is approximately pi, the function x -> sin(x) is ill-conditioned. [0] So the relative error between the computed value ybar=fl(sin(x)) and the true value y=sin(x) is (ybar-y)/y and is quite large.

However: you can find a number xbar that is very close to x, in the sense that (xbar-x)/x is very small, such that the computed "inaccurate" value ybar=fl(sin(x)) matches sin(xbar) exactly.
Thus this procedure is backward-stable, but not forward-stable. For "typical" numerically-stable algorithms, this might not be such an issue.

Very interesting writeup, anyway. I also found this post by James Gosling [1] describing the same issue, and the slower software workaround implemented in JVM; the post is from 2005. The paper that explain K5's implementation is "The K5 transcendental functions" by Lynch, Ahmed, Schulte, Callaway, Tisdale, but it is behind an academic paywall.

[0] http://en.wikipedia.org/wiki/Condition_number

[1] https://blogs.oracle.com/jag/entry/transcendental_meditation
And if you do, simply take the title, and dump it into Google. The wsj has a stupid rule where they won't require you to have an account to read the full article if your referrer is google.

I created a small greasemonkey script to set the referrer on all wsj websites to google. Works like a champ!
We started using Weebly for projects where clients neither had the budget or the technical requirement for anything beyond basic. We've done four in as many weeks, it really is proving itself to be a resourceful little tool.

Even though I kind of hate dragging those component around, the reality is that the little tool has made the company I work for upwards of £3k this month at a time where the team are between more technical projects. Win, win....for now!
> Unless you need the extra precision, using a float makes more sense than a double.

No. Floats are OK for big storage, but for a lot of uses you want to make all the intermediate calculations in doubles and only when storing the results to convert to floats again. See

https://news.ycombinator.com/item?id=8434128

(at the moment top of the front page) where people have problem with Intel using 66 bits mantissa internally for the input of 53 bits (double!). You don't want to have partial results as floats unless you're doing graphics and simple calculations where you need much less bits. You'd would never like to calculate a bridge construction with floats, even if the needed parts would at the end be written with only 4 digits.
It was great. I learned how to program AND compose on it. 3 voice SID chip. I later even got a MIDI cartridge for it.
How we could have stopped swine flu (2009)
See my comment above. Dump the title into google, click through and you're good. wsj won't paywall you if your referrer is google.
That is, in fact, roti telur! you can fold in a variety things into roti canai:

- roti bawang (onion)
- roti sardin (canned sardines)
- roti pisang (banana)

I had a roti pisang at home in KL last month and nearly wept at the impossibility of finding this anywhere else.
Apple Watch: What Your Favorite Apps Will Look Like
No tool will help you much if you don't know how to use it. In this case, using the tool wrong, one failure mode puts you in the same situation as not using the tool and defensively initializing. That is a very poor argument that the tool does no good.
I'm not trying to detract from anything they've done, and their products are fine, as far as I know.

What I'm saying is that there is no correlation between their success in dealing with an infectious disease in the area around one of their facilities and the quality of their consumer products.
Design to fight Ebola
You have enlightened me: there are no guidelines on downvoting. at all. that's fairly terrible, IMO. I guess I should expect downvoting to be an ungregulated wild west, and accept the spiteful downvoting that comes with it.

I understand this sounds sarcastic, but I'm being serious.
The folks over at IDEO have launched a challenge in partnership with USAID to invited designers to develop ideas to stop EBOLA
This reminds me I need to make work of starting the quest for my very first homepage (with ~). It's still online, I just have no idea where it physically located and I've lost access to it in late 1996. The page is under the domain of an ISP that no longer exists, having been bought by another ISP... that no longer exists either.
I like your observation, btw. It is interesting that the only counter-examples I could find were either done by a post-Impressionist in an asylum, or as an explicit invocation of the supernatural. I would prefer to have found an example made by a realist.

Alas, internet search technology doesn't yet handle "pre-20th century paintings showing a daylight moon."
It’s not a robot, it’s a Waldo¹ – a puppet, essentially. Which is fine for Disney, which wants to make puppets for puppeteers, but this has basically nothing to do with new developments in robotics.

① https://en.wikipedia.org/wiki/Remote_manipulator
The calculations might be different with a thermoelectric final stage versus a mechanical one.
We would love to fix the bugs that you have seen in Sensor Tower. What were the issues that you ran into?
I believe the goal is for there to be an officially-supported green threading library, yes.
"Have you ever tried to buy bitcoins with our annual internet allowance ($300 per year on online purchases with credit card)?"

Wait, what ? What is an "internet allowance" ? How would one credit card issuer know if you had already spent $300 using a different credit card ?

How can this possibly be a thing ?
This is interesting because even though it doesn't mention it, it seems the same technique would have worked for the current ebola outbreak.
You're right. the rules aren't what I thought they were either. I'm adjusting my views accordingly.

I rarely care about "non-hn" stories making it to the front page; discussions on HN were more important than the links themselves. I wonder if I'm in the minority there.
Wow this project is amazing, brings back a lot of good memories. I will find a way to help out for sure!
Right: I guess I distinguish between exactly-once _messaging_ and exactly-once _processing_. it doesn't seem possible to guarantee that the code will be run exactly once, but you can promise that the outputs are made visible exactly once... as long as your system can capture the relevant outputs, of course.

It seems like transactions ought to be enough for the latter -- I'll have a look. Thanks!
75000 Futures
We would love to fix the bugs. Would you mind sharing your experience and what you found annoying?
awesome idea! going to email you now
https://software.intel.com/en-us/forums/topic/289702

"Shane Story (Intel)
Sun, 06/27/2010 - 11:44

(...) rigorous error bounds for most of the x87 transcendental functions (f2xm1, fsincos, fyl2x...) were provided when the Pentium processor released. I recall an appendix in the orginal Pentium manual which showed a collection of ulp (unit in the last place) charts - don't recall the upper bound for all of them but it was something like 1.8 ulps. This would be for double-extended 80 bit fp inputs. Results for the fsin/fcos were for arguments < pi/4 because for the reduction for larger inputs, a 66-bit value of pi (or pi/2) was used."

It's really a documentation bug. Sometimes some important details get lost after the documentation rewrites.
> Digressing, were there any discussions about using var like in Swift (instead of let mut)? What is the rationale for not making that more minimalistic?

There were (I think it was somewhere on GitHub). One of the things `let mut` facilitates is:

fn main() {
let (i, mut j) = (10i, 10i);
j += 1;
println!("{}", (i, j));
}

I'm sure there are other applications for it too (such as in pattern matching). It just fits better into Rust.
Rust doesn't have a default for float types, it forces you to be explicit. `let x = 3.33;` without any other way to infer it will cause an error, forcing you to either write `3.33f32` or `3.33f64`.
Largely `wall`. As of a few days ago there's an IRC server running on localhost.
This article definitely seems to think it's more contagious than what the CDC believes: http://www.cidrap.umn.edu/news-perspective/2014/09/commentar...