skysight-inc/HackerNews huggingface dataset:
> only to have a mode where it refuses to silently make 'optimizations' when it does identify UB.

That's not always possible. It's not that it makes the optimization when it identifies UB. It's that it makes an optimization that is valid to make if UB doesn't occur, but if UB were to occur then that optimization could cause all kinds of unexpected problems. But the compiler can't necessarily identify those cases.

Please read the "what every C programmer should know about undefined behavior" series of articles from LLVM; they describe the reason why they can't, in general, provide warnings or errors for these cases in which optimizations rely on lack of undefined behavior:

http://blog.llvm.org/2011/05/what-every-c-programmer-should-...

http://blog.llvm.org/2011/05/what-every-c-programmer-should-...

http://blog.llvm.org/2011/05/what-every-c-programmer-should-...

The third article describes why the compiler can't, in general, warn about those cases in which it's relying on lack of UB, but you should read the first two as well.

Note that for some of those cases, clang and GCC have recently added undefined behavior sanitizers, invoked via "-fsanitize=undefined", which can help even more than the warnings they can add. However, what they do is add extra instrumentation to the executable, and then either log a warning or crash when you hit undefined behavior. The runtime aspect helps avoid the "getting this right would involve solving the halting problem" aspect of why they can't, in general, provide appropriate warnings, but it does mean that this is generally only appropriate in test builds, and that you will only find the undefined behavior that you can trigger during test, while there may be more hiding that only show up in obscure circumstances.

If you really don't want undefined behavior, it's best to use a language, like Rust, which does not have any undefined behavior (outside of "unsafe" blocks). The problem with any kind of warnings that are tacked on after the design of the language is that you are either going to get lots of false positives, lots of false negatives, or both. With a language that is designed not to allow undefined behavior, you know that if the code compiles, it doesn't invoke UB.
HelpYea, Real life help app
I can't really believe this is a serious idea. Or maybe it is a serious idea from people who have no idea how startups work.

As one of the other commenters said, the primary reason I wouldn't start a company in France is the "Byzantine and insane laws" that you have to deal with. For starters, how about all of the employment laws that make it difficult to fire poor performing employees.

But beyond that, look at the tax rates. As someone who has been through starting a company before, it's just not worth it without the chance of a good return in the future. A quick internet search reveals that as a non-French citizen, I would be liable for around 56% in taxes if my company ever exited. Compare that with the qualified small business rate of about 15% here in the states...

It's almost offensive to me that the French government thinks that the only thing standing between a successful tech scene and where they are now is the ability to get a visa and some seed capital. Hubris much?
I did not mean to offend, and apologize if offense was taken. I don't know where the accent comes from and it's certainly not anyone's fault how they speak English (and kudos for speaking English since I suck at languages). The fact is, it seemed central (or eastern) European to me, and if I were trying to sell (say) Americans or western Europeans on privacy products, anything suggesting the former eastern bloc would not fill me with confidence. Make of that what you will.

I refer to making ordinary communication more expensive to break into. (Security is a relative term; you simply make things more expensive than who-ever it is surveilling you cares to pay. Good encryption is more expensive to break than weak encryption which in turn beats no encryption.)

"The National Security Agency/Central Security Service (NSA/CSS) leads the U.S. Government in cryptology that encompasses both Signals Intelligence (SIGINT) and Information Assurance (IA) products and services, and enables Computer Network Operations (CNO) in order to gain a decision advantage for the Nation and our allies under all circumstances."

Have you got any information to suggest this is not what the NSA tries to do?

Michael Hayden's perjury in front of congress aside, I don't think people at the NSA go to work, rubbing their hands together and evilly cackling about all the civil liberties they're going to violate. Indeed, can you nominate anyone who has actually been harmed by NSA surveillance? To the extent it works, we probably won't know about it for decades. Maybe never -- there are aspects of WWII Sigint and cryptography that are still undisclosed.

Now, if you don't like the US and its allies (and there are plenty of reasons not to, I won't deny that), sure -- that might tick you off. But it's not like every other country doesn't act in its own self-interest. I believe that the people in the NSA are attempting to honestly pursue its aims -- they may differ on their opinions as to how best to do this.
> Recursion is rarely a good idea

Umm, I really disagree. Recursion and tail-call semantics are enough to make it equivalent to iteration, except the state is stored in the calls instead of explicitly outside the loop. What sucks is buggy code that does not handle cases. Depending on how you view functional languages, for instance, you could argue that iteration is necessarily implemented with recursion, and not vice-versa, and that explicit looping is only necessary to serialize it into steps (instructions).

Nonetheless, with both approaches you need to guard against multiple negative signs. Not much to do with recursion. His approach would have been fine if he had a signed? flag.
Some hosts are doing away with backup MX hosts (including me/work) simply because a) any sane sender will retry for a period of at least several hours and b) sending via the backup MX is a common way for spammers to (attempt to) increase the chances of their mails getting delivered (e.g., due to lack of/decreased filtering on backup MX hosts).
Steam Engine Time
It is my understanding that the title on Hacker News is meant to match the actual title of the article.
I wonder how Barack Obama will stand against this assumption.

There are some serious accusation, I'm pretty sure both side will temper all the way they can but may lead to intense change in business as company already starting to file complain !
> That is not my original comment.

Apologies. I corrected my comment to reflect this.

> Yelp is currently refusing to open their data, but they cannot both do that and demand Google artificially rank them highly in the results.

I wasn't under the impression that anyone was debating the "organic" search results at all. I was under the impression that this is regarding the sections Google places above the search results which emphasize its own services unrelated to Search over competitors.
Someone is already doing that.

https://hosts.neocities.org/

Warning: Hosts file too large. Could cause problems with Windows DNS Cache.
We edited the title in accordance with the HN guidelines: https://news.ycombinator.com/newsguidelines.html.

If you want to highlight the interesting part, the place to do it is by adding a comment to the thread, as you just did.
It would make the difference to a small group of people who speak French fluently but little to no English, but that is not what I find interesting. I find interesting that France, notorious for protecting its own language, will put a foreign language above it.
Very cool. I like perusing these kind of libs in various languages. I wrote one in Scala...

[Algorithms][1] and [data structures][0] in Scala:

[0] https://github.com/vkostyukov/scalacaster
[1] https://github.com/pathikrit/scalgos
Why does my program run faster if I click and hold the caption bar? (2006)
My biggest problem with VR, and 3D goggles in general, is that eye-accomodation is not necessary in the virtual world, with current technology. This means that the eye will get lazy if goggles are used too often.
I've been doing research into code live streaming since I might do it sometime soon. One of the most important things about live streaming is archiving, so people who aren't online and free at that exact moment can still get value from the stream. Twitch has VODs, YouTube and Periscope auto-archives.

I attempted to load the archive of the linked Stephen Wolfram video and hit this: http://i.imgur.com/m1TEJHS.png

Seriously?

According to the sign-up blurb on the right of the window, forced-signing-in-to-watch-videos is the intended behavior, which puts a lot of doubt on the startup sign-up metrics provided. I will never use this service.
Music: Music for Programming.
Science: StarTalk Radio.
Fun: The Gralien Report, The Paracast.
Wasn't the "de facto standard" set by QMail back in 1998 ?
I didn't mean to imply (and don't think I did...) that reading an uninitialized variable is not a problem, just that the problem is entirely unrelated to whether it has a memory location.
No offense, but that sounds naive. Have you done any meaningful consulting work?

My experience was that the highest value clients paid somewhere in the net 45 to 90 range, despite contracts stating that we billed net 30 that included penalties and interest. And my experience was that it was actually fairly easy to increase prices by 25%, but extraordinarily difficult to get clients to agree to unusual terms (such as a halt in the performance of the contract in the case of minor payment delinquency).

I'm not saying my experience is the only experience, but frankly the only clients who I could imagine agreeing to those terms were puny, and unsophisticated folks who you probably don't want to work for anyway. The more sophisticated buyers all had a lawyer who would negotiate anything like that out of the contract anyway.
That's only true until your business threatens a competitor with more political influence... in countries where the laws are written that way. (The USA counts as such a country, though we don't do it as much as france- look at how much protection the cable and wireless companies have.)
Did I misunderstand or are you arguing GIMP is for "padding developer CVs"? That's a... fringe opinion, to say the least.
Previous thread about this post on HN: https://news.ycombinator.com/item?id=8857969
Fyi Rust has solved this problem; the compiler forbids the use of undefined variables. Compile error example:

let x;
println!("x:{}", x);
However that requires a compromised client, a compromised cert, or a compromised ca. While all of those are possible, they do substantially raise the bar in terms of who may have the capabilities.

It's a classic tradeoff in terms of who you care about being secure against and how badly you want it.
I can see that line of thought being a fine one to voice, however I am curious how you expected others to infer all of it simply from your comparison of casinos to nazis. As when I read it my initial reaction was simply that you were calling casinos nazis, and if I were to ignore this reply I would still see it as the most logical way to interpret the post.
I enjoyed your brief yet subtle satire there.
Improving on Git Flow: Code Reviews
And you might want to access a memory location legitimately that was not written by this program, for instance a chunk of dual-port memory, a shared memory block, a piece of memory mapped hardware and so on.

In those cases some compiler override could provide the solution, while still allowing the compiler to flag all the other cases as errors.
It might be shorter to list who the NSA didn't spy on.
> One practical use of this technique is for code obfuscation - many (kernel) debuggers will break due to the frequent context switches (esp. cooperative debuggers like KGDB) and analyzing the binary is going to be extraordinaly confusing, especially if normal X86 instructions and trap instructions are interleaved to do weird control transfer. Furthermore, out of the many virtual machines only Bochs runs such trap based programs correctly (and there are other tricks to distinguish bochs from a real box).

In other words... security through obscurity.
Thanks a bunch - that looks interesting! my Doc wasn't in there but i'll keep an eye out.
Not in France.
For very small businesses selling small amounts of small things, the right answer is to use FedEx and DHL.

For everybody else, FedEx/DHL is hella expensive if you want to ship a couple conexes worth of stuff.

The way freight companies are set up, you can't just pull up with a container and say "What's the rate to Albuquerque?" you have to have a whole plan that takes into account transfers, mode shifts, delays, temporary storage, customs, who can sign for it, paying every single entity involved in touching the freight, and a bunch of stuff I don't even know about.
Awesome tool, thank you for making this available to the community! I'm going to take a crack at integrating this into our ember application and (hopefully) cut back on some of the support. Is there any formal ember-cli support in the works?
Question: would a data lake require backup ? Would you be keeping backups of the lake itself, or would you:

- assume processes that dump into the lake also dump elsewhere, for backup purposes

- assume that some other process pulls from the lake (and possibly orders or sanitizes the data) and then backs it up

?
Very amusing to see Bitcoin fans trot out their usual nonsense.
Well, the entire difference between the house and the player is that the house has the edge, so the house always wants the player to indefinitely recycle their winnings until they have none.

It's more than an inverse in thinking, it's how the house makes money.
So based on all of the feedback we've gotten, I'm going to look at making a platform-agnostic installer as well as a .deb package, for people who want to run Unity on non-Ubuntu installations.

We're probably going to still only offer "official" support for Ubuntu, since that is what we build/test on, but we'll try to fix what we can when problems are supported on other distros.
Considering what all of the young animators I know went through after looking for work here out of SVA, six months was if they were lucky.

It has gotten a lot better over the last 5-7 years though.
From my perspective, the BSDs are focused on what they should be: making a good version of Unix. I feel that the Linux developers are spending too much effort on the "desktop", which is why we have now have GNU/SystemD.
The tagline is "watch people code products, live". The word "products" appears in almost every piece of copy on the front page. Why not just "watch people code, live"? Why the focus on products? What about open source code, personal projects or other things that will never be sold?

Classifying streams by programming language is also kind of odd. Lots of projects use multiple programming languages. A better classification might be what general kind of code is being written (machine learning, graphics, UI, web frontend/backend, games, etc).

That said, I'm very interested in this and hope to see it succeed!
Hi! I'm glad to see that the post is promoting constructive dialog about what does or doesn't make portable code, which is what the point actually was (in addition to shedding a bit of light about the state of porting Unity to Linux).

I'll clarify a few things:

1. Unity was originally written for Mac OS X, then later ported to Windows (not the other way around). Given that it's more than possible to have a case-sensitive HFS+ filesystems (since, I think OS X Panther released in 2003?), IMO it would have been more future proof for us to be sure to develop on a case-sensitive filesystem. Unity users over the years have tried to run Unity on a case-sensitive HFS+ filesystem and failed, so it would have been nice for all of those guys. :-)

2. Note that the point in the article was not to avoid using OS-specific defines (that's impossible), it was to make sure to do something sane (like #error) in the #else case that would make it immediately clear something need to be implemented there.

3.1. Yes, the higher-level point is indeed, "Be smart/cautious about what language features to use for the sake of portability".

3.2 & 3.3. Of course it's just a matter of opinion, but I wish that we'd considered a more platform-agnostic approach to GUI handling when the number of platforms that Unity was ported to went from 1 to 2. I (and others) are still a fan of the menu-system-written-entirely-in-Unity-GUI idea, but others (within Unity), for very good reasons, disagree. Fair enough.

Anyway, thanks for sharing your thoughts; when I write about anything I'm always looking forward to hearing a different perspective, and one of the main goals I had in writing the post was to promote constructive dialog about what it means to write "portable" code. :-)
Isn't alcohol a diuretic?
ah no -- I was only talking about multiprocessor-ifying packet management.

edit: s/package management/packet management/
If your dates and times and locations vary enough, you already can't do a mod 60 check on UTC to detect a minute boundary, as various historical time zones include seconds-level offsets from UTC. For example, US cities were on local solar time until the latter part of the 19th century, and the changeover to uniform time zones involved lots of seconds-level offsets. Interesting stories here:

http://historymatters.gmu.edu/d/5748
You can fire someone without any justification for the first eight month. Isn't it enough to know if they are incompetent ?
I dunno about anywhere else, but in America these are definitely not standard. In CA most tech employees are at-will.
I don't fly much, but I've never spent more than 10 minutes waiting to be screened, 5 actually being screened. But it's really highly variable, and the downside to missing a flight is very high, so most people show up really early regardless.

I gather it can be really bad at peak times.
There's a good reason: The demand for it is infinitesimally tiny, and the hassle of doing so (and having to deal with monitoring whether or not you end up being a spam source) is an extra cost.

An argument that it's not "full" internet access will get you nowhere - very few consumer internet subscriptions are "full" internet access in the sense that they are totally unrestricted - most have very severe restrictions on e.g. running servers and many other things.
Why do you require creating accounts in order to view stuff?
nice video, quick question: why not do a blank exception? when the error is printed out it doesn't say what kind of exception it was anyways
> I'm not sure what you are referring to with the will of the governed part.

The idea that the government derives its power from the consent of the governed [0], or put another way, that the people are responsible for the actions of the state.

> As I understand the situation...

So "predatory lending", one of the sillier ideas that I've ever heard. It basically implies that people can't be trusted to enter into voluntary transactions. Except that we are talking about the state here, the nanny that is to protect the people from themselves. So what happens when people start complaining about red lining [1]?

> Shouldn't the banks also take a hit alongside Greece?

Contracts, they're pretty important. When you don't enforce contracts, businesses will start to wonder what advantage they have in trading with you over doing business in Zimbabwe.

[0] https://en.wikipedia.org/wiki/Consent_of_the_governed

[1] https://en.wikipedia.org/wiki/Redlining
"Many ISP's" don't actually block 25/TCP outbound but simply add their residential netblocks to, e.g., the Spamhaus PBL. An end-user assigned one of these IPs can, upon request, have it removed from the PBL himself. This is, IMO, a much better way of "disallowing" outbound SMTP than simply filtering out packets.
If someone is genuinely interested in seeing a site improved then they should email the person operating the site. Let me guess how infrequently that happens. Diplomatic effort? No way!
Glad someone could make that work. I tried it with RentACoder a few years ago (scanning the "need a coder" lists for product ideas), but the requests had very little in common besides only wanting to pay bargain-basement prices.
Interesting, the same Startup Visa program for Italy got the same negative reaction[1]. I wonder which European country has the best conditions to start the new high-risk Internet company? Finland? Poland?

1. https://news.ycombinator.com/item?id=8890952
WebAssembly is not a bytecode for the web
WebAssembly is a compressed binary encoding of an AST. Bytecodes are for instruction sets. This has significant differences.

1) Loading an AST is much faster than parsing code and compiling it into an AST.

2) ASTs often go through optimization passes before being compiled to native assembly. Many of these steps can now happen at compile time instead of "parse" time.

3) ASTs are easier to target for language designers than bytecodes.
I try to practice mindfulness on a daily basis. I do find that it's very useful when you want to separate your emotions from your self, like during periods of anger or anxiety. I haven't done it long enough to be able to talk about long term results, but it's proving to be integral to my goal of heavily increasing productivity throughout the day.
Do you have any data on the percentage of spam email sources (of all email sources) that send 1-10 emails per day?

I'd expect that for a spam source to be effective, it'd need to send many more messages. Some spammers may try to run many low-rate sources, but you could likely do statistical analysis on the content of the messages to differentiate the spam sources from the non-spam sources.

Further, allowing the occasional doesn't-look-like-spam-but-is-actually-spam message (if such a thing exists), isn't the end of the world. The user can mark it as spam and have the source blocked forever.

The real spam problem that needed to be addressed was mailboxes being completely flooded with unsolicited messages. So flooded that it becomes impossible to read or even find the legitimate messages.
Strange choice to put a picture from the Ocean's Eleven series at the top of the article, seeing as how the thieves in those films are considered the protagonists/heroes.

I think a bit more information included with the article to verify this was actually a 'hack' would be helpful. I mean, was this akin to counting cards or what? It's hard to tell from the article.
This article is simply incorrect. The passwords are only stored in plaintext when there are no OS-level or desktop environment options available to protect them.[0] In the absence of such a system where exactly do you expect Chrome to store the encryption key for the list of passwords?

[1] https://code.google.com/p/chromium/wiki/LinuxPasswordStorage

edit: Apparently there are people that run either incredibly old versions of chrome or don't run a keystore daemon and actually upload all of their dotfiles to github so I guess that part is technically accurate.
It says 0% for Turkey and no data for Bulgaria. Better than the USA.
So, all software engineers need is a Collective Mind Node [pdf]
Where's that bloke from those Acorn User "You break 'em, we mend them" ads?
> A related issue would be insider trading.

To be honest, all of the data hoovers such as Google, Facebook, Twitter, LinkedIn and Co. have a pretty obvious insider knowledge-like cash machine: simply look into a few correlations between what data their users (as signed in users or as involuntary shadow profiles) put into these companies' databases and the movements of the stock market. Then predict and cash out.
On an unrelated note, I love the font on this page - "ff-quadraat-web". Very natural and easy to read.
The security lines here, except very early in the morning, are typically 40 minutes, minimum. It's atrocious.

The whole charade that taking off your shoes somehow makes people safer is insulting.