skysight-inc/HackerNews huggingface dataset:
So sad that Jeeves is no longer around :(
Indeed it is always important when considering security, to look at the other side and balance the risk of someone else gaining unauthorised access with you possibly losing access forever. Everyone wants "unbreakable" encryption, but unfortunately it seems very few consider the possibility of themselves losing the key --- perhaps it is because locks in the physical world are not quite as strong as good data encryption, and can be easily overcome with locksmiths and the like.
I deleted Facebook about 2 months ago. Nothing bad happened. In fact, I feel relieved more than anything that I don't have this data-collecting overlord following me around. Also it takes out the stress of possibly "missing" Facebook messages or invitations.

I can't use one or two dating apps anymore, but I have a feeling my relationship status is unaffected regardless.
"There is nothing magical about I/O or any interface--they are just functions--so this change would require extra magic to be implemented which I strongly oppose."

"Extra", yes, "magic", debatable. (Which, to be clear, I mean straight, not as a rhetorically-weakened pure disagreement.) There is precedent for using the io.Reader and io.Writer interfaces but allowing structs that implement those interfaces to implement additional interfaces to gain additional capabilities already, especially in the io.Copy function: https://golang.org/pkg/io/#Copy (Click on the Copy name to pass through to the underlying implementation, which bounces through to another function which should still be on your screen, and the first few lines show the special casing.) Though I also find myself with some frequency having to accept a Reader or a Writer and examining it to see if it's also an io.Closer, because if I want to wrap a new io.Reader around an underlying io.Reader for some reason, something I do quite a lot, it's important to propagate proper closing behavior, especially when wrapping with gzip or something else that really needs to be closed and not just sort of trail off at an arbitrary point.

Making io.Reader "just work" in a switch statement would be magic, but using a similar technique to the above it might be possible to offer a new "io.ReadableChan(io.Reader) <-chan struct{}" (or the obvious WritableChan extension) function that files or sockets would implement using a polling mechanism, and everything else would get an automatic new goroutine created that used just io.Reader's existing interface. This could offer a zero-buffer-until-IO implementation without having to modify io.Reader. The resulting channel coming back from ReadableChan might have to be a new sort of magic channel internally, but that would be an internal detail that shouldn't ever rise up to your code.

Alternatively, it might be a "io.ReadableChan(func() []byte) <-chan []byte", waiting internally until it can be read then determining the []byte to use for the read by invoking the provided function. I'm just spitballing here, not preparing a change proposal. (For such a thing I'd also want to consider whether that should be "func () ([]byte, error)", for instance.)

This is one of those places where Go favors practicality over purity, and is very much not channeling Haskell. Checking whether an interface value implements another interface is probably something you shouldn't be doing all the time, but it's not inherently un-Go-like or anything. You're just taking more responsibility. Much like how you are supposed to share memory by communicating but Go will still let you communicate by sharing memory if you want.
You do not know which lock it was holding though; when handling a segfault for example you need to be pessimistic and assume that you can't touch any lock (think of the allocator lock for example).

Async signal safety implies both reentrancy and non blocking algorithms [1]. You might not need reentrancy but you do need non-blocking. That's really a significant restriction as libraries with non-blocking guarantees are rare.
You could do microUSB -> MHL -> HDMI, and maybe use the watch bluetooth for mouse/keyboard input.

Though I don't think MHL is open source, and I'm probably completely wrong in thinking the BT hardware on that could be used with the bluetooth host stack
It seems that the author is slightly confused. Description of the thundering herd is mostly correct. Initially it referred to multiple processes calling the accept() on a single listen socket, it used to cause all processes to wake up. This has been fixed a long time ago. Currently multiple processes blocking on the accept() on a single listening socket works in a round-robin fashion (AFAIK). Calling select() from multiple processes on a single fd, should wake all the processes up when IO comes in. This is a documented behavior.

--Edit--

s/write/IO/
What GPU does it use? Is it a native GPU driver + Mesa or you use it with libhybris and Android blobs? Wayland is neat, but it's pretty annoying when there are no native drivers available. One of the problems with Android is, that it became like Windows of the past. Hardware makers produce Android drivers with closed userspace blobs, and leave it at that. Blobs built against bionic make running a proper glibc Linux on such devices a pain unless hacks like libhybris are deployed, or you manage to replace them with proper open drivers.
As others have said, you have to touch the yubikey to get it to generate a one-time password (it acts like a USB keyboard).

The yubikey is one factor, the VPN also requires a second factor (memorized password). These are concatenated so you type the password without pressing the enter key, then tap the yubikey (which "types" the OTP + enter key). This process works in web forms, shells, etc. Could hardly be simpler.

If the laptop is lost/stolen, I can deactivate the token.
+1 -- Maxima is used under the hood for many key symbolic functions in Sage, e.g., limits, symbolic integrals, many simplifications, etc. We Sage devs (mainly Nils Bruin) also wrote a very efficient C-level bridge interface between Python and Maxima, which uses ECL (embedded common lisp). We also try to make Maxima easy to use from Sage, e.g., you can type "maxima(sage expression)" to convert an expression to Maxima. Maxima developers regularly post on the Sage mailing list too.
I just implemented directed graphs with cytoscape.js and it was fairly straightforward.
Well what's next?
What's exciting and not Cryptocurrency, Blockchain, AI/ML, VR/AR/MR, Distributed computing, or whatever else is currently hot right now?
Jump Point Search path finding – Faster than A*
For a 2-week project I made a Jump Point Search algorithm for path finding in unity! It's monumentally faster than A* which can allow for bigger maps or more constant pathing. It can also handle dynamic maps, but isn't currently set up to do so.

https://github.com/ocknon/JumpPointSearch
I wanted to read the stuff on the wi-fi.org website, but due to the many cases of the capitalized word "CERTIFIED" I ran away...

I'm not sure why, but somehow it feels like walking into the lion's den if a page has that many occurrences of that word.
I'm aware of the original problem and was reading before about it and even if this was all handled very badly publicly by some sides at least I read this email and all that is there is perfectly reasonable, is written in a good tone and leads to an acceptable conclusion. Stallman did what he could with this decision to stop the e-drama. I'm all happier for it.

Afterwards I read the comments here, people saying that Minifree is actually her job, which I find amazing because it provides things I care about and I want to see it growing up.

Finnaly I clicked on the link someone posted - https://libreboot.org/gnu/#leah-not-a-hero - and got surprised and kinda annoyed ( I may even say it pissed me off, when usually nothing I read on the interwebs provokes those kind of feelings in me ) by the fixed overlay currently there on the page:

"It took the GNU project 4 months to finally honour Libreboot's decisions, but on 5 January 2017, RMS formally acknowledged it - his reasoning is flawed. They should have immediately honoured Libreboot's decision to leave GNU, but instead they arrogantly resisted it for months, and the only reason they gave up was because they realized that all of Libreboot's core developers were OK with leaving GNU and still preferred to work with Leah Rowe. This page explains why no project should ever join GNU."

This is just so bad and putting more wood to the fire for no reason at all than e-drama. I was hoping people were a little more grown up, but as usual I got disappointed.
Well, I said you should be careful :-)

That's a good strategy against a bad robot, not the latest batch.
“I actually wrote Mega Man 2 for iOS in 2009.”
Prototyping is Hard: My experience prototyping my first game
Why not just set up your /etc/hosts file to block all the sites that you're addicted to? That's what I do and it's pretty shocking how much I've realized I visit them out of habit.
Another cool one is Mathics, which is a Mathematica-like system implemented in Python, using SymPy behind the scenes:

https://github.com/mathics/Mathics
http://www.mathics.org/
Mine does, but I suppose we're talking about standard CPE devices. They indeed only do the minimum and are often locked down to prevent you from adding or changing anything. All in the name of stability and customer experience. The reality is, of course, that it is way too expensive to support millions of home users when they start relying on the CPE for more services or start changing the settings.
One of the features which I would most love to see in Go is a Selectable interface, which could make things like this doable (albeit as a bit of a hack).

Even if a socket's Selectable implementation just abstracted away the goroutine from your first example, it would make the developer experience a lot nicer for me.
As long as I am in a lie flat bed with turn down service on a longhaul intl flight I don't care if the bubbly I'm drinking costs 40 bucks a bottle or 400.
A Fitness Downside to Statins?
I know edge triggered vs level triggered in the context of electronics but can you elaborate on their meaning in a software context?
Why run your own instance when you can just flog the crap out of the public pool for free? [1]

Digging into the internals of a few "high end" consumer modem/routers, I wouldn't trust any manufacturer to provide a secure ntpd, so we'd probably just end up with NTP amplification attacks [2] on a Mirai scale.

1: https://www.lightbluetouchpaper.org/2006/04/07/when-firmware...

2: https://blog.cloudflare.com/technical-details-behind-a-400gb...
Norway to become first country to switch off FM radio
That begs the question, what if you lose your backup key too (it's far less frequently used, adding to the possibility) or don't have one because it would decrease security? Here is where car analogy stops working.
Chrome extensions can be installed in many ways. Does a chrome extension need to be sourced from the chrome web store in order to be considered an chrome extension?

One method to install an extension is the chrome web store.. the other methods are typically only used by developers (hence all the dev mode comments) and malware (hence all the "I can live with this" comments)
I don't understand. Whether you had the document or not, MegaCorp's lack of permission remains the same.

And Google's benefit from your MegaCorp contributions remains the same. MegaCorp legal recourses remain the same.

The situation is exactly the same.
Thank you for your work. It really needs to be used by more projects. This could be the destination for anyone wanting to make packages for Linux and not just Ubuntu! Can you get some people promoting this thing!!!
On the contrary, the magic is required because things like select and channels and coroutines are implented at the language level in go. If they were a library with proper extension points and, sure possibly languge sugar on top, it would be doable.
(in case it's not clear, Cinjon is a current brain resident.) And yes - brain residents are full-time engineers and paid as such.
If you are looking for an engineering oriented experience you should apply for a full time Software Engineer or Intern position.
So far it seems like dagre-d3 is the best option for those that want directed graphs to be automatically redrawn (with transitions) based off of user input. I'm continually looking for better options, though.
It appears to me that your critique may be of capitalism/free enterprise which extends far beyond the scope of apps. It's quite a big topic to unfold, but in the example you provided, stagnation and a lack of convergence on what constitutes the ideal app are low hanging fruit to be addressed.

Note that in some industries the benefits of shared utility clearly outweigh those of competition, the classic example being infrastructure.

Relevant xkcd: https://xkcd.com/927/
Facebook has no idea how many fake accounts exist and neither do I. But it is definitely higher than 11.2%. That estimate was self-serving for business purposes not a serious analysis.
A tremor disruptor! Very cool idea. It might work well together with SteadyMouse with the bracelet disrupting the tremor from "getting going" and SteadyMouse taking out the remainder.
Sounds like Google Contributor https://support.google.com/contributor/answer/6286709?hl=en
I'm currently the primary maintainer doing stuff with Redux docs. Right now my focus is on a tutorial series I'm writing for my own blog, but any PRs to help improve the Redux docs are absolutely appreciated!
The FBI is using SHA-1? Somehow this lazy attitude towards internet security by the US government doesn't surprise me.

Edit: This appears to be fake and debunked (https://www.bleepingcomputer.com/news/security/plone-develop...)
Reminds me of recent results using 40Hz blinking LEDs to treat Alzheimer's:

http://news.mit.edu/2016/visual-stimulation-treatment-alzhei...

I often fall into the trap of thinking that light at normally encountered levels has essentially no effect. That's obviously not the case though.
How to use the video conversion feature in DVDFab Media Player
It's not quite "hip", but a dedicated server on OVH is pretty sweet. Their WHM/cpanel licences are cheap about 25/month. And you can then run MANY websites/projects all under the same umbrella, instead of each time starting over again with a barebone Digital Ocean droplet/Linode, etc. Plus, you got full power.

Unless you're running some SaaS project, that really needs to be able to scale rapidly -- this is to me still a very solid, simple, worry-free solution.

Btw: with OVH, it comes with 500gb FTP backup, you can add backups to a secondary HD, and you can add other offsite backups, as Amazon S3. Plus, they have a great IP policy, for just a one-time $2, you can get additional IP's, without recurring costs, up to 256 per server: and localised. So you can have 10 USA IP's and 20 Norwegian IP's and 10 Czech IP's all on the same server.
Apparently libhybris [1] solves the glibc -> bionic problem, but I've never been able to work out how to use it. I'd like to see a "Hello World" done with a small rootfs+libhybris on something like the Nexus 4.

1: https://en.wikipedia.org/wiki/Hybris_(software)
Engineer is liberally defined nowadays. It apparently no longer means someone who has a B.S.(or above) in Engineering.
One sad aspect is that person would be Mark Zuckerberg.
It looks like you can even build event chans yourself on linux, using syscall.Epoll* in a monitor goroutine and TCPConn.File().Fd() to get your connections' fds to pass in. (There are other calls on darwin, etc.) See https://gcmurphy.wordpress.com/2012/11/30/using-epoll-in-go/ and https://groups.google.com/forum/#!topic/golang-nuts/a6yfYIi5... for more.

The fsnotify lib at https://github.com/fsnotify/fsnotify has a similar challenge at a high level (ferry events from various syscalls into a Go chan) and may be interesting as a reference.

But: perspective. If KBs per idle conn are eating a well-provisioned modern server box whole, then back of envelope you might be at, like, hundreds of thousands to a million conns for a single box (few KB/conn * 1M = few GB), and, like, huge congrats for getting that far! Not the absolute limit of the hardware, maybe, but clearly not a toy!

Other folks also note that once you're juggling that many connections there are other things that could become big factors in scalability, like whether your kernel and network will remain happy, can you keep up if more conns than expected suddenly become active, and (I'd add) will the rest of your code (the stuff besides reads/writes) be able to keep up.

Still, if anyone wants to wrap the epoll-results-to-a-chan thing in a package, they can always post something + see if anyone uses it to do cool stuff. As you suggested, it's plausible there are places it can make code cleaner.
Sensationalist title for an article exposing nothing new about select(), as the old UNIX programming adage goes: select is not broken.

The author didn't even mention the glaring problem with select.
I've given up on the hope that these myths will ever die. Every time it's relevant, someone pipes up complaining urandom isn't safe for use, or will run out of entropy. Have a look at the bugs for Node, Ruby and Wordpress.

And inevitably, the appeal to authority ends up referring to these projects.

Serious question, if I submitted a patch for the man page detailing the content of this myths page, is there a chance it might go somewhere and put somewhat of an end to some of this?
This is awesome. I got in on the smartwatch craze super early (like sony smartwatch 1), and the one thing I wished was for was some F/OSS to run on my watch (believe it or not sony smartwatch 1 actually had a dev kit), and to finally getting rid of the oddly-intrusive smartphone apps that came with most smartwatches. Hyped to hear someone actually did it with Asteroid OS (even if it's Alpha).

I also thought FirefoxOS would evolve to maybe get in this space, but I was mega wrong about that and lots of other things so there's that. I'm excited that Asteroid won't meet the same fate, but maybe I'm biased.

Also stumbled upon http://www.openembedded.org/wiki/Main_Page while looking the repo for Asteriod. Excited to see what comes of this project and maybe even contribute in the future.
This is very cool. I love graphs, they're really expressive.

P.S. if you're interested, just the other day I posted a related experiment of mine on Show HN ... https://news.ycombinator.com/item?id=13308150
The combination of mobile use, plus autocomplete of browser history should explain almost all of this.
I think that this may be true in that the desktop app has considerably lost users in favor of the mobile app.

Search traffic has decreased significantly:

https://www.google.ca/trends/explore?date=all&q=facebook,yah...
When you're at the point of needing to configure a tool which handles a base config, you need to learn the underlying tools anyway at that point, but without the experience of having built the base config up.

Keeping config directly in a project creates a maintainability issue once you have a number of projects on the go, as you then need to turn it into a module like create-react-app's react-scripts or else it's copy and paste time, which becomes horrible across multiple projects, especially if you're evolving your config as you learn.

Has anyone written a guide or supporting tools for creating your own config as a reusable module from the beginning? It feels like there's a gap which needs filled there.
Amazon is opening a bookstore in Manhattan
I got my niece a tiny one for Christmas. She's one. She loves it! As soon as her feet can touch the ground astride it, she'll be unstoppable!
8 Ball Pool – Free Download (Ver:3.8.5) for iOS – AppSoDo.com
Compute Card, a Credit Card-Sized Compute Platform
It's the same. If you imagine an async signal (notification), for example for reading from a file handle, as an electronic signal, the two are exactly the same.
> Perhaps more importantly, the bookstores also showcase Amazon’s gadgets...

Sounds like an Amazon store that also happens to sell books.
I saw soundslice a few years ago and I thought "My gosh this is a cool awesome application" - great to see that it's going well!
The 'arc4' no longer refers to RC4 on macOS/iOS and OpenBSD. On those systems 'arc4random' is playfully a bacronym for "A Replacement Call for Random". The new arc4random* implementation will now be replaced as cryptographic techniques advance.

It appears the Apple and OpenBSD implementations use the getentropy syscall and then add additional entropy mixing.
Probably not. That would assume people actually read man pages.
Among European airlines it's hard to beat Air France in terms of food and wine quality. They are head and shoulders above anyone else when it comes to catering, even in the economy class. Although, my experience with Ukrainian Airlines and KLM is similar to yours -- meals and wine are surprisingly good.
I think the quoted might be referring to Instagram's use of React Native and Airbnb's hint of exploring it (can't determine what they do). So perhaps this is clarified as native app development for native app (as opposed to a cross-platform framework/shim).
I always facepalm when I do math outside of Emacs. Calc was never really advertised, it's not a toy.

Also I've heard it might be scraped from vanilla emacs and made into an extesion, but I may be confused.
> Have a look at the bugs for Node, Ruby and Wordpress.

Worth noting: WordPress has been using the OS's CSPRNG since 4.4.

https://paragonie.com/blog/2015/10/coming-wordpress-4-4-cspr...
Not all users of this extension are in the US :) But a very thorough analysis, I must admit.
Similar to the meaning in electronics: edge-triggered reports on changes of state, level-triggered on state.

When you use epoll in edge-triggered mode it returns and reports a resource as available once, when it was unavailable and just switched to being available. If you enter epoll again, it won't return just to report the resource is available.

In level-triggered mode, when a resource polled on is available it always returns immediately to report it as available.

Edge-triggered is useful to make sure you only act once on a resource becoming available (e.g. by handing it to a worker thread that will work in the background, you want to enter epoll in the main thread again to wait for other changes) or if you have to wait for something else to become available to actually be able to do something with it and don't want to waste time spinning in the waiting state (e.g. when moving data between two sockets, both have to be available, so you only want to wake up when the second one changes as well).
Vehicle Security and Car Hacking Resources (Software, Hardware, Books, Etc.)
I thought it was merely a starter kit for SICM not something used elsewhere.
Off topic: I can't read the article, or any wired.com article, because after about 5 or 10 seconds, the screen gets taken over by a plea to disable my ad blocker or to pay $50/year to get ad-free wired.

That is fine, but I don't have any ad blocker of any kind. Javascript is enabled. The only thing is that I don't have java installed on my machine. It is hard to believe that their ad mechanism is relying on java.
I've heard explanations for this involving smaller, more space constrained apartments - and thus less interest in filling it up with yet another machine (tm) and less interest in spending time cramped up at home. This also goes hand in hand with e.g. PC Bangs being more popular over there.
https://training.kalzumeus.com/newsletters/archive/selling_s... might be most useful.
I wish I had the background to understand SICM. Tried to read it, failed immediately.
This needs a microphone. Would be great to be able to drive activity via voice, or make reminders. If it had some kind of bluetooth/wifi also then you could send emails via dictation but I guess the size/battery constraints rule that out.
Does anyone know if this applies to organic LEDs as well?