skysight-inc/HackerNews huggingface dataset:
I use TDD on all my projects. I also regard myself as extremely pragmatic in my work. If I felt I would do better without designing test-first I would not be doing it (on some projects I have less-than-full coverage because it felt like the investment was not worth it). On to my point...

One thing that always frustrates me in these debates is all the hypothesizing people who are skeptical of TDD do about what it would mean if they were to use it. For example:

"For the type of programming I'm learning/doing now (web programming in ruby on rails), the tests are never sufficient to test anything."

RoR is specifically built to make test-driven web development easy. I'm not saying the poster is wrong not to use TDD on their project, just that statements like that should not be taken at face value. It is clear that at least for some people doing certain types of work TDD is a big help. That's an indisputable fact. Therefore, the only reasonable positions one might hold are the following:

1) I agree with these people. TDD is great and I use it all the time.
2) I don't want to use TDD. It just does not match the way I think about my work. I choose not to use it, but I do not claim to know why using it is a bad idea.
3) I tried TDD and mastered it. Anyone well-versed in TDD would confirm that I can do it "the right way". I found the following problems in my test-driven code: ... For those reasons I would recommend that people stay away.

I think any other position would be disingenuous or lazy. Also note that only opinion 3 is in any way interesting to read about. It kind of feels like unless you're making that claim there is no useful way to comment on the utility of TDD.
Why Genes Aren't Destiny
For what it's worth, this new process sounds like the great parts of Scrum, just without using the name "Scrum" and all the annoying acronyms and terminology.
Ask HN: What is the ideal MBA to geek ratio in our industry? ;-)
Sounds a lot like what Freenet has always been trying to do.

http://en.wikipedia.org/wiki/Freenet

If I recall correctly, files are split up, passed around and encrypted so you don't know what your serving up
Make your own Android app (then share it)
There is very little that could be further from the truth. Bjarne Stroustrup has to be the most powerless inventor of any programming language in existence. chancho already referred to the recent "concepts" rejection and the fact that Bjarne Stroustrup doesn't control any important language implementation.

In fact there are members of the standards committee who do control a language implementation, like Herb Sutter. The committee is full of prominent members with intellectual capital who exercise their formal voting rights as well. There is no dictator.
A lot of mis-thinking here.

> it’d be strange for Firefox to be found guilty in any way

How could they be? They are completely uninvolved. Take another example: if you film [maliciously] someone being, say, raped using a Sony camcorder are Sony party to the offence? (the metaphor isn't quite right but I cant think of a better one off hand, it serves)

The other mistake, I think, is in believing the data in it's particular form is what means he is breaking the law. Because I'm sure every sane person agree's it is impossible to impose laws on a specific string of bits - if you happened to randomly "type" the bits that, when parsed as an MP3, sounded exactly like the Lady GaGa song would you call that a violation?

However the intent to provide the copyrighted material to someone whatever the form you hand it out in is what's important. right?

(I make no comment on whether such law is right/wrong etc.)
It's probably doing better than biosphere 1.
Calling kn0thing, calling kn0thing...
Gremlin: A Graph-Based Programming Language
by chance it appeared to come from someone who has previously written to me

To me, this suggests a viral nature of the attack.
I find your logic interesting.

So let's say I have this new way of doing things. It's called "hit your head with a hammer". I'm crazy about it and wrote a bunch of books about it. Other people have tried hitting their head with a hammer and, although there are many detractors, there are also some big fans.

So what you're saying is: we cannot make a legitimate (or "interesting") observation about "hit yourself in the head with a hammer" unless we also have mastered the art of doing it. Only then would we have something worthwhile to add.

I'm not saying TDD is bad. What I'm saying is that it's perfectly fine to look at the phenomenon from the outside and make general observations about it. For instance, "TDD is very hard to impose on most teams" or "When implementing TDD for the first time, teams experience a significant drop in performance"

I'm sure there are lots of others.

Uncle Bob (and others) have made a mockery out of informed discussion in regards to TDD. Here's hoping we can keep a reasoned and civilized discussion going in the community.
Ask HN: What makes things/memes "trend" on twitter?
I'm pretty fascinated by something that's been happening on Twitter for a while. If you look at the top trends on search.twitter.com there's always something like: #tacky #youwerecooluntil #songofthedecade etc. Facebook also had the bra color meme going on/still going on: http://mashable.com/2010/01/07/bra-color-facebook-status/

From a scientific and almost investigative aspect, what makes things like this trend? This is different than things like earthquake or certain news events that trend due to their nature ie- they happen at a certain time and impact a lot of people who talk about it.
The Gulf Stream Myth
It's EditArea

http://www.cdolivet.com/index.php?page=editArea

very nice project on LPGL license.
I'll admit to being worried about this, I stay logged into google most of the time... I think I'll get used to hitting the logout button - probably good general practice anyway
Very nice. I liked all of these.

Before I scrolled down the page, I wrote down a few that I expected to see. Oddly, none of mine were on OP's list. (Am I that weird, or do we just think differently?)

Here are mine:

- Find a customer.
- Satisfy their needs.
- Get their money.
- Use their feedback.
- Improve your software.
- Hit your deadlines.
- Never give up.
Is it really true that one can view a list of the email addresses of the logged in gmail users who are visiting a document one owns? I can see a list of usernames of people actively viewing a document I own, but not email addresses.

Because if so, that's the problem right there. It's not a security "design flaw" of some kind -- it's a flat out failure of Google to protect the privacy of its users -- and I have to imagine a violation of its privacy policy.

I don't know, maybe I'm missing something though.
Can I be on the slack team? Slacking is what I do best and as they say you should always work with your strengths.
anytime ;)
I like all your suggestions but recommending against serif fonts. What basis do you have for this?

Serifed fonts can be easier to read, particularly when there is a lot of text involved.
Or the need to pay someone to anoint you as a "Certified Scrum Master".
Bad hackers copy, great hackers steal — Avi Bryant
The best case possible is to iterate the list once - you sum the list from left to right holding cumulative answers and if the final sum is zero, that index is a valid answer.

The worst case of the best algorithm is to iterate twice - firstly as above, and then again in the opposite direction, comparing values from the first iteration.
I totally agree on the voice stuff.

Being a new Nexus owner I wanted to clarify that the scrolling app menu is only for the app menu. Android has a 'home screen' just like the iPhone (well five of them that you can swipe between) and you can install the app icons you use the most there. The scrolling menu is basically the 'everything' bucket, which I like.

It is also buttery smooth, unlike every other Android device I've touched.

I've been an iPhone user for many years and think the iPhone has always been the bar to measure everything with. Android is catching up with this phone though, it is REALLY good, especially if you are the type who is willing to live with a few warts here and there.
There are an infinite set of mathematical tricks available here, some of them so obfuscated that enforcement would probably need a few years to catch up. Not to forget that printing a hard copy of the bytes of an MP3 may even warrant you free speech protection (remember the reaction to the DeCSS legal issues, like printing it in T-shirts).
Well, some MBAs could be geeks too and I think those totally belong in the industry.
I think speech-to-text will be a great feature in the long run.

Off the top of my head, I can think of a few use cases for it: people who text while driving, dictating an e-mail in the car, quick reminders in a notes application.

I thought the voice search was superfluous at first, but I love it, and I've wished I could use speech-to-text for a few other things.
Spell-check your posts.
A failure pile in a sadness bowl
Yes, I was thinking the same thing. Scrapy has good documentation but still it didn't work for me. With Python it was easier and I understood what each piece of code did.
> You cannot reference a variable that has not been defined yet.

That helps somewhat, but you can certainly assign to a variable you haven't defined. Detect that.

> Contrast that with, say, Perl....

If you'd used the warnings pragma, Perl would happily have warned you about any problems numifying the string. In this case, there are no problems numifying the string, so there's no warning.

(As Perl is an operator-oriented language, the use of syntax which provides numeric or boolean or string context on values indicates programmer intent.)
This doesn't make much sense to me. The author correctly identifies that hash resizes that are done by changing the size by a multiple remain O(1) amortized over their construction and use. But then asserts that many hash tables (who?!) don't do this, and that makes them O(N). I've written a ton of hash tables in my career. None have that characteristic. Nor do any I've studied in popular software.

Then he finishes up with a discussion about "bad hash functions" without actually pointing to any examples of tables that use them.

Worst, the point of the whole (rather long!) article is about performance, and yet there's not a benchmark to be seen. Nothing is measured; it's just one assertion after another.

The whole thing is a giant straw man. Not worth reading.
Your link is borked - http://news.ycombinator.com/item?id=849409
I wasn't part of NM, so don't know much about it, but markenomics definitely needs a better comments/articles ratio before it takes off, so I think the slot for a HN-economics is still open.
Wow! Yours are really good, and have a nice rhythm to them.
Clickable: http://Newsley.com
That really depends on the program. It is possible to get a top-quality education at a US university, but you have to work at it just like you would anywhere else.
Interesting point. I know there are exceptions to licensing for certain services--as is noted elsewhere in this thread the FM transmitters for mp3 players and the like, but I was under the impression that was specifically included by the regulations. What is interesting is whether that applies to any frequency.
Me! :) Not sure I want to post my contact info here though. My name is William Henry.
Nothing is absolute.

The following are often just wrong:

Hire generalists early.
Hire specialists later.
Write a blog.
Avoid business plans.
Delay raising capital.
Make decisions swiftly.

Moreover, I don't even know what "invest in culture" means.
"Is there absolutely no way for ISPs to react to this in such a way that they save money rather than lose it?"

Yes, the one I laid out. The ISPs ban their customers from participating for "bandwidth reasons", then directly provide the services to the distributed CDN, rather than going through the users. My argument is not that the ISPs will find this too expensive; it's the exact opposite! If there is value here, the ISPs will find it too profitable to resist, and they will not let their users in to the party.

The problem here is that in the long run, the users aren't bringing anything to the party; they only bring bandwidth, which isn't actually theirs, it belongs to their ISP. (And some fairly minimal storage, but that is already a commodity and rapidly becoming even more so; CPUs have stalled some but all the other bits of the computer are still marching on Moore's style.)

For contrast, consider a "legal botnet" that does computational work where the computation dominates the data transfer. We know that works; SETI@home has been running for over a decade. Users simply divvy up the ISP's bandwidth, but users own orders of magnitude more processing power than the ISP does, so there's actually a resource here that the ISP can't just tap itself. (Well.... legally anyhow.)

I'd even say the fact that the ISPs have not already implemented this distributed CDN is a powerful argument against the idea that there's a lot of value here to be captured, though of course that's not proof.
I cant find any documentation on installing CVTypes, could someone who knows some python help me out? I would love to play around with this and share it on github.
Frozen Britain
I don't think they fit your list because they're supposed to be standalone ones. Your second one is actually six words, not three, because it needs the first to have context and make sense.

Still great advice though. "Find a customer" is definitely a winner.
It would sure be nice to also include text-to-speech. Then you could actually use it without having to get too hands on.
Court to FCC: You Don’t Have Power to Enforce Net Neutrality
I agree. I would say the observations you give as examples are backed by evidence and thus interesting to read (and, in fact, legitimate). I stated my case badly, but I would include such statements in the third category. I meant what I said to be a call for civilized discussion about the topic which echoes your sentiment. I also wanted to point out that such discussions have an annoyingly low signal-to-noise ratio.

[Edit] I also was not trying to suggest a general strategy for evaluating programming practices. I made the assertion it was clear TDD has value at least in certain contexts. In the case of TDD I think it is evident its benefits are subtle enough to approach the issue more carefully.
Were you using Chrome? In FF and Safari4 the stylesheets load regardless of whether or not there's a subdomain, but in Chrome I see the behavior you describe.
Program Correctness using Induction
I think Patton Oswalt would agree: http://www.youtube.com/watch?v=tfan5MacmsI
Sweet. I don't knok if this is a practical approach for you, but for @TeachMeGerman I set up a large text file (one I had created for a "flash card" app) and a small Ruby script to grab a random entry and post it to Twitter, driven via cron.

This way I didn't have to remember to do anything. :)
Classic geek-misunderstanding-that-mathematical-ambiguity-is-not-legally-interesting post.
Run, don't walk, away from anything that involves the word "surreptitiously". What may seem slick today may become a public relations nightmare tomorrow.

There are plenty of ways for good hackers to be successful while still being open, honest, and forthright with everyone else. Don't be tempted to take a shortcut that someone else might consider dishonest or underhanded. It just ain't worth it.
I worked my way through college (this was quite a while ago), and honestly I wish I'd had to option of not working, or at least working only in the summer or only a couple of nights a week. Looking back on it, I really regret that I didn't get more time to be deeply involved with my studies and with other activities on campus (guest lectures, etc).

I also wish I'd had the opportunity to spend more time with my fellow students. Not only for the friendships that might have developed, but for the intellectual development that would have come from discussing our coursework or just the world in general.

I always assumed I have plenty stimulating discussions with knowledgeable people once I entered the workplace, but sadly that has rarely been the case. Maybe I need to get out of Enterprise IT. :-)
For google docs, usernames are email addresses.
You Are Not a Gadget: an interview with Jaron Lanier
Interview regarding his new bok of the same title.

http://www.amazon.com/You-Are-Not-Gadget-Manifesto/dp/0307269647
Interesting stuff. I'm considering an MBA right now and am glad to hear there are good jobs at the intersection of business and tech.

As for Apple, I had a friend on the TimeMachine team and he said the same thing, it's a shitty place for developers.

And yet, Apple keeps putting out awesome products. It's totally counter-intuitive and counter the "coddle the engineers" thinking which dominates the valley.
Omit needless features.
Yeah, this would be a great white hat hacker post, but as an actual suggestion for use, it's bad stuff.
With respect, I disagree.

It may be that you've never made these mistakes, and you understand all the implications, and you've never had these misconceptions, but of the people with whom I've discussed hash tables, I'd guess that around half have not understood these issues, and have thought that because it's a hash table it's pretty much automatically O(1), and haven't realized that it's amortized.

Not every article about performance needs to include benchmarks to make relevant points. Not every article that talks about implementation details need to give specific examples.

EDIT: FWIW, he does actually give an example of a bad hash function.

In short, I suspect you simply have too much knowledge to find this article useful. That doesn't (necessarily) mean others won't.

So given that you clearly do have a lot of experience in these matters, and given that you say you've written lots of hash-tables in your career, may I ask why? Why not use existing library implementations?
Interesting, but the problem with writing HTML e-mail is rarely real-browser testing, but rather, testing the convoluted filtering/rendering of the various webmail clients (Hotmail, Yahoo, GMail).
I think you misunderstood the post. I wasn't suggesting anyone do this. I do privacy research and I was pointing out what should be considered a security hole in Google docs. I'm surprised it was confusing; I did use the word "malicious."
Software created in-house for companies, for "retail", and tools created for programmers themselves have very different constraints, and I don't think license discussions usually account for this. There's lots of software that would never be written for free, period. Open source projects are strongly skewed towards things that are useful for programmers, or at least fun or interesting technically.

Beyond that, though. I don't know. My preference has been towards BSD / MIT licenses, but I also know that there's a fairly strong economic incentive for some people (web startups, for example) to use free software without necessarily contributing back - or even to take credit to look good to bosses or investors - and I'm not comfortable with that. It's a thorny issue.
A stunning piece on a topic most of us would probably rather not think about. Ebert handles his condition with grace, and his conclusion — that what he misses most about eating is not the food itself, but the company — is food for thought indeed.
My three words appear to be 'waiting for onstartups.com'.
Mine kept one cumulative list adding left to right and another summing right to left. This is conventionally slower, but conceivably faster if you do it in parallel, leaving the final loop to be something like:

for i in xrange(len(A)):
if right[i] == left[i]:
return i

The final loop here is slightly tighter, so as long as your parallelism didn't add big overheads, this will be faster.

Original: http://pastebin.com/m6e742f56
Parallelised: http://pastebin.com/m32a60b1
"Welcome to amortized analysis!"

Seriously, if the point is to educate people the difference between O(1) and O(1)A, then fine, let people understand the difference. The problem is that he thinks the solution is to scrap it altogether.

It's almost like, hey guys, Quicksort isn't really O(n log n), it only is on average! (Of course, the STD uses introsort.. ;))
Google Chrome for Mac (finally) gets Extension support
Moreover, I don't even know what "invest in culture" means.

Supply free sodas?
In Eclipse IDE almost every Polish accented character "Alt + l, s,c,o,..." is made into keyboard shortcut, so every time I create a new workspace I have to manually change these shortcuts to other, not colliding with my language.

And we do translations with Eclipse, so local characters are important.

But that's the way it is, at least we don't have two kinds of I letter, like some ohter countries :)
Beware of advice.
#48: "Everything is debatable"

#49: "Beware trite advice"
I hate to break this to all of you, but all thats happening here is the natural evolutionary process of a small company growing in size. I think 37Signals has shared a lot of concepts/opinions in the past that are relatively novel and great, but it is inevitable that as they grow in size, they're going to become what they preached against -- unless ofcourse they stop hiring.

For every person you bring on, you're going to feel compelled to 'do more' because surely you don't want an employee sitting idle (even if you only do work for 37 hours in a week). And as you try to ensure no one sits idle, you start to introduces ideas about timelines, deadlines, iterations -- all of which have organically grown in software companies first, and then became institutionalized.
Even if I weren't the best hash author ever (TM), I still wouldn't find much use in this article. You can't argue without evidence, and this provides none. If you want to argue that the amortization creates latency bugs, you need to measure resize latency on some hash or another. If you want to complain about bad hash functions being used, you need to find one and show me a collision rate analysis.
Not new, Jason Rohrer even wrote a proof-of-concept implementation:

http://en.wikipedia.org/wiki/Monolith_%28computer_program%29
Well according to Quantcast, this site now only gets 5.9K US visitors a month, so you might not need even 5K to have a decent site. At its peak HN got around 17.4K.

Showing the summary of the story is a REALLY good idea. It's also cool that it gets the summary for you, and you can change it if you want. The font is a bit cramped-together and small. It's pretty unpleasant to look at. What is your bounce rate? I think changing the font to make it initially more comfortable to look at might improve your bounce rate. I don't mean serif to sans-serif. Your font is so serify that it looks italicized. There are lots of lighter serif fonts.
For the Facebook bra color meme, I think the mysterious nature of it all helped give it momentum as many people didn't quite understand what was going, leading people to either post a color to mock the situation or ask around to find out what exactly was going on, and then posting a color to taunt others who weren't part of the in-crowd. Mauve, by the way.

If there's any way to engage Facebook users, it's to give them a feeling of unique purpose that can be broadcast to others in a subtle and unintentional manner.
Actually, akamai hosts their CDN nodes right at ISPs already - though this is mostly to serve customers on that very ISP without paying for backbone bandwidth. So in a way we already have this distributed CDN...
Cringely Predicts Homeland Security Remains a Bureaucratic Swamp in 2010
'Never give up' is also awesome.