skysight-inc/HackerNews huggingface dataset:
The idea is nice, but the code is a little flaky. For example, change the number of decimals from 1000 to 2000 and it enters an infinite loop, but 4000 works again. This occurs because due to rounding a and b might not converge to the exact same value.

A more reliable way to write the algorithm is this:

n = 0
while not almosteq(a, b):
n, a, b = n + 1, (a + b)/2, sqrt(a*b)
series += 2**(n+1) * (a*a - b*b)
How scalable is this? I would think it's easy to put together something that serves, say, 100 users simultaneously. But how well does this scale to 100K users?
This could totally use a live demo.
Do What You Love? Maybe Not.
original article (Discovery):

http://news.discovery.com/history/collapse-river-civilizatio...
I interpret "muscle memory" to mean "have a good default toolset" in this context.

I don't. In sports, we use "muscle memory" to refer to on-the-fly adaptations that athletes have to perform without conscious thought. For example, a basketball player sees his defender lean too far in one direction, and he automatically knows when to stop, jump and shoot in order to avoid being blocked. The shooter did not have to consciously think "Oh, he leaned that way, so I need to correct this way." That's too slow. The right thing to do is ingrained from hours of drilling and live practice. My sport of choice is Brazilian jiu-jitsu, and I see the same thing with myself all the time. When I feel my opponents weight shift, I don't consciously think about how to flip him over. If I do, he'll already have moved. I just know what to do, based on years of drilling and live training.

So, I extend the metaphor to software to rather the opposite of what you said. Always applying a default toolset is the opposite of on-the-fly adaptations. "Muscle memory" for solving software problems is being able to reason about what you know you can handle without having to pick a technology up front. It's having an intuition of what what the technology allows you to do. You're not thinking in terms of technology, you're thinking in terms of solving the problem and being able to easily classify things as "I know how to handle" and "I don't know yet how to handle."

The benefit of software over sports is that we have the luxury of time; we have the time to check our intuitive guesses through rational evaluation.
Not experimenting alone in my basement (and also not a drug discovery), but I have figured out how to get well with an incurable genetic disorder. So I can't say I agree with this sentiment. The issue I have is how to get the word out basically -- how to convince others I am not merely blowing smoke up their ass, how to present the info in an effective and useful fashion, how to get publicity and so on. So, no, yo aren't likely to read any headline news about my "discovery" any time soon. Makes me wonder how many other people have done something amazing on thei own but we aren't hearing about it.

Peace.
Create the password and email it to the user.

That is a trade-of because they will write it down and put it next to their monitor.

But then the bad guy has to physically get it and the password isn't going to be used anywhere else so you nuke the two biggest issues with passwords.
Why does it open a new Safari window after the installation? That's pretty annoying but besides that I'm happy about every new version.
Thanks!

The other guesses are correct. The code is here, but it's undocumented and specific to the site.
https://github.com/martine/cms

It's pretty straightforward to write your own such thing (though you must be careful about the details when generating a feed) or use one of the many other static site generators like Jekyll.
I believe that the answers are incorrect. They assume that all true boolean expressions evaluate to 1, whereas the c standard only guarantees that they don't evaluate to 0.

Edit: As pointed out by the responses, I am wrong
"They had cities ordered into grids, with exquisite plumbing, which was not encountered again until the Romans"

It's amazing how quite advanced technologies (for a civilization that thrived from 5000 to 3000 years ago) were mastered only to be lost later over the course of history.

A mind-blowing example closer to us is the Antikythera mechanism [1]. Found in a Mediterranean wreck in 1900, the artifact was not analyzed until the 1950s, when it was found to be "a mechanical computer designed to calculate astronomical positions" - except it was made in the first century BC.

Wikipedia notes that "Technological artifacts of similar complexity and workmanship did not reappear until the 14th century, when mechanical astronomical clocks were built in Europe."

It is the oldest known mechanical computer - and to my knowledge no comparable device was to be manufactured until the 17th century and the invention of the Pascaline [2]. That's 18 centuries of gap, right there.

The precision of the clockwork and the exactitude of the astronomical calculations made by the Antikythera mechanism only goes to show how much knowledge was lost in Europe after the fall of the Roman Empire. Progress does not always follow a straight arrow.

[1] http://en.wikipedia.org/wiki/Antikythera_mechanism

[2] http://en.wikipedia.org/wiki/Pascaline
... lazy, self-entitled... blah blah... everyone gets a trophy... blah blah... (etc. angry clap trap rantings).
Talks like this one are going to be a real problem for TED if they don't start curating the various TEDx events. The TED brand is basically a trademark representing high quality talks. If this continues, they'll lose all their credebility. At $4000+ per ticket, we're talking about a lot of money.
Please do use selectorgadget! And if you'd like to push anything back, or chat about parsing in general, send me a message. I have a more advanced branch of SG that can generate better selectors, but I haven't pushed it out yet. It's all in the repo.
So, it only generates fully solved boards? That's a pity. Picking the initial numbers is the tricky part. I don't think there are many opensource libraries for that.
Pep - kinetic drag & drop for mobile and desktop jquery plugin
Learning regular expressions properly is something I've been saving for later for a long time; thinking that, one day, it could make me a real programmer.

Now, after one year and a half of exclusive vimming, I've learned a lot more on regex than in all the years before. Whithout actually trying.
Thanks for the kind words! Maybe this attention will push me to update the code and make a new screencast.
Whilst I concur that all of us exhibit both selection and confirmation biases, it's unfair to the parent poster to assert that his/her dissatisfaction is primarily due to these factors.

For example, I too am an outside observer who quite deliberately reads both the left-wing and the right-wing media. My perspective chimes with the parent, viz. that the US constitutional model of law, starting with the novelty of "a list of things you're allowed to do" (vs most nations' "blank slate + a list of things you must do or must not do"), and combined with a tripartite governance model that separates the executive from the legislature (thus allowing both to duck accountabilities) has been an interesting experiment but ultimately produced such a colossal proliferation of impenetrable ancillary legislation, powers, regulations and case law - far beyond the ability of any citizen to grasp - that it can only, at this point, be deemed a failure and not to be repeated, or at any rate not on this scale.

And so I breathe a huge sigh of relief that the legal jurisdiction under which I operate is one that can be approached and engaged with individually, even absent a small personal army of motion-waving attorneys; one in which the selection of judge is not, as it has been here, such a part of the lottery of outcome.
The best thing about Primer is that I come away with the feeling that I can go out to my garage and do something amazing.
Nintendo WiiU Showcase Streamming
The Intertwined Foundations of Mathematics & Computer Science
I wrote a small script to generate passwords after reading that comic [1]. Using a good wordlist one can easily produce memorable and secure passwords.

Unfortunately, many sites enforce rules that preclude this password style (e.g., must contain a number).

[1] https://github.com/redacted/XKCD-password-generator/
Your Words Matter
Firefox doesn't support range, and this site doesn't using something to fill in for its lack of support. :(
Fail Fast (Lesson from Wright Brothers)
>But how well does this scale to 100K users?

It wouldn't. Designing a system to handle 100k simultaneous users is hard, and a problem few people suffer from.

Why would you ask this question?
Wintersmith - An awesome Node.js based static page generator
FWIW: there's something fishy about the "random subway station". Jiro's place is currently located in Ginza, a rather upscale neighbourhood in Tokyo.
But Judge Alsup made all the correct decisions, can we expect other judges to do the same when it comes to highly technical arguments?
You use the right tool for the task at hand. Node is only notably useful for a relatively narrow range of applications.

For everything else, you'd much better served by using Django/Rails/etc.
I tried using it and it didn't seem to work, at least not for using higher-level jQuery animation methods. Using slideDown(), for example, didn't appear to use CSS3 animations.
Authentication it sounds like:
"Balloons uses easy-OAuth for authentication with twitter. You can easily change this code to authenticate with Facebook, for example, lets with Facebook."
Yes. But every chat application in node.js that has ever been presented in HN faced the same fate of being brought down to a crawling pulp whenever it had more than 100 or so concurrent users.
I'd definitely be interested in this. So interested in fact, I mage a google+ page. Follow the page, we'll create a circle and then do the hangouts. Please feel free to message me or email me with ideas.

https://plus.google.com/b/102256946256558758591/102256946256...
The readme isn't very well written. Would someone with Node.js/redis experience be willing to write a more comprehensive installation guide?
Exactly what I wanted to reply.
Not true, !0 is always 1 in the C standard. Other parts are wrong though (they assume short is narrower than int, and that int is 32 bits).
I have been truly frustrated by the inability to find a real cross-platform bibliography & article storage tool. How hard can it be? Music tools have been doing this for a decade, plus.
They've already lost most of their credibility in the ways the author of the post points out. It's not something yet-to-happen.
Asimov: The cult of ignorance (photo)
> You should submit this together with a security issue report to Facebook and Hotmail and whoever else uses security questions.

Google, too. I suggest you run through the recovery process yourself (on a dummy account, or your own) to see the kinds of questions asked. Questions like "when did you last access the account?" are easily answered; as is "name 5 regular contacts"; and so on. I could (but would not) perform the recovery process (and gain access to) acquaintances accounts, given how simple the questions are.

The key is just knowing "enough" in aggregate to pass their bar.
Thanks. I didn't know that
6.3.1.2 Boolean type

"When any scalar value is converted to _Bool, the result is 0 if the value compares equal to 0; otherwise, the result is 1"

http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf page 43
Verizon's 300 Mbps Fios plan to cost $205
No, it guarantees 0 or 1; see C99 6.5.8 paragraph 6: these operators "shall yield 1 if the specified relation is true and 0 if it is false."
The assumptions are explicitly stated at the beginning of the quiz.
Why I crave mistakes
Sorry, "PassworD" doesn't validate. You're missing a symbol, and you have a character repeated. Try "P@s5w0rd" instead. Or, better yet, "abc#1234" as suggested in the examples.
Valley gender gap a death spiral
Vintage Video Game Ads
It's not wrong. If you read the intro, they note that those traits are implementation defined, so they say to assume you're using an implementation with those characteristics.
More time doing work does not translate to more creative output. Wasting time is the most effective way to come up with ideas. Its been proven and written many times over. But I guess when you are in a startup and taken funding from external sources, its hard to explain why you waste time!

The post also needs a TLDR;
Modern day blog spam.

http://www.flickr.com/photos/65846913@N02/sets/7215762744929...
It's amazing how quite advanced technologies (for a civilization that thrived from 5000 to 3000 years ago) were mastered only to be lost later over the course of history.

It's actually not (too) hard to imagine something like this happening again: the process (probably) starts with nuclear weapons and ends with something like A Canticle for Leibowitz: http://www.amazon.com/Canticle-Leibowitz-Walter-Miller-Jr/dp...
Am I even a lost customer if the original owner, never gave me the option to legally buy the product (in my country) in the first place?
There was a decent BBC documentary from last month which covered the mechanism and the attempts to decipher it. On my phone now so this is the closest link I can find: http://www.bbc.co.uk/news/science-environment-17989915 but you can get to it from there :)
Forward all your "friends" one of those "50 Things You Didn't Know About Me: Fill In Your Answers and Forward!" question lists that includes the security questions you're targeting.
Sorry! Unfortunately I haven't got round to doing extra support yet - Chrome is the only browser that supports everything there at the moment. I'll sort it out with Modernizr when I get some time.
You must waste time. As Aftershock21 notes, it is the only way you can be creative rather than productive.

It's also important not to burn out. You are roughly infinitely more useful to your startup when you are well rested than when you are burnt out.

Wasting time helps a lot with that.

Wasting time also gives you a great opportunity to take a step back and gain some perspective on everything and see whether you're working in the right direction, otherwise how do you know you're being productive rather than just doing busywork?

If there's one thing founding a startup has taught me, it's to avoid busywork like the plague and that when you are busy busywork looks the same as being productive.

tl;dr: from the trenches being busy and being productive look the same. You need to waste time to be able to tell the difference.
Which is a bit amusing, as I remember standalone IRC servers handling 40,000+ peak users with relative ease -- and that was back in the late 90s on commodity server hardware.
Likewise, I'll defer to anyone who can present hard data to the contrary, but my intuition is that you're spot on here.

I've always been a geek. When I was 12 my father's coworker gave me a BASIC compiler, and I would stay inside working through introductory programming tutorials while my equally intelligent sister spent her free time with her friends. As a result, by the time I graduated high school I already had significant experience programming in BASIC, C, C++, Perl, JavaScript, and Z80 assembly language (TI-86 graphing calculators).

Now when I got to college I still had plenty to learn about the theoretical underpinnings of computer science, but one thing I noticed right away was that my six-year, passionate head start on programming gave me a massive advantage over many of my peers. The ones who lacked this advantage eventually switched majors; the ones who had it stayed... and were invariably male.

I propose that the phenomenon of so many kids entering computer science and engineering programs with years of self-taught experience under their belts has unconsciously shaped these programs to the point that they are unfriendly to anyone trying to start programming from scratch. And maybe that in itself isn't a bad thing; if CS programs can assume a certain level of experience from new students, then perhaps they can produce graduates with an even higher level of education. Generally speaking it's not gender discrimination we see in these programs, it's experience discrimination.

If we're to go searching for the cause of the gender gap in software engineering, I think we need to stop trying to assign blame to phantasms of gender discrimination in higher education – or worse, trying to just shoehorn more young women into a career path for which they are not necessarily prepared. Instead, we need to look at the social factors that lead so many more boys than girls to engage programming at a young age, and discuss what might be done about that.
My favorite thing is when the answer to the security question is allowed to be remembered by the browser, meaning anyone who gets my password can saunter up to any computer I've used in the past and bypass the stupid security question.
"I’ve seen the incredible power of time passing and the importance of the small choices we make every day. Its crazy to realize the success or failure of a company is a collection of days and the things we decided to do or not do on those days. But that’s it. It really is like poker or chess – trying not to make mistakes"

Well for the sake of others here as well as yourself let me point out something that you need to take action on for a choice you have already made.

You've chosen to name your site and use "refer.ly" because you don't have "referly.com".

Now the name "referly.com" is owned by someone in Mountain View so maybe that's your partner and you simply haven't forwarded it to your site. But I've seen this happen so many times I have to point out that it's a huge mistake to not lock up the .com name and to go by a .ly name. Not that people haven't done it. Not that people who have done it haven't been successful. But unless there is a super compelling reason it's definitely something you want to avoid. It's just going to cost you money and/or problems down the road when you need to buy the name.

I understand that there is an entire group of entrepreneurs out there that think domains don't matter for this or that reason. But they do matter and it's not that difficult to keep that in mind before you get to attached to your branding.
RIP Google Product Search (Froogle)
> I've interviewed a guy from IBM before. He insisted on commenting everything and having getters and setters for all of his fields.

A co-worker of mine used to work for IBM. He said he commented everything. However, he wrote them in Spanish. So your code comments should be appropriate for the environment :)

> Being in a company has a lot to do with how well you get along with people. You're new, and so I suggest that you listen carefully, ask questions about things that you don't understand (otherwise you'll feel like a dumbass next time they bring it up, and you still don't know what they're talking about).

Definitely do this. If someone mentions an acronym or project, either interject or remind yourself to ask later what it is. Which one is appropriate obviously depends on the context of the situation.

> When you've been working somewhere for a while you also tend to dismiss the problems around you. Make sure you note down all of the things that you find wrong about the place - ask people why these things are they way that they are - it could be a misunderstanding on your part, but it could also be that there are genuinely things that need fixing.

There are a lot of things done because "that's the way they are" and no one questions that. You should probably question why. Sometimes things are done that way because it was the best solution at the time. However, technology and use cases change.

> Make sure you keep a notepad on you - note down everything that you learn, problems that you see etc - it'll come in handy.

You can also make notes about people. Where they are in the org chart, what they're responsible for, who referred you to them, and maybe even some of their info, like they're a fan of a particular football team or something. That info can help you make small talk and fit in with the group faster. You'll meet too many people too quickly to internalize it all at one time, so the notes will help as a temporary crutch (don't be a stalker, and don't write anything you wouldn't want anyone to read). Along those lines, sometimes you just have to initiate joining a group. You can't always wait for them to invite you in.

> After a couple of weeks you can start acting on fixing the problems that you've seen - if you actively seek to solve problems, then you can become a hero in the company - the guy that made our lives better.

This is true. I've seen it happen.

> Lastly remember that if you want something you'll have to fight for it. Don't be afraid to disagree with people, but you have to play a fine game when you've just come into the company - you don't want to piss people off, but you also don't want to set the expectation that you're OK with shitty code.

We have a philosophy where I work called "disagree and commit." There are too many opinions from too many people to ever work out everything ahead of time. Sometimes you have to just say "I disagree with this idea, but I accept we've decided to go this way, and I'll give it 110%." The trick is knowing when to hash it out some more and when to just shut up and get something done. There are many more problems to be solved, and you can't win every battle.
i was thinking yesterday how great it would be if webcomics had a 'read the archive' rss feature. Where you pick a point in the past, and how many comics to feed you every day.
Pictures World
Thanks Aftershock21 I agree, tldr version: if you have a crazy sense of urgency you might try reclaiming some hours by waking up earlier, and make room in your life for a couple of hours of low pressure introspective stuff every day in the early morning hours instead of just reacting to what the outside world asks of you

I wonder if this post is mis-named, curious what those who read it through think
If this happens and you don't want to replace the plug, you can get a pencil and put that in the ground hole to allow you to put the other two pins in.
Thank you, I have been working on that for quite awhile now. I have owned refer.ly for 3 years and began pursuing the .com domain as soon as I decided to turn it into a business.

Also, our product is (currently implemented as) a link shortener so the .ly domain choice has served us well
Not sure, but you might want to check out a Markdown based static site generator. A popular one is Jekyll, which is also used by Github (it's written by one of Github's founders). No database required.

EDIT: evmar answered the question before I posted my reply. That's what I get for keeping HN stories open in tabs.
Thanks. Meditation would be great in the morning.
On the topic of getting up early and finding that time between 6 and 9 when "nothing happens in the tech world": I happen to live one time zone over from most of my clients (I'm in Halifax and my clients are mostly in Toronto), which means that the emails/phone calls/meetings/etc. doesn't start until at least 10am my time. I never use an alarm clock, usually have a real breakfast, and walk to work.

If you already work remotely, it's worth considering a time zone shift. It's even better if you can live in a place with a lower cost of living than where you bill. If you have a lot of California business, try living in Denver. Chicago business? Try Montreal or Columbus Ohio. Customers in London? Try Berlin.

Obviously, this won't work for everyone - but in certain situations it can be a great way to get an extra hour in the best part of your day.
Feel free to write to me if you need any advice.
I wouldn't find programming (as a career) to be rewarding at all if I didn't code open source software. I'd rather be paying someone else to do it. Success is too good not to share with your peers, since nobody else really understands.