How Criticizing in Private Undermines Your Team - <AUTHOR> http://blogs.hbr.org/cs/2013/03/how_criticizing_in_private_und.html <comment><USER2> And rather than publicly criticising Ted (see the article) you talk about ways to avoid these deadline misses in the future.

The problem that HBR misses here is making the issue "about Ted" rather than "missing the deadline." If you can credibly talk about what was needed to make the deadline and wasn't there, then you can talk to the solution. Ted may come up to you in private and say "I'm not sure I can handle this" but they don't need to feel like a turd.

I once explained to a person that if I asked them to lift a car off the street would they consider themselves a failure for not being able to do it? or me unreasonable for asking it? They said it was an unreasonable ask. (which in that way it is) and then I asked "Ok, so if I said we need that car up and off the street, can you take care of that?", their response was "What tools can I use?" and I say "What do you need?", they say "A crane, a crane operator" and I say "Ok, the crane company will be in touch." Now they are going to achieve the same thing, "Get the car lifted off the street" but it's not about them, its about getting what is needed to be done, actually done.

<comment><USER3> I love that anecdote and it's a great illustration of the difference between demanding and empowering. Thanks for sharing.

<comment><USER4> Extending that anecdote, let's consider typical reasons for Ted's failure:

\+ Project not properly defined/scoped \+ Ted not put in role that fits what he can do \+ Ted not given the right help or tools \+ Ted not given enough time \+ Ted not getting what he needs from team \+ Ted is incompetent and/or not engaged \+ Ted is competent and engaged but has some other issue hindering his work

Only the final two relate directly to Ted, 90% of the time are not the problem, and in 99% of cases would best be discussed 1:1 with Ted.

The others should be proactively raised by Ted and/or the team, and rarely impact only one individual. If they aren't raised, putting them on the table in a team meeting won't fix that problem.

A team discussion meanwhile, 99% of the time, is best focused on how the team can improve or fix what is broken...as a team. For example a functioning team would quickly put most of the possible problems listed above on the table.

<comment><USER5> Not to be too harsh on Ted, but in all the above scenarios, isn't he still responsible for not bringing the issues to discussion some time before the deadlines passed? That lack of communication on his part is a pretty big liability, assuming the deadlines are at all important.

<comment><USER6> Thats the beauty of being in management. The answer to this question is entirely within the manager's interpretation.

Yes, if you don't like Ted, or if you're harried and doing a bad job, why not call the whole thing 'his fault'. He should have read your mind, gone beyond the norm for his job and dreamt outside-the-box solutions to all the problems you didn't know he would face while providing him with questionable tools to do the job. And your word is what counts to HR and other managers.

If you're trying to accomplish the task rather than promote yourself or denigrate Ted, or simply if you're effective, you should take responsibility for defining the goal, setting realistic expectations, creating failsafes to stop things before they affect the whole project, and providing proper support & guidance.

<comment><USER7> Someone has worked for Amazon!

</comment></comment></comment></comment></comment></comment><comment><USER8> I completely disagree with the approach being suggested in this blog post. Calling people out by name in the middle of a team meeting is not productive, it's only going to cause everyone to be uncomfortable and the person called out to feel terrible and embarrassed. Depending on their personality they may not be able to function well or think clearly for the rest of the meeting.

It will also cause people to feel a ton of anxiety about missing a deadline because they know what follows is being called out in the meeting in front of everyone.

It's much better to talk about these things in private. It's less stressful and allows you to have a more in depth conversation if necessary without everybody being present. In particular if the problem is stemming from the interactions between team members, having everyone present will make it harder to get to that point.

Let me give an example; say the problem is like that in the article, that Ted has missed two deadlines. But say the problem is due to Ted needing something from Joan he didn't get in time, which pushed him back. Or Joan's code was buggy and Ted had to spend time debugging it, etc.

If you call out Ted in the middle of the meeting one of two things happen depending on Ted's personality:

1) Ted clams up and just takes the blame as a pariah for the team, not wanting to make further waves.

or

2) Ted says it's all really Joan's fault and the whole meeting degrades into a shit storm.

Neither of these is good.

Calling people out in public is a horrible practice, and it's amazing to me it's being seriously suggested here.

You can absolutely make the team feel included and feel responsible to each other to deliver without calling people out by name. In the meeting you can say "We've had some slipped deadlines lately, and after talking to everybody it seems like the problems are stemming from A, B and C. Do you all agree? Is there anything else? Ok let's find some solutions to these problems. My ideas are X, Y and Z." etc.

<comment><USER7> ebbv is correct. NEVER criticize a worker in front of others. ALWAYS praise a worker in front of a group; or better yet -- do not single individuals out at all.

TFA is a false dichotomy. Publish metrics to promote team accountability.

<comment><USER9> _NEVER criticize a worker in front of others_

Especially if that "worker" is your boss, and the "others" is the entire team. I figured that one out exactly one day too late.

<comment><USER7> I advise one only have "frank exchanges of ideas" with one's boss!

</comment></comment></comment></comment><comment><USER10> "In the case of Ted, you could start by saying something like, "I'm noticing two patterns in our meetings. First, Ted, this looks like the third time in a month where you haven't met a deadline for the team. Am I off? [Assuming Ted agrees, you continue.] The second pattern is that each time Ted says he hasn't met a deadline, I notice the rest of you — Fran, Alex, and Sheryl — sigh or shake your head, but you don't say anything to Ted. Am I on target? [Assuming people agree, you continue.] Since these meetings are the place for solving problems and the team can't meet its deadlines if Ted doesn't meet his, I'm curious, what leads you not to say something to Ted in the meetings?""

If I'm Ted, this is a very uncomfortable meeting... and from the sound of things, will be going down hill very quickly.

<comment><USER10> (Guess I could add a little more to this.) Not only is the manager shaming Ted publicly, but he also assigned some blame to Fran, Alex, and Sheryl for not saying anything to Ted when he missed the deadline. Fran, Alex, and Sheryl aren't going to think that is fair -- it's Ted's responsibility.. so they are going to shift the blame back to Ted during the meeting.

The first thing they say is: If Ted needed help to meet the deadline, he should have asked us for help.

So now Ted is being criticized for missing the deadline, and not asking for help from his teammates.

This would be a very bad day for Ted; and Fran, Alex, and Sheryl are not going to appreciate being included in the criticism of Ted's missed deadline by their manager (ie: they'll have a more negative opinion of their manager for not assigning the blame properly/fairly).

<comment><USER11> That's not how a healthy team should work. If your team is actually working properly, there is absolutely shared responsibility. Peak productivity is way, way lower if things only happen when your manager tells you to do them.

<comment><USER10> That is the way I imagine that meeting would go if it started off with the quote from the article. I don't imagine a team with a manager like that is 'healthy'

I agree with the idea expressed the article (shifting accountability to the team as a whole instead of putting it solely on the manager).. but the way they suggest going about it is terrible (IMO).

</comment></comment></comment></comment><comment><USER12> Woah - Stop.

This is horrible advice, for more than a few reasons.

First - there is almost _never_ a dynamic of "equals" at a boardroom table. There is always a recognized hierarchy, defined or not. Given that, a senior member critiquing a member junior to him but senior to others at the table undermines that person's position in the group. Unless you are into discarding team members, that's not a smart thing to do.

Second - Nobody likes to be critiqued, and it takes a lot of maturity to accept it and more importantly to properly (and positively) correct the behaviour in the future. A "private" situation where the person doesn't need to worry about saving face creates the best possible environment for this happening.

Third - If being "outed" is a consequence of action, the result is that action itself becomes less desirable and behaviour more conservative. This is a bad thing if you are trying to create a business that grows. If you aren't making mistakes, you aren't doing anything at all. The goal is not "no mistakes", it's "as few mistakes as possible".

Forth - High performers are already harbouring guilt when they fail. They are their own worst critics. There is nothing served by reinforcing these negative feelings. Poor performers and/or slackers are only going to rebel against being made a fool of.

Fifth - The assumption is that "Praise publicly, critique privately" is somehow commonplace. I can tell you that outside of the military, nothing I've seen seems to indicate that, and I've been working for some 20 years now.

I could continue but I think that's long enough. I must say though that I'm disturbed that the author is a psychologist.

<comment><USER13> > Fifth - The assumption is that "Praise publicly, critique privately" is > somehow commonplace. I can tell you that outside of the military, nothing > I've seen seems to indicate that, and I've been working for some 20 years > now.

Were you in the military? If so, how did the _"Praise publicly, critique privately"_ work out in practice?

<comment><USER12> Yes, 5 years in the Infantry (Canada). Both sides of the spectrum from a team perspective.

I think one thing the military does really well is critique. Nothing you ever do is perfect. There's always something someone will find for you to do better next time,even if it's the best piece of tactics anyone has ever seen. This is particularly for team leaders.

People see the yelling and screaming of bootcamp and figure that's just the way life in the army is. It isn't. These are shock courses specifically designed for stress purposes. Real learning takes place calmly and with a more cooperative technique, particularly when training leaders, but also when learning more advanced weapon systems and/or techniques, and almost always when discussing tactics.

Thinking back now, there are many periods for peer-review (never lower than peer), but in these instances are almost always done in collaborative training sessions, where it is recognized that people are going to make mistakes and that everyone will receive both positive and negative feedback. One thing I realize is that while they are teaching a future leader on receiving critique, they are also teaching future leaders on how to critique. In the army it's very similar to a post game report of a sports team. I've not seen too much of that in a boardroom... everyone looks to deflect blame instead of improve the team performance.

Your personal performance reviews - where it counts - are always done privately, usually over a set discussion between you and your direct superiors. Publicly shaming a leader in front of junior troops is pretty much forbidden. Regardless of how much of a fuck-up a person may be, you can't have his troops thinking that he's not worth listening too.

<comment><USER14> Based on what you wrote it seems that the military has a "we are all in this together" mentality whereas the board has a "what is in it for me" attitude. If so, can you transfer your military experience to civilian life?

<comment><USER12> Heh, we try to... it's difficult. (And the military isn't exactly all roses either).

</comment></comment></comment></comment></comment><comment><USER15> What the author of the article is advocating is to use a failing team member as a method of rallying support and cooperation from the rest of the team by publicly throwing them under the bus. This really is fairly effective, at least in the short term, and a large number of very successful leaders have used this practice well. Giving the rest of the team a common enemy and a 'mark' they need to make sure they stay ahead of is effective and commonly used in military training.

However, it's just morally awful and I doubt (hope?) it's not actually more effective than just building a team where you don't have to do this.

If an employee is consistently missing deadlines, it's the fault of whoever put that employee in that position - either the employee was mis-hired, the tasks given to the employee are not do-able with his skillset, he hasn't been given enough support to accomplish the task, etc. Criticizing in private is just as bad as in public here - you need to stop criticizing and fix the problem at the root cause!

<comment><USER12> >Giving the rest of the team a common enemy and a 'mark' they need to make sure they stay ahead of is effective and commonly used in military training.

Of course where you see this used to its most effective form is when the person that is "marked" is expendable. You'll see it in basic training where everyone knows that person is doomed and it's either the team pulls them through or they are failed. You'll never see it once you get to a proper unit.

If you are doing that in the boardroom of your team, you should probably review your hiring practices more than anything else.

</comment></comment><comment><USER16> HBR is a perfect reflection of the management consulting world.

Both will suggest something completely contrary to popular opinion in an effort to remain relevant and edgy. Much of the research is performed by or at the behest of the organization which stands to benefit from it. After they make the case and sell people on the new 'paradigm', even newer research will show that the old way is better after all.

See:

> Vertical vs. Horizontal markets

> Flat vs. Hierarchical org structures

> Outsourcing vs. Insourcing

> Specialization vs. Generalization

> Pretty much everything that HBR has ever printed

<comment><USER17> Maybe they're just stimulating the Hawthorne Effect: <http://en.wikipedia.org/wiki/Hawthorne_effect>

Or, as one of my more cynical co-workers put it, they're blurring the lines of management so that no one ever knows who or what exactly failed.

</comment></comment><comment><USER18> I've noticed an interesting pattern in my management style. When I'm in a dysfunctional organiation, I have to focus so much energy shielding my people from the dysfunction that my team is generally self-organizing and fairly efficient. When I'm in a functional organization, I can spend more time on my team and I end up putting myself in the middle of everything rather having the team organize itself. I have to keep reminding myself to let the team members handle their own intra-team issues. In some ways it's a tougher assignment because I'm not just reacting to whatever ridiculous issues are coming out of the other groups.

</comment><comment><USER19> I find it shocking how negative people here react to the simple act of saying out loud what everybody in the room already knows but doesn't dare to say.

IMHO there is something seriously dysfunctional about a team in which addressing what everyone already knows constitutes "publicly throwing someone under the bus".

We're dealing with adult professionals here, not a bunch of kids.

OTOH, not being able to deal with anything remotely resembling criticism in a mature way is one of the reason people find it so hard to work with developers.

I think there are some areas in which we shouldn't be expecting "management" to pander to our specific quirks, and this is one of them. People who want to be empowered, independent and not micro-managed should be able to deal with some gentle criticism.

<comment><USER20> I think this phrasing is really slanted.

Premise 1: everybody in a room knows it

Premise 2: Nobody is saying it

Conclusion: It must be that no one dares to say it, as in, people are afraid.

Next conclusion: The premises mean they are a bunch of kids, not adult professionals (because adults will say sensitive things out loud while kids won't?)

Next conclusion: The premises mean that the participants are unable to deal with anything remotely resembling criticism.

Next conclusion: Failure of management to say it out in front of everyone is an example of pandering to quirks.

Final (implied) conclusion: The participants should not reasonably want to be empowered, independent, and not micro-managed (since they are unable to deal with anything remotely resembling criticism).

The obvious counterpoint to all these conclusions is that there may very well be a better way of handling the situation other than saying it out loud in front of everyone.

<comment><USER19> In defense of premise 1: if the team members in the room are unaware of the fact that one of them is under performing, it's not a team. You have an entirely different kind of problem.

In defense of premise 2: that's pretty much the whole premise of the article, if people do bring it up then whatever problem you may have, team members not holding each other accountable isn't one of them.

But this really, really annoys me (and not just me, it's one of the thing I keep hearing from people find it hard to work with us geeks): _"a better way of handling the situation other than saying it out loud in front of everyone"_.

For fuck sake, it's not like you're outing someones sexual preference for pink ponies in front of their parents and loved ones!

It's about the work, the stuff you're getting paid to do, and it's not even a criticism, it's an observation, nobody is blaming anybody.

</comment></comment></comment><comment><USER21> I agree that criticizing in private creates a situation where group accountability is lost. It's not that Ted is accountable to the Boss (or by proxy, the organization) but primarily to the team.

This is why we tend to not have individual deadlines but self organizing teams that commit to deadlines, and then the team is collectively on the hook for something.

That said, sometimes it's obvious when someone messes up, and it should be the team that provides accountability and support to help.

It's not that everyone in the team should nag Ted but that anyone should be able to go "Hey Ted, we said that we were gonna have those copy changes pushed to the website by 5p, and it's 3p and I haven't seen the commits yet. Do you need some help?"

If Ted says "No, I got this" and then misses the 5p, it's up to the team to figure out what happened. Was it Ted slacking off, in over his head? Or did Bob break the build so it was all-hands trying to fix it?

And, it shouldn't be "found out" in a meeting a couple of days later. Close the feedback loop as soon as possible and that'll ensure it won't get out of control.

</comment><comment><USER22> Oh boy. Bit of overgeneralizing in that article.

First, if you have direct reports, especially if they are mangers, odds-are that you don't have a team. You are a middle manager. I conclude you're not a team because you're having special meetings to communicate, instead of letting communication happen organically (because you are already working informally in close physical proximity)

In this case, if you don't have a team, you need one. So follow all that advice in the article. Plus there's a bunch more advice about creating a team that you should find and follow.

But if you have a team, you need to separate two things: the failed promise of performance from one of your team members, and the underlying reasons this might be happening.

You should absolutely hold people publicly accountable for the things they have committed to doing. Invite the team as a whole to own the problem instead of just one person. Many heads are better than one. The team is a tremendously-powerful problem-solving machine. Give them this problem to see what they can come up with.

However -- and this is a big caveat -- people might be missing commitments for reasons they do not want to share publicly. They may have a health problem. They may be having domestic problems in their marriage. They may have a private issue which prevents them from doing well in a certain type of work.

In this case, after publicly acknowledging that there is a performance problem with the team (which should probably happen on a continuous basis until the team either adapts or it gets fixed) you absolutely should comfort and counsel your friend offline in these other areas, assuming your conversation is welcome. And this counseling will probably consist of reminding your friend that either this obstacle is overcome or their relationship with the team could terminate.

</comment><comment><USER23> I have been criticized in front of the team and the only thing it helped me do is start searching for a new job faster. It sounds like a good idea in theory but I would like to see a few more practical real life examples of how to make this work before I would dream of implementing something like this.

<comment><USER18> What do people think about offering first time criticisms in private? I've had pretty good results with employees by saying something like, "We have you here for a reason. We know that you're good. So far on this project you've been learning/on cruise control/ramping up/adjusting but we can't afford that now. Now is the time to produce."

If that doesn't work, then bring it up in a team meeting while focusing on the task rather than the person.

</comment></comment><comment><USER24> If you are conducting a team meeting, then the subject at hand is the team and the tangibles and intangibles associated with that team.

If you are changing the narrative to focus on one individual member of the team, you are off agenda and losing productivity for no good reason.

In a positive work environment, the team chemistry should allow for peer review and correction. Only when its clear that a person needs more help should the team manager step in.

If you are doing your job right and you are dealing with a professional, the person receiving the critique should already have the situational awareness to know they were having issues. Therefore, nobody benefits by dragging the person out to be humiliated in front of their peers.

At best, you'll make some egotist in the group feel superior and everyone else will begin positioning themselves to not be the slowest wildebeest on the savannah next time you get hungry.

If you lead through feer and persecution, you set the bar for the barest minimum needed to get by. If you empower your talent, you hand them the keys to the Ferrari and ask them to go as far as their limits will allow.

</comment><comment><USER25> Thank you, Harvard Business Review, for letting everyone else know that having Ivy League credentials doesn't mean you walk on water.

When you have the leader, in the example shown, publicly dressing down "Ted" and then asking for validation from the rest of the team ("Am I off? Am I on target?"), you're not only saying to everyone "I'm willing to publicly humiliate you, too", but you're also saying something which can easily be misconstrued as "I need your validation because I'm a bit unsure of myself" and leaving yourself wide open to revolt from the team with the validating questions. Just one or two disgruntled employees can cause things to spin rapidly out of control.

Instead, when I have a situation like this I take Ted privately off to the side and say "Ted, I expect X, but I saw that you did Y. Why is that?"

When said appropriately, Ted might say "actually, I did Y because of Z" and then if you find out that Ted had a good reason to see the situation differently, you didn't just charge in guns-a-blazin' to publicly humiliate him only to make an ass out of yourself (I've seen this happen more than once).

If you're good at your job, Ted is usually wrong, so you explain to Ted why X is important and the consequences of Y and work to eliminate the underlying problem (which may very well be Ted himself). Once your team learns that you're willing to hear them out but you're going to take corrective action when needed, you can earn their respect. Publicly humiliating them by calling them out in a team meeting, however, is completely unprofessional.

</comment><comment><USER26> First reaction, why is Ted missing deadlines?

In software development, the #1 reason why this happens is that the schedules were initially decided not on the basis of what is reasonable, but as the first date that nobody could disprove. After that it is guaranteed that schedules will be missed, and that is used as a club to beat the developers into working faster.

The only thing is that it doesn't work. If you try to motivate software developers with schedule pressure, you get worse software and demotivated developers. This is connected with personalities and type of work. For example a similar approach applied to sales people does improve sales. However research indicates that accurate schedule estimates improves development speed.

Therefore an article that accepts that missed deadlines are primarily the fault of the manager who cannot make the deadlines, without stopping to think about whether the schedule might not be reasonable, is deeply flawed when applied to software.

</comment><comment><USER27> Ugh...this reminds me of the last Apprentice I watched where Trump asked everyone on one of the teams who their weakest player was. None of them wanted to answer but they all ended up naming Gary Busey. Staged or not, the entire exchange was _incredibly_ awkward and seemed like a sadistic management style. Busey afterwards was hurt and withdrew socially.

Similar to what others have said, I think any feedback given in public needs to be productive and very careful to avoid shaming people. Pointing out that Ted missed his target and finding out why in the meeting is uncomfortable, but it's not labeling them as the weakest or as a serial failure.

I would probably ask Ted in the meeting why he missed his target and what tools or resources he needs to not miss it next time. The meeting is the perfect time to find out what resources or assistance others can or should provide to hit the goal.

</comment><comment><USER28> The problem with this approach is that there's a difference between public criticism and public shaming, and most people (myself included) have an imperfect grasp of that difference. There's a time and a place for both, but the workplace is usually neither the time nor place for a shame session.

This is not only a problem for team leaders, though they see it through a different lens than others. For a team leader, the problem lies in figuring out how to publicly criticize a team member without obliterating team morale, which can over time do even more damage than the original problem. If the article's examples are any indication, its own author is not very good at this either: the meeting comes across grossly inappropriate if not outright sadistic in its treatment of Ted.

But that's a leadership-specific thing. If we're going to say that public criticism is part of good leadership, then we can say people who aren't good at it are not good leaders. There is, however, a flip side: it counts on team members to be able to split some very fine hairs, to take criticism without allowing it to affect morale. Almost no one can really do this well, yet this management style requires all team members to be able to do so. It's the team- full-of-rockstars mentality all over again, except that this time they need to be rockstars at something that doesn't actually have anything to do with the task at hand.

</comment><comment><USER29> Has anyone seen a situation like this before where it turns out Ted just wasn't really up to snuff as a team member? In my (limited) experience, this has never turned out to be a recoverable situation; the team basically hobbles along a) until Ted quits, b) until Ted is fired, c) forever.

<comment><USER30> This is exactly what I've been thinking as I've been reading through the comments. Yes, I've been in this situation a number of times. The manager can/should do whatever can be done (training, etc.) to bring Ted up to snuff. The last time this happened, the team really tried to help Ted, but ended up working around him so that we would _not_ be hobbled, but we all resented Ted _and_ and the manager. . .and all the previous managers who had allowed Ted to hang around. We did become somewhat more self-managing as a team, but we kind of staged a mini-revolt against our manager - and _her_ manager to do it.

<comment><USER31> The key is that, most of the time, good team members don't _need_ reprimanding. They bring up problems to their manager and teammates on their own. If they aren't going to meet their deadlines, they tell people.

</comment></comment></comment><comment><USER32> So what do you do when you have a guy who continually fails to complete his tasks? I mean you can't praise him publicly. It's obvious to everyone that he fails.

You need to let him know that he is not meeting expectations and I feel that should happen privately. And if he continues to fail, then there has to be consequences, otherwise the team will think it's unfair. Other team members have to meet expectations, but Ted is special and can repeatedly fail and get away with it... so the whole team starts slacking off too and cite Ted as the reason _why_ they can slack off.

Sooner or later, someone has to convince Ted to change or fire him.

<comment><USER33> In my experience with an underperforming employee on my team, it was exactly like this. Everybody knew what the problem was; they were constantly talking about him in my one-on-ones. "Man, Ted did this thing and it pissed me off." "Ted didn't do his job again." "Ted dropped the ball on this project." There was a lot of frustration.

I don't think that publicly shaming him in the team meetings would have done any good. There would have been blood in the water and that would have just been a bad meeting. I've certainly been in meetings where that's happened and nobody walks out feeling good -- it's so easy to let the fire catch you and out come the pitchforks... it's just ugly. People should have the chance to redeem themselves. If you've chosen to humiliate them them in public, though, that becomes a serious long-shot.

In my case, after several months of working with my particular Ted I did let him go. It was the right call for the team -- and for him, I think. (Although I admit that might be hubris; I hope it was the right thing for him.)

</comment></comment><comment><USER34> I get the point they are trying to make, but I think there is a middle way.

On one extreme you have not comment, and then challenge Ted privately. At the other extreme, you have the option of telling Ted in his meeting his performance is poor.

I think, in a status update meeting, there is a middle path which is to challenge Ted on the reason his deadlines were missed, and to drill down on those reasons and further challenge them if they're not adequate. That way you're not personally criticising Ted, but you're letting him (and the team) know that he has things that need to improve.

</comment><comment><USER35> This is one of the problems that the Agile/Scrum methodologies address. The team is a self organising group where each individual commits to a certain amount of work and the team periodically presents their results to management (aka the Product Owner). There isn't a layer where Management assigns individual tasks and measures performance, it is all done within the team and the team is judged as a whole. Which places the responsibility on the team itself to manage their own performance, which is what the article is saying should be the goal. If Ted isn't pulling his weight and getting through the tasks that he has agreed to do, it affects the whole team and there should be peer pressure (which can be positive) to perform better. The Scrum Master is there to remove any obstacles that are preventing him from getting things done. The article is talking about building a self managing team which is what Agile is all about.

</comment><comment><USER36> i think this has an interesting parallel (isomorphism if you enjoy abstract algebra) to society in general;

if you shame someone like that, they won't feel good and it probably won't make them perform better at work. you have to be reasonable with them too, if you're too mean they won't like you which doesn't foster good teamwork. except here the company is the country and deadlines are economic achievements and such.

that being said i appreciate the sentiment here, you have to feel responsible to the team because you're a part of it, upon doing that you'll get the best out of people i find, although thats never an easy balance to find either.

<comment><USER37> Yeah, I think it often backfires. Long ago I thought I did a good job on one of my first projects, would work after-hours on it for fun, and my co-worker said I was doing a good job. But the client started to publicly shame me in the meetings, which would just demoralize me. I stopped working any extra hours. The hours I was at the job I spent half the time worried that I was going to be fired not getting much work done.

</comment></comment><comment><USER38> This is common in much of the finance industry, well, at least banks anyway.

In fact, I would be surprised if anyone could come up with a more systematic and brutal example of this method than that practiced, oddly enough, at the world's largest hedge fund, Bridgewater Associates.

The founder even has a manifesto that represents the basis of the "radically transparent" workplace culture called _"Principles of Ray Dalio"_ :

[http://www.bwater.com/Uploads/FileManager/Principles/Bridgew...](http://www.bwater.com/Uploads/FileManager/Principles/Bridgewater- Associates-Ray-Dalio-Principles.pdf)

</comment><comment><USER39> i might have missed it but where's the leaders accountability in this scenario?

Maybe I'm lucky but, throughout my career I have witnessed or have been a part of teams that pulled off the miracles under ridiculous conditions that were the direct result of poor planning and unreasonable timelines. The occasion where an individual worker bee was not pulling their weight has been a very rare occurrence compared the number of times managers failed to plan appropriately and they rarely have held themselves accountable.

</comment><comment><USER40> I hate being in team meetings where we're discussing a failure and avoid talking about individual actions/responsibilities leading up to the issue. Don't make it personal, but do make clear what went wrong and who made mistakes.

If everyone is responsible, no one is responsible.

Principle #15 here weighs in on this: [http://www.greenwichharborpartners.com/uploads/Principles_by...](http://www.greenwichharborpartners.com/uploads/Principles_by_Ray_Dalio_- _Selected_Sections_5-30-12.pdf)

</comment><comment><USER41> i can't believe the amount of negative responses here.

in my experience, when more people criticize it makes teams nicer to work with. someone screws up, you can tell them, and they'll fix it no harm done. usually this dynamic goes away with a real "manager" thrown into the mix.

take dynamic young companies for example. the boss has no qualms being called out by his coworkers. "hey, you did that wrong", "oh xyz is right, thanks for correcting me". in case of basho that was a public tweet. does it mean people think that guy is stupid? I think that guy is probably nice to work with.

don't forget that conflict exists. it always does. treating your employees like stupid kids that, and every negative emotion as non existant is irrational.

every war/major conflict happened because people have tried to suppress these natural conflicts in a sea of false happiness.

</comment><comment><USER42> I see many comments disagreeing with the article about criticizing Ted in public, and I also disagree with that. However, the article makes a fine point which is to make the team members accountable to the team and not to you (the leader).

</comment><comment><USER43> This seems like atrocious advice. Here's the bit that seemed especially misguided:

"Ted may tell you that other team members made it difficult for him to meet his deadlines, that it's not his fault; at that point, you're likely to become a human ping-pong ball, shuttling back and forth between Ted and other team members trying to understand the problem. The information to solve this problem lies with Ted and the other team members."

Note the pejorative way Roger characterizes the effort needed to understand the operations of what is (ostensibly) his own team: "Shuttling back and forth like a ping-pong ball trying to understand the problem."

That's one way of looking at in. Another way is "doing your (expletive) job."

If the manager doesn't understand what's happening with the way his team is working, that's a serious problem - even in cases where the team isn't failing. "Researching" the issue by herding everyone into a room for a round of mutual recriminations has got to be the worst approach possible.

Far better to grasp the problem discreetly through a series of private conversations in which people feel they can be candid, work out possible solutions from there, and get everyone together when you're ready to discuss viable solutions. That way, the team participates in the decision, while the manager retains control of the situation by displaying a vital combination of leadership and situational awareness.

At no point should any manager undermine his own authority by running a session like the one described here, in which the clear subtext is "I have no idea what's going on with my team, and I'm too lazy and/or incompetent to figure it out myself, so I'm just going to tell them to lace into each other and observe from the sidelines." Aside from fostering intense distrust among colleagues, the manager undermines the respect and authority that his own job depends on.

So no, this isn't a good argument against the normally solid rule about delivering criticism in private.

The only exception I can think of to the "criticize in private" rule is when what's called for is actually punishment for abuse of colleagues. For instance, if Ted had no trouble meeting his deadlines, but couldn't talk to women without making sexist remarks, then it's entirely appropriate to shut him down in public - preferably in full view of whoever he demeaned, along with anyone else who witnessed his affront. Concluding by saying that you'll fire him on the spot if you catch him doing it again will not only get through to Ted, it will also light up the grapevine, putting everyone on notice that the No Asshole Rule is in full effect.

But again, that has nothing to do with performance, except to the degree that people perform much better when they feel that their managers are looking out for them, and are fearless about protecting anyone on their staff from humiliating attack. This is the stuff that deep loyalty is made of. Roger's advice points in the opposite direction, fostering the "everyone look out for themselves" climate that leads to major losses when the "team" that operates this way goes up against a truly solid team with a strong and respected manager.

</comment><comment><USER44> At some point in life you have to step out of diapers and accept challenge, accept disagreement, accept envy, accept talk-down, accept criticism.

Either way, there is no correct way.

</comment><comment><USER45> If he is the'boss', he should bring Ted into his office and explain him what is going on and suggest improvements.

If this happens to a co-worker who you are friends with you can freely talk to them about the issue.

In most cases I experienced, I tend to distance my self from people who 'do work with their mouth' and are generally full of shit if I do not manage them. It's up to their superior to recognize those faults.

Good manager/boss should recognize such issues and address them. You don't want half of your team growing desperate and frustrated that a single member is not pulling their weight.

</comment><comment><USER46> I've got a different approach.

1) Train staff how to define SMART objectives (Specific, Measurable, Actionable, Relevant, Timely) 2) Let them create and present their objectives to the group periodically (weekly, monthly, quarterly) 3) Then let them self- report the outcomes for the prior period, and give the group a chance to discuss and give feedback.

With this practice I can put more focus on training and standards, get less involved in operational details, and worry less about my performance as meeting ringleader.</comment>


AirBnB possibly farms craigslist for leads - <AUTHOR> http://np.reddit.com/r/Entrepreneur/comments/31z9rp/how_airbnb_became_a_billion_dollar_company/

<comment><USER2> I thought that this was public knowledge. I think this article is the first time I read about it

[http://www.aarongreenspan.com/writing/20111026/the- harvard-p...](http://www.aarongreenspan.com/writing/20111026/the-harvard- people-i-know-who-are-breaking-the-law-again/)

</comment><comment><AUTHOR> While I don't think legality is a question here, it's a hell of a way to generate a $1B company.</comment>


Oracle's New Supercomputer Has 1,060 Raspberry Pis - <AUTHOR> https://www.tomshardware.com/news/oracle-raspberry-pi-supercomputer,40412.html <comment><USER2> Echoing the sentiment from reddit: the article lacks any numbers regarding performance and power so we cannot do meaningful analysis.

At best we can estimate a lower bound for the cost. 1,060 * $27 = $28,620

*Depends on actual bulk pricing for Pi 3B+</comment>


Keyboard Manufacturers Are All Slackers - <AUTHOR> http://thejoshwolfe.blogspot.com/2009/12/keyboard-manufacturers-are-all-slackers.html

<comment><USER2> It's called n-key rollover. Yes, many companies make absolute crap for keyboards, and yet people actually make fun of me at work for buying a 250$ keyboard. Would they ever suggest 250$ is too much to spend on, say, a bed? I doubt it.

elitekeyboards.com <\-- the best keyboards money can buy. n-key rollover, topre capacitive switches, etc.

geekhack.org is a great reference.

<comment><USER3> > elitekeyboards.com

They look like ordinary bad keyboards. I prefer the Kinesis contoured (<http://images.google.com/images?q=kinesis%20contoured>).

<comment><USER4> > They look like ordinary bad keyboards.

They aren't (in my opinion, and by basis of the construction thereof). The keyboards they carry are japanese imports most of which use Cherry switches. They also, unlike the Das Keyboard, have well built controllers. Pricey, but worth it. I adore the Majestouch Click Otakus that I got from Elitekeyboards.

Contoured keyboards are in some cases an acquired taste, in others unusable. I have an old hand injury that makes it tough for me to use something like the Kinesis which puts my hands in awkward positions. I've been forced to find decent standard keyboards, which have consistent keystrikes [which a membrane won't provide].

For what it's worth, I find this article to be a good read on what the deal is with quality keyboard switches, including Cherry and Alp clones:

[http://hothardware.com/cs/blogs/mrtg/archive/2009/03/09/mech...](http://hothardware.com/cs/blogs/mrtg/archive/2009/03/09/mechanical- key-switch-keyboards-demystified.aspx)

There's another article and I believe it was on my bookmarks at the last job and I didn't copy it over, but if I find it i'll add it in.

EDIT: Keep in mind also good switches only take you so far - the problems the Das Keyboards [which use Cherry switches] have had is poor controllers. BUT, even with a good controller, my understanding is USB has a limitation on N-Key rollover to a low number of simultaneous key presses. Most of the quality keyboards come with PS2 adapters and recommend using PS2 if you want full bandwidth.

ANOTHER EDIT: This I believe is the "other" guide I was thinking of. It gives an overview of several "mechanical" keyboards which may be useful for those looking for an alternative to the $20 freebie their computer came with: [http://www.overclock.net/computer- peripherals/491752-mechani...](http://www.overclock.net/computer- peripherals/491752-mechanical-keyboard-guide.html) ... Personally, since I've started using mechanicals I've had most of the end-of-day wrist pain I used to experience disappear.

</comment></comment></comment><comment><USER5> It has to do with the in hardware device key mapping.

Most keyboards use resistance circuits to tell which key has been depressed. When you depress more than 1 key most of these designs cannot tell between the values.

Modifier Keys like shift, control are mostly separately monitored and thus independent.

See the matrix on this page:: [http://www.instructables.com/id/Make-your-own- Roll-Up-Keyboa...](http://www.instructables.com/id/Make-your-own-Roll-Up- Keyboard/)

</comment><comment><USER6> For my Mid-2009 13" Macbook Pro, I can press up to 6 alpha-numeric keys and 5 function keys (shift, option, control, command, function) at once, for eleven total keys. OS X users can test this for themselves using the "Keyboard Viewer" accessible through System Prefs/Universal Access.

While some manufacturers may be slackers, it doesn't appear that they all are.

<comment><USER7> I'm limited to 5 alpha numeric keys, and I get the Keyboard viewer via System Preferences > Keyboard > "Show Keyboard & Character Viewer in menu bar"

There's also a lot to be said about the feel and quality of the keyboard. We press these little buttons thousands of times a day, millions of times in our lifetime. A clunky, overly loud keyboard, or one that requires too much travel is a terrible thing to have to work with.

<comment><USER3> If you want to avoid too much travel, you should not be using a qwerty layout. E.g. Dvorak optimises for less finger travel.

<comment><USER8> I think he means up/down travel, not how much your fingers move when typing.

<comment><USER3> Yes, that may be possible.

</comment></comment></comment></comment></comment><comment><USER9> It amuses me when people are surprised by product development. Here are the rules:

      - if the consumer will buy it, it isn't a flaw
      - if the consumer won't pay extra for it, it isn't a feature

This is how _all_ products in _all_ markets are developed. On the rare occasion that a product developer takes it upon themselves to deliver a better product they will make less profit (reward), and therefore be less competitive and more likely to fail as a business. These companies are often called hobbies. The only way to improve products is to improve ("educate") consumers, and I'm not holding my breath on that one.

<comment><USER10> > This is how _all_ products in _all_ markets are developed.

Why are you saying that in such absolute terms? As if they were the defining features that govern the markets.

If that was really how it worked, what do you say to start-ups who make risky entrepreneurial bets on a daily basis?

The usefulness of something is not always readily obvious. It takes time to internalize, and often we just won't get it unless it's been thoroughly marketed to us, or suggested by friends and peers.

We can amply ridicule keyboard manufacturers for their lack of any real breakthroughs or innovation in recent years.

Finally, about what I'd like to see in keyboards: 1) I've a Microsoft Natural 4000 keyboard ( [http://www.microsoft.com/presspass/events/mshardware/images/...](http://www.microsoft.com/presspass/events/mshardware/images/image003.jpg) ) and I wish that instead of the 'zoom scrollbar' that's between the split, there was a mouse trackball. 2) The Compose and Alt Gr keys being standard in all keyboards. We live in the 21st century -- it's a globalized world. I want to be able to input foreign characters with ease (but as is, I've mapped my right alt to Alt Gr and right Ctrl to Compose - and I actually can input characters like this with much ease: áßðfghïœø¶æœ©®bññµçåéëþüíúóö¹²³€¹²³¤€'¥×÷¤€'Á§ÐÄÅÉËÜÍÓÖÚ¦'' «» "", etc.)

<comment><USER9> _If that was really how it worked, what do you say to start-ups who make risky entrepreneurial bets on a daily basis?_

Make things that people want? [ <http://www.paulgraham.com/start.html> ]

 _we just won't get it unless it's been thoroughly marketed to us, or suggested by friends and peers._

Yes, there is no demand for something novel without appropriately educated consumers. (I swear I just said that...)

 _We can amply ridicule keyboard manufacturers for their lack of any real breakthroughs or innovation in recent years._

Why? They have made great strides in creating exactly what consumers want: a $20 surprisingly durable USB keyboard with a 104 key layout (ex. Dell CJ651). The original poster's motivation is his realization that he is not the average consumer, and thus is not satisfied with the average product.

 _Finally, about what I'd like to see in keyboards_

We all want a pony. I'll make you one, but it will cost $1,000 - I presume that you're okay with this.

Your extended character input problems have nothing to do with your keyboard - Mac OS X can easily input most of them with a small number of strokes on that same keyboard. You could switch the keys you speak of on Windows with different drivers.

</comment></comment></comment><comment><USER11> Keyboard Manufacturers Are All Slackers...

Keyboards aren't going to fundamentally change but there are manufacturers who aren't slackers, who are trying. (As far as the original article - use ctrl, alt and shift - they're designed as modifiers - for your Metroid III action.) Think of the Anykey on older Gateway keyboards[1], or the Compaq keyboards with the split spacebar where the left half was actually backspace[2], or the new-ish Dell keyboards where the layout of the six keys above the arrow keys has been changed to feature a huge delete key[3]. The Windows key, a long loathed key by many a gamer, forced back to the desktop in the midst of a critical section. Most have only come to accept since it pretends it isn't there as many games disable it. And even then, it only uses up previously unused space which doesn't moving other keys around.

These little 'innovations' annoy me, and I'm sure many others, to no end. Innovations that ended up on the scrap heap of innovation and change-is-bad- ism.

Keyboards /cannot/ fundamentally change because unless you magically replaced all the keyboards in the world at once, installed user-base just has too much inertia.

[1] <http://en.wikipedia.org/wiki/Gateway_AnyKey>

[2] <http://lowendmac.com/mail/07/art/keyb.jpg> \- Actually, that left half was actually remappable, which caused unending complaints due to unexpected behavior.

[3] [http://farm3.static.flickr.com/2374/2011622454_dfe08bfcda.jp...](http://farm3.static.flickr.com/2374/2011622454_dfe08bfcda.jpg?v=0)

</comment><comment><USER11> Others have said - buy a more expensive keyboard. That solves the complaint in the article.

Except it doesn't. 'N-key rollover' doesn't exist as a market differentiator. Unless you've gotten frustrated by this problem, decided it was actually worth your time to research it, how could you know that 'N-key rollover' is the differentiator you're looking for? The market has spoken, and 'cheap' is better than N-key rollover. Or 'good enough', anyway. It's 2009 and the writer still can't play Metroid III. I'd bet that there'll still be the same problem in 2019, even though the technical solution has existed since keyboards were invented.

<comment><USER7> But if the OP is really concerned about a quality experience playing Metroid III, shouldn't he be using a gamepad?

It's 2009 and I still can't type very well with my flight stick either.

<comment><USER12> Excellent point.

Why are people discussing 250$ for a game-able keyboard when you can buy a decent gamepad for less than 50$?

</comment></comment></comment><comment><USER13> There are keyboards out there that support more than 3 keys at once (for example the Gigabyte GK-K8000 which has support for 'n-key rollover').

<http://en.wikipedia.org/wiki/Rollover_(key)>

[http://www.gigabyte- usa.com/Products/Keyboard/Products_Overv...](http://www.gigabyte- usa.com/Products/Keyboard/Products_Overview.aspx?ProductID=2789&ProductName=GK-K8000)

</comment><comment><USER14> Save for web in Photoshop is Command + Option + Shift + S, and I do it dozens of times a day. Every Mac I have ever used has been able to do this :)

<comment><USER15> Modifier keys are usually specially dealt with on the matrix of wires in your keyboard to make that work. The issue is how many non-modifier keys the keyboard can register at once.

That said, other comments note that Apple seems to lay a dense matrix that allows for high numbers of simultaneous key presses to be registered even for non-modifier keys. Perhaps this finally explains some of why their keyboards cost $50 instead of $3. (Definitely not all, but if this is true, it's a nice touch.)

<comment><USER16> Tried on my Unibody MacBook. Can register 6 non-modifier keys at once.

I like the feel of the keys actually. Not sure what mechanism it's using, but definitely much better than all other notebooks.

Also found a 1991 UK-made IBM Model M. The clicking sound is such a great joy :)

</comment></comment></comment><comment><USER17> My Das Keyboard (Mechanical), has no trouble with this

</comment><comment><USER18> What puzzles me is that even a simple USB hub (so that you can plug in a mouse or a pen) seems beyond most manufacturers. A few months ago, I managed to snag a keyboard with two USB ports and a scroll-wheel (the SlimStarPro from Genius), which promptly vanished from local retailer shelves.

Not having reason to care about key rollover issues, I'd gladly trade the top rows of special-function buttons for a single small trackball in the wrist- rest area (as seen in early laptops such as the Apple Powerbook 100 of the 90s). I suppose it's "inconceivable" to sell that nowadays ...

<comment><USER19> _I suppose it's "inconceivable" to sell that nowadays .._

Did you try Googling? I felt lucky, and on that page was this link:

<http://www.fentek-ind.com/kbemmtbusb2b.htm>

<comment><USER18> Thanks, appreciated. Not completely extinct, then - but it seems to live in a quite small niche ;-)</comment></comment></comment>


Flash Professional CS5 will build native iPhone and iPod Touch applications - <AUTHOR> http://labs.adobe.com/technologies/flashcs5/appsfor_iphone/

<comment><AUTHOR> Adobe is using LLVM.

There is no runtime.

+1

<http://www.adobe.com/devnet/logged_in/abansod_iphone.html>

<comment><USER3> "There is no runtime"

Ah, so they got Flash on the phone by taking away the bit that makes it suck bells. Good job, Adobe. Amazing what you can do when Apple forces you to not to be craptacular.

<comment><USER4> Does that mean you'd like Flash content to run as non-VM-boxed binaries on your PC? Or did I misunderstand what you meant?

<comment><USER3> It just means that I loathe the Flash runtime on the Mac: it's slow, kills the CPU and as a result sends the fans spinning. This is one reason (beside the business ones) why it was never going to get on the iPhone.

<comment><USER5> Right -- and next you're going to tell us that each and every website that uses flash - you're going to install an application for on your mac.

</comment></comment></comment></comment></comment><comment><USER6> In short: no Mac required for developing iPhone apps. flash games which are extremely easy/quick to develop can be ported into iphone apps.

Conclusion: iPhone app development prices will go down the drain for most of the apps. There will be millions of apps on the appstore. Prices of apps will go down further.

WOW!!!

<comment><USER7> _In short: no Mac required for developing iPhone apps. flash games which are extremely easy/quick to develop can be ported into iphone apps._

Remains to be seen. You still have to _sign_ applications to submit them to the app store. Adobe hasn't made it clear if they reverse engineered this bit yet, or if it simply calls the codesign binary. If its the latter, you still need a Mac.

<comment><USER8> I'm not sure I really get this sort of comment. Is a mac really such a hurdle relative time, effort or monetary cost?

<comment><USER7> You can find an Intel Mac Mini for ~300 on eBay. Its not terribly expensive or hard to get set up.

All I'm saying is that you may still need a Mac if you intend to put your app on the app store (or on your own device if you don't jailbreak). You need a Mac because Apple hasn't released the code for the codesign application; only a binary that runs on OS X only.

The codesign application is - you guessed it - responsible for signing an application's binary to run within the iPhone's sandbox. This usually done automatically by Xcode when you build for the device (for debug or distribution).

Adobe hasn't made it clear how they handle this step yet. They may have reverse engineered codesign itself - so you can develop on Windows. Or they may have just looked at what Xcode does when signing with codesign and duplicated that - in which case, you still need a Mac for at least your final step (submitting to the app store) and should really have a Mac before that step (to test your app on a real device). Especially since you can't use the iPhone Simulator if you use this for your iPhone app.

<comment><USER8> I didn't imply that you don't need a mac. I'm just puzzled by people who seem to think that this is so important or that mac ownership is a substantial hurdle to iPhone app development.

As you say, the minimum requirement is not all that high. A mac is an additional machine usually $1K-$2k, something that developers need to spend money on from time to time. If you really don't want/need one and only use it to develop one small app, 500 for a mini (or 300 for a used one) is not terrible.

<comment><USER7> _I'm just puzzled by people who seem to think that this is so important or that mac ownership is a substantial hurdle to iPhone app development._

Because it is a substantial hurdle. The hurdle comes down to: Do you want to be able to test your app while developing it? Or do you just want to write it, make sure it compiles, and ship it?

If you just want the latter, then you will be able to get away with not owning a Mac to do a lot of testing and to sign with. You won't likely end up with a very good app. But you will have an app. OTOH, if you want to make a very nice application, that performs well, has a good UI and so on etc, you really should have a Mac. It gives you two big things: The iPhone Simulator and the ability to put apps on your device.

While the simulator might not matching device behavior for optimizations (if you need to do any), is fantastic for laying views out and testing if logic works. Its great for fixing small bugs that would exist also exist on the device. There is a caveat: not all behavior on the Simulator is the same as the device. This is frustrating at times. But, with a Mac, you can actually put your app on an iPhone. Codesign is (AFAIK), very much Mac-only.

Yes, you can develop on Windows or Linux, jailbreak and put your app on your device that way, but, you really do want to test your app in the same environment that a majority of your customers from the App Store are going to have. This means a non-jailbroken device. Which, again, brings us back to needing to Codesign. And needing a Mac.

<comment><USER8> You've got me backwards. I agree with you. I understand why you need a mac. I don't understand why it is such a big deal to have to buy a one. Just buy one. If you are doing this for a living, this seems like a reasonable expense. If you are doing this semi-pro, well then get your hands on a used machine cheaply.

If you are neither, Apple's not really catering to you. That's true. Jailbreak or do something improvised. Even someone doing it for non monetary reasons.

By _hurdle_ I meant buying one.

By _puzzle_ I meant people hearing about something like this and thinking "now I can develop without a mac" rather then "now I can develop in flash."

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Before everyone gets too excited over this, admittedly very cool technical achievement, how will this affect the look and feel of apps making use of it? Games always tend to use completely custom UIs, so this will be a neat tool at the disposal of game devs. But how will business apps feel? Will text boxes be CocoaTouch-based or some Adobe-proprietary text box?

These things tend to matter in achieving a consistent look and feel to users. I've never preferred Java apps on either Windows or Mac OS X to native ones, primarily because they are only ever 95% of the way there in providing consistent look and feel. There's always something that is _just_ off ever so slightly.

<comment><USER10> Even if CS5 won't include it at launch, I'm sure it's only a matter of time before there will be a full-fledged library of "iPhone-like" controls available.

Besides, Apple can be as anal as they want about interface consistency before they approve something to the App Store, and they're probably not thrilled by this. They can use the interface excuse to great effect if they choose, to neutralize the effectiveness of this tool by simply rejecting many Flash apps.

</comment></comment><comment><USER11> This is epic, and I don't think everyone realizes what this means. Developers will be able to just... export. The revenue model for Flash games used to be: free + advertising. With this move, those same games can be released on the app store and actually charge money, or fall back to the advertising model. Its a simple way for developers to cash in. The funny thing, and this is what makes very little sense, is why did Adobe do this at all? There's no doubt that little feature cost them some serious cash, and for what? To make Apple rich?

<comment><USER12> I'm sure Adobe's motivation is to make money selling licenses to software developers. If I remember it is about $700/seat for this software. In terms of their cost, it would make sense that Apple did some of the heavy lifting on this as part of an agreement to keep Flash off their devices. Unity is another example of a company doing this same thing and making money at it too.

<comment><USER13> I'll second that. Adobe wants to become an alternative platform for the iPhone. Right now it's Objective-C or the highway.

I can't stand JavaScript (and therefore ActionScript) but, as an iPhone developer, watching this video made me think, "gosh, I should start learning flash". Objective-C is a nice language once you get used to it, but I can't imagine that it could compete against Flash in animation-heavy programming tasks.

<comment><USER14> No it isnt', there are plenty of languages you can program the iphone in. Straight off Apple supports C. Then a lot of people have added support for other languages.

All these have been advertised on here.

<comment><USER15> For the love of God, submit a link to the Apple resources on iPhone development in C. "Objective"-less, good ole C.

<comment><USER13> Haha yeah seriously. That's kind of a silly rebuttal :p

</comment></comment></comment></comment></comment></comment><comment><USER16> It will be interesting to see how Microsoft reacts to this. I am in the early stages of planning an application that might have a rich client component. Since the rest of the stack is .NET, it made a lot of sense to look at Silverlight, but now that I could potentially deploy the same code to an iPhone (and probably other mobile platforms as well) with minimal extra effort, it's hard to recommend Silverlight.

<comment><USER17> Check out MonoTouch: <http://monotouch.net/>

It precompiles .NET code into ARM binaries for the iPhone.

</comment></comment><comment><AUTHOR> One of the first apps written in Flash and cross-compiled to Objective-C native in the wild of the App Store:

[http://www.flashcomguru.com/index.cfm/2009/10/5/iphone- justl...](http://www.flashcomguru.com/index.cfm/2009/10/5/iphone-justletters)

</comment><comment><USER18> So after all of my investment and time learning the Cocoa Touch platform these flash guys come in with 10+ years of crappy code and inundate the app store without even having to reference count their objects. There goes my consulting business :(

If it's been hard getting noticed in the app store imagine what it's going to be like when every flash app in the world is ported over.

</comment><comment><USER19> This makes us at Stormpulse really happy, since our map is written in ActionScript, and people have been screaming for an iPhone app.

</comment><comment><USER20> I think the biggest thing people are missing here is one of the best advantages: Demos!

Currently Apple doesn't give a way to distribute demo copies of software. But if your app is already a Flash project, you can export that to the web in a trial form for people to play and test out. We've had videos and screenshots, but this is a much more effective way of selling.

Check out an example: <http://www.muchosmedia.com/justletters/> All you've got to do to build a demo is export to SWF instead of IPA. Easy cheezy.

</comment><comment><USER12> So a few questions in my mind - what does this do to wait times for getting apps into the store? How much stricter is Apple going to be on non-conforming UI? I really think Apple will impose artificial controls on the market to prevent it from bottoming out and flooding their top tier producers - <USER2> perhaps finally make a AAA section for the store.

<comment><USER17> Do you think Apple would take issue with making Flash controls look identical to their own?

<comment><USER21> IIRC there was an issue about an Aqua PLAF for Swing years ago.

</comment></comment></comment><comment><USER22> Did no one else anticipate this? Lots of other people have been doing this for awhile (mono foundation, unity, gambit scheme, etc.). Is this a game changer? Yes. It opens up the door to tons of developers. Will applications written in actionscript still have the same shortcomings as the other aforementioned languages? Probably. Looking at the AS apps in the store right now they all have larger than expected file sizes. Additionally I don't see any of them taking advantage of any of the latest API features rolled out in iPhoneOS v3. Each time Apple releases a new iPhone OS version (with all of the API changes/additions) all of these tools need to be updated and re-released. Moral of the story? If you want to take advantage of the latest API features and remain on the cutting edge of iPhone development it's best to stick with objective-c.

</comment><comment><USER23> The FAQ is pretty informative: [http://labs.adobe.com/wiki/index.php/Applications_for_iPhone...](http://labs.adobe.com/wiki/index.php/Applications_for_iPhone:Developer_FAQ)

I especially found this useful:

<quote>Which native iPhone APIs and functionality are supported when using Flash tooling?

The following native device APIs and functionality are supported:

\- MultiTouch

\- Screen Orientation

\- Saving images to Photo Library

\- Accelerometer

\- Geo-location

\- Cut / Copy / Paste

Can applications take advantage of hardware acceleration?

Yes. In some cases, the rendering of Flash content will be hardware accelerated.

We will publish more information on this when we release the public beta.</unquote>

</comment><comment><USER24> Looks like it'll have all the AIR bits-and-pieces in it. So you'll get database/filesystem access, etc.

</comment><comment><USER25> sitting in multi-touch session at AdobeMAX... yes, for iPhone. Will check out the AIR session (for "mobile") on Wed.

A lot of sessions that were titled "for Mobile" have changed to "for iPhone": [http://arno.org/arnotify/2009/10/max-2009-adobe- air-2-0-and-...](http://arno.org/arnotify/2009/10/max-2009-adobe-air-2-0-and- iphone-support/)

</comment><comment><USER26> This is a significant development and seems to be win-win for both Adobe and Apple. It will be very interesting to see how this plays out and if iPhone App development in Windows/Flash is as seamless as Adobe is claiming. But if it is, along with the support for RTMP, Remote Shared Objects, AMF, and SQLLite, it could be a big boost for Adobe.

</comment><comment><USER24> Seems like a huge opportunity for folks who are fluent in Flash/AS3 and haven't had time to jump on the Objective-C bandwagon. It's likely that since it's compiled down, it'll run faster than interpreted Flash! Great move by Adobe! (I'm curious if Flex will work.)

<comment><USER27> I would expect Flex to work as well since it's basically an actionscript GUI library written on top of Flash. There is a mxml compiler that takes your Flex gui code and converts it to a SWF. And it sounds like LLVM takes a SWF and turns it into Obj-c code so I think it would work.

</comment></comment><comment><USER28> MonoTouch (monotouch.net) is exactly the same approach for .NET instead of Flash.

</comment><comment><USER29> Wow, so owning a Mac will no longer be a requirement for iPhone development, as Flash Professional supports Windows also. Even MonoTouch requires an Intel Mac.

<comment><USER12> This would be pretty great - but I'm not sure what Adobe has planned for signing the app (and if they can take any of the pain out of that process it would really make life a lot easier).

</comment></comment><comment><USER30> I sure hope IndestructoTank is ported right away. One of my favorite games and I think it us well suited to iPhone gaming.

</comment><comment><USER31> This is nothing but good. Let's see if Apple likes it. Didn't Apple dislike the iPhone apps made with .Net+Framework?

<comment><USER32> There are like 5-10 top apps built with Unity3D such as Zombieville USA that is Mono based and cross compiled. So in short, now they love them because they make money from them (30%).

</comment></comment><comment><USER33> I doubt if people can build apps on windows "yet" until there is official blessings from Apple itself

application signing and testing on iphone simulator, phone provisioning and developer profile for iphone, debugging, profiling all need a mac, xcode and friends

the machine shown on the video was a mac

</comment><comment><USER34> Will it work as well as Flash now works on OS X? If so, then thanks, but no thanks.

<comment><USER14> Well, you could watch the video. Seems to work pretty well.

I hate flash, but compiled flash might just be ok.

</comment></comment><comment><USER35> I'm calling it now: ECMAScript will be the most important language over the next three years.

<comment><USER36> The problem is ActionScript is pretty far from the EMCAScript you get in browsers - ActionScript was based on a proposed standard for ECMAScript which was later abandoned, so it's pretty much a different language now.

<comment><USER35> Fair enough. Probably true for AS3, which seems to superficially resemble Java. One of my hobby projects (HipHopGoblin) uses a bunch of AS2, which I find very similar to JavaScript.

<comment><USER4> AS3 is quite similar to Javascript also -- you can't do as much with the prototypes, but it still has closures, allowing a functional style; and everything's essentially an Object with properties, allowing a dynamic style. You can turn off strict mode and it won't do compile-time type checking, or you can type specific signatures as "*" and they will not be type-checked. This means you can do all the duck-typing you like, instead of defining a Java-like interface.

One of AS3's goals was definitely to become more like Java, for whatever reason, but almost all of the new Java-y-ness is optional.</comment></comment></comment></comment>


GCC mailing list's reaction to NASA/Nvidia's LLVM Fortran announcement - <AUTHOR> https://gcc.gnu.org/ml/gcc/2015-11/threads.html#00072 <comment><USER2> I saw this bit "Basically NVIDIA bought PGI and now is open source their fortran front-end. Nothing magical really. Basically NVIDIA is trying to have the "community" do more of their development for them. This is an anti- open/free source way of doing things" and I'm not totally sure I understand the author's point.

</comment><comment><USER3> The entire thread basically focuses on "whatever, they're not really shipping in 2016" instead of a more positive: "Cool! Another bit of compiler infrastructure being turned open-source!".

I understand that many people find the GPL to be the only truly "free" license, but it seems uncouth to be so hostile to what is ultimately a positive outcome.</comment>


When Better is Worse -- Thoughts on the Facebook Redesign - <AUTHOR> http://alexkrupp.typepad.com/sensemaking/2007/04/why_better_is_w.html <comment><USER2> I think Facebook feels just as much like a database as it did before. I'm not sure any of my friends were ever looking at what I was looking at...

</comment><comment><AUTHOR> I started a blog this morning. :-)

Still working on figuring out how to edit the CSS template so I can make the margins a readable width...

<comment><USER3> Given their history of angering 100's of thousands with a change last year and then fixing it to make even more happy with them, I'm sure they'll simply tweak their new features to gain that many more converts. In a way, you could argue that this is great for them in that they get so much PR for angering users (for free) even though they were so careful checking with users before the change, and that bad PR gets them more users who are curious to see what all the fuss is about, etc.</comment></comment>


Heartbleed explained in layman's terms (xkcd) - <AUTHOR> http://www.xkcd.com/1354/

<comment><USER2> This has been posted here already: [https://news.ycombinator.com/item?id=7571947](https://news.ycombinator.com/item?id=7571947)

Only difference is your link has www in front.

<comment><USER3> I can't believe that isn't part of the duplicate detection already.

<comment><AUTHOR> Agreed. I didn't expect my post to go through ... I expected it to merely become a +1 on an already-posted link.

That said, for some sites "www" and the domain by itself serve different content and function as different sites, and it would be difficult to try to reliably figure out if it's the case for every submitted domain.</comment></comment></comment>


Heroku 2X Dynos in Public Beta - <AUTHOR> https://blog.heroku.com/archives/2013/4/5/2x-dynos-beta <comment><USER2> "Do single 2X dyno apps idle? Yes. Idling affects single 1X and 2X dyno apps alike."

I genuinely do not understand this. I'm still paying for it. I run a node.js app for my school that gets decent traffic, but not enough to warrant adding another dyno (and moreover I only wrote it to work on one process). Yet I _still_ deal with the idling problem.

I would gladly pay Heroku the money for a 2X dyno if it meant I would stop getting idled (which is extremely annoying and disruptive), or even just some express per-month fee to disable idling.

I feel like I'm being punished because my app is performant and doesn't need two or more dynos...

Am I crazy here, or does this really bug anyone else?

<comment><USER3> There's an easy solution to that. Just install the free version of New Relic add-on. In there, you'll find an option to periodically check availability. That will trigger a request to the URL you provide every 30 seconds, keeping the dyno alive at all times.

<comment><USER2> While that's true, I just really don't understand why I have to resort to sucks hacks to simply eliminate idling. I am a paying Heroku customer with a CC on file... I just want to give them money to do something properly which I could hack around legitimately.

The fact that this has clearly been brought to their attention before and they have offered no real answers (I'm literally suggesting a checkbox for $10 a month or something that simply keeps my app un-idled) frankly gets me thinking about ulterior motives. I love Heroku, and find their services very valuable, but some of their decisions make very little sense to me, like this, or more recently how they've handled the RapGenius accusations.

<comment><USER4> I totally agree that hacks to avoid idling when are willing and able to pay is lame. We've actually been working on something very similar to what you describe. Send me an email at adam at heroku dot com and I can give you early access.

</comment></comment></comment></comment><comment><USER5> Keep in mind with more Unicorn workers per box you will need fewer dynos overall so it does not necessarily mean you will have to pay double in the long run. At 1x Dynos we could only have 2 workers going but at 2x we could squeeze five workers in so we use half of the dynos we did before.

<comment><USER6> Same here. We were struggling to fit 2 unicorn workers on a 1x dyno but can easily get 4 on a 2x. We're paying the same amount for twice the concurrency. The 2x dynos with unicorn have pretty much solved the queuing issues for us.

<comment><USER7> Wait up... I'm a bit confused here. How is it that you were struggling with 2 unicorns on a 1x (512mb) dyno, but 4 unicorns works on a 2x (1024mb) dyno?

<comment><USER8> Unicorn instances fork after loading rails, so they share memory. (This will work better on ruby 2.0 with the copy on write friendly GC)

</comment></comment></comment></comment><comment><USER9> The commenter called dude is spot on with his comment about Heroku's marketing copy on their homepage:

"Get up and running in minutes, and deploy instantly with git. Focus 100% on your code, and never think about servers, instances, or VMs again."

This is not the case anymore.

<comment><USER4> I agree that thinking about memory use steps a bit closer to the world of server administration, which doesn't thrill me. We've actually had 2X dynos in alpha for close to a year, but we never pushed forward with a public release precisely for this reason.

However, the demand from customers — especially apps on the JVM — has been overwhelming. There's no way around it: once you start doing heavy background processing (e.g. geospacial or image processing) or web concurrency with a memory-intensive language like Ruby, then you care about memory. It would be very head-in-the-sand for us to not serve this need.

I'd love to imagine that there's some design that allows us to abstract away memory, but despite a lot of attempts, we haven't seen one. Further, memory is generally the most expensive part of server-side computing resources these days, so decoupling memory use from price isn't very feasible.

</comment></comment><comment><USER10> I'm not sure I understand the pricing. I get you got twice the amount of memory compared to a 1X dyno. But still the rest of the resources is the same. For instance they will share a single queue (which is the point, no problem here), so they don't have really any added complexity or new resources. But the price is doubled.

<comment><USER11> Correction- from the comments:

"2X dynos contain twice the capacity. Memory and CPU shares. It's a new option to experiment with vertical scaling: you may get better performance from one 2X dyno than two 1X's. In that case you'll get more value. As explained in the post whether or not that's the case depends on the app. If you find that scaling 1X dynos works better, you are free to keep these instead."

</comment></comment><comment><USER12> One point that I haven't seen raised yet is that a reduction in the # of dynos required to operate a service would provide the benefit of being able to run certain addons that are priced on a per dyno basis more cheaply (e.g. NewRelic).

<comment><USER13> I've been told they're encouraging add-ons to move away from a per-dyno price. (Looked like New Relic is the only one right now).

The guys I talked to cited both the future (now present) "dyno is not a unit" problem, as well as reporting user dissatisfaction with non-flat-rate billing.

</comment></comment><comment><USER14> I guess there would be some serious benefits for uses with Puma too!

<comment><USER5> Totally. Given the smaller footprint of Puma there is a win available there too as long as you can use JRuby or Rubinius

<comment><USER14> There is a win with MRI too, though there is a much bigger win with JRuby or Rubinius :)

</comment></comment></comment><comment><USER15> Neat! I wonder if it would be possible for them to do 1/2x dynos at 256MB for lower end uses?

<comment><USER16> Your first dyno is free. Under what circumstances would 1/2 size dyno's be helpful?

<comment><USER17> The first dyno is free, but it doesn't stay booted. After a period of inactivity, Heroku shuts it down if you don't have any paid dynos. When a new request comes in, it take a few seconds for the dyno to boot back up. For users that have little traffic, the dynos get shut down and your requests are very slow when they happen.

Heroku has good reason for this. The number of test apps that people create to try the system and then never shut down is probably quite high. They don't want to be running 10,000x512MB worth of apps that aren't serving any traffic. However, that also means that if you have a low-traffic (but real app) running on their system, the dyno is likely to get shut down during the times where you have no traffic.

A 1/2 size dyno would allow people to have a cheaper dyno that wouldn't be shut down.

<comment><USER18> At one point in time, you could add the free version of NewRelic along with a scheduler task to keep your free dyno active: <https://coderwall.com/p/u0x3nw> I haven't tested that... so things might be different now.</comment></comment></comment></comment>