skysight-inc/HackerNews huggingface dataset:
(EDIT: I appear to be replying to a edited comment that was mentioning a possible naming confusion with ansible vault, I'll keep the post here even though the original is different now)

re: naming (and disclaimer): I wrote Ansible and designed Ansible's vault (and no longer work on Ansible), but to be clear, Ansible's vault is a nicer CLI (IMHO) around an idea that Chef users were already used to: encrypted data bags. It was nothing new. It took about two weeks to implement, but we had a few security things to shake out after that made it take a bit longer before it got right. (Some people also got picky about whole-data-document encryption vs leaf-node-in-datastructure encryption, and I see points for doing it both ways, but went with the way that revealed the least amount of data)

I think calling it vault is perfectly fair, as it's a very generic word, and words are in short supply. This is also doing a LOT more.

I like what Mitchell and crew have done around revocation here, though I do somewhat wonder about the mode in the docs that sets secrets and allows them to show in bash history, which is why ansible vault spawned an editor. I'm sure it's got editor options too though. I'd probably also change the phrasing "HTTP API" to "HTTPS API" :)

The dynamic secret stuff also looks pretty interesting.

One of the interesting ideas might be to whether it allows sharing of secret values to some applications without letting someone read it (asking if a user can use X without letting the user READ x), which is something we did in tower - though it seems the ACL system might allow something like that. An example of that was the system could memorize an SSH key and let a team use it, but never give it to anyone, to avoid rotation scenarios.

Anyway, all the lease ideas are very cool and it seems natural to want this decoupled. For a time I considered decoupling what what in Ansible vault from Ansible, though really it already operates on generic files so that's easy enough if someone wanted to take a stab at it.

I suspect it wouldn't be impossible to make Ansible Vault have a hashicorp-vault-mode where it encrypts a file "into" the vault, and the contents that remain in your "ansible vault" file are nothing more than a pointer to a secret in Hashicorp Vault. In this way, it would just be another cipher type. Maybe that's crazy though - but I think I like that better than storing secrets in version control, where they exist forever unless you prune history. (And I never thought storing vault files in public source was a good idea). However, avoiding a server or database was always one of Ansible's design goals - for better or worse, that limited some of the things the core app could do, in ways that were both good and also occasionally limiting.

Anyway, keep up the forward progress with the new things! I really envy the time to architect/design something so detailed here.
Link Building vs. Content Marketing?
I stumbled upon an attractive & simple to implement non-random method that uses the golden angle (an angle commonly observed in plant phyllotaxy) -- drawing a fibonacci spiral on the sphere while maintaining a constant surface area. It is demonstrated here, on the open processing website.

http://www.openprocessing.org/sketch/41142

n = number of points
phi = (sqrt(5)+1)/2 - 1
ga = phi * 2 * PI

for each point i (1..n)
longitude = ga*i
latitude = asin(-1 + 2*i/n)
What are some of the existing tools/solutions which people use for managing secrets in a production environment?
What if the car sent out the signal and the fob received it, then sent an unlock command?
This is something I've often wanted (I think) but your landing page doesn't quite give me enough to envision how I might use it. I'd love to see a few, solid examples of the types of typical log content you'd see and how you'd expect sawmill to handle them. The one screenshot you do have is way too tiny and verbose for me to quickly digest..
Hmmm? I'm not sure what you mean by "books and book packages", but as a small developer I've certainly bought development tools priced under $100. That's a sort of dividing line for me, though -- I don't think I've ever purchased development software priced over $100 unless I absolutely had to.

And yeah, Windows-only static analysis software priced at $250 would be a very hard sell for me...
Freehold currently does this:

https://tshannon.bitbucket.org/freehold/
And used LFE (lisp flavoured erlang) in place of Elixir, since Elixir is Rubyesque, a fav of the web dev crowd, vs. the parenthetical LFE!

All joking aside, I like seeing BEAM everywhere, and Elixir is a great language.
Turn Your Phone into Your Own Personal Weather Station
Free as in legally free is what I meant; otherwise, we can argue all day that OS/2 and Solaris and OS X and IRIX were "always" free since it was (and indeed, still is) possible to pirate them.

You're also significantly overestimating the number of folks who actually installed Windows themselves, let alone who did so with a pirated version. Most Windows installations are OEM preinstallations, and Microsoft has been well aware of this (and actively encouraged this, albeit being dinged in the process for violating the Sherman Antitrust Act).
Most key fobs have some kind of failback system that looks like a real/normal metal key.
Adderall in the Office: Using Adderall to Get Ahead, Not to Fight A.D.H.D
Apache v2 license, in case anyone was wondering
Tracking exploding lithium-ion batteries in real-time (with Video)
Sex Ed in an App?
This is both a blessing and a curse for Go. The language touts itself as being easy to pick up, and has a batteries included stdlib.

This allows developers to quickly say "I know Go. Here's what's wrong with Go." since they believe they have learned all there is to know about it. This is good, since that's part of why Go is approachable.

However, this has downsides. As you showed, there are succinct features that can make the difference between "this is a bad thing" and elegant code.
> Keep in mind that OS X is POSIX-compliant, but it's a customized BSD, not Linux.

And that if you're used to BSD ... it's weird as BSDs go. (Just little things, but I found it slightly jarring in practice.)
Interesting - I remember an old debate that having a hitch is bad in a rear collision, because energy which would've been absorbed by a crumpling bumper instead ends up being transferred to the main chassis via the hitch.

Possibly the old argument is less valid due to unibody construction, but bumpers definitely exist for a reason
Can People with Dementia Have a Sex Life?
This is Marco from Mashape. Let me know if you have any questions/feedback and I will be happy to answer.

If you need a testing Cassandra node to try out Kong, we have created this: http://kongdb.org/
In the end it hardly matters. People developing malware like this are usually in countries that don't have any cyber crime laws, so they don't need to be incredibly good at covering their tracks to begin with.
There are many solutions out there that attempt to solve the secrets distribution problem. Vault is the newest one.
None of them solve the fundamental problem of the secret zero: provisioning the first secret on an untrusted system the automated way is hard, and without that secret zero, there is no way to authenticate the new system.

With Vault, you still need to figure out how to push secret zero (here a client authentication token). If you can solve that, why not push the secret you need to push directly, and bypass Vault entirely?
The author is upfront that this article is about first impressions. He freely admits that he is probably not writing idiomatic Go and as a result his first impressions are skewed.

That doesn't mean the article isn't interesting or useful though. It's helpful for any language community to see what a new comers first impressions are and then tailor the onramp appropriately in their documentation.

You are unneccessarily hard on the author here I think.
Tips for App Engine
Ask HN: How to Get a Prepaid Sim in San Francisco
A lot of places has no or lacking wifi, how can i easiest get a prepaid sim so that i can tether on my iphone instead?
The thing is Linus does know what he is talking about; and can separate the performance concerns, from functionality, etc. I think the real point of the message is to change dbus not the kernel to address the performance issues.

But if someone without the proper technical understanding looks at the just the pull quote, they might think it is a lost cause or not worth using.
Slightly reminding the Bukkit saga (http://www.slideshare.net/RyanMichela/kicking-the-bukkit-ana...).
No, please don't. Go structs are not C unions. Please see my other comment in this thread about using Go interfaces.
Not quite ELI5, but Haskell tries to make IO pure by essentially representing all side-effecting programs as data and separating evaluation from execution.

If you say, for example:

x = print "Foo"

then the value of x is a program that prints "Foo" when executed and in

y = x >> x

the value of y is a program that prints "Foo" twice.

The language runtime essentially executes the value of "main" (which may be lazily evaluated).

Where monads come into play is the composition of such programs, especially when a program may produce output that needs to be fed to another program. The "bind" function does that, and the Monad typeclass abstracts the pattern so that you're not limited to just sequential programs; for example, promises (asynchronously executed programs) are monadic as well.
> Well you are right, the name does make sense, but I would have thought "union" would have made more sense than "enum" for those of us from the C-family.

The issue with `union` is it might hint at things which are not available (e.g. the union of an int and a float where you can access to the raw data as either).

A Rust enum is really an encoding of the `struct { enum, union }` pattern, but it degenerates to an enum if there's no union part (no data payload), not to a union. So calling it an enum makes more sense.
Note the vice versa:

In that case device B picks up on the unlock command and relays is back to device A which rebroadcasts the unlock command to the car.
I love the Node/npm community, and have been programming JavaScript for so many years it's hard habit to kick :) I'd love to try my hand at Go though... I think it's awesome to see what practices can be shared between communities.

One approach I've been playing with in JavaScript-land is using Promises for all return values, this means that you consistently know how to interact with a return value, whether its concrete-value is available immediately or at a later time -- this doesn't really solve the problem of consuming other people's libraries however!
I've been using a competitor but it's ugly and awkward. Excited for this one.
Автоматические выключатели C 10А 1P 6кА (Legrand 404026)
I've been looking at your GFM package, looks good! It's on my roadmap for possible future integration. I also want to see support for the kind of Markdown files that Hugo serves, with front matter. So there's lots of possibilities for the Markdown middleware right now.
I really enjoyed this review. You can tell the author spent some time trying
to spot the good and bad things about Go. Too many Go reviews turn out to be:
Watch me trying to use Go as a functional programming language and fail miserably
because it lacks generics.

Anyway, just like the author I found myself fighting the forced directory structure at first, but it's something I started to like about Go: Go doesn't come with a complicated package management. All packages lie in a directory and you can edit everything with normal shell commands. This keeps things refreshingly simple.
Yeah I wanted to make a Kama Sutra app based on the Kinect but Microsoft wouldn't let me do it.
More recently there were controversies about Crown Vic cruiser fuel tanks rupturing in a collision - the reason was thought to be the tank hitting bolts used to mount additional police equipment

edit: http://en.wikipedia.org/wiki/Ford_Crown_Victoria#Fuel_tank
If font and color choice with a few vectors was all this designer ever did, then he was in trouble with our without this tool set.

The visual elements of design are only the most superficial elements. Identifying a user problem, creating an interaction journey to solve it, and mapping that to a programmable interface are the valauble parts of design because they are HARD and often not very fun.

Almost anyone can follow color theory and the grid system.
WashPo: Racist Google searches correlated with higher Black mortality rates
thanks varun, very cool what you built there! :)
definitely looking forward to possible contributions from you to the github project ;P
Nope.

Dylan's comment requires a timer in both the key fob and in the car. The key fob to delay transmission of the challenge response, the car to check if there isn't too much delay in the challenge / response pair.

You really need a timer in the key fob, as the processor in the key fob is often so slow (for battery / cost reasons) that an extra couple clock cycles somewhere would throw off the timing enough to make it fail.
Linus is just being Linus. He's brusque, non-chalant. He's inflammatory to get people to listen. His thesis here is that bad DBus performance isn't due to context-switching overhead or buffer copies (which can be solved by moving the daemon into the kernel), but instead it's due to malloc-intensive / utf8-parsing-intensive marshalling.

Secondly, he's saying that if performance is being used as an argument for kdbus, then that's an invalid argument.

He's totally right by the way. In this pure message-passing benchmark, where the message-passing overhead is the majority of the work, the slowness is not in kernel-scheduling/system-call/kernel-buffer-copies. People confused a potential impossible-to-overcome bottleneck as the most relevant bottleneck.

But that doesn't mean there isn't a reason for kdbus. Kdbus allows for much better authentication than UNIX sockets do (you can authenticate with pid, pgid, uid, gid, kdbus token, etc.). Also it allows for message-passing security policies to live in the kernel which is crucial for security applications. The tangential performance benefits are nice too, even though the bottleneck wasn't in the kernel to begin with.
Should the language be cryptic and complex for people to take it a little more seriously?

OK, it seems I'm trying hard to defend Go. I like it, I seldom (but do) miss generics, I miss some Haskell/Rust features and wish it were a little less simple. But I don't understand why there are dozens of similar "things about Go" articles posted every week on HN, all repeating the same stuff.

The one from Evan Miller was both entertaining and in-depth, but that's the exception.
Truth Behind Pictures
Tor Browser 4.5 is released
Post-earthquake imagery update for tracing in Nepal
The lack of citations is concerning. I could read his book but it worries me when numbers like these are thrown around without some way to verify the analysis.

The "28x productivity" (or 10x or Xx ...) claim always triggers warning bells for me. http://morendil.github.io/folklore.html does a pretty good job explaining how the research backing that widely accepted "fact" may be questionable.

I also really like Dan Luu's review of the research behind static typing at http://danluu.com/empirical-pl/ as an example of how a "well studied" claim can still be questionable due to the massive difficulty in evaluating software engineering empirically.

Software engineering is a very human activity and that makes it very hard to measure and quantify.

A book that does a better job is Making Software (http://www.amazon.com/Making-Software-ebook/dp/B004D4YI6G/re...) but as my first link points out, it still has some issues. At least its goal is to get more rigorous in our scientific analysis of software engineering.
We worked with a handful of companies to help us design the "App ID" authentication backend that does exactly that: https://vaultproject.io/docs/auth/app-id.html

It allows you to have a non-sensitive single factor within things like configuration management, and have the second factor come from a machine-local location (instance ID, MAC address, TSM module, etc.). The idea is that another team out of band sets the 2nd factor that developers and config management never get to see. The result is you have full automation without secret zero issues.

As an additional security parameter, you can bind the two factors together to a single CIDR block, so you can have an additional factor restricting access from that machine's IP.

The URL itself above goes into a lot more detail, but our beta users are successfully automated in an elastic environment this way.
An amplifier doesn't need to be tuned to a specific frequency.

Look at SDRs. You can "tune" an SDR to tunnel an entire large chunk of spectrum.
Someone seems to have told my colleagues that the violent psychopath only shows up during code reviews - so we never do them.

)-;
Which one were you using?
I always think we're at the bottom now, but then next week they sink even lower.
We've had the same issues at CoinJar, and we used SSH agent forwarding to solve it. This is how it can work:

Every new instance of application server is provisioned automatically by a trusted server (which holds the key to a credentials server). During orchestration/deployment, the application server has a temporary permission to fetch the secrets it needed, through SSH agent forwarding. Once the deployment is done, the session will end and the application server can never read new secrets until the next deployment.

This way we don't really need a solution like Vault. SSH is mature enough to provide authentication, and encryption is easy once you've figured out how to distribute keys automatically.
Why We Hate (Some) Motion Controls
Building a (not so simple) expression language part II: Scope
Yes! Yes! Yes!!!!
I saw your profile, interesting! As I want to go back and live in Italy, I also signed up for news for the book.
This Desk Makes You Stand Up for Your Health
Do I think it's fair that if Monsanto is going to genetically modify seeds to withstand increased use (read this as selling) of their herbicide, that they face increased scrutiny and understandable criticisms? ABSOFUCKINGLUTELY
How I'm Donating to Nepal
Connecting 100k LEDs to a RPi is an interesting engineering challenge in its own right. (Also, if one LED consumes 10 mA / 30 mW, 100k will consume 1000 A / 3 kW.)

A more realistic thing would be a telnet chat server: code is dead simple, and the ability to handle NH / slashdot / reddit crowd on a RPi would indeed be impressive.
Yeah, that would work, though then I need to worry about all the local variables too (which I didn't use in the example but did need in the actual code). Still, not a major overhead since I can use a context object for that. Anyway, my issue was with the vtable dispatch of interfaces more than with type switches -- using a .Draw method is pretty much the same :)

But yes. It was written with Rust intuition, and whilst I ried to learn the Go way of doing things, I obviously didn't pick up everything :P

Thanks though; I'll try to use this pattern in the future!
> High quality isn't really an opinion. Their encoding is fantastic. Better than blu-ray re-encodes which were the primary torrent source just a few years ago. They're encoding off raw source so it's exceptionally good.

I'm sure one could crank out better quality with Handbrake or raw FFMPEG when used correctly.

> Easy to use is pretty factual in a relative sense. A mere 15 years ago you had to drive out to store to rent a disc and then take it back. Those asshole rental stores made all their money through exorbitant late charges.

By that logic, then, literally every streaming service - including the shitty ones like HBO Go - is "easy to use".

> 1) Start menu 2) Type iTunes 3) Hit enter. 4) Click iTunes Store 5) Click search 6) Type 'Interstellar' 7) Click 'Interstellar' 8) Click rent

That's nice, but now we're going into the desktop client, which further proves my point. I was more or less giving you the benefit of the doubt by assuming you were referring to the Apple TV variety (since I don't own an Apple TV), but now that it's clear that you're referring to the desktop client, I can now speak from experience that the iTunes you're referring to is easily among the shittiest media players ever made. It makes Windows Media Player look like a timeless masterpiece in comparison. Slow and buggy (especially on Windows), and a user interface that looks like it was designed in 1995 (probably because it was designed in 1995) and never improved.

I'd certainly rather get it for free than have to pay to use that pile of bovine manure.
Wow, 500k for a strap.
Keyless entry and start decrease the amount of time you are vulnerable.

This may not be a problem in California, but it is in some parts of the world. Imagine the shadiest neighborhoods you know. Now, imagine that all of the neighborhoods are like that.

Being able to quickly get in and start the engine is convenient, but also important. The last thing you want to do is to fumble with keys. Or drop them while doing it. It is a plot device in some movies, but also real life.

The problem is that many keyless entry systems - and most wireless 'pushbutton' alarm keys haven't actually picked up gadgety improvements. Instead of a digital system and crypto keys, you have extremely rudimentary, frequency-based systems that are trivial to hack.
No problem. This is still a great accomplishment. I understand that there's a lot to do to make all this happen. Although I'm actually hoping to see a Linux version :)
Amazon's New Service: Goats
Too lazy to mow your own lawn or do your own weeding? Amazon's "Hire a Goat Grazer" is currently in beta testing as part of the company's home services, launched in the U.S. in March. Other services available include car battery installation and TV wall mounting. Customers who want to try the service fill out an online form about the vegetation they want the goat to work on. The plants that goats can tackle even include poison ivy, poison sumac, poison oak and thistle. As a bonus, the goats will "likely leave behind some droppings and you'll get to keep this fertilizer as a friendly parting gift!" Amazon says.
Amazon previously tested goats for trimming the grass outside its Japanese office. Google has also hired lawn care goats for its California headquarters.
The same car companies that put the entertainment system and the brake servos on the same bus...
They don't have to be though, a degenerate enum `enum Foo { Bar, Baz }` is equivalent to a C enum.
Qualcomm’s Snapdragon 808: The SoC inside LG’s New G4
Presumably the request could be signed.
Sounds like pro-forma agile - phagile - if you will.

I was taught agile by a certified scrum master, but the dude was completely serious about 'this just lets you fail faster, and you will fail, and often, as this process starts' which really helped.

He was right. It took a while to learn how to keep people honest and create succinct stories with a real scope. Particularly the guys who want to be architects or engineers perceive their jobs to start with the abstract and work down to specificity.

They can struggle with "What should this screen to today. Right now, today?" and want to talk about database design, message passing, data structures or anything else that doesn't answer the question.

At least for me and my planning it was far easier to make stories as small as possible and let the complexity build into a release which was roughly plotted out after velocity stabilized (even if into an upward slope).

I was probably doing it all wrong, but the hardest part was always keeping anyone from saying "well 6 more 2 weeks sprints means your release date is x, right?". Everyone wanted to just take the backlog depth, divide by velocity and project a date.