skysight-inc/HackerNews huggingface dataset:
I wouldn't call these secrets. Source control isn't a new thing, we've had source control since before I was born. I think chances are if you're taking a course for programming, you'll already know to use source control or quickly find out about it.

I am confused. The article says developers need to learn regular expressions and then goes on in the next point to basically say libraries have made regular expressions irrelevant and that you shouldn't reinvent the wheel. I rarely ever need to use regular expressions, I don't know them that well and it hasn't prohibited me in my career. Maybe before the Internet existed and we didn't have StackOverflow would it have mattered, but I can find an answer quicker Googling than I can thinking it up sometimes.

I partially and respectively disagree with point number #5 the database landscape is a lot different than it was 10 years ago. We have numerous choices now like NoSQL derivatives, graph databases and more. You don't always need to write SQL and flat file databases aren't dead, isn't that what SQLite is? I still use SQLite in some cases because it's convenient. It's not uncommon to find yourself on a project that doesn't need SQL queries at all, and these days if you use something like Ruby on Rails or Laravel (PHP) in combination with MySQL or Postgres you'll more than likely finding yourself using an ORM and not writing queries at all. It is how it is.

Point #6 — if you're a decent developer nowadays, I would hope you either pick something like Sublime Text Editor or Vim. I don't think teaching students what IDE's and editors to use should be in a curriculum. Everyone works with what works for them. As long as you can achieve the desired results does it really matter if you're using Notepad? As long as you can write code without a WYSIWYG, I don't think it matters if you used a typewriter. The development industry is time and results focused, not tool focused (at least not in my experience).

The whole point of a degree is to teach you the underlying concepts of programming. You don't get taught how to interact with a client, you don't get taught teamwork and I think that is okay. Some things are better left to the real world, nothing educates you faster than a real world situation. You learn the most important aspects of a programming job when you're on the job. Every workplace is different, you can't account for all of the unplanned and unexpected variables that come with a job in an industry like ours.

At the end of the day in a programming position you're nothing more than a talented Googler with an understanding of the basics. I don't know everything about my chosen languages, I do however know what to search when I need an answer to a problem I am having. It's all about knowing what to search a lot of the time I find.
The spacebar is our control key.
spacebar + up-arrow or down-arrow: NEXT SEGMENT
spacebar + left-arrow or right-arrow:
- step onto bridge, see sourcedoc and xanadoc side by side

This plus the fact that the proof-of-concept of a thing 40 years in the making doesn't work without Javascript is truly insane.
Bold OP's name in comment thread.

When reading comments, I often find myself scrolling back up to check OP's name to see if the comments I'm reading are first hand.

It's a simple one that would drastically improve readability IMO.
To the confused HNers:

Xanadu is a project by Ted Nelson.

Ted Nelson is a fundamental figure of early computing (despite not being a computer scientist himself). His work (recommended: Dream Machines/Computer Lib, 1974; Literary Machines, 1981; Geeks Bearing Gifts, 2008) is about how computers touch us as humans, and how they affect our future, especially when it comes to communicating and using them to spread+build knowledge and ideas. When Nelson wrote his first essays, very few people had the insight or knowledge to really understand what he was going on about. Nelson came from a movie acting/storywriting/literary background, and this allowed him to establish parallels and formulate ideas that no one at the time could have done. I would argue that even today, some of his finer points still hold deep relevance and are yet unknown from the general computing crowd.

Ted Nelson remains a fairly unknown figure in computing, partly because he never wrote much code/developed products/worked in traditional research groups himself (a major misstep in a field where you tend to be mostly recognized for the projects you ship or papers you publish), and because a lot of his ideas were replaced by ideas that are much more simple to implement and make viable. A lot of hackers do like to ridicule him for those reasons, which I think is a mistake - despite those shortcomings, his body of work is still full of ideas and theories that you won't find anywhere else. You can almost see a second, parallel path that computing could have taken in the 70s. (Nelson was respected by many more famous computer scientists, including for example Alan Kay)

That's where Xanadu comes in: Xanadu is an implementation for Nelson's vision for hypertext (which predates the hypertext we know by more than a decade or so). His hypertext is much deeper than Berners-Lee's: notably, it is based on 2-way links (so not only can a page link to other pages, but you can also see which pages link to that page), a deep version system (so that you can access past versions of webpages), stronger "linking" (no such thing as "broken links" in Xanadu), etc. Of course one can see why this is much harder to implement at scale than the web we have now. Nonetheless, Nelson has been working on it through the years, as evidenced by this release.

PS: if you do start searching the web for material about Ted Nelson, do not start with the Wired article about him from a decade or so ago. It is terrible. I quite like his YouTube videos, but they require to be familiar with his work (or at least his rhetoric style) already. I think "Geeks Bearing Gifts" is the best foray into Nelson's style - and it is short enough that one can read it quickly. Then, if you want to really get into the meat of his stuff, dive into his other books.
Here's an idea:

1.) Responsible disclosure to vendor. Allow reasonable amount of time for a fix to be created and deployed.

2.) (If fix is deployed, release details)

3.) If no fix is deployed in a reasonable amount of time and the vendor is unresponsive, release a PoC that demonstrates exploitability without giving away details. eg: "Here is a pacemaker. Look, I did magic and it stopped!" This is the same idea as releasing the actual vulnerability/exploit, but doesn't put lives at risk. People that could fuzz for any type of a vulnerability would be able to find it on their own anyway.

I agree that ICS and health-sensitive vulnerability disclosure is a trickier field than most. Medical devices, cars, and power plants are much more sensitive than a random kid's iPhone; that's why groups like I Am The Cavalry are trying to address the issue industry-wide.

However, to answer the original question: don't drop a pacemaker 0day at DEF CON. Find a way to fix the problem with the vendor instead. At the very "worst," demo without vulnerability or exploit details.
Next RapGenius
> "Similar numbers" but "significantly worse"?

Yes. Similar numbers to the ones posted when compiling with optimization. Significantly worse when compiling without optimization.

> You measure performance and compile without optimization?!

No, I tend to measure with optimization. In fact, I personally don't do Debug builds at the all. However, when the numbers were so bad, I did a Debug build to cross check, and lo and behold, those numbers were even worse.

That clear things up?
What pacemaker communicates via blue tooth? Last I checked they all used induction telemetry (which requires the telemetry wand to be within several inches of the device) or MICS band radio for distance telemetry. I think some Boston Scientific devices used 900MHz at one time, but how many of those are still in the wild?

The only instances of "hacking" a pacemaker (or ICD) have been when researchers used a programmer from the manufacturer to "hack" the device.

So it seems super unlikely you know a blue tooth zero day for a pacer.
Absolutely NOT because this could kill people.

If you truly have a pacemaker 0day, contact me (joelparkerhenderson) on most major service and I will connect you with my healthcare policy lawyer. She can rapidly open the doors to the vendors who have the risk.
> "I would assume his talk must have been approved internally in some way or form (unless any employee was able to give any talk they wanted without any form of supervision, in which case there's a deeper problem here)."

Your comment hinges on this assumption but it is ludicrous. Especially in this context. It is the antithesis of trusting your employees (and understanding that people sometimes screw up). It does makes me wonder about the kind of companies you've worked at.
It would be interesting to see something like Octane ported to Swift just so we can compare it to other languages that are supposedly "slow".
So basically, comments made about one person obviously apply to all people, in your world.

(Also: do you seriously think that women have such fragile psyches that they can't take a simple joke? What does that say about your view on women?)
I've been programming video games professionally for over 7 years (C++). In that time I've never had to touch SQL. I feel like this is a big hole in my knowledge. I'd like to fill that hole. What's the best resource for a competent, professional programmer to learn?
This is an incredibly sensational piece. All of the sane suggestions are dismissed as "doesn't work" by giving one example where it didn't work. It's not that easy - going to the media won't solve the problem 100% of the time but it sure as hell would if it were a life and death 0day and wasn't fixed with urgency.

Don't even get me started about the Nazi analogy...
Blog post: http://theiostream.tumblr.com/post/73637206523/parsing-asp-n...

And accompanying source code:
https://github.com/theiostream/viewstate
Job Security by Levels of Abstractions or Indirections
Valve and Github are well-known for open allocation, which is different from "flat organization". You can both, either without the other, or neither.

"Flat" organization is unstable and therefore probably not desirable. Open allocation (people can transfer freely as they wish) is a good thing and the only way to function at high levels as a technology company.
LinkedIn under fire for censoring Tiananmen Square posts
This is actually a rather neat visualization. If you open the demo and wait (and wait) you'll eventually get a document that's assembled from different texts. Hold down the space bar and press up/down to scroll through it. Each time you scroll, you land on another segment. If it's a segment from the left, press space+left to shift over to it. Likewise, space+right to go to the right. Mouse scroll also works for smaller increments, and you can also click on the parallel documents.

Other than the visualization, I'm unsure how much it really accomplishes. The recent submission, the Leo editor [1], follows a similar premise but for a much more interesting result: to generate python code. Leo is also an IDE; this is appears to just be a renderer.

1 http://leoeditor.com/
Do most medical device manufacturers carry insurance against lawsuits? If so, historically, how high has the bar been before the insurers pay out? If there is a strong relationship between a device manufacturer getting sued and an insurer losing money then this could be a great contact to try.
You don't always get to use a modern, popular STL. Sometimes you need to use the hardware vendor's crappy, unoptimized STL (because they assume you won't use it). This is part of the reason the STL is unpopular in game development, though the story here has been getting better.

To answer your question, in my experience when the standard doesn't mention the desired performance characteristics of a function or method, even the popular STLs (libstdc++ and libc++ certainly) optimize for maintainability over performance. Not sure I can pull up an example of this right now but they are numerous. A good place to start is the standard containers other than deque or vector.

A bigger issue IMO is that the existence of some methods in various standard classes/templates really murder performance, no matter how good the implementation is. One particularly bad example is the bucket() method, local_iterator types, etc. in c++11's unordered_map (probably the rest of the unordered family too). These force the table to be implemented in such a way that every insertion requires a heap allocation, and iteration requires much more pointer chasing than would otherwise be necessary (e.g. with a probed implementation), which is... unfortunate for the cache.
It covers more than just SQL but https://www.coursera.org/course/db is a good overview.
I've had both carriers on different devices on a recent car trip across eastern USA and Sprint had much better coverage. Hopefully this would help T-Mobile.
It's a phone. You can see the top of the device in their promo video at https://www.youtube.com/watch?v=erUZQ9GK0sE&t=41.

https://pbs.twimg.com/media/BpVCE7aCMAA_DDJ.png:large has a tweaked screen capture.
> Events like the Github fiasco should not be mentioned in the open allocation debate ...

Well I guess you'd have to take that up with Mike as you're really referencing his opinion not mine. In that instance I was neither trying to praise or criticise the kind of company structure that appears to be represented by Valve/GitHub (if "open allocation" better describes this phenomenon then I'll take your word for that). In fact I only mentioned it because it was the context within which my discussion of Atlassian's culture began on the evening in question.

I personally find this open allocation concept quite fascinating and think it potentially holds a lot promise. Most people working in corporate environments today would be lying if they said there wasn't huge room for innovation and efficiency gains at their workplace. To my knowledge however, I am unaware of any situation where an open allocation culture has been successfully retro-fitted to an existing corporate environment (if you know of one, I'd be interested). I'm also skeptical in relation to how well an open allocation culture would work out once a company grows beyond a certain inflection point. I'm not well read enough on this matter to put a stake in the ground and define that exact inflection point. But for the sake of illustration, let's say I'd be interested to know how such a culture would work out when applied to an organization consisting of thousands of employees as opposed to dozens or even hundreds.
He hit the nail on the head with Ruby Motion for Android. Don't forget C# with Xamarin. Kind of makes Swift pointless for any serious [cross platform] mobile development. You can get the benefits of modern languages today, without Swift.

I'm personally not excited about Swift because Swift doesn't save you from Cocoa.

It'll just be:

let userDefaults = NSUserDefaults.standardUserDefaults()
let lastRefreshDate: AnyObject? = userDefaults.objectForKey("LastRefreshDate")

instead of:

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSDate *lastRefreshDate = [userDefaults objectForKey:"LastRefreshDate"];

When people complain about Objective-C, they're really complaining about Cocoa/UIKit.
For background on timelocks, I recommend my own essay on the topic: http://www.gwern.net/Self-decrypting%20files

(Incidentally, as far as I know, I'm the first person to propose the basic 'chained hashing' scheme: http://www.gwern.net/Self-decrypting%20files#hashing I don't know if Todd or Taaki invented it independently or not.)
I don't understand how to read the website...
The real problem with Xanadu is that it's based on a fundamentally flawed concept -- knowable provenance. The problem is one of having an overly literal and simplistic view of what a document is (indeed, this problem is embedded in the announcement page itself). Such and such is linked to THE ORIGINAL sourcedoc. The problem is that with almost any significant document provenance is ambiguous and unknowable, which turns anything of significance into an amiguous mare's nest of noise links.

Take for a simple example "Macbeth". We don't have the "original", we don't know for certain which version derives from which version, and we don't know for certain who is the source of any given change. Yet Nelson uses a shakespeare play as one of his examples blithely ignoring the problem of provenance throughout. Now imagine a really thorny issue like the Bible or a particle physics paper.

Imagine if every document in the world were created and maintained using the same bug free version of word with change tracking on. Any quotations or abstractions were carefully done using OLE embedding. No-one ever misquoted someone else from memory, or accidentally deleted a file and then typed it back in from an old print out. And all the edits acted as links. Ok it still wouldn't work. Welcome to xanadu.

Comparing the web unfavorably to xanadu is like DOS fans decrying the mac because they could do so much more from the command line, except that DOS actually worked at the time the Mac came out.
of course not but I was hoping someone would be able to contradict me
Except that doesn't make sense. The complexity of changes that can be carried over is very, very small compared to the changes which go on in a single lifetime. And the mechanism is totally different.
It can be argued that opinionated design is more successful that design by committee. I think the most effective approach is to begin with opinionated design prototypes then triage and refine using A/B testing.

MS can be accused of relying too heavily on user surveys, making their designs a bland blending of averages that please nobody (see: the Office Ribbon). Thus the Ford quote gets trotted out, "If I had asked people what they wanted, they would have said faster horses."
And so it begins. I was wondering when we'd finally start seeing the InfoSec guys get to this. The more recent stuff branching into CAN on cars and before that SCADA systems seemed to be the last sort of stepping stone from a traditional PC network to the internet of things networks.

I'm sort of glad, in a twisted way, that this has finally happened. Better the light get cast on this now than in a few years once the criminal(/nation-state...) equivalents have had time to go through it themselves.
Kickstarter’s Launch Now
What does 'fix deployed' mean? How do you actually update pacemaker software? Are you going to wait for 100% of the deployed pacemakers are fixed? What is an acceptable fix rate before you release the exploit?
Thanks for explaining, I was convinced this was some timecube type thing.
What happens when you ask it to do something entirely novel, that it has never seen before?
The problem isn't that you can't create Show HN posts or that you can't find them at all. The problem is that they're mixed in with all sorts of garbage and barely see the light of day.

We have hundreds of HN'ers spending days, weeks, and months working on projects. It sure would be nice if they could be featured prominently and given a real audience for feedback.
I actually like this one a lot better. Not being able to enter information onto the credit card itself was frustrating.
There's an existing way to do this already: SIGFPE + the UNIX signal-handling mechanism. Integer overflow is even mentioned as one of the possible causes of this signal. The BSDs have a defined constant FPE_INTOVF_TRAP for it too. On Windows, SEH is an equivalent functionality.
> So let's say
Frankly, I think the only thing that really would have made this exclusionary is if the gentleman speaking had his slide titled "Maven is like a girlfriend" as opposed to "Maven is like my girlfriend; in that case I would in complete agreement that he's making a bad generalization.

But the fact of the matter is that he's not honestly trying to generalize to demean women's characteristics and he's not trying to be sexist. Is he trying to get cheap laughs from the audience (specifically from people that have had girlfriends with similar characteristics)? Sure he is. But that is still different from him suggesting that all girls are like this.

To really get a feel of this, it's important to understand this in the context of other agents; as my above example mentions:

If he talked about his father and said he isn't exactly tech savvy, should we berate him for trying to suggesting that ALL people his father's age aren't 'smart' or 'adaptive' enough to get with the times? The audience could have several older folks who are programmers themselves; do you think they would get absolutely upset at this alleged generalization? They would most likely understand and relate to this because they have friends (or have heard of friends) their age that behave this way. And that's OK.

If he talked about his teenage daughter saying that she likes Lady Gaga and Snapchat, should we berate him for stereotyping ALL teenagers as pop-music loving kids who haven't explored other genres of music and reduce them to app-loving human beings? Seems like that's a very extreme deduction. If there were teenage girls sitting in the audience would they get upset at how he's generalizing their age-group? They would most likely understand that some girls are like that description and relate either through their own personal experience or friends that they have. Whether they fall in the same camp or not is irrelevant; they now know that the gentleman's kid is like that, and it's a story that will stick with them for the purposes of illustration. He's not subtly hating on all female teenagers, and I'd imagine that they understand that.

But no, when we talk about "women" in general, even if they're out significant other, all of a sudden saying anything with a non-positive connotation is remarkably radioactive. That seems like a double standard where we can comfortably mete out opinions and comments about people we PERSONALLY know (within a family, S.O. etc), but when we don't have something outrageously positive to say, we're better off excluding women from the discussion due to this paranoid fear of alienation that political correctness has brought on.
I did some further investigation [1] by running 20 million iterations in Release and profiled the code.

Turns out, at least 82.9% of it was just swift_retain / swift_release (ref counting). Whether those retains / released can be optimised away, I don't know, we'll have to wait and see.

[1] https://twitter.com/milend/status/474360984413683713
Call up CNN and offer to demonstrate how BIOTRONIC is so evil that they refuse to fix their pacemakers. Hook it up to an ECG and use your phone to make it flatline. Then turn to the camera and tell the audience, "because BIOTRONIC doesn't want to pay to fix their product, I can now kill your grandmother just by walking past her on the street."

Watch how long it takes them to fix it then, and watch how reactive they become to responsible disclosure next time.

Also, short their stock before you go on TV. A little something for your troubles.
Agreed. My company does not review my slides before I present them, they vest me with the responsibility to moderate myself.