skysight-inc/HackerNews huggingface dataset:
What DHH describes is called the test pyramid (http://martinfowler.com/bliki/TestPyramid.html), which despite the fact that DHH seems to dislike Uncle Bob, it is something Uncle Bob has demonstrated and advocated multiple times in very sensible ways.

The bigger thing DHH doesn't mention or explain is that Basecamp is designed to be intentionally simple. Much of the complexity that you get in client work where you don't control the requirements Basecamp is able to simply avoid by not building.

The idea that if you own your own product and control the requirements that you can have a MUCH cleaner codebase without needing as many tests is 100% true. But, David didn't say that and it's a shame. It's a much more powerful point because there are cases where clean architectures are valuable and the standard Rails MVC pattern isn't enough. At the same time, there are plenty of times where the basics will get you a very long ways. If you control the complexity, simple MVC might be all you ever need.

Everything in software development involves managing requirements and tradeoffs. If you simplify requirements, you reduce complexity. You reduce complexity, you reduce surface area required to test.

It's like weight reduction in cars, you reduce overall weight a few pounds, you can also reduce an extra 5-10 lbs. in required components to support the added weight/complexity.

I just wish that people could discuss these ideas with nuance and empathy towards other project's requirements. Some projects require a lot of tests and have significant inherent complexity, some don't. A one size fits all philosophy might sound appealing, but it doesn't work.

Don't throw the TDD baby out with the bathwater.
I've often found ideals don't quite translate into practical application. Within economics, political theory, etc., I think TDD also deserves a place as a 'wonderful ideal' that fails simply because it does not take into account it's implementing process: human action. Not to mention that the way many programmers learn and code today seems at odds with the structured nature of creating tests.

Maybe there is a better approach to writing maintainable code than TDD? I imagine a world where all code is understandable, readable, and instantly recognizable, but once again we arrive at the fork where the 'ideal world' deviates from the real one in which we all reside. Shame.
If you want to create a nice general-purpose VPL, go nuts. I won't be offended. I'm skeptical, but open to being proved wrong.

However, I'm really tired of the "Hey, guys! We can just fix programming by MAKING IT VISUAL! How come nobody ever thought of this before? Everybody else must be stupid! I'm going to go work on this for three to six months and revolutionize programming as we know it! Be right back!"

And no, I don't think I'm particularly exaggerating that, up to and including the "everybody else must be stupid!" bit. The periodic conversations on HN every time this comes up definitely have that in them, with a selection of people slapping their metaphorical forehead and going "Yes, that's so true!". VPLs may work, and may be good in certain domains, but they aren't the Holy Grail. If they were, we'd already know, because in fact it's been tried tons of times.

Yes, I know that's not what you intended, but it's part of what's there. It's not a new idea, it's not something that magically makes all complexity go away, it's actually a well-explored field. If you want to contribute to it, I suggest learning about what's actually been explored, and then trying to figure out why your contribution won't have the same failures as the previous attempts at general-purpose VPLs. Maybe you have an answer to that question, in which, like I said, go nuts. But don't waste tons of time replicating the obvious answers, again, all the while thinking Revolution is just around the corner.

Visual programming isn't the only place where this comes up. Another one is "Hey guys, what programming really needs is a PERSISTENT ENVIRONMENT! How come nobody ever thought of this before? Everybody else must be stupid!" followed by a description of, basically, Smalltalk. I've actually clocked some time in persistent environments... there are reasons why it's less desirable than you think. If you can't fix them, or even see them, it's unlikely you're going to revolutionize the world. (It would be interesting to see a pure-functional take on that idea, though, while I'm musing.... a pure functional optional-and reactive environment would actually address a lot of the problems you can get there...)
Here is a summary of their SOSP 11 paper.
http://muratbuffalo.blogspot.com/2012/09/dont-settle-for-eve...
Coffee is not good for me because you think I'm just telling myself that it is? Do you have an actual reason (supported by evidence) for your claim it's not good for us? Because all I see in your contribution is straw-man cynicism.
My biggest problem with TDD is that it tends to take people away from whiteboarding and thinking about architecture and into writing everything as if it were a recursive problem -- write test for base case, code base case, write test for next base case, code next base case, write some significant test case, code general case but often this is completely the wrong pattern for solving a problem. This may be an example of doing it wrong, but it seems to be the practice experts promote when using TDD on a problem (it's very common in both blogging and books).

There are great blog posts of this including Dave Thomas getting horrendously bogged down in writing a Sudoku solver in a situation that could be well handled by going to a whiteboard and thinking about the top level behaviours more than the code.
It sounded a lot to me like SPIN selling. A quick wikipedia search turned up Solution Selling (from the makers of SPIN selling). http://en.wikipedia.org/wiki/Solution_selling

In all seriousness, while I found the book to be a really hard read, the tactics described are highly effective, not just in sales, but also in thinking about solutions that you're building. In hindsight it seems like common sense stuff, but is truly the wisdom of sages.
It's difficult enough to get a correct implementation of secure boot as it is, and while adding your own keys is nice in theory, it also means that the manufacturer would have to do more work to add that functionality. In the case of secure boot it was MS's requirements that persuaded them to (probably reluctantly) do it, but there's nothing of that sort for smart TVs and the like. On the other hand, there's plenty of pressure by media corporations to lock things down for DRM. Thus, even if there was functionality that enabled you to truly "own" your device by making it trust you, it would undoubtedly also come with its own restrictions (e.g. disabling access to DRM'd content, future updates, etc.), so in some ways it segregates and stigmatises.

So while I agree that "secure, full control" > "insecure, full control" > "secure, no control", since the first option is highly unlikely and efforts toward more security are probably going to result in the last one, I think the middle option isn't that bad after all...
I had no idea there had been robotic balloons (aerobots) flying 54km up in the atmosphere of Venus!

http://en.wikipedia.org/wiki/Vega_program#Balloon
I would have previously sided with the programmer as yes, email is more efficient and you can explain things in detail, but since starting a job where I'm involved in product demos for sales people, I am getting an understanding of the importance of phone calls and face to face.

It is much easier for them to develop a rapport with you if they can talk about the weekend or to joke in a way that they might not be able to put into writing. It is also much easier to ask "dumb" questions on the phone to clear up misunderstandings than to put potentially embarrassing questions in email.

They are not just buying your product, they are making a decision inside their organisation which could come back to bite them, so they want to have a chat and get to know you to make sure that they are going to be ok. They are the ones taking the responsibility for your product in their organisation so damn straight you talk to them and get to know them.
Upvote because of the part about email. Email forces the communicator to focus their damn thoughts and not spew on for hours. It's courteous and time saving if done right.
Please Don't Change the World
Cupertino Line
Here's pg's recipe for feeding a crowd (you can freeze in batches)

http://adam.shand.net/recipes/rice_and_beans/

This reddit comment has some cheap recipes

http://www.reddit.com/comments/cidla/i_have_13_until_my_next...

He's not kidding about how delicious Pernil is -- just reading it again makes me want to make it this weekend.
The issue I have with TDD fans is that they preach TDD is absolutely necessary for development.

I'm not against improving things, I'm against saying it's "the only true way" and ignoring the shortcomings.

Sure, do your RoR project using TDD, now, doing TDD in C is a whole different problem.
My local programmer community is infested with these guys.

My co-worker and I held a programming meetup in our office, some programmers came, but also we had the luck of drawing the attention of a few of these guys. Within the same 120 second span he both asked me to:
1. Quit the company and come work for him.
2. Hire him at our own company.
3. Told me that I would pay him $120k+ to come up with business ideas.

But I don't think this trait is unique to business guys. I've had a programmer send me an email inviting himself over to my home. I declined the gracious offer.

I don't go out to programmer meetups any more, and I avoid making contact at conferences.
Will Tesla’s Driverless Car Be Powered By Israel’s Mobileye Technology?
Glitch in the system? If there was no known reason for the surge pricing (not New Years, not bad weather etc) maybe he was not notified beforehand of the surge pricing because it shouldn't have happened in the first place?
> I understand your pain, but this is nowhere near a real issue for systems that Go is designed to help build.

I spend most of my day designing and coding the sorts of systems which Go was designed to help build. I'll agree that this isn't a major issue, but it is affecting whether or not I actually enjoy using Go.
This isn't so much innate. It is most likely an anxiety problem. You can overcome it but it isn't going to be easy as it takes going far out of your comfort zone.
Why crowdfunding doesn’t work for content
There are whole field of scientific study based almost entirely on self-reports. As such, there has been much research done on its veracity, which has shown that it is largely valid and reliable when reporting on simple things (like friendship behavior) so long as it's anonymous, does not require introspection(1), and there is no fear of reprisal(2).

The 2007 study meets all those requirements, so I see no scientific reason to question its results.

Also, I can't think of any practical methodology for studying friendship behaviorally - but would love to be proven wrong.

1. Baumeister, R. F., Vohs, K. D., & Funder, D. C. (2007). Psychology as the science of self-reports and finger movements: Whatever happened to actual behavior?. Perspectives on Psychological Science, 2(4), 396-403. Baumeister, R. F., Vohs, K. D., & Funder, D. C. (2007). http://users.business.uconn.edu/jgoodman/mgmt%206201%20assig...

2. Brener ND, Billy JOG, Grady WR. Assessment of factors affecting the validity of self-reported health-risk behavior among adolescents: evidence from the scientific literature. Journal of Adolescent Health 2003;33:436-457. Summary at http://www.minnetonka.k12.mn.us/TonkaCares/RwR/Documents/Val...
It feels like nobody is addressing WHY angular uses DI/IoC.. In something like Java or .NET, you use it to a large extent because it separates code nicely and makes it easier to test.

In JS, one big problems is that you want your code to live in different files, and to do this, you either create your own ghetto object namespaces that hold your classes, or use requirejs.

In the case of Angular, they decided to handle this for you, so they provided IoC/DI as a means to accomplish this. They are merely doing this to make up for things that are missing in javascript as a language.

In their defense, it actually works kind of nice compared to the other two approaches imho.
No need to go back that far. 1202 http://www.gsmarena.com/nokia_1202-2573.php is even better, I believe. Seriously, I was using it until last week, when I decided it's time for a smartphone.
Sure, meet you at callback hell.
Note 2 (and now Note 3) user here.

First thing I do is root and then "freeze" AT&T stuff... and number of Samsung Stuffs... and crap like YPages and Flipbook.

Touchwiz seems nice as well, but tons of other launchers that are much better (Simpler is better IMO. Smart Launcher 2 Pro is my poison of choice).

My main beef with Samsung is Knox and the inevitable fight against rooting that the big boys inevitably launch. Note 3 apparently has KNOX, which will void you warranty if tripped (able to root without tripping on 4.3. 4.4 is still unrootable atm and why my OTA is disabled.).

It's the main reason why I would consider a small guy like this. Stock with no fear of bricking or voiding warranty when I do stuff with MY phone.
A separate project is pointless. Just break the old one. Rust doesn't need your old version. And git has it for anyone that does in the interim.
No. The purpose of a programming language is to remove the incidental complexity leaving only the intrinsic complexity of the task. All languages have the same expressive power in principle, but it is intrinsically easier to perform certain tasks in certain languages.
Angular is being adopted by a lot of enterprise-y / small business shops, specifically because it can be used (just like typical enterprise code) to have "coders" who don't know how to code, write software.

What's that, you've never used javascript before? Don't worry, just write this one directive, and we'll have someone else test it in UAT. There, now the most harm that dev can do is isolated to one behavior on a page.

So I read this post as an indictment against that style of coding, and for someone who just escaped enterprise consulting, it rings true.

Because the truth is, between jquery / react / backbone / npm and the basic js module pattern, you really don't need angular. Angular just provides a consistent framework for people who don't want, have time, or skill to write an organized front end on their own.

And considering how fast angular is taking over the shops I've seen, the 'you killed it' message might not be so far off.
Automated filling stations
It says traffic limit reached
Is Google too powerful? Germany sparks a heated debate
In Michael Lewis's new book Flash Boys, there's an insightful quote about this:

> Watching him string together sentences without profanity was like watching someone try to swim across a river without using his arms or his legs. Curiously, he later admitted, he wasn’t worried that the audience would be offended by bad language. “It was because some of them want to be the alpha male cursing in the room,” he said. “When I say ‘fuck,’ they think I’m stealing the show — so when I’m in front of a group I go as straight as I can.”

Not swearing isn't about politeness, its about hierarchy. Its the same way that Ps & Qs have their origin in the way servants spoke to the monarchy. Its like the business casual dress code; less formal than your higher-ups communicates that you're the lower-down. Everyone understands if Daddy lets a curse word slip, but if his 6-year-old toddler gets the idea that she too can stomp around blurting out cuss words, she's gonna be punished.
> Currently you know google will take the content and present it without hits to your website

In some cases, yes, but not always.

For example, using schema to markup product reviews and aggregate review scores can add value to an e-commerce site's organic search listings and increase their CTR - assuming the review scores are favorable.
It's telling that Google still pretends to be a company where technology and geek cred matters. Despite being in reality a fast follower whose revenues come almost entirely from selling the details of those who fall for what they offer, they hold onto the least-cautious "hackers" (term used very loosely) with references to text adventures and towels. Oh well.
I'm in the position of having written frameworks. I read that paragraph and though "Exactly! This is necessary for dynamic object binding using containers" etc. Nothing unusual at all. It depends upon context. As a professional I find it odd the OP brags about remaining ignorant of a common topic in his field.
Dont sign up for dateing sites because I did that, and it only made everything worse, I realized the ex was even more special, and the people on dateing sites sucked all completely.
rateyourmusic.com's genre system works pretty well, it's based on user voting on genres for an album (genres are selected from a list, which is constantly being updated by democratic process too)

Here is their current genre tree: http://rateyourmusic.com/rgenre/ (caution, huge page)

However, they don't have an API, so you would need to scrape web pages to get genres for your albums.
How to gain reputaion in HN?
What is the quickest way to gain reputaion in HN?
I need something like this for a test server. It has similar resources to what I allocate for my VMs. 25$ shipping is a deal-breaker though and I'm also not sure if it would get past the EU customs problem-free.
Cheap, quick, nutritious. Pick two.

If you substitute, efficient preparation for quick, then:

+ The slow cooker. Put it in the morning. Eat it in the evening.

+ The freezer. Spend a day cooking multiple portions. Eat better during the week.

Both work well with soups.

Really cheap and relatively fast and fairly nutritious: lentils take about twenty minutes.

Fast and easy pasta - couscous. In a pinch, don't even need to boil the water, just put water and couscous in a bowl.
As time moves forward, I find advice from the older entrepreneurs more and more irrelevant. NOT because it's bad advice, NOT because it's with ill intention, but simply because their situation, experience, and background is completely different from my own. So different, that I fear if I followed it, it'd have the opposite effect.

Of course, this is just my opinion.
They equate "America" with "USA". "Canada", "America", and "Mexico" are located in "North America". And, BTW, "Mexico" is also in "Central America".

It's a cultural/linguistic norm, not a programming problem. Don't try to reason it out as rigorous logic.
For the regular taxi service the driver manually inputs the fare from their taxi meter into the Uber app. So if you're not paying attention, the driver theoretically can type in whatever they want.
this is the approach that google takes with the nexus devices and is really the only reasonably secure approach (for the consumer)
"They come from not validating input data before use;"

I say they come from building APIs that don't require a statement of the correct way to escape output. Of course if your API doesn't require it, it doesn't happen.

Even the way you phrase it is dangerously wrong... validation of input and escaping of output are two entirely different things. I've implied this in my phrasing but let me spell it out, validation happens on the way in and is related to your local semantic domain (business rules, legal values of "an IP address" or "an email", etc), and escaping happens on the way out and is performed by the string "interpolation" or template system. If you've got them munged in your head into one concept, you're probably not writing correct code.

(For what it's worth, I see this formulation of the "root problem" more often than I see the right one. I really ought to write this up as a blog post.)

I'm looking out on the world and seeing what is there, which is a steaming mass of code that incorrectly manages strings. The fact that it is theoretically possible to correctly manage them is not that interesting of a fact, because observationally, it doesn't happen.
No, but you have to at least subtract the cost of the 16GB one.
I'd like to imagine that this was partially inspired by my Flappy Text that I made a few months ago : http://codepen.io/sakri/full/eukbC (full screen) in editor http://codepen.io/sakri/pen/eukbC
"America" is short for "The United States of America". It's also the only shortened name which doesn't need to be preceded by 'the'. And it's the only single word which can be used to describe people of the US so then it's also been used to refer to the country. Originally 'American' was used to refer to people of British America, an area comprised of the eastern half of present-day US and Canada. Later the term came to refer to just the US.
Get them to mark it as a gift and a value of €1. I've had tonnes of stuff get through doing that without any import duty added :)
Wow that's an interpretation I guess. I think of profanity as the untutored attempting to communicate, and substituting powerful but meaningless words in place of the right word.

The Gettysburg address contained no profanity, and it was written by a sitting President. How does that fit into this social theory?
MailChimp inside your mobile email
I am not sure I understand what you are claiming here?

Are you saying that self-reports (a.k.a. anecdotal evidence) has happened so often on this subject that it in itself has created a big enough dataset to label it a proper study?
"LinkedIn Influencers"
When someone revokes RIM's stupid hardware keyboard patent or it expires.
5% pleasure, 15% pain? 100% reason to remember the name?
Google’s Stake in $2 Billion Apple-Samsung Trial Revealed
And of course it is only separated from the 1.3 million acre selway bitteroot wilderness area by the magruder road, a 101 mile dirt road built originally to aid in response to large wild fires. I live on the other side of it from Idaho near Missoula, MT. There is a surprisingly good startup scene here.
There is also a lot of content at I/O that's generally applicable to developing for the web- when I was there in 2012 most of the sessions I attended were on doing cool things with HTML5 and modern JS libraries. There's also a lot on Go, Dart, and general development practices.
I dream of a language where booleans cannot be compared explicitly against literals, that would be awesome.

I have powerful dislike for code like the future version of the above, i.e.

if some_bool == True

since that, in my mind's machine, just generates a bool result, which then (in the logic of the code) must be compared to True. If the result of == doesn't have to be compared, then why does some_bool? It's brutally inconsistent and fantastically annoying.

Unfortunately, to many programmers it's also second nature to write such comparisons. Gaah. :(
xmms2 seems like it fits the required bill the best, though the project is pretty stagnant and there's never been a real release. It does seem to get all the big issues right.
Speaking from a US perspective again, for me "the UK", "England", and "Britain" are all completely synonymous with each other.
Why do so many devices favour mini and micro HDMI ports like some kind of miniaturization fetish? Yet they determined they had enough room on their PCB for three full size USB ports.

It just forces everyone to add a mandatory adapter or adapter-cable into their shopping carts.
I have a hard time not thinking Routing Information Protocol, and Round Trip Time when I see those TLAs (Three Letter Acronym).
The US and Canada do not really have the same language demographics. 56% of Canada speaks English as a native language, 21% speaks French and Spanish clocks in at 1.2%; in contrast, the US has 80% English, 12.4% Spanish and 0.45% French.
There's still some issues with HTTPS which need further roll-out to completely solve this problem (i.e. not everywhere supports SNI yet), but yes, for a lot of web sites this would work perfectly fine, and indeed is how many PaaS providers work.