skysight-inc/HackerNews huggingface dataset:
> The current fanatical TDD experience leads to a primary focus on the unit tests, because those are the tests capable of driving the code design (the original justification for test-first).

I don't agree with this blanket statement. For web apps at least, doing outside in TDD helps to create a nice ratio of integration tests to unit tests. By writing some high level happy path integration tests to drive functionality and then filling in with smaller functional units and unit tests I think is a better way of going about testing than starting with the units. TDD is a hard thing to get right and unfortunately when it goes wrong it can be very painful.
Factories are singletons.
Services are not.
Providers let you configure stuff before they are invoked.
Or Seamonkey! It's even smoother.
> Test-first units leads to an overly complex web of intermediary objects and indirection in order to avoid doing anything that's "slow". Like hitting the database. Or file IO. Or going through the browser to test the whole system. It's given birth to some truly horrendous monstrosities of architecture. A dense jungle of service objects, command patterns, and worse.

This is DHH's central argument, he is once again defending his "there are only three places to put code" application design and the monolithic Rails architecture. We see him, time and time again, sniping at people who outgrow those patterns but still want to use Rails. People who do want fast and isolated unit tests, who want encapsulated, reusable service objects and people who are perhaps building something more complicated than a TODO list.

He goes as far as to subtly deprecate unit testing, something which is incredibly vital in a dynamic, loosely typed language such as Ruby, where monkey-patching other's code is more of a rule than an exception. In Ruby, unit tests stand in place of static compiler checks. I haven't heard a strong argument against them nor a replacement for them. The binary notion of "the whole application works" or "the whole application does not work" does nothing to quell the critics who say that Ruby and indeed Rails projects are brittle and difficult to refactor.

I love Rails and think it's a fine product, but I don't understand its leadership strategy, doggedly preserving web application design as it existed in 2004.

> "Rails 5 will be renamed to Basecamp. This will help to end confusion over which types of apps to build using Rails." @markbates
Finally... acknowledgement from someone famous.

TDD is wonderfull in theory, just no missing edge-case detection; stuff you easily spot when using a "hybrid continuous testing methodology".

I'd say: Code away! Just make sure you have tests for the important stuff when you 'check in' your stuff.

Offtopic: I should become famous/respected in "the community" so I can push this kinda stuff forward faster internally.
Last I heard, Whisperpush on CyanogenMod only actually worked if you had the GApps package installed which isn't entirely legal and certainly isn't something they could get away with including as standard.
I've felt the same way for a long time too. The Merb merge had more to do with soothing large egos and indulging some architecture astronauts than it did about making it a better framework for developers to work with. Now it feels a lot like the over-engineered Java frameworks it was designed to liberate us from.
i guess this won't work on iphone right?
Let's fix apartment search – brokers are not the problem – RentHop (YC S09)
Constraint for time and money: Ramen

Contraint for time: Scalability. Buy chopped vegetables. Buy ground meat. Buy a lot of Pyrex ware. Buy a slow cooker and a food processor. Use evernote to organize recipes. Plan it out so that all the cutting takes place at once. Immediately soak used utensils and cover them with baking soda. Finish off, pack and plan out food for the week.
Some people consider it verbose? Wow. After starting with backbone and then later on discovering angular, I can confidently say it is not as verbose as other well known frameworks (such as backbone).
Xiaomi, the Chinese company that's disrupting the smartphone industry
Out emails are hosted on our company's server. Facebook and Twitter are publicity channels with public information only. And we don't even have that important corporate secrets.

You might trust US companies, but after Snowden many people don't trust the US anymore (industry espionage). And there is no reason if you aren't a one man shop to not host such things yourself.
And this is precisely what task failure in Rust lets you do. Requests run in tasks, if the task fails, show an error message and make a new task for the next request.
Here:

var factory = makeCar;

The whole point of having first-class functions is that you can assign them. The problem a factory solves is precisely the lack of this assignability (which is why a constructor function is wrapped in a class).
No European Common Lisp Meeting 2014
Bootstrap is a bit different in that it gives you a good base to work from. Also, for many more things than design hipsters would have you believe, it can be used pretty much as-is.

Angular.js, OTOH... I looked at it a while back and did not like just how much it forces you into its way of doing stuff.
I'm actually hugely not a fan of magically rendering code variables in strings. It's super error prone, and way too magical.

If you really want named variables in format strings you can make a template like "My name is {{.Name}} and surname is {{.Surname}}", and render the template with either a map of strings to strings, or a struct with the right named values.
Sales people love the phone as they have a competitive advantage over customers here - remember most sales people have been selected for their ability to bullshit via talking. It actually does make me wonder if you can hire sales people that have their edge via email conversation.
UPDATE: Should point out that these same widgets work on any other platform too: http://blogvio.yolasite.com.
It seems like (to me) that Firefox is consistently hacked more at the yearly pwn2own event:

http://www.eweek.com/security/pwn2own-2014-claims-ie-chrome-...

Chrome got hacked as well, but Firefox had 4 separate hacks in this year's event. It just seems like a recurring pattern that Chrome doesn't get hacked or gets hacked a lot less than firefox. Chrome is an absolute memory hog, but I'll keep it. Mozilla has consistently put me off by putting Linux as a second class citizen (I've used desktop Linux almost exclusively for the past 10 years) and some of their software which I really loved like Thunderbird, is practically abandonware (except security fixes).

Once upon a time, I was a very loyal Firefox user. Not so much anymore.
Well, not sure why it's not constructive. For one, it gives examples of the abuses he describes, and analyzes them (e.g the SO example).
The author of this study is clearly not -

a. A parent, or;
b. Familiar with pre-modern society

Most children once they have had their Maslow Hierarchy met will go back to sleep quite happily.

Furthermore, prior to 20th Century/Western-style parenting the raising of a child was diffused amongst the community including multiple wet-nurses.

The idea of a maternal fatigue is a product of modern society which has removed the community aspect from child-rearing adding to the professional, parenting and lifestyle burden of a mother/father.

[Source: 3 children anecdotal evidence (which counts for more than a highly speculative hypothesis without quantative/qualitative analysis in my mind).]

EDIT TO ADD If this study is to be believed then it flies in the face of evolutionary principles. A baby who screamed to prevent sibling rivalry would be placing the entire family, including themselves, within danger of predators.

The perceived long-term benefits from an evolutionary standpoint would be outweighed by the short term negative impact on the security and unity required for a functioning family unit whose primary purpose is to raise a child to an independent age.
This example actually really sucks. Advocating for case statements shows that either you've never worked on a truly large project or you've never had to go back and modify your own code 2 years after the fact.

If you really understood functional programming, you'd see an if/case statement as an opportunity to replace conditional with a function.

I started to write up an example, but since we're talking about the imaginary abstract Vehicle implementation, it's not worth dignifying.

If programmers didn't switch jobs every 12-18 months and didn't see 100K LoC as a "large project", these "all frameworks suck" rants might turn into useful discussions of how one can organize code such that it's understood by more than the original author. That goes for frameworks too. If you have to rely on one of the core developers responding to a post on Google Groups or SO as your support mechanism, you've made the world less simple.
Iowa State University Servers Containing SSNs of 30,000 Students Hacked
I generalized DHH's conclusion re: TDD in my blog post, "XDDs: stay healthily skeptical and don't drink the kool aid":

http://www.pixelmonkey.org/2012/02/12/xdds

"I list one of my skills as “thought-driven development”. This is a little tongue-in-cheek; software engineering over the last few years has developed a lot of “XDDs,” such as test-driven development, behavior-driven development, model-driven development, etc. etc.

“Thought-driven development” doesn’t actually exist, but by it, I simply mean: perhaps we should think about what we’re doing, rather than reaching for a nearby methodology du jour..."
I'd like to see this adjusted for types of work. Comparing the people sitting in offices to the people working in the service industry, flipping eggs or handing out newspapers, can probably skew things considerably.
Check this out for an excellent and detailed technical comparison of consul vs zookeeper/etcd/doozerd/chef/serf/skydns/etc:

http://www.consul.io/intro/vs/index.html

Also, discoverd is pluggable, but currently relies on etcd.
GitHub improvement – scroll to next diff in PR view
This isn't the same. Go defines a standard format for all code written in Go with nothing left up to programmer opinion. While a lot of great formatting tools exist for other languages, they require choices to be made which inevitably results in disagreement.
Its not a Java problem as this JavaScript demonstrates.

Its not a language feature X problem.

There is something which drives people to make a factory for a dynamic and another static language. Instead of writing the thing they want they write a thing to give them what they want.
The future (or lack thereof) of LibreSSL's FIPS Object Module
People tend to overlook knockout, but it really is great at what it does.
I mostly agree with this post, but I do wonder whether the difficulty of doing unit testing the OP describes is partially related to their use of RoR and the associated (complex) object-oriented design.
Richard Branson: "I had tears down my face and a $1 billion check in my pocket."
I had been thinking this exact same thought about my ageing mother and the iPad I gave her which someone helpfully soon upgraded from nice 6 to 'flat' iOS 7: suddenly all the cues were gone, the button edges, the hints about what was mere text or label and what was functional.

She could no longer guess whether any element was live or not, and the colours were now merely decorative as often as they were significant.

Gen Zero can learn anything, they can survive on a UI diet of white on white; but, like designing for disability, designing for older non-tech users means it works for everyone, except perhaps Jony Ive and the minimalistas (who may 'discover' this flat dullness is not cool next week or next year anyway).
I thought not, but maybe I'm mistaken?

I know that there is some payed service that isn't self hosted.
To continue.

I think part of the issue has to do with the importance of the people involved. Chances are someone decided to use our product at a company, and managed to convince a rather important person (RIP) that it was a good idea. But the person who wants to use our product isn't the person we hear from, nor is it the rather important person. It's someone who Reports To The RIP (RTTRIP). RIP didn't spend a lot of time explaining to RTTRIP why they needed us, what we do, or anything, it was probably a brief voicemail or email "go buy some WonderProxy for the programmers, they need it ASAP".

So there's RTTRIP, a little bit of information about what their company needs, not a lot of power, and a slew of restrictions on how to make corporate purchases. What's the easiest next step? Give us a call! It's fast, they can explain to the RIP "I called them twice yesterday" if there's any flak for it not being done already, and heck, maybe those folks at WonderProxy can help them figure out what they're supposed to be buying anyways. RTTRIP doesn't expect to be speaking to a RIP at WonderProxy, they expect to be speaking to either a sales person who would love to set up sales calls, conference calls, heck, maybe even send over a brochure and some new pens! or possibly someone else who reports to a rather important person.

Instead, over here at WonderProxy _we're the ones_ who screwed everything up. Rather than have a sales person answer the phone, or even someone who reports to someone important... We've got the fraking co-founder answering the phone.
if there's one thing that all the reviews of the s5 seem to have picked up, it's that Samsung's main innovation right now is basically turning it's phone into the Homer Car of phones. They pretty much shove all the hardware bells and whistles onto their phones in a kind of chuck it at the wall and see what sticks method of r&d.

Then they add Touchwiz... oh touchwiz. I have a galaxy note II which has been a pretty decent phone, but I'm sick of the horrendous lag that touchwiz creates, it's ridiculous. +1 for Samsung innovation and r&d.

From reviewers first impressions of the oppo find 7a it's a pretty decent phone. I'm not about to jump into bed with the oneplus yet, but the most important tickboxes are there, it really depends on build quality. I really really do not think they are trying to pimp this as a cyanogenmod phone, it just happens to be a phone that uses that ROM. Is there any reason companies shouldn't be mentioning this?

I'm really not sure what seems cheap here.
Most of Northern and western Europe are pretty easy for someone who only speaks English too. An English speaker would have little trouble getting by in Germany, Netherlands, Denmark, or Sweden, and probably a lot more countries as well.

The languages are even similar enough that if you pick up a travel dictionary/phrasebook, you could probably even do it without bothering the locals too much.
Saying "OO is Evil" is the flavour of the month. Functional Programming is the new cool kid on the block. This would, in theory, be a good thing.

Unfortunately legions of Javascript fanboys have recently noticed that they don't have the keyword 'class' in the language, but they do have functions and have decided this means that it's a functional programming language, and they knew better than everyone all along.

They'll then follow it up with some perfectly nice procedural code and tell themselves it's functional with a nice little pat on the back.
This reminded me of "Why I Hate Frameworks," a great post from 2005 in the Joel on Software forums: http://discuss.joelonsoftware.com/?joel.3.219431.12 -- my favorite quote from it:

"I'll get around to building [it] one of these days, as soon as I've got my factory factory factory all up and running."

Frameworks often are helpful, but as project complexity increases they tend to make it harder to get things done.
>if everyone making $15K learned to program, they would drag the median salary of programmers down to $15K due to over-supply.

That's market competition and productivity gains. If your job is so easy that you fear that they could crank out people by the dozens that are as good at your job as you are, then you're going to have to choose a harder job if you want to make more money than them.
I haven't seen anyone mention this, but the guy doing the email is almost certainly paid (or at least seen as successful) when he organises a face-to-face meeting. There's a fundamental imbalance of incentives here: the Sales Guy wants to get paid for taking time to sit down and negotiate, and the Programmer wants to get paid for running his business.

I think the major inefficiency is here:
"My time is very limited, maybe you could first tell me roughly what this would be about?"

I would personally ask if they're most interested in features/option/pricepoint A,B or C. If it's not clear on the context I would ask a direct question for the three topics he would like to talk about.

Anything that steers the conversation towards what you want: whether this partnership is something you're interested in. At least this ways there's actually some motivation for him to actually tell you what's in it for your business.

[edit] the end was cut off for some reason
Knockout is just a data binding library, not an all encompassing framework like Angular.
Glad to see someone putting in some effort to create a well-designed, versatile HTTP library for Rust. I hope it takes off, and that Rust becomes a viable language for developing HTTP-based services that are both safe and efficient.
Women prefer to have sex with musical men
Yeah... My personal experience with Bootstrap is somebody built a site using their grid system that I took over. My boss wanted to add a bar across the top but because all elements had class names corresponding to their position ("row1" etc.) the only way to do that was to rename every single HTML element. This would have been a two minute fix using vanilla CSS. If I had all the time back I spent resetting line-heights bulldozed by Bootstrap CSS I could have built an entire new site.
They are doing that now to disadvantaged students. An acquaintance in my state university was a smart guy from a notoriously awful high school.

He was completely overwhelmed and dropped out his first year -- he just wasn't prepared for the material, and the remedial help offered by the college wasn't very useful to someone who wanted to be in a STEM track. He dropped out, joined the Army, and flourished... we're Facebook friends, and he has an MS in CS now.
The developers who manage to successfully get a ticket through the lottery*.

Why are the two coupled anyway? That's a huge issue with the WWDC and it's becoming an issue here. If you want developers, don't offer "the next big thing" in consumer electronics to anyone who attends, then leave registration open for everyone.
Too huge for the hand and pocket, IMO, as well as virtually all modern phones. Really, is there such a big difference between a 5" and 4"? It's a phone, first and foremost, a thing that has to be easily handled and pocketed.

I bought my first smartphone recently, was initially going for a used Nexus 4, since it's on the smaller side of what is considered the usual today, got nice specs and software directly from Google. But when I looked at HTC One mini in the store, I knew I would regret if I buy any other phone, since it's not just ok, but kinda nice; probably the best design you can get short of buying an iPhone (not that it's impossible, but I get a feeling that the competitors are hardly trying). Even though I'm not a fan of Sense UI, and there's no Cyanogen support. I'd like it to be even smaller still (maybe 4.0" instead of 4.3 screen, it shouldn't be a notable difference), but you can't get that with modern phones.

An evidence that current phones are too big is the existence of this: http://www.htc.com/us/accessories/htc-mini-plus/ Get a second, smaller, phone for your phone, so that you won't have to pull out your huge phone each time you need to make or receive a call!
Looks great, but when oh when oh when will there be a version with a hardware keyboard? I program on my smart phone. I can do that damn fast with a hardware keyboard. Touchscreen keyboards aren't feasible.
> I haven't come across much about good design of tests (suggestions very much welcome)

Growing Object-Oriented Software Guided By Tests is worth a start. The authors use TDD, but that shouldn't put you off from learning the theory of separating concerns enough to write fewer tests.
My javascript coding habits and environment are now finally reaching a point where I am consistently writing tests where I find it necessary, and oh boy is it nice! Until now, the simplest refactoring would scare the shit out of me.

Thus, I am now doing more TDD than I did before. I just find that it's much easier to write testable code if you write the test first, and I like the satisfaction of turning a red lamp green. I don't do it all the time, certainly not, but I do it quite a bit with parts where my intuition tells me that I am likely to destroy something in the future. TDD is nowhere near dead to me.
It's really a shame - ECLM 2013 in Madrid was a fantastic event, I met truly amazing bunch of people there, and I was hoping to see them again in Berlin this year.

I keep my fingers crossed for 2015..
> Test-first units leads to an overly complex web of intermediary objects and indirection in order to avoid doing anything that's "slow". Like hitting the database. Or file IO. Or going through the browser to test the whole system. It's given birth to some truly horrendous monstrosities of architecture. A dense jungle of service objects, command patterns, and worse.

Maybe your name is David, and you don't do test-first programming, and neither do I for that matter. But don't think for a second that separation of concerns is an artifact of TDD. And yes, having a service layer is a good thing. Even if you're doing a TODO app.
How long does it take to make apps nowadays
Thank you for this comment! Story of my life really.
Thanks for catching the error. We will fix it soon. What was your best score?
Automatic test is good, but I doubt the effects of TDD, at least it does work well for me, maybe good for others
The unix way: Textfiles as in and output.
The school I went to originally had a 60% fail rate with their computer science program. The first class was huge, 80 students to 1 teacher. This was the first time most of the students did any programming at all. To fix, this they changed the course to the class room being "theory". Which mostly meant learning terms (What is an Int, String, etc). The second half of the class was a "lab with paired programming". Those who knew how to program going in would carry those who didn't. Many students couldn't even type at a reasonable speed. If you and your pair had no idea how to complete the assignment, the TA would basically do it for you. This brought the fail rate in line with other classes. This continued for the rest of their college career. You could get through doing zero solo programming.

The result was seniors who don't know about inheritance. The only thing they know is "public void someName()". But, because they don't have good OO practices, it ends up just being 1 program with everything in the main method.

These are the students who don't have technical training. Many came in because "Computers are the future.", "I have a friend making good money doing this.", and "everything is already written I just need to google."
A Particle 1/10 the Size of a Width of Hair Wreaking Havoc
Strava Labs
The Essence of Programming
Apple uses Java on its server-side.
Mobile wallets to replace physical wallets by 2019-Wallenje
The first person to re-create this without needing an uncommon plugin will get huge traffic.
Everything is an opinion. Instead of dismissing it because it is not universal, you can think it through, take the good stuff and compare it to the good stuff from opposing opinions. Then you find the middle ground that suits your context best. That's how people learn - they read and study all extremes and then make decisions. The post is very useful, even if only for making the Angular community stop and think twice about stuff.