skysight-inc/HackerNews huggingface dataset:
When you have the capacity to design CPUs, you can do a lot more. They likely hired him for his deep HW engineering expertise, which the article suggests. I doubt they are interested in making a CPU.
oh, hey man! likewise! it's been a while. :)
Ah, ok, I see :)
> This is the distinction between a crime and something that is illegal.

You're language is too loose to be making such distinctions. Crimes have a legal meaning so you can't just use the word crime in its moral sense only without being specific.

>On HN people rarely make the distinction because they think something being illegal makes it a crime.

HN isn't that dumb.

> Gay marriage may have been illegal, but it was never a crime, for example.

In the sense you're using the word crime (i.e. moral) you're absolutely wrong, it was a moral crime and gay people were the victims of said oppression.
I think this point has been made in some way or another in the thread, but I want to try to restate it.

Suppose Alice (alice@gmail.com) emails Bob (bob@yahoo.com). If Alice sends Bob an email without PGP encryption, the text of those emails is stored on both Google's and Yahoo's servers, allowing either of those companies to read the email (or a government if served with a subpoena, or others -- possibly the general public -- in the event of a data breach). This is true regardless of whether it was sent with TLS at every point in the chain.

On the other hand, if Alice uses PGP to actually encrypt the text of the email with Bob's and her public key, nobody except Alice and Bob themselves (not even Yahoo or Google, who have the message stored on their servers) can read the message.

It's an important distinction -- as major consumer messaging products like Apple's iMessage, WhatsApp, etc. have recently started to implement this end-to-end encryption where even the company themselves are unable to read the message their users are sending, the FBI and other federal agencies have started to actually complain about their newly limited ability to spy, unlike when only TLS was used and they could just serve an NSL to Apple/Google/etc. to make them give up your message without your knowledge (with their only other option being shutting down their business, more or less).
I find it less interesting in terms of applications. I am sure finding the causes of these illusions will help in understanding aspects of how the system, human or machine, subject to the illusion operates; however, so many of them depend on either a static image or a fixed perspective that it just doesn't seem to be all that big of an issue to me.

The visual illusions humans are subject to are frequently defeated by some simple motion to reposition the viewer and there seem to be few illusions that can sustain being in motion themselves and still fool people. From that it doesn't seem all that revolutionary that a fixed position view of a three dimensional reality, with no fourth dimension of time, is not omniscient. It only has one bias sample or view of the scene, so why would we expect it to be omniscient?

The paper "Deep Neural Networks are Easily Fooled: High Confidence Predictions for Unrecognizable Images"[0] is interesting in its explorations of the issue but I still don't get the hype around "fooling" DNNs. Even if someone gets an actual video scene, a timeseries of frame after frame, that still fools some kind of DNN (perhaps a LSTM => softmax classification), it's still not all that interesting as that occasionally seems to happen to humans too.

[0]http://arxiv.org/abs/1412.1897 (web, but the pdf linked from there is ~9.5MB)
Just one more reason to never publish in or cite from Elsevier journals.
http://zl-lang.org/doc/zlap1.html#x19-66000A.1

"The current ZL prototype supports most of C and an important subset of C++"

Looks like they have complete C compatibility and proof-of-concept C++ compatibility but not complete.
Fun anecdote, a while back I was installing Windows onto a box with Debian. When I needed to get GRUB set up again, efibootmgr was throwing an inscrutable error when installing the boot loader, but I had no issues manually booting it from GRUB on a USB.

Ended up being the case that the EFI pstore was filled (half full?) with Linux crash dumps from before I ironed out some OC stability issues. Had to manually mount it and then delete files named "dump-type0-" from the BIOS NVRAM to resolve the issue, which was pretty fun.

Something along these lines: https://bugzilla.redhat.com/show_bug.cgi?id=947142

forgot account name
If you call SetFirmwareEnvironmentVariable, then you reasonably expect firmware memory to be updated. You do not expect any firmware to be modified by "rm -rf /". So the efivarfs filesystem interface is the problem. It violates the principle of least astonishment. In Unix we say that "everything is a file" but it is false; efi variables definitely aren't files.
I browsed through the README and was somewhere between laughing and crying by the end - it's like a case-study for all the baffling complexity that's been added to front-end development over the last two or three years.

(I expect this comment won't be too popular, but I'm happy to take the flak.)
Foxconn is a Taiwanese company
>I want to congratulate the C++ standards committee for all the work they've been doing lately. And they're not even slowing down! The roadmap for C++17 looks like we'll get even more fantastic features...

This is exactly why people avoid C++. More features != better language.
Perhaps it means they're trying to be thorough?

A Xeon implementation would have to secure the QPI links between the CPU chips. These run at significantly higher speeds than DRAM, so the current MEE design would likely not be able to keep up. Also, a Xeon implementation would have to somehow have the chips mutually authenticate each other.

That being said, I wouldn't be surprised if Intel was trying to see if they can get away with the licensing bs in desktops before committing resources to tackling the challenges that I mentioned above.
Python:

>>> import numpy
>>> numpy.array([1,2,3]) + numpy.array([4,5,6])
array([5, 7, 9])

Python sequences use "+" for concatenation, but numpy arrays use them for addition. (This is why language designers should not use "+" for concatenation. The mixed-mode semantics get very strange.).
That's not a real good reason given the damage and since we're talking about systemd.
Book recommendation — Red Rover: Inside the Story of Robotic Space Exploration, from Genesis to the Mars Rover Curiosity by Roger Wiens.

The author describes building scientific instruments for Curiosity. There is certainly a lot of bureaucracy involved.
This one simple visualization would have saved weeks of trying to gain an intuitive understanding in class...
You may as well argue that people shouldn't live up North because they won't get enough vitamin D without supplementation.
the machine would be bootable with the defaults

The good-old-days weren't all Wine and Roses. For example, there was this: http://webpages.charter.net/danrollins/techhelp/0054.HTM

If you wiped out CMOS, a "simple CMOS reset" was not sufficient to allow booting, because knowledge of the type of disk you had installed was lost.

Sure, you could iterate thru those preloaded disk types and stumble upon the correct one. BUT, having a fixed selection of types proved to be too limiting. So there was a scheme to add drives types. That info was also stored in CMOS, so if you lost that, it was quite difficult to restore the configuration:

Newer BIOSes provide a means to define a custom
setting. The setting will be stored in an
undocumented location in CMOS memory (and is lost
if the battery ever fails -- so write it down!)

It wasn't an insurmountable problem. It simply meant that you had to come up with a few bytes, perhaps by calling the manufacturer or integrator. But this was in the days before Google, so it wasn't easy to find this info with a quick search.
You could say the same thing about any new language that has come up in the past 20 years. Yet new languages do appear and become popular all the time.
> Poettering, Sievers, and Drepper

Three employees among thousands, representing two projects out of hundreds. Why generalize from that sample? Why ignore all those contributions to the Linux kernel or Fedora, OpenStack or Kubernetes, gcc or coreutils? Some pretty good leaders in there. And if "creating leaders" is supposed to be how we judge companies, what should we make of much larger companies where few employees engage with the community at all? I don't even mean unpopular companies like Microsoft or Oracle. What about Google, for example, or Apple? When it comes to community leadership, they're net negatives; existing leaders go in, and are never heard from again. When every single developer at a billion-dollar-a-year software company is engaged with some open-source community or other (often several), there will be a few losers. That's a poor reason to insult thousands of others.
I expect this to play out like the W3C EME standard. Software attestation separates debug from non-debug enclaves, so your kernel will need to load production enclaves for you to watch Netflix. If Mozilla/Firefox caved, so will Linux.
I'm no expert just an mma fan. The rear naked choke for instance. Once they get under your chin its hard to slip out. The bigger the chin the more difficult. The chin is like a hook. Imagine a person without a chin. He could just pull his head out. Especially if they are sweaty.
This strikes me as true. I suspect that one of the greatest challenges in creating self-driving cars is not the learning/training problem, but rather the problem of ensuring functioning sensors at all times -- which is where his hardware engineering expertise comes in.
I disagree with Poettering's technical decisions more often than I agree with them, but to be fair, some of PA is because the distros adopted it early. Heck, when Ubunutu picked it up the readme still described it as something along the lines of "The server that breaks your audio system."
"Rust's ABI" is the representation of functions without `extern` declarations. `extern` causes functions to use a different ABI, by default `extern "C"`.

https://doc.rust-lang.org/reference.html#extern-functions
uBlock Origin's advanced mode does pretty much the same thing as uMatrix.
Now here's something your selfie stick can't do:

> The view does not include the rover's arm. Wrist motions and turret rotations on the arm allowed MAHLI to acquire the mosaic's component images. The arm was positioned out of the shot in the images, or portions of images, that were used in this mosaic.
Self destructing cookies

This looks amazing. Any particular setting one should be aware of or must change to keep things less annoying and smooth?
I had an excellent intro CS teacher in 9th grade who was ex-Army with an actual CS degree. He also taught Algebra. We got to spend a year of course basically playing around in Hypercard.

I also had a mediocre programming class in 10th grade at the Sr. High school taught by a part time business teacher. We spent a semester programming in Basic on a decade old IBM box. You can guess which class was the better influence on my decision to go into CS full-time.

The frustrating thing was that there was an entire lab full of 5-6 year old Macs that we were not allowed to touch outside of typing classes, so the decision to use the crappy 10 year old non-GUI machines was basically curriculum related.

The point being, teachers are important (and this initiative won't help with that), but even getting some good tech into the hands of students would help more than you realize. There are still schools with not enough resources to teach a decent CS course or more than a vague idea of what kind of curriculum would cut it in the real world.
I'm struggling to see how the Verilog vs. VHDL mailing list post the author linked to argue in favor of C++ (which, as far as I can tell, consists of various rants about specific aspects of VHDL that have nothing to do with higher-level languages) is relevant to C++ vs. Rust at all. Why not argue specifically against Rust's safety features instead of giving tenuous analogies to hardware description languages, of all things?
It's not that Rust has a C API, it's that Rust has a simple means by which you can mark a function as using the C calling convention, and export this function as a symbol from your library, which lets anything else that speaks the C calling convention (e.g. C, or plenty of other languages) invoke that function.
The part about crossing wires creating a transistor is actually conceptually very similar to what real IC layouts look like, although in the latter there are multiple layers and only the bottom two - polysilicon and diffusion - interact to create transistors:

http://wiki.nesdev.com/w/index.php/Visual_circuit_tutorial
Sadly, leaking the key is not the answer. You'd give independent developers the freedom to use SGX, but at the same you'd make SGX worthless.

Details: if the key used to sign architectural enclaves (like the Launch Enclave) would leak, this would completely break SGX. Anyone with the key could create their own Quoting Enclave and the guarantees behind software attestation would go down the drain.
Not surprisingly, the sum of two lists is just as nice in Haskell:

zipWith (+) a b

... and things get a little bit hairy with three lists:

zipWith3 (\x y z -> x + y + z) a b c

... which is still nice but for four lists we get to the same point as OCaml:

let a' = zipWith (+) a b in zipWith3 (\x y z -> x + y + z) a' c d

I guess in both OCaml and Haskell the user is expected to define zipWith4, zipWith5, etc. (or map in OCaml's case) if he fells the need to use them.

There is probably a simple and elegant way to get variadic-like behavior in Haskell by folding list of list, or playing with Foldable and Sum, but it's a little bit to early in the morning for me to generalize it.
In addition to asking you a series of invasive questions when you uninstall — which, I suspect means they sell that data once you're no longer using the software.
I don't mean to hijack this thread but I've been wanting to learn C++ for desktop-app and game related side hobby. I'm wondering if I could get some suggestions on where to start given my background as a Java and JavaScript developer (I do mainly web-application/back-end development) by day and had done C for the majority of my university courses (I take a few system-programming type of courses: OS courses, Computer Network courses, Dist. Syst, and DB). I did a bit of C++ for algorithms/data structure courses and am familiar with basic C++ (new/delete, OOP in C++ to some extend, STL).

I'm afraid Java spoiled me with GC, cross-platform libraries (especially the concurrency API, Joda-Time, Joda-Money, etc), JUnit, SCM (build, dependency management by Maven), great cross-platform IDEs that I'm really having hard time dragging my feet to C++.

Should I start with C++14 and skipped anything before that?

Any tips in how to deal with dependency-management and build in general?

What about unit-testing framework and some best practices?
Effective Ways to Prepare a Good Bug Report
Ditto except uMatrix

What exactly does it do?
Many of these new features are ones that already exists in other languages and almost taken for granted these days (e.g. module system).

Many others are in form of libraries, and the C++ standard library is quite anemic compared to e.g. C# and Java.
Could someone please explain what this does in a clear step-by-step way please?

Here, I'll explain what I think it does so you can at least correct what I'm missing:

(1) User visits web site example.com and needs to get file foo.jpg from example.com.

(2) foo.jpg is available at some content delivery network, let's say Akamai.

(3) User's browser gets foo.jpg from Akamai.

(4) Akamai now knows the user's IP address, the Referer (example.com), and the user agent info (browser version, OS version, etc.)

So what does the Decentraleyes add-on do? I think it does the following:

First, this add-on apparently cuts out the Referer when the browser asks for foo.jpg, but Akamai would still get the IP address (and the user agent info unless the user is disguising that). With the IP address you've been tracked, so does this really help?

Second, this add-on apparently gives you a local copy of foo.jpg if it exists (i.e., a copy of foo.jpg already cached on your own computer). Well, the first copy of foo.jpg had to have come from somewhere (either example.com or Akamai), so you've already been tracked.

NOTE: I'm not criticizing the add-on at all! I'm just trying to understand it.
It gives Intel control over developers. In general, a computer will execute what you ask it to. SGX will not let you run production enclaves without Intel's permission. This is like Verified Boot, except there's no credible security benefit to be gained from it.
It's rendered entirely with JavaScript, has images (and gifs), and an iframe with a Bing map on it, some sort of plugin for "Azure Media Player", and it appears to also have some scrolling-based JavaScript. It's a good example of an obese website: http://idlewords.com/talks/website_obesity.htm
This is good, one could add Certificate Patrol to combat MITM attacks.
I use D every day.
(I am one of the dev)

The main difference is that Ring.cx is built on top of open standards and only add the minimal additional infrastructure (the decentralized DHT layer) to allow it to work without a server. It is SIP compliant and can be used as work phone or your average VoIP provider, but you lose some the the privacy and advantages provided by decentralization.

For more info, I wrote this blog post a while back
https://elv13.wordpress.com/2015/09/05/what-is-ring-and-how-...
zerohedge is garbage (or possibly brilliant parody).
This is brilliant, not only for privacy but for speed. Seeing this makes me wonder why I didn't build this yet. I've often thought that Javascript loading tags could include a hash of the desired resource and your browser can fetch them once only for a thousand page loads on a thousand websites. This is not that, but it is extra local caching and on top of that it stops most tracking by CDNs. Guess I always thought of it as something my browser should have instead of an addon.
The Millionaire Fastlane by MJ DeMarco in 4 Minutes
Looks interesting. Will try and post reviews.
CC by itself isn't all that useful but C.R.A.P index can come in pretty handing for identifying under tested code even if the occasional, and usually unnecessary, switch statement needs to be ignored.
Magic is bad when it makes it hard to understand the true behavior of the code. I've never seen a situation where I couldn't figure out what map was doing.
There are duckduckGo privacy settings you can set. I'm not a big fan of a cloud store for your settings and thankfully duckduckGo allows for settings parameters in the url[0]. You can do things like require POST instead of GET, redirecting, forcing https etc. Once you get your search and privacy settings how you like them, take the resulting url and make an openSearch plugin out of it, manually or with something like my mycroft project[1]. Now any searches use your settings, no account/cloud settings needed. It's then easy to throw in every browser you use. Technically a plugin.

PS. If you need a favicon from any site for a plugin or otherwise, easiest way I've found is https://www.google.com/s2/favicons?domain=duckduckgo.com. Will grab it from wheverever the sysadmin decided to put it.

[0]https://duckduckgo.com/params
[1]http://mycroftproject.com/submitos.html
The absolute world record holder: friend of mine was low on money and needed a chop saw. He figured one motor is as good as another and managed to disassemble his vacuum cleaner and hook up the blade to the motor.

It seems that those 'max RPM' warnings on circular saw blades actually do have some relevance and the blade fragments embedded over 1" in the doorframe were proof that making a proper chop saw requires a motor with less RPM than a vacuum cleaner.

It's a miracle nobody died.
To me, garbage collection is a hack, trying to workaround the fact that we don't know how to deal with ownership. This is something Rust and C++ get right (unique_ptr, the whole Rust ownership system), and I would definitely prefer D being based on an ownership system, rather than a rogue thread randomly scanning your memory for things that look like addresses.

However, the garbage collection in D turns out not to be an issue in practice.
In D, you do have destructors and deterministic deallocation when you want to (in one word: RAII).
I'm looking into switching to Ember... The simple React stuff I've made its fun but it looks like too much trouble for big stuff. Also Ember is getting server side rendering.
Tox isn't anonymous though. Not in the same way Tor is anonymous, at least. And Tox's "nat punching" isn't fully decentralised.
A true story of development of the modern smartphone
ZRTP is disabled because we are looking for a new implementation. The previous implementation we used depended on CCRTP and it wasn't running very well in least tested OS, like Windows. This is network facing code, so you have to have faith in the code, sandboxing help, but is limited. If anyone know a GPLv3 compatible stand alone C or C++ implementation, let us know.
Mr Window by EmBraze, Another classic game to add to your collection
I started digging into McCabe's Cyclomatic Complexity [1] after reading
an interesting message on the DragonFlyBSD mailing list [2] regarding
its questionable usefulness on complex data structures and file system
(HAMMER) code. The 'pmccabe' program [3] mentioned looks interesting,
but I'm still figuring out what's available and I'm still working my way
through the main wikipedia article (which links to the submitted
article).

I think the main problem is that complexity is a bug light for hackers;
we know it will probably end badly, but the appeal is so intoxicating
that we just can't help ourselves.

[1] https://en.wikipedia.org/wiki/Cyclomatic_complexity

[2] http://lists.dragonflybsd.org/pipermail/users/2016-January/2...

[3] https://people.debian.org/~bame/pmccabe/overview.html
I turned off the notifications. Didn't need to know every time a cookie blows up.
> Linux is basically irrelevant to game developers.

Sounds like a quote form early 2000s. We are long since past that. If you didn't pay attention to the last few years - then may be research what's going on now.

> That's why it doesn't matter if you can only use DirectCX on MS platforms

It does matter. Lock-in forces developers to do double work. I.e. if they can't reuse the effort - they need to duplicate it. To put it differently - MS on purpose increases the cost of making cross platform games. Obviously for the reason of putting competing platforms at a disadvantage. How can any developer find such behavior beneficial is hard to understand. All normal developers have no respect for lock-in.

> MS has always treated their developers better than anything

Oh, really? Forcing people to do double work is not called treating you better. It's called being a jerk. And jerks they are, same as anyone who uses tools for lock-in purposes (instead of for what they should be - tools).
> My only gripe with Rust is that they should have taken a page out of Python's book in making a langugage syntax both stringent and beautiful.

I prefer Rust's syntax to whitespace-sensitive languages.

> I think syntax like fn foo(bar: int) -> string {}; is a step backwards. More glyphs, more arcane nomenclature, and I just get a ting of change for the sake of change or "I want to be a functional hipster".

No, Rust's type syntax is the way it is to avoid the lexer hack, which causes real problems in C++ (typename qualification, in particular).

> What is wrong with rettype name<templates>(argtype argname): ?

The lexer hack.

> Why are there so many damn macros when C++ is realizing having language features rather than preprocessor macros is a huge usability gain?

Rust macros are not preprocessor macros, not even close. Macros are language features.