skysight-inc/HackerNews huggingface dataset:
We used to determine first player in games by having one person pick a number and one person pick a player (writing each secretly on paper or flashing some fingers to a third party as a commitment scheme). You'd then count that number of spots from that player.

This sort of "randomness through unwitting collusion" reminded me of that.

That and coin flipping protocols:
https://en.wikipedia.org/wiki/Coin_flipping#Coin_flipping_in...

(Admittedly, shuffling an entire list seems fancier, like you're getting much more work out of it.)
This is like saying that when teaching people how to cook, you should start with chemistry lessons. Sure, at some point you have to have some understanding of chemistry in cooking, but does that really mean you have to start out there?

Yes, every programmer should eventually learn about the things you're talking about. But C is a terrible first language.
I wonder how this is actually implemented in a legal sense. A board of directors has a legal meaning, but a computer program has no legal standing; do they have an individual who is legally the board member and who has entered into an agreement to vote as the software directs?
> For a space-based interferometer mission, eLISA is a non-optical interferometer (for gravitatinal waves) with 1e6 km arms with a budgeted cost of 1.3B Euro. An interferometer needs to control spacing by a fraction of a wavelength, but for gravitational waves that's like 1e9 m. Optical light is 1e-7m

Could explain what you're saying here better? The LISA satellites will making measurements of changes in the million km distances between each other to an accuracy below 20 picometers.
Most Popular Programming Languages of 2014 – CodeEval
Everyone should know just how much the government lied to defend the NSA
And thus not guilty....
> It would serve the Linux foundation to keep with a more secure implementation than OpenSSL.

The Linux Foundation is supporting the OpenSSL project with funding.
As these "OS in the browser" things seem to pop up from time to time, has anybody here ever seen a good application for them?

Canonical use something similar in their Ubuntu online tour: http://www.ubuntu.com/tour/en/
Requires batteries. NFC is the obvious choice, and yubikey neo already supports that. Note that (going back to top-level parent comment) current yubikey neos cannot support U2F; all they say is U2F compatible devices will be available sometime [later] this year.
Bear in mind that "the new normal" as a qualifier for the current state of affairs, at least in the US, goes back to Dick Cheney and 9/11. I don't know that Snowden changed that many minds, outside of this particular bubble. Mostly, people are more upset with the minor annoyances of the TSA that discovering the government can read their emails.
Developers often add TODOs for tasks that seem essential at the time, but later become redundant.

There is also the use case of when you can't do something because you're dependent on something else, for example you might have a workaround due to a issue in one of your dependencies. Once that's resolves, you can update to the newer version of that library, and remove your workaround.
Build something that is doable but will push your current skills. Choose a project that appears slightly beyond your current capability. That is the only way to truly learn.
Why do people advocate Python and not a dialect of Lisp for beginners? Are prefix notation and parentheses really that terrible in exchange for a completely unified syntax?
I actually don't see much of a problem with doing a web search for the available libraries. Maybe it would save me a few keystrokes to type "email" and be presented with some function signatures from different libraries, but I (and I'm sure most others) have a few heuristics for choosing a library that go beyond the SendEmail function signature.

For example, if I see that a repo hasn't been touched in 3 years, I'm probably not going to pull it into my project. If the setup required to use a library looks clunky, I'm likely to avoid it. If the documentation is dense and difficult to parse, I'd much prefer an alternative.

These are the problems that I don't see an automatic package-fetching IDE solving anytime soon. Not that it's beyond our capacity as developers to solve such problems, but because I doubt that the number (hundreds, easily) of hours it would take to develop such a solution would be justified the 10 minutes it might save a developer looking for a library. Also, it will be quite a while before the general faith in an IDE's ability to pick a good library for us is high enough that we'd trust it with such a responsibility. A mistake would easily cost more than the 10 minutes it saved, and given that computers can't even pick the right music for me with 100% accuracy, I don't see something like this being a reality anytime soon; and I'm fine with that. I'd rather we focus on solving real problems.
If you can stream it, you can download it (2012)
I think with FB, people don't necessarily want a button that's just a counter to the "like" button. They want a "dislike" button, but on its own axis. So n-likes and m-dislikes don't add up to n - m = score but n + m = score.

In other words, when somebody posts that their dog just passed away or whatever, I want to hit "dislike", not to pull down the like score but as a separate emotional indicator.
I don't understand how your "easier for a beginner" example relates to fundamental programming concepts. Are you talking about variable assignments, jumps, control structure, or about syntax ?

Again how is "the whole purity thing" an overhead w.r.t. to learning the fundamentals ?

If you take your loop example in Python, how does leaking the `i` variable outside the loop's scope (actually there is no such scope) a fundamental that beginners need to grasp ?

What would you say about `map f [0..2]` ?

So Python makes a lot of things easier than in C or in Java I get it. That in itself is not an argument for teaching it instead of, say, Haskell.

If you can choose between A, B, ... Z, sure it is better to use B if it is better than A, but not choosing F because you never use it is a wrong reason (at least if your goal is to teach students).
Quill: a cross browser rich text editor with an API
Out in the Open: Man Creates One Programming Language to Rule Them All
Solve real problems - write programs that "scratch your own itch" - and learn as you need to. It's hard to tell how well you're learning when you don't have actual results to go by.

Honestly though that set of interests doesn't seem like the sort of thing that lends itself to real problems; it sounds to me like you've already got more than enough CS theory. If you're looking to learn the kind of programming that will make you better at doing it professionally, you need to start making practical things. Find a hobby that could do with a website/app or something else in your life that can be automated.
Then it would function like an [air]lock :-(

Open the outer door, enter the middle area, wait for the inner door. (lather, rinse, repeat for n > 2)
This is by design of Haskell, and you aren't arguing with me (beyond being offended by my hyperbole). My trouble with using Haskell on small projects means I would probably never go near it on large projects, it prefers people who "think to program" while I'm more of a "program to think" type.
Oh yes indeed. When I was cycling (and camping) in the less-often-visited-by-tourists areas of Croatia and Bosnia in 2011, there were mine warning signs all over the place. I even had to wait for an hour while a demining team cleared a roadside so that roadworks could commence.

In the Croatian wars, with its long and hard to guard front lines, the mines were more or less shoveled out of trucks , with little in the way of administration. To make matters worse, when the spring floods came and eroded the riverbanks (the river systems, during the wars, were less well-maintained), they took the mines buried there with them, and so they ended up in other places alongside the rivers.

The Croatian government has a GIS webapp up at https://misportal.hcr.hr/ . I used it to mark my paper map with a sharpie, so I would know in which areas I'd better not pitch my tent. The mined areas (in red) viewable through the webapp show the contours of the breakaway ethnic-Serbian "Republika Srpska Krajina" pretty well. (The stuff to the far eastern side of the map is the border front with Serbia and has nothing to do with the Krajina contours).

It amazed me to find these areas still so devastated and deserted. Bombed out houses everywhere, even in town centres (notably Pakrac), where the young people I spoke to who were working and living in these scarred towns hadn't even been born when the fighting started (early 90's, I remember we had a refugee in our class in primary school.).
Many hackintoshers (myself included) own Apple laptops and have built ourselves desktops that are more powerful than the mac mini without costing as much as a Mac Pro (for the most part).
PHP would be among the worst languages you could throw at somebody learning computer programming concepts. I'm pretty sure this was a joke, just the same.

I was learning to program around the time when php and classic asp were gaining ground (1996)... php had far more to offer for free, but the utter inconsistencies irked me to no end, and still do.
Apple is really beginning to crack down on Hackintoshes recently, but in more subtle ways. For example, on lots of hackintoshes, you just can't send iMessages. The forums are full of people with this problem. In general iCloud stuff including App Store is finicky with "activation errors" and the like, but works flawless on "real" Apple hardware.
I'm far more concerned by the/my impression that the public seems to have accepted total surveillance as "the new normal".

A lot of this is also a political / legal question; has the public ever been deeply interested in privacy questions? My (naive?) guess is no, but the judicial branch has historically done an okay job of representing the public interest, and giant scandals (like Nixon) have moved legislators.
Yeah, not surprising though. It's one of those things where 99.9% clear means a few children blown up every now and then. Having a field with "hardly any mines" really isn't good enough, so I can imagine it would take a long time to vet new procedures.
The entire point of 2FA is to make password compromise insufficient to gain access to an account. Which makes this response just baffling.

I initially thought that the lack of any technical countermeasure might be a legitimate reason for Google to do nothing, but after I thought about it for a moment, I realized that when the 2FA system calls the user, it could simply prompt the user to do something before sending the verification code -- that way, the 2FA provider knows they aren't sending the code to voicemail.

Simple and effective, and later in the post I found the author and multiple companies came up with that idea on their own.
The piece in WSJ titled "Was Snowden's Heist a Foreign Espionage Operation?" is worth reading (http://online.wsj.com/news/articles/SB1000142405270230483130...).

Even though I am sympathetic to Showden for his disclosures of gov't surveillance of American citizens and others, the scope, complexity, and execution of operation leaves many questions unanswered.

National security officials (both Republicans and Dems) are quoted in the piece that they believe that Showden operation was an espionage heist.

From the article:

"On June 10, 2013, Sen. Dianne Feinstein (D., Calif.), the head of the Senate Intelligence Committee, described Mr. Snowden’s theft of documents as “an act of treason.” A former member of President Obama’s cabinet went even further, suggesting to me off the record in March this year that there are only three possible explanations for the Snowden heist: 1) It was a Russian espionage operation; 2) It was a Chinese espionage operation, or 3) It was a joint Sino-Russian operation."

So on one hand we have people like the head of the Senate Intelligence Committee and Obama officials who are neck deep in intelligence work, and on the other we have feel-gooders like BoingBoing, who really don't know what's going on, and who might never ever find out what really happened, because it could be classified for ages.
1. Keep trying.

2. Books and papers are great, but you should also try to find a mentor / guide / teacher / expert to talk about the issues you're facing and what you're thinking about. Schools are organized the way they are for a reason, even if they often fail at their intended purpose.
Eastern Europe floods
Are these guys ever going to actually finish the IDE, or postulate on what it means to program, ad infinitum. I'm glad they're being considerate in their design, but this whole project is starting to reek of over-aggrandized vaporware.
Love what you do and keep doing it, after 25 years I still aknowledge that I am a beginner in some areas and an expert in other.

Above all, always have fun!
I'd suggest drilling down into ONE subject area. If you want to become the world's foremost expert on NFA to DFA conversion techniques, go for it!

Forget about trying to learn EVERYTHING. Pick one thing, learn it well, repeat with the next thing.

As mentioned, the more you can do this within the confines of projects you feel passionately about, the easier it will be.
$25 in Switzerland is gets you about what $12 in the US does. So this really isn't as high as it sounds.
"I agree with you. Social interaction is the one thing no one has ever been able to 'scientifically' figure out. Otherwise we could all just read some books and be good at socializing."

"No matter how many books people read they will never be as quick witted as Robin Williams or as empathetic as Oprah."

Think about it: you can't get good at programming just by reading books. And programming is logic based and requires much slower reaction times etc than holding a conversation.

You can definitely improve your social skills by reading and more importantly practicing. Once you can pick up if somebody is interested and engaged with what you are saying you can try all sorts of conversation skills to try and find patterns to how they work.

And again just like programming you cannot simply expect that because you are good at writing webapps (talking to a particular social/cultural/age/gender group) that you will be good at writing embedded systems.
I would disagree that you need an understanding of chemistry to cook... (although it doesn't hurt). However, if you want to teach somebody to cook, you don't teach them how to use the microwave :)
The problem with detonating mines, is that it only gets the ones that works 100%. So you might still have some left with partly broken triggers. Doesn't mean they won't blow up later, though.
Except the Vanguard Corporation was probably a culture Mind checking in once a couple of months on the progress!
Saves ink! ;-)
Given actual practical experience of e.g. Software Carpentry that's an absurd view. You actually do not need to know how "print" is accomplished. Print is not a leaky abstraction unless you go into what is (these days) an absurd scenario like a serial console.
Where the World's Unsold Cars Go To Die
HN couldn't have been designed via spec.
Well if somebody is in higher education for computer science, I'm assuming their imagination has already been captured. I'm all for using whatever has the lowest barrier to entry in order to get young people interested in programming.
The Little Big Planet games use it too, in a more limited manner.

It is in fact awkward to use, IMO, and not just because of the software or Sony's implementation.

There are at least two big problems with it:

One is that it is really difficult to do Wacom-pen style hovering of a "cursor" on a capacitive surface with finger input in a way that works well universally for everyone without a lengthy and awkward calibration. And because of the non-direct method of interaction using your fingers on the back gives you, you really need some sort of non-action hovering indicator for this setup to work well.

The other is this: Put your hands in the positions shown in the original article. Now try moving your your index and middle fingers around as if touching the back surface of a device and try not to move your thumbs (and wrists) all over the place involuntarily. For most people this is difficult. When you are tightly gripping a device this becomes less of a problem but still contributes to the whole thing feeling very uncomfortable and unstable.

I'm nearly positive that various companies like Apple must have tested something like this out (either before/after the PS Vita) for a phone and just found it to be a poor solution when implemented in a real-world prototype.
The best thing touch screens have going for them, though, is direct interaction.
> Asking the Linux foundation for support is interesting. I'm sure that will in itself cause a few problems.

Why? Are we kids?
The way we have it set up, if the JVM crashes then it will mean that the health check url used by the load balancer will become unresponsive. This would lead to the auto scaling group downing the instance and replacing it with a new one. So, the same node wouldn't ever need to rejoin.
Hi, I didn't see an obvious way to reach you on the blog bit just FYI, it looks weird on iPhone Safari

Edit
http://imgur.com/oX0CzuZ
http://imgur.com/WsqEVxA
%!
% Top Secret Stolen NSA Documents
1800000 { 100 500 moveto (TOP SECRET) show showpage } repeat
Yeah, but we don't say the computer was beaten by the collective action of the neurons of the chess master. Or at least, that doesn't seem like the most useful way to think about the problem. This is just a recasting of the Chinese Room argument[0].

[0] http://en.wikipedia.org/wiki/Chinese_room
I wonder how hard it would be to make a blind test of comment quality by year, like a hot or not of comments...

Other than setting it up, my questions would be a.) How to filter out comments that give away when they were posted ("wow, didn't expect them to announce a smaller ipad!") b.) How to deal with comments that are part of a chain (and therefore their relevance may not be visible on their own) c.) How many comments would one person need to rate to get a statistically sound reading of what period in HN's history they think is better
I agree. They need to fill the dual cpu mac for devs.
Writing software is hard, but sometimes installing software is harder
I was about to disagree with this criticism of C, since I loved it as the introductory language in college. But then I remembered that Basic was my first programming language, and Pascal was the first language I was actually taught, and I'd been programming for a long time before actually getting to college.

So I totally agree. Python probably makes sense if most undergraduates don't have programming experience any more. And the ones that do probably have experience in JavaScript.
Anyone can explain why above is being down voted?
I think people mistook this as a troll, but that's my understanding, yes.

Often times an injured person is in the middle of an area where caution is needed when approaching by others; EPs are taught to approach carefully, not run into the area.
Nobody lives here
These are HID devices, because they need to do challenge/response with the website that's trying to authenticate. The old OTP YubiKeys were keyboards. Better than nothing but phishable.
I think it all depends of your goals, if you learn to cook in order to impress your friends, no you probably don't need chemistry lessons, but if you plan to win 3 Michelin stars for your restaurant, you probably need to.
Same for programmation, if you just want to ease your work, compute quickly some math formulas, etc, you can start with Python. But if you plan to write the next big OS, you better start with C...
I work for a large organisation and am not really in a position to go into details about what we'd be using it for at the moment, sorry.

Suffice it to say that we're pretty early on in the project and so far we're using Akka Cluster for sharing transient state between nodes, without the need for any kind of persistence store being used. My post was in response to the pain I had in getting over the initial hurdle of getting a prototype running.
> socklen_t – if your OS doesn’t have socklen_t, it’s either int or size_t. But OpenSSL does horrible contortions to define its own. If the size of socklen_t changes while your program is running, openssl will cope.

This doesn't surprise me; I've had to do runtime detection of socklen_t before. There have been 64-bit platforms (old HP/UX I think?) where different versions of the system libraries had differing opinions about sizeof(socklen_t) when you called accept(). On a little-endian platform this would be ignorable (just always reserve 64 bits and pre-zero it) but on big endian you had to do something like:

uint64_t addrlen = 0;
rv = accept(sock, &addr, (socklen_t *) &addrlen);
if ((addrlen & 0xFFFFFFFF) == 0)
addrlen >>= 32;

...in order for your binary to run on all systems. Fun times.
i liked it better when it called YouOS... or eyeOS
Apple and Google's Motorola end their legal war over smartphones
Either that or work at a company that provides you a rich enough set of problems where you can apply your disjointed knowledge since it'll force you to synthesize it into a working solution.
Vote for the next round of Python videos
Inside The Oculus Business Ecosystem
Jesus's image is very whitewashed, and very much used in ways that he himself would have opposed, too.
I'm going to recommend if what you're doing isn't working for you, that you should try a different approach to see if it can get you the momentum you're looking for, in addition to what you've already been doing:

Take a break from focusing on the strategies and tactics of programming. No single algorithm, framework or language is going to unlock the panacea of potential inside of you. Most problems simply aren't that complex in the beginning.

Having the mindset of an innocent beginner always is the toughest thing to maintain to remain a problem-based thinker instead of a solution-based thinker.

The best way I've found is simply to solve problems the best I can, and when I learn what I could have done better, if the need is there, go and refactor it. No matter how great you are, or aren't today, what you write may look bad in 5 years because you have more experience.

Most things we build as developers become obsolete. It's a separate discussion but I'm not sure what you're trying to optimize, your skills, or a result in a project?

No developer is a a factory of churning out code or results at the same speed. Be less focused on the practice of programming alone and look at the results you're creating.

Software is as much a craft, an art, as much as a technical skill, and maybe it's something for you to explore the other fronts.
Simply put you have to start practicing. Try to solve problems with the techniques you've learned, and you will get a better understanding of their strengths and their weaknesses. That will help you internalize the theory you have absorbed. It does take time (this annoys most people) but it serves the exact same purpose as homework does in school, moves the understanding from the hippocampus out through the rest of your brain.
Maybe try something pretty. Information visualization with http://d3js.org/
Or make a game with cool AI.

Whatever you do, as long as there is a minimum amount of fun in it, you'll get better.
And the more you know, the better you can identify what areas you have and/or want to improve in.
You could, I can't. I use Verizon and they don't offer that feature.