skysight-inc/HackerNews huggingface dataset:
You've apparently been thrown off course by the love-it-or-loathe it reaction to pairing, but you're actually agreeing with the article. He's listing why it isn't feasible for most situations. (Though most people seem to interpret this as reverse psychology, though I would suggest any appraisal of the general practice of software development that doesn't portray it as almost totally broken is far from accurate).

But really I could write a long (sometimes contradictory) list of things that would help people program better that would get similar levels of reaction:

* use vi
* use emacs
* use an IDE
* TDD
* unit testing
* any kind of testing
* writing documentation
* using the highest level language possible
* using C++
* using anything but C++
* source control
* distributed source control
* avoiding gotos

Judging by the slightly over-emotional responses in this thread to pairing you only need to find one good bit of software written without these tools/ideas and you can ignore them totally. Apparently, in your case, an individual not liking something, or it being hard, or requiring investment or not being suitable for all sizes of teams rules it out, which covers most of this list.

I would suggest doing hard things you don't like, which require investment and need to be applied appropriately to your context is a pretty good definition of "profesionalism", something sorely lacking in most software development shops but on the other hand just because it fits that definition doesn't mean it's the right thing to do.

I think that pairing, like many things in this list, can be appropriate and useful but I'm not about to burn anyone as a witch if they don't like it or practice it.
This isn't unique to CS. All academic fields suffer more or less the same problem to a greater or lesser extent.
I hope health care/insurance reform works.

My backup hope is that my children love gruel.
In this context, I think that the "also has a top CS program" attribute is implied. I think most people understand what the author meant regardless of his slightly incorrect choice of words.
Just enabled it on my iPhone. Verified with test emails. Joy...1 year and 2 months delayed.
CSS Snippets That Can Come Handy
Ugh. What a horrible article. I've done mandated pair programming in the past and I've had good and bad experiences during that time - it depends a lot on who your partner is and what the project is - there's no way it can be "the one true answer" with so many variables. My opinion is that pair programming is something that good developers do naturally when and for as long as is required. Mandating it for all development sends the signal that you think your programmers are too incompetent/stupid to trust on their own.

While I'm a big believer in object oriented programming, even I can admit it isn't always a good fit for every job. Pair programming is no different. Believing otherwise is just your religion showing.
Windows XP Theme For Windows 7
Missing the plain simple look of Windows XP give this luna port a try.
That's just an example of a bad certification process. Being able to provide an example of bad certification does not invalidate the entire concept.
Very cool, how valuable was the course for you, and was it mostly online? I'm on the fence on whether I should continue with my informal study or bite the bullet and take a structured class.
In-depth Rails Monitoring using only a production log file
The U6 calculations are frightening enough. What's even worse is that this infographic was done a mere 8 months ago.

U3 ('official rate') jumped from 7.2% to 9.6% since January.

Check out this infographic via Calculated Risk to see how bad it is in some states: http://1.bp.blogspot.com/_pMscxxELHEg/SrOono9ZxiI/AAAAAAAAGX...

Fourteen states and D.C. now have double digit unemployment rates.

Illinois, Indiana, and Georgia are all close.

Four states are at record unemployment rates: Rhode Island, Oregon, Nevada, and California. Several others - like Florida and Georgia - are close.

http://www.calculatedriskblog.com/2009/09/unemployment-rates...
Driving is a far simpler skill than programming. The fact is, most people in the world are capable of driving a car, after proper tuition. Most people in the world are incapable of developing quality software, after any amount of tuition.

I think one huge problem with software engineering is that hardly anyone within the industry can even agree about what the "gold standard" should be. In those circumstances, it's extremely hard to figure out what a "proper" certification should entail. Even decent certifications end up being opinionated pieces of paper that don't really mean anything to most of the industry.

Fundamentally, programming is about problem-solving. Beyond an IQ test, I'm not sure how you can certify that effectively.
I agree, "Russians Continue to Upgrade Doomsday Device" would have been an even better attention grabber for the article title.
Tits.
Tiny Technologies Could Change How We Think of Energy
Yes, just started working for me too.
The City Is A Battlesuit For Surviving The Future
> And there will always be talented, passionate developers who don't test well or don't see the need to memorize something that Google could reveal in a single search or who just think that the certification process is bollocks.

Any certification process that simply involved rote learning or which could be googled wouldn't be worth the paper it is written on. I'm certainly not advocating that.

> Just because Joe has a piece of paper saying that he knows X, Y, and Z doesn't mean that Joe isn't going to take shortcuts that end up costing the company thousands or millions of dollars (or human lives!).

Sure, certification doesn't do away with the need for QA and internal processes. It just ensures that anyone producing software that targets certain markets will have a basic understanding of which corners they are cutting. The government, for example, could mandate that they will prefer suppliers who have a certain percentage of certified developers. Playing an averages game, that at least means that somebody in the company is going to know when corners are being cut, rather than just having a group of people hacking along.

> Because Joe has this piece of paper, companies may be lulled into thinking that they don't need to test him as hard or give him as long a trial period before entrusting him with critical systems.

As I said before, the assurances provided by certification are not for the benefit of employers, they are for the benefit of users. If your hypothetical company actually did this, then they would be a very dumb company.
Can you give an example of a good certification process for developers? I can't think of a one I would hire based upon.
Absolutely. It took me four years of misstarts and agony (2000-2004) to really understand and get good at pair programming. During that time I mostly kept the faith about it since I was a zealous XP advocate, but had a large measure of doubt about its true effectiveness.

It took working with talented pair-programmers at ThoughtWorks to really make it click.
> Clojure simply restricts you to a certain model, which is not necessarily most efficient.

So does C. You don't use mutable array because they are the best solution. You use them because they're the best supported datastructure in C. Sometimes even when a shared immutable tree would be most efficient.

For a well-know, well-studied, and still unsolved problem, rebranding isn't wrong. It's the only way. I think pervasive mutation falls in this category. So does the widespread use of the Qwerty layout.
For a long time I used affirmations as passwords. My machine (at that job) autolocked after a few minutes, so I'd be typing the same thing in dozens of times a day - I figured it might as well be something useful.

It's amazing the effect that typing GetANewJob repeatedly had...

(Yes, I got one)
and meaningless

Aren't you answering your own question here?
" When I worked for Apple a few years later I was dismayed that it was a Pascal shop..."

I never knew this, interesting tidbit. Like many programmers I've read my share of Apple history books, but somehow Apple Pascal eluded me.
Thanks!

And so drop the start ups that tried to mimic push email with push notifications..
I blogged about the same thing recently, with far less words. Sadly, no upvotes on HN.

http://blog.blinker.net/2009/08/31/the-architecture-analogy-...
There is, however, reason to use the many synonyms in English in ways that are considerate to innocent people with severe problems.
"Seaside encourages the developer to use CSS to describe the visual appearance of a component, but it does not use a templating engine, and encourages developers to programmatically generate meaningful and valid XHTML markup."

...aaaand I click away from the page. A web framework without templates?
It's hard to do that on a client's dime, at least for me. (I know other consultancies do it all the time and it disgusts me.)
It will be interesting to see how the climate impacts YC applications? Will increased unemployment alone lead to higher rates of applications? How will the demo skew? Young folks who can't get a first job? Early thirties folks who are hitting a wall with promotion freezes? Or does it go the other way with people less willing to start something if they have a job already?
The lack of performance boost I think is caused for a few reasons: The extreme amount of optimization on both the architecture makers and compiler writers. They hyper-optimized to the architectures they had, so giving them general registers support didn't buy you much.

As for why it was lambasted for its lack of general purpose registers? General-purpose registers make writing compiler back-ends cleaner and reduces the need for some stubs.
OK, you've fundamentally mis-represented what I've said.

You're talking about programming - I'm talking about certification of software engineering. They are two separate-but-related concepts.

A certification should not be "Joe knows the syntax of language X according to some test" - it should be "Joe is familiar with this range of techniques that can be applied to produce higher-quality software". These are reasonably easy things to test, and their presence or absence is not related to intelligence or programming skill.

Whether (as employees) these programmers actually are expected to apply these concepts is irrelevant. The fact that everyone knows what everyone else knows leads to a basic assumption that you either are applying some good software engineering techniques, or you have examined the reasons why you are choosing not to apply them.

The problem is that we have developers who are perfectly capable of writing good quality software according to some development practice, and developers who don't even know these things exist. If everyone knows what everyone else knows (and users know what developers are expected to know), then we start getting some pretty good assurances that people have at least considered these issues.

And that's worthwhile.
When do people learn (natural/spoken) languages?
Actually, if you read the NYT article, they use a pomodoro time management technique–25 mins on, then a 5 min break.

http://www.nytimes.com/2009/09/20/jobs/20pre.html

working hard != being over-worked ... at least that's how I understood it
what ever happened to historical NNTP search? Usenet used to be the tool for getting advice on this sort of thing.

But yeah, key is not your interface; key is who you can attract, and the web forms tend to attract a younger (read: less experienced) crowd.
How about making the person taking the certification create working, readable programs, and have them submit their answers electronically. Like how programming assignments were in college, except without the rife copying between the participants. I think this test would weed out many people from the very beginning.
I think the idea that certifying developers and not certifying safety critical software is a non starter. On safety critical projects, certification will add to existing and onerous validation and verification costs.

The process requirements on these projects (DO-178B) call for an organization to institute a systematic way of developing software across the project that everyone on the project follows. An additional certification for each individual is not necessary. Either they can follow the process or they are reassigned.
A refreshing change to the general level of hubris today. Thanks.
No, it's not the right tool for every job. Rich isn't arguing that kernel drivers be written in Clojure. His work addresses the pain he feels -- writing concurrent, high-level applications that model the real world.

Also, you'd be amazed at how much control you have over the underlying system in Clojure; you just rarely have to wield it.
tony robbins always says the only thing you have to give up to achieve your dreams is your excuses.
Wow, a hacker's party? How does that work? What do you do? I'm fascinated.
Without China, economic rebalancing won't work
ooh, do you have a good interface to email? that would be valuable. Hell, I'm still a year or so away from 30, not really a greybeard, but I greatly prefer mailing lists to web forms. (he says on a web form.)
No, hiring on the basis of a certification would be silly. Declining to hire on the basis of a lack of certification might not be.

Here's a basic idea. It might be one of many:

Software x has been developed in the following way (explained here). Which of the following are not valid statements about x?

1) x is free of defects
2) We can have confidence that x will work under these circumstances <...>
3) ...

I mean, sure, you would need to contrive a proper example, but that is the kind of thing I am advocating. It should be a test that a competent developer who actually thinks about quality at all should be able to pass without much in the way of study or "extra work". People who do not think about the quality of the software they produce would need to learn about these issues.
When I was going to the University of South Carolina, I had the good fortune of having Karel Čulík as one of my professors. In addition to generally being a happy person and obviously enthusiastic about automata theory, I also found that he could talk about computer science in a largely egoless fashion. If someone at a talk said something a bit clueless, or even hugely idiotic, he would simply find the most intelligent interpretation possible of what they said, then just see what the implications were according to theory. No bullying or dominance games needed, just a simple joy in doing computer science.

I wish more science/tech folks were like this. To me, this is what it means to have intellectual integrity. Too many techies and academics feel that they have a tenuous hold on status in their community, which tends to make them petty.
Yes, Clojure is full of old ideas. I've never claimed otherwise. Unfortunately, they have yet to gain significant traction as currently embodied. Clojure is just an attempt to make them palatable and practical (and fun). I would never argue against someone who preferred Haskell.

As far as comonads, no - monads and comonads are essentially threaded through a single computation. The reference types I'm talking about are like, and for similar situations as, Haskell's MVars and STM TVars, which wouldn't exist if, e.g., state monads were sufficient.
Of course I see what you're saying, its not a question of whether it is or isn't good will - it's whether you're comfortable with a company exercising this kind of power against a media company on the basis said company wrote something which was unfavourable.

As far as depriving revenue goes, I'm obviously talking up the effect because I find the stance Twitter took interesting. I'm not suggesting this is tens of thousands of dollars and I don't think its less interesting just because it isn't.

TC certainly shouldn't be in the industry of doing this or that because they do or don't hurt Twitter's image.
Maybe it's a tautology but my answer to "If I only had _____ I would succeed" is "customers." This puts the onus on the "non-technical" founder to start selling a very lightweight version of the product, what Eric Ries calls a "minimum viable product" instead of dreaming about how good it's going to be when a full team delivers the ultimate product.
They aren't incompatible viewpoints.

As a thought exercise, imagine a job that requires a qualification that has little-to-nothing to do with the actual profession.

This would both artificially increase the barrier to entry for people with skills but no qualification, while decreasing the barrier to entry to those without skills who have passed the qualification.
Also, the bottleneck is memory access, not cpu power, so optimising for this or that cpu isn't that important after all.
Bravo!

The burnout objection is laughable. Our consultants are required to bill 35 hours per week, which translates to an average of 7 hours of coding or less every day (there is billable work like meetings that is not writing production code).

We don't work weekends and we don't do overtime. Like, ever.
http://en.wikipedia.org/wiki/Cil

(Also know as MSIL)
I thought the author meant "Princeton" but wasn't willing to say so.
The flip side of this is that it takes control out of the kernel teams grasp and, as a result, causes a lot of finger pointing. At least now you can say "Kernel team, this is broke, fix it" and someone is responsible. The architecture you are proposing allows everyone to hem and haw and otherwise pass the buck.

There are similar problems in Firefox. Blame the extensions, not the browser. API or none, bad programmers can get their code to affect a lot of people.

Of course, if you want to reduce bloat, compile your own kernel. Get rid of the modules you don't need. Is that a lot different that what you propose?
The Dev That Came in From the Cold: iPhone Camera App Goes Legit
A moving story about how a small time developer made it big after 18 months of perseverance.
> In this video slideshow, we feature the top 7 hottest new tech startups
I'm probably slightly playing devils advocate but I don't mean to be controversial for the sake of it, I just think this is interesting.

TC is media/journalism and even if that's at a tabloid level personally I do believe that companies shouldn't withdraw privileges or sanction a media company based on unfavorable stories being written about them.

I think its a bad precedent to set even on this minor scale.
I think you're looking at it the wrong way. Instead of people being forced to pair, they get to pair. It doesn't seem unreasonable to me that they'd hire people that want to work the way Hashrocket works.
That's a position I've been in a lot too: I've had an idea, but can't code it to see how cool it would be.

I took the lazy route out—I found a cofounder who codes—and as a result the site I started working on two years ago still hasn't come out yet.
Who should decide if a piece of code to run in kernel space or user space?

user/developer/management/customer/congress/judiciary
You appear to have inferred incorrectly that I am talking about safety critical work.

I am not. I'm talking about anything that people are expected to spend money on. The certification passes to the software, and then users are capable of making slightly more informed decisions.

I'm a formal methods geek, so I generally advocate theorem provers for stuff which is actually safety critical. To me, certification of developers would just be a way of lifting the general quality of the non-safety-critical stuff that still has the opportunity to cost people lots of time and money.

Think about viruses, for example. People complain about viruses causing millions of dollars of damage.

The virus didn't actually do any damage. The shonky programming that allowed the virus to propagate in the first place did.

And that's why certification is important. Hopefully it would at least ensure that people writing software are familiar with the issues that can affect software quality.
It's important to understand that when you're young, it can be difficult to tell the difference between elitism and social awkwardness.
Sorry, I meant also to say "the slide show is under the video" and clicking on a new slide reloads the page with a different video.

It is a mess though.
You're talking about programming and creating programs. That would be a really, really useless certification.
In my experience, rules select players. When you notice a certain personality being over-represented in a given game, it's almost always a result of the rules weeding out the others.

So it's not too surprising that the people who remain in commission-based sales positions are overwhelmingly those who care more bout the meta-game of amassing rewards than in the business' overall well being or that of its customers.
But TechCrunch is wholly unprofessional. They have no standards. You can't have morals when you're dealing with amoral people.

Say what you will about Mashable—and I could say tons—they generally play the game earnestly and fairly. While I don't hate TechCrunch and enjoy a few of their articles, it's a scum site with scum standards.
The problem is that we need to guess at what x and y are for particular levels of confidence. We can't use real-world numbers, because none of the existing developer certification programs grant sufficient confidence.

You can guess one way -- as you clearly do -- and it looks like the up-front developer certification cost dwarfs the software certification cost when amortized over all projects. This might remain true even when multiple developers are considered.

You can also guess another way -- as I do -- and it looks like the up-front and recurring costs to properly certify a developer and maintain that certification would be very large. It could be so large that, even when amortized across many projects, it's still comparable to (or even more costly than) certifying the individual projects.
Facebook Game "Despots" Founder Interview (looking for co-founders)
that one guy at work, he either doesn't shower often enough for his type or he never heard of deodorant.

as long as the wind blows away from him (windows open), that's not a bother though.

edit: i thought i should share some of my pair programming experiences and insights...

one time a friend and I programmed some ATmega embedded assignment for a course. what happened was that we sat down on a couch in the library (our faculty cares!), laptops on our laps.

and then the mind meld began...

i mostly talked about what i was writing at the moment, what considerations i put into each call and conditional. reasoning out loud about various conditions that could or could not happen. i did that so we were on the same page and he would not hesitate to ask if anything was looking suspicious. the resulting code felt very pure, i must say.

he had our plans, schematics and pinouts handy and kept track of the coding progress (this done, that left). he knew how the parts would fit together and steered the process.

i should pick his brain some more on that experience sometime.

the other time was at work, where a coworker got me to sit with him for my experience with the python language. he went through that rushed job of spaghetti while my eyes glazed over because i hadn't seen the code before. occasionally i pulled on this and that dangling thread to see what was attached, which gave me some insight and him some more things to fix (logic bugs mostly).

that code still is buggy as hell (also because it interfaces with/works around another buggy pile of shit), which is why i asked for a real code review. code reviews are done rarely enough that i'm afraid it's gonna end without much gain.