$1B of TSA Nude Body Scanners Made Worthless By Blog  - <AUTHOR> http://tsaoutofourpants.wordpress.com/2012/03/06/1b-of-nude-body-scanners-made-worthless-by-blog-how-anyone-can-get-anything-past-the-tsas-nude-body-scanners/ <comment><USER4> While it's encouraging to see such a thorough debunking of the latest security theater technology, it's always been security theater... Allow me a few quick anecdotes:

My family is friends with a gentleman who was a green beret medic during Viet Nam, and later worked for the CIA. Once, when I was younger (and metal detectors were the norm), we had the opportunity to fly with him. He entered the metal detector before me, and was waved along. Once we were past the detectors, he turned to me and said, "Guess how many blades I have on me?" He then proceded to produce seven blades. They were a combination of ceramic blades (undetectable by the metal detector and sharper than most metal as well) and traditional blades held or placed on him so that they would not set off the detector. It was part of his CIA training to be able to do that.

I went to college at Stevens Institute of Technology. The Chemical Engineering department there has a lab known as the Highly Filled Materials Institute. When I was an undergraduate, I got a tour of the lab. They informed me that they had been working on an extruder that they were selling simultaneously to Picatinny Arsenal and Hersey. It turns out that C4 and Chocolate are both colloidal suspensions with nearly identical properties. A consequence of this is that in the X-ray machines used in airports, plastic explosives are indistinguishable from chocolate.

Shortly after 9/11 my father, a very frequent traveler, had forgotten his nail clippers in his carry-on luggage. Predictably, they were confiscated. When I greeted him at the airport, he remarked on how ridiculous that was, as he produced his fountain pen from his jacket pocket. "They let me on with this," he said. "I could have stabbed anyone in the eye with this and they'd be dead. What was I going to do with nail clippers?"

...I could go on, but why?

<comment><USER5> There's a simple explanation - the authorities' main priority is to prevent _copycat attacks_.

The most embarassing thisg possible for TSA would be an exact repeat of 9/11 - same weapons (wasn't it box cutters?) etc. So that's what they target first.

A new kind of attack is harder to predict _and_ easier for the authorities to explain by saying "nothing like this has ever happened before, there was no way we could have prepared for it." And there's no way they could cover all possibilities anyway.

And to be fair, copycat attacks do happen (e.g. July 21, 2005 in London) so it is not a total waste.

<comment><USER6> I think that everybody agree on that. The question is: are those very very expensive scanners the only way to achieve that goal. If it is, then fine (I'm not american, so it's not my taxes that are blown), but if there is another way, then you should be worrying about your taxpayer's dollars.

Just as an aside, Ben Gurion airport relies much less on pseudo high tech, and has had incredibly good result.

([http://www.thestar.com/news/world/article/744199--the- israel...](http://www.thestar.com/news/world/article/744199--the- israelification-of-airports-high-security-little-bother))

<comment><USER7> Anecdotal (at best) evidence from this single person:

No, they use 'pseudo people reading skills'. I'm good at offsetting those unintentionally. Can lead to hours of fun.

And they use other pseudo tests as well, that tell me that so far none of the people there checking my laptop had any clues about - computers.

I've never been to the states (and - don't plan to), but I cannot imagine that the average TSA guy is more grumpy than the average [1] Ben Gurion security guy.

Don't make 'different' the right thing to do. There is obviously a high demand for security here, both ~real~ and in the public mindset. Replicating that world-wide would be just as bad as placing these back-scatter machines everywhere, in my world..

1: Insert disclaimer about the exceptions to the rule here

<comment><USER6> You might be right. What is surprising though is that an airport that's under such security threat like Ben Gurion airport hasn't been breached in a very long time (I think the last major problem was in the 70's). Now you're going to say that most airports are in that situation. Yes, but Ben Gurion is not any airport, and I think I don't need to explain why it is under much more pressure than most airports in the world.

Now assuming that you are 100% right, and that Israeli's security protocol is as much as a mascarade as the TSA's. Then I still believe that they put up a much much cheaper mascarade than the TSA, and that useless for useless, you might want to consider the cheapest.

That was just an aside though, I'm still convinced that their security thing is not just a mascarade.

<comment><USER8> _Then I still believe that they put up a much much cheaper mascarade than the TSA_

Not even close. Israel spends close to 10 times as much on security pr. passenger compared to the US. Sure the absolute number is smaller, but that's because Israeli airports handle ~1 million passengers a year compared to US' ~700 million a year

<comment><USER9> > Israeli airports handle ~1 million passengers a year

That sounds too few. Even if you only consider individuals rather than flights that means that less than one in five Israelis flies any given year. Norway, with about the same population size handles 40 million passengers a year. Now there is virtually no domestic traffic in Israel because its small size, but it also has a lot more tourists than Norway.

<comment><USER8> I just rechecked the number and you're right, sorry. The numbers I quoted where only for El Al (the largest national carrier). The total number of all airlines is a bit over 13 million. But hey what's an order of magnitude between friends :)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> Just more security theatre and corrupt politicians (guess who runs the companies the scanners are bought from).

The reality is that they can't keep weapons and drugs out of prisons where there are no freedoms, and there is plenty of time to be as invasive as you want to visitors and residents.

Additionally the security system has failed if the point you pick up the bad guys is by some low paid grunt at the airport staring at a screen. The point of airport security should be to catch occasional idiots and that is about it - something any metal detector can do.

The reality is that anyone determined can get through any security system and wreak terror. The response is to not be terrorised. It is to live well and not in fear. It is to have made their actions completely pointless.

<comment><USER11> _Airport security is a stupid idea, it's a waste of money, and it's there for only one reason: to make white people feel safe! That's all it's for. To provide a feeling, an illusion, of safety in order to placate the middle class. Because the authorities know they can't make airplanes safe; too many people have access. You'll notice the drug smugglers don't seem to have a lot of trouble getting their little packages on board, do they?......_

—George Carlin, "Airport Security"

<comment><USER12> Isn't the psychology half the battle? You need to convince people there exists a reasonable effort to provide some sort of security --even if it's more psychological security than not. In addition, as others have pointed out it's also to filter against known (easily replicated) attacks.

<comment><USER10> > Isn't the psychology half the battle?

That is why it is known as "security theatre". The wikipedia page is comprehensive:

<http://en.wikipedia.org/wiki/Security_theater>

<comment><USER12> I mean, that psychologically, it's like a placebo. While it may or may not actually prevent anything that people believe it does is what's important.

Somewhat similar to crosswalk buttons which don't actually provide jumping the change of traffic light phase queue.

The term Security Theater sounds dismissive and implies there is no actual benefit. It seems in the least debatable to me.

<comment><USER13> "The term Security Theater sounds dismissive and implies there is no actual benefit. It seems in the least debatable to me."

it, in fact, does not provide any benefit. Making people "feel" safer, will only worsen the problem when they finally find out that they aren't actually safe (due to an attack happening).

<comment><USER12> I would argue making people feel safer (or comfortable) to fly is a benefit they are willing to trade in for whatever might happen. They have nothing to lose. If they don't do the "theatrics" people might choose to fly less due to a perceived lack of security effort. So, in the meantime, while the theatrics maintain a semblance of security, the airline industry gets the benefit of doubt.

Once the bubble is burst, that'd be another issue. Still, I think people will rationalize it as "well, we got X years use out of the system."

Out of curiosity, what _do_ you think has accounted for the safety record? Obviously you don't believe the theater has helped. At the same time I don't believe that people (AQ) have not been plotting against transportation assets. I would ask, why would they abandon that path, if they thought the theater was just theater? Are there other mechanisms keeping them at bay?

Additionally, even if the theater contributed nothing to security and all the heavy lifting was accomplished by other means -intel, profiling, whathaveyou, the theater would act as a signal to travelers that _something_ was being done. It would be the customer-facing expression of the work being done behind the scenes --a kind of proxy so that what's actually being done --methods and so forth could remain opaque.

<comment><USER14> I think the main reason for the safety record is that there just aren't that many terrorists out there. Of course, increased security raises the bar, so it would be more appropriate to say that there aren't that many terrorists out there with the resources and skills to pull off an attack.

But if airport security actually hindered many real attempts, why don't we hear about them?

Right up until 9/11 you could ask the same question, what accounts for the safety record? After all, many years had passed without any hijackings or bombings.

Then the bubble burst, and the only possible response was to increase security measures. Any politician not supporting such measures would have been torn apart by the media if a new attack had occured.

I think that airport security _does_ provide a deterrence to unskilled terrorists, and it provides real security against some random mentally unstable guy trying to wreak havoc.

I think everyone agrees that security theatre helps people feeling safe. It's the amount of money being spent on it that is at issue. We'd all be safer if the money spent on ineffective body scanners were being spent on making roads safer, or perhaps by building more schools and hospitals in areas of political conflict.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> Hi Guys, Jon here, the creator of the TSA video you're discussing. Thanks for picking this story up. As a tech guy myself, I'll be happy to answer any questions you have.

\--Jon

<comment><USER16> Is it possible that the TSA actually observed the metallic object at your side, but decided that it wasn't threatening based on its shape?

<comment><USER17> The TSA generally detects my watch when I forget to take it off, and insist on rolling up my sleeve and checking despite its obvious location.

I'm not sure how shape could imply safety, either, since anything could have been concealed inside of it.

<comment><USER18> Well, what about the Casio F91-W? [http://en.wikipedia.org/wiki/Casio_F91W#Claimed_use_in_terro...](http://en.wikipedia.org/wiki/Casio_F91W#Claimed_use_in_terrorism)

</comment></comment></comment></comment><comment><USER19> You have to be crazy brave or crazy ignorant to do this kind of analysis and share it in the USA.

At a minimum his name will now show up on the no-fly list for the rest of his life. If he realized this, I am in awe.

<comment><USER15> Crazy guy who did this here. Before I made the video, I spent the last 18 months manipulating the court system against the TSA. The TSA does not want to add me to any no-fly list (or more realistically, the "selectee list") because every time a legal battle starts, I'm entitled to more and more discovery in court, and more and more of their lies come out.

\--Jon

<comment><USER15> You guys are very welcome... I appreciate the support, and I feel like on this board it's coming from my own people, so thank you!!

<comment><USER20> This may not be the ideal forum for lighthearted sillyness, but I still think you have won 1000 internets and a life supply of adorable kittens. Well done ;)

<comment><USER21> You are lucky that this thread is about a vaguely tech-related external topic. In any thread where money was at stake, you would be down-voted for making it more difficult for money and entrepreneurs to find each other.

In the future please limit your comments to topics _relevant_ to the ongoing tech bubble and attendant charlatanism.

<comment><USER20> I am really, really sorry for risking upsetting the frictionless flow of money in the pursuit of comedy.

</comment></comment></comment></comment></comment></comment><comment><USER22> Rather than get rid of the body scanners, i think they'll simply just require you to stand sideways as well, or add a scanner on the side of the machine.

<comment><USER15> Creator of the video here. The other posters are correct that it's not simply a color change, it's that the backscatter effect reflects similarly from the object as it does from the wall of the device. There are no quick fixes: standing sideways might work, but now screening time doubles (which is actually a big deal to the TSA), the radiation dose doubles, and the machine's software isn't designed for that. There are different scanner manufacturers that have made machines that address this problem, but do so with 5 scans -- 5 times the radiation. Plus, there are other faults to the nude body scanners, and this is just the one I chose to publish. The scanners need to go.

<comment><USER23> Also, if you're NOT opting out of every scan, you're not helping the cause. You NEED to opt out of every single scan every chance you get, otherwise they'll eliminate the option and say "well, people seem to be OK with this since no one is opting out!"

Opted out at SFO and DTW and each time it was no big deal.

<comment><USER24> I go through security an average of about four times a month. I opt out any time I'm not in danger of missing a flight. Some airports are friendly and expedient about it, others (most recently, Austin) had me wait for about fifteen minutes before finding someone to do the pat down (while I tried to watch my bag/laptop/phone on the other side of the scanner).

<comment><USER25> I opted-out at SEA a few weeks ago and four old British ladies on their way home stared at me the entire time. They looked rather horrified.

Not sure if they thought I was a terrorist or if they were as disgusted by the whole situation as I was.

</comment></comment></comment></comment></comment><comment><USER26> I once got "sharp weapons" (a manicure kit) through London's Heathrow airport.

I was connecting from Shanghai and had stupidly left a souvenir manicure kit in my bag... they found it, but after some pleading allowed me to keep it.

As per usual, I picked up a bottle of liquor at the duty free in Shanghai before I left...

Not sure if I was meant to inform them I was connecting, or they simply forgot to do their jobs... but apparently I was meant to have my liquor in a sealed "official duty free" bag when I landed at heathrow.

Long story short, I got the full attention of about 10 security officers when checking through security in Heathrow. They were entirely concerned with the liquor I had purchased in shanghai, and were so vocal about the whole thing that I personally witnessed the xray machine man turn around and see what the problem was.

Everybody was trying to be the next big hero, when the only problem was I didn't have the right security bag, and who knows what else I might have had in my carry on? (Hint: I had "weapons", I mean nailclippers).

</comment><comment><USER27> Summary: The background around the person is black in the scanner.

Place the object slightly distant from the person so it's also in the background (i.e. not silhouetted by the person), and the object and the background will look the same to the scanner.

</comment><comment><USER28> A pretty good video, but it is not quite convincing enough for me to email to family and friends. Still, kudos to the guy who did it.

BTW, the first time I went through the backscatter scanner, I had a killer sinus headache within about 30 seconds. I went from feeling great to shitty almost instantly. Anyone else experience this? I have refused (opted out of) the scanner ever since. My many opt-out experiences have all been OK: a quick personal search and I am on my way. That is what I recommend to my friends and family to do.

BTW, part 2: the TSA corporation employees at the security checkpoints are not the problem, so be polite to them. The problem is the bribery and corruption that lead to the privatization of airport security.

<comment><USER29> _"the TSA corporation employees at the security checkpoints are not the problem"_

Yes, they are. "Just following orders" does not hold any water:

[http://en.wikipedia.org/wiki/Superior_orders#Nuremberg_Trial...](http://en.wikipedia.org/wiki/Superior_orders#Nuremberg_Trials_after_World_War_II)

"The fact that a person acted pursuant to order of his Government or of a superior does not relieve him from responsibility under international law, provided a moral choice was in fact possible to him."

 _"so be polite to them"_

No, THEY should be polite to ME. They are public servants.

<comment><USER30> Why do so few people get this? Why, for example, do people continue to insist "the war is unjust, but I still support our soldiers"?

<comment><USER31> They're the same soldiers we would expect to fight the just wars. It's not as if they're the ones starting these things.

</comment></comment></comment></comment><comment><USER32> TSA should use MRI scanners - no radiation exposure and no metal objects are allowed.

As an added bonus they can use fMRI mode and ask following questions:

        1. Are you a member of a terrorist organization?
        2. Where is the Weapons of Mass Destruction?

<comment><USER33> Standing near a MRI machine is also likely to erase the magnetic material on any of your credit cards -- plus they could never shut off the machine. There's probably a bunch more obvious reasons why MRI was never chosen.

And if some metal object were to get stuck on the machine, they'd need a team of people to remove it. Every airport would also need to keep a good stock of liquid helium for the cases where machines need to be shut down.

</comment></comment><comment><USER34> I wonder if the color of the background is a simple variable or is based off physics rules? Does anybody know if they can change the color to something different?

<comment><USER27> I think it's checking how many x-rays are reflected back to the machine.

But since the background and the object are both metal they both reflect equally, and are indistinguishable.

<comment><USER35> The background is not metal, it is open space that does not reflect xrays. The targeted metal objects also do not reflect xrays.

It is more intuitive to say that these machines are not threat detectors (like metal detectors), they are people detectors. The lack of a person is considered to be a threat within the bounds of their silhouette. Place a threat outside the silhouette and it is undetectable.

<comment><USER12> So what would happen if they had a wire mesh (chicken wire, for example) for the background? An interruption in the wire mesh pattern would indicate an anomaly. They could change up the pattern every so often to thwart any attempt to match the pattern --even if it woud be difficult to match up.

<comment><USER35> The scanner images both sides of a person at the same time. To add a background, you would have to have two poses from the same side, effectively halving throughput and complicating the imaging procedure.

</comment></comment></comment></comment></comment><comment><USER36> Simple, yet brilliant; equivalent to a side channel attack on most systems. I can't believe nobody had noticed that before, including myself.

</comment><comment><USER37> The supposition here is that since magnetic scanners are being removed and replaced with xray scanners, which do not have the feature of detecting metal with magnetic fields, the new machines are more ineffective than the old magnetic scanners. This therefore single-handedly invalidates the xray machines and they should be removed.

The entire video is produced in such a way as to say this is a major discovery and that it will single-handedly trigger Congress and the TSA to backpedal on what they've been for the last 10+ years.

I disagree.

To state, I do not like the TSA. I do not like Congress very much. I have very little respect for the people that are commonly elected to government because of the long history of ineffectiveness, ignorance, and stupidity that continually seeps out when they talk and make "decisions". The best I can say about our government is that it mostly keeps the _really_ bad people out of power. The kind that become Caesars and Napoleons and Hitlers and Pol Pots.

My issues with this video are that its too filled with a political tilt. There is a clear play on emotions and rhetoric with less emphasis on the purported vulnerability being shown.

Further, the actual nut of the video, i.e. the demonstration of the vulnerability, is so underwhelming that its impossible to take the video in its entirety seriously. First, the most important part where the speaker is actually going through security is sped up past the point of being intelligible. That's the part that might actually get some interest.

If the speaker just showed that clip in its entirety, demonstrating how to attach the pocket and further how easy it is for him to get through the scanners, and providing pure technical notes as to the background color and such, it would be easier to take seriously.

As it stands, any reasonably competent person's first thought should be "So we just put a magnetic scanner before or after the x-ray scanner. Ok, problem solved." Other thoughts might be, ok so make people stand sideways, change the background color, etc. Obvious tweaks to the system to patch over this problem.

The video doesn't address this simple point and goes on to argue that no metal detectors invalidates the entire concept of xray scanners. Its a very bad premise to base such an argument on.

The argument against xray scanners needs to be based around the already-proven points:

        *Violates people's privacy
        *Security theater (which the Pocket Problem falls into)
        *Possible negative health consequences for passengers and workers
        *Over-reaching government bureaucracy
        *Etc.

So in summary, I _don't_ like this video because it shows nothing really new, makes a large claim on very little foundation, focuses attention on the wrong things, and is counter-productive to the task of convincing enough "policy makers" to start doing the right thing.

<comment><USER38> I also agree there is too much political stuff in the video (which I pointed out when I shared it on facebook). A simpler argument against the scanners is that they _fundamentally_ are less effective at detecting major threats than are metal detectors. Thus whatever minimal security holes they close, they open up larger ones. Moreover these are inherent in the technology so it isn't a question of just fixing a few things.

I am not entirely anti-AIT. I think the machines can have a place, for those for whom there is some reasonable suspicion of wrong-doing, and following a metal detector. But the way they are implemented poses severe privacy and security problems, as if someone decided you could solve security problems by buying fancy machines (an unfortunately common problem).

The problem is that as long as the federal government sets standards for airport security, this will be a problem. It doesn't matter if it is the TSA or the NTSB making these decisions--- big corporations will pay lobbyists to get the message to them that their machines are better than the old stuff and therefore should be used in this way. It matters even less if the TSA agents are doing the screening or not, except that with them monopolizing that market there are fewer voices against.

<comment><AUTHOR> > I also agree there is too much political stuff in the video

An honest question: How does one de-politicize an obvious political topic?

<comment><USER39> It's not so much de-politicizing (as you say, it's inherently political), but how much editorializing commentary you add on top of it. It's somewhat a matter of taste, but I think the same content could've been conveyed with less editorializing, which would've made it easier to share with people not politically predisposed to agree.

</comment></comment></comment></comment><comment><USER40> Every time I've gone through the new scanners, I've had to go through a metal detectors first, which would pick up this object. Anyone know if there are actually airports that use only the new scanners without a metal detector?

<comment><USER41> As far as I can recall, people were not required to go through the metal detectors at these airports: MIA, FLL, BNA, EWR, PIT. MIA (at least last time I was there in December) has some lines that do solely metal detectors and some that do solely scanners. That is, until the scanner lines start to get long and they start putting everyone through the metal detectors.

I've always opted out (except once at EWR when I was with a large group and the screener took longer than the 5 minutes I was willing to wait) and about half the time I've gone through the metal detectors. In fact, last week at PIT, I tried going through the metal detector on my way to the pat down area and was told to go around it.

</comment></comment><comment><USER42> It has never been about real security. It's about the huge load of money that is funnelled through TSA who are set to spent it all, regardless of what they receive, on these magic wand devices or just angry personnel. Another reason is that security checks allow for arbitrary control of passengers. It's a powerful mechanism, just like a country with enough laws to make everyone guilty but where those laws are only enforced when "necessary", on a select few people. It's like legalized totalitarianism: all backed up by law and rules but the outcome is the same.

</comment><comment><USER43> One word: lobbyists.

Nearly _everything_ of this type is a giveaway to some private vendor with lobbyists in Washington. Whether it works or not is secondary to the primary purpose: handing money over.

</comment><comment><USER44> So now they'll just require two scans, one turned 90 degrees.

How hard would it be to construct a prosthetic fat suit that's invisible to scanners? I bet not very.

</comment><comment><USER45> His statement about no one boarding a plane in the US with explosives seems to be false: [http://www.usatoday.com/news/nation/story/2012-02-16/underwe...](http://www.usatoday.com/news/nation/story/2012-02-16/underwear- bomber/53115186/1).

Although he seems to be right that the detectors are useless since the guy who was pretty incompetent (set his underwear on fire) and still managed to get it on board a plane.

<comment><USER46> The "underwear bomber" boarded in Amsterdam; the plane was an international flight _to_ Detroit.

</comment></comment><comment><USER47> Does the scanner not pick the object up at all (I don't see why this would be true), or is this simply a matter of needing to change the background color?

<comment><USER27> > Does the scanner not pick the object up at all (I don't see why this would > be true)

The object and the background both look the same in reflected x-rays. It's not just the background color.

<comment><USER47> In that case, couldn't they put a non-reflective material behind the person being scanned?

Perhaps that would interfere with their ability to scan you from both sides, but if they have a reflective material behind you it seems like they must already have a way to scan through/around that.

</comment></comment></comment><comment><USER48> It's interesting how so much is focused on _airport_ security. Let's assume that we figured out how to make airline terminals 100% terrorist-safe and completely secure, no exceptions. (Yeah, it's a fantasy, but stay with me...)

At that point the terrorists will give up on the airports and pick something different. Remember that the first attack on the WTC, and the (domestic!) attack on OK City were TRUCK bombs. What's to stop someone from hijacking a tanker truck and detonating it? Trucker school _must_ be easier than pilot school, right?

And if the terrorists are still hot and heavy for airplanes, they could bring down an airplane without actually going through airport security. At most airports I know of, the planes are vulnerable to ground-based attack on takeoff and landing. Not the same as crashing one into a building, but it seems unlikely that that attack is repeatable.

</comment><comment><USER49> I have a great solution to this. Its cheap and easy to set up. Just tell people that planes are a bit dangerous and might well be stacked with terrorists and bombs. Fly at own risk. Be grateful if you land. No? Oh well.

In all seriousness though, I do wonder given the above, how much passenger numbers would drop. Flying is known to be very safe, and there was a statistic that showed more people died after 9/11 than in 9/11 due to people taking to the roads through fear of flying. Plus, there are not that many planes blown out of the sky by terrorists. If they did nothing, planes would still be statistically safe. Its kinda like those stats that show people drive in a more reckless manner because they now have to wear seat belts and have air bags etc. Take that lot away and people tend to drive safer.

No, Im not suggesting and of this, just food for thought.

</comment><comment><USER50> I find it a little strange that, at present, more than 400 people have upvoted the link, but the linked youtube video has less than 400 views.

Edit: I am not trolling. It was just an observation that I found interesting even though it may not directly add much to the conversation.

<comment><USER51> Popular videos stop having their view count immediately updated at around 300 views. There's probably some duplication / distribution that kicks in to spread the load, and reliable statistics then requires aggregation. Happens very predictably on new videos in some of my YT subscriptions.

</comment></comment><comment><USER52> The introduction to <i>Thinking, Fast and Slow</i> by Daniel Khaneman immediately made me think of security theater. He starts by discussing how humans are generally rational, but intense emotions of fear, anger, etc. often cause us to act completely irrationally. While I imagine the book goes on to describe how the individual can stop emotion from perverting what should be a rational judgement, I wonder what defense we have as a society against making bad, emotional decisions on things that shouldn't involve emotions. I understand reactionary emotional decisions and opinions tending to snowball behind them, but why does it take so long, if at all, for rationality to take over?

</comment><comment><USER53> I am a frequent flier and hate this stuff as much as the next guy, but doesn't this just argue (from the TSA point of view) that the TSA should be using BOTH the metal detector and the body scanners?

</comment><comment><USER54> I for one would just like to take a moment to welcome our new guests, the intelligence observers!

May you be inspired by the quality of debate and not may you not add any of the good HN folks to any lists.

</comment><comment><USER55> Most people with critical thinking are hardly surprised by this; this needs to be shown to average Joes, not hackers.

Hence I suggest to vote this up on YouTube, rather than / in addition to HN.

</comment><comment><USER56> My guess is in the future...you will have to walk through both metal detectors and body scanners! I am not sure, if they will dump the body scanners based on this video!

</comment><comment><USER57> From Bruce Schneier's blog scheier.com

FBI Special Agent and Counterterrorism Expert Criticizes the TSA <http://gmancasefile.blogspot.in/2012/01/tsa-fail.html>

([http://www.schneier.com/blog/archives/2012/02/fbi_special_ag...](http://www.schneier.com/blog/archives/2012/02/fbi_special_age.html#comments))

</comment><comment><USER58> Interesting video.

However, I would like to have seen a controlled experiment – i.e., with the same metallic case placed in a breast pocket. Trials with only that variable changed, and yielding a different result (presumably being pulled for patdown?) would more conclusively demonstrate the hypothesis that with the side-pocket technique "anyone can beat them with virtually no effort."

</comment><comment><USER59> Not made worthless -- revealed as worthless.

</comment><comment><USER60> I can tell you what will happen next - instead of shutting down the whole nude-scanner program, more money will be fed into developing enhanced version of nude-scanner with built-in metal detector. All old scanner will be scraped, more billions will be pushed toward TSA to buy more nude-scanner upgrades.

</comment><comment><USER61> Seems like they should just combine Body Scanners + Metal Detectors + Pat Downs. A weakness in one tech doesn't make the whole stack worthless.

Please don't interpret this comment as approval of the body scanners or the pat downs. I'm just trying to express that the body scanners have not been "made worthless".

</comment><comment><USER62> It's even easier. I was carrying a metal external hard drive, put it through the belt with no problem. You could easily take out the HD and put some explosives in there instead.

 _edit_ Also, if combining fluids really is a threat, they're allowing liquid medicine bottles, now. It really /is/ theater.

<comment><USER63> I've had bottles of liquid in my carry on several times by accidents - <USER3> happens when you travel alone with a toddler and get slightly frazzled. They've never caught it.

</comment></comment><comment><USER64> So they should keep using the metal detectors then. I wonder if they'll make people go through both.

<comment><USER65> The ONLY way that they've been able to sell this to fliers is that it gets rid of the existing process, and maybe some time soon we'll be able to keep our shoes on.

If they now make this sequential, then it's twice the time, twice the staff to manage, and twice the inconvenience -- you now have people queueing up between the two screens, passing one and failing the other, etc.

</comment></comment><comment><USER66> Curiously, once upon a time the U.S. federal courts considered a police crotch grab offensive behavior:

[http://federal-circuits.vlex.com/vid/oswald-blake-leonard- ea...](http://federal-circuits.vlex.com/vid/oswald-blake-leonard-eason- defendants-37283218)

</comment><comment><USER67> In case some of you haven't seen this video.

Live on Germany TV man walks through body scanner and builds explosive with everything that passed on the scanner.

<http://www.youtube.com/watch?v=idICUSiGcqo>

<comment><USER68> He also said that in airports, a full scan also scans the sides of the person, in which case the video producer would not have gotten through. So... how often is a "Full" scan done?

</comment></comment><comment><USER69> Sadly I don't think the scans are their to protect lives, but rather to protect the machinery (and the industry.) Planes are expensive. It's trivial to kill people elsewhere. I just loathe the rhetoric.

</comment><comment><USER70> All he did to prove his point was smuggle a small empty metallic case in his pocket and he expects all the airports to take down their scanners as a result... Makes total sense.

</comment><comment><USER71> It wouldn't be hard to get a profile view of airline passengers by having them spin or installing additional scanners. Not that I disagree with this guy.

</comment><comment><USER72> Just hope that somewone will be helt accountable for it. Anyway, the link to the relevant xkcd:

<http://xkcd.com/651/>

</comment><comment><USER73> ...so what if they get images from four sides instead of two. Doesn't that defeat the "side" method demonstrated in the video?

</comment><comment><USER74> What really blows my mind is that Bin Laden pulled 911 off with about $400,000 - about the price of about two porno scanners.

</comment><comment><USER75> so, if i face the scanner frontally, and the object is on my side, the object can be lost in my contour. then the TSA guy says, "rotate to right". now that object hidden on my side might as well have been taped to my forehead - <USER3> was lost in contour is now nicely in silhouette. or, i go through metal detector first, then get scanned.

no big deal?

</comment><comment><USER76> If the TSA has to investigate abnormalities with a pat down, you might as well opt for the groping to begin with.

</comment><comment><USER77> good thing you are hosting your blog on wordpress.com. Hope they keep it available!

</comment><comment><USER78> it's amazing how all governments, and monopolies are alike, whether it's US or not

they will get away with it, until smacked really hard - which is almost impossible to do

</comment><comment><USER79> What if the scanners actually take a 360 degree xray?

</comment><comment><USER80> $1B saved by having them take a side profile shot...

</comment><comment><USER81> Thanks. Now they'll just make us do both.

</comment><comment><USER82> most ptz ever?

</comment><comment><USER83> epic fail indeed...

</comment><comment><USER84> To everyone saying that now they will make you turn sideways i have to tell you that there are many blind spots even with those two angles, think about "corners" of yourself.

An example: <http://imgur.com/Q1DTp> (The rolled paper represents some sort of tube)

The point is that many angles are required (or another kind of "solution")

<comment><USER84> Looks like someone could put it under their skin and the metal object will go unnoticed; heck! a terrorist could use someone else's skin...

</comment></comment><comment><USER85> While I think the TSA is ridiculous, can't this be solved by having the people stand at 45 degrees to the left or right, chosen at random?

<comment><USER86> That's too smart an idea. Get ready for four images instead of two. And then when somebody sneaks something past that, we'll go eight.

</comment></comment><comment><USER87> I always thought that the purpose of the scanners was to catch currency entering and leaving the country, not to catch terrorists.

</comment><comment><USER88> Nobody's gonna mention Snow Crash? Really? Come on guys...

</comment><comment><USER89> All they have to do is make you turn sideways. This video is a well intended but weak attempt

<comment><USER90> They do not make you turn sideways.

</comment></comment><comment><USER91> What a bizarre obsession. The only reason this is at the top of HN is because the word "nude" is (misleadingly) in there.

Obviously airline security in the US is deeply flawed because look at how many planes are being hijacked or blown out of the sky by terrorists! I mean there have been -- wait, let me count -- ZERO on American soil since September 11, 2001. With about 28,000 commercial flights _per day_ in the US alone, approximately 3,800 days after 9/11, that multiplies out to 106 million fights without a successful terrorist attack. Not a bad batting average if you ask me.

With apologies to Churchill, I guess this airline security regime is the worst system there is -- except for all the other systems.

<comment><USER92> 1\. "Nude Body Scanners" is a common name for the backscatter machines, and is generally understood as such. I'm not sure if you're asserting that people are randomly upvoting this article on the off chance it contains naughty material, but quite a few people—here and elsewhere—are heavily interested and involved in the TSA's use of these machines due to their isolated and cumulative effects on civil rights, so it shouldn't be surprising that it's at the top.

2\. The TSA is not the only system keeping terrorists off planes. We don't have a "double-blind survey" where half the airports were protected by the TSA and the other half weren't, so we can't make any kind of sensible comparison. (A better metric would be, "How many attempted terrorist attacks were directly _stopped_ by the TSA during the airport security checks," and it's widely accepted that the answer is, "None.")

3\. These new backscatter machines were not put in place immediately in 2001. A great deal of the time you've mentioned involved elevated security on the part of the TSA, but not specifically through the measures being discussed here, which _decrease_ the actual security of the planes by allowing people to bring items through that would have been caught by earlier measures (c.f. the article being discussed.) A case can be made that the TSA's post-9/11 response has been useless and possibly harmful, but this article is specifically making the point that the backscatter machines are problematic.

4\. There have also been zero hijackings in _other_ countries, as well, and those countries have different (and usually much less invasive and less expensive) security measures. If we provisionally accept that it _is_ the TSA, and not the other agencies involved, that is preventing attacks, why does it necessarily follow that the _only way_ to keep planes safe is the drastic measures taken by the TSA? (I can quite easily rid my house of mosquitos by burning it down, but that doesn't mean the _only_ or _best_ way to keep my house free of mosquitos is arson.)</comment></comment>


It's no fluke – iPhone closes the gap on Android in U.S. - <AUTHOR> http://gigaom.com/2012/01/18/its-no-fluke-apple-closes-the-gap-on-android-in-u-s/ <comment><USER2> I found this an odd comment: "People are willing to buy a phone a year or two old at a discount rather than a new device from a competitor."

It's like the concept of having more than one level of product is alien to them and they're having trouble processing it. The only way they can describe an 8GB iPhone 4 (a configuration never before available) is as a "year old phone".</comment>


The Flying Phantom: $40k sailboat levitates two feet above the waves - <AUTHOR> http://www.gizmag.com/flying-phantom-hydrofoil-catamaran-sailing/31143/

<comment><USER2> I've rode a hydrofoil on an air chair, and on a tow surf board. It is a very surreal feeling, almost as if you are flying. Choppy water has no effect on your stability, as long as your foil doesn't pop out of the water. When that happens you tend to fall pretty hard. I wonder how the sailors are able to control the use of the foil. If one of the foils was to pop out of the water, hold on.

<comment><USER3> There is a probe dragging in water at the front of the boat: [http://www.sailmagazine.com/learning- fly-0](http://www.sailmagazine.com/learning-fly-0)

When the boat is too high, the probe goes out of water and automatically adjust the foil angle to lower the boat.

<comment><USER2> Ingenious. thanks for the link.

</comment></comment></comment><comment><USER4> Craziest looking foiling boat I've seen is still the International Moth: [https://www.youtube.com/watch?v=1SN1gSkqvy0](https://www.youtube.com/watch?v=1SN1gSkqvy0)

<comment><USER5> I had a very early moth (before they put foils on them) which was still statically unstable. Inland waters with unpredictable winds meant you could go from strong wind to nothing almost instantly and with very little indication it was going to happen.

I remember spending a lot of time in the water...

<comment><USER6> I leant to sail in a Moth (actually my Dad's).

It was a 1960's tunnel hulled skiff, which he got cheap because they were banned for being too fast (ironic for what came later to the Moth's class).

It's a great boat - stable, and _fast_ when you want it to be.

<comment><USER5> Very cool. The thing I really like about the early ones was that as an experimental class, you could get boats that were incredibly different to one another but still technically "moths". Much like early formula racing, there really was the latitude to tune the boat as well as your technique.

Not that I ever did with this one, it was about thirty years old and took all of my effort just to learn how to keep it upright. You also couldn't moor it anywhere because it would fall over if not moving which meant leaving it on its side at the jetti...

<comment><USER6> Yeah, and the "experimental class" thing was why I never really understood why they banned the tunnel hulls. It's too bad in a way, because in some conditions they might have been competitive with the unstable skiffs that dominated until the foils came along.

I'm in Australia, and we just sail off the beach, and the Scow shape was perfect for that.

There's an excellent discussion of the design at [1]. I have to say I'd love to try out a foiling Moth one day though.

[1] [http://www.moth.asn.au/forum/3-hull- shape/533-scows](http://www.moth.asn.au/forum/3-hull-shape/533-scows)

</comment></comment></comment></comment></comment><comment><USER7> From our office in Auckland we got to watch the massive AC72's trialling in the harbour before shipping off to SF last year. They're unnaturally fast, skimming along _much_ faster than the wind. Amazing machines.

<comment><USER8> That is amazing and I'm jealous you got to see them in person. I wonder how long it will be before all smaller dinghy races will start to be foiling - I'm picturing a collegiate dinghy team race on foils and it would be awesome to watch.

As a side note, I'm extremely happy that today my two loves, technology and sailing, have come together in a wonderful turn of events.

<comment><USER9> That's been happening for a while now. :)

[http://www.youtube.com/watch?v=k12ALBjQ7zM](http://www.youtube.com/watch?v=k12ALBjQ7zM)

</comment></comment></comment><comment><USER10> Back in the early 1970s the Canadian navy tested a small hydrofoil ship for antisubmarine work and coastal patrol. It could travel at 60 knots. [http://en.m.wikipedia.org/wiki/HMCS_Bras_d'Or_(FHE_400)](http://en.m.wikipedia.org/wiki/HMCS_Bras_d'Or_\(FHE_400\)) At the time it was the fastest unarmed naval vessel in the world.

</comment><comment><USER11> very neat, but s/levitates/hydrofoils

<comment><USER12> The title takes a reasonably interesting boat and ruins it with inane link bait. Sometimes when you try to make something great look bigger than it is you've ruined it.

<comment><USER13> You're right. I was entirely fooled by the creative language in the article's title. Expectations shattered, I started drinking again after 6 months of sobriety.

<comment><USER11> :)

</comment></comment></comment></comment><comment><USER14> TurboJET in Hong Kong use Boeing hydrofoils (Jetfoil) between HK and Macau [1][2]. They're great. Once you get to cruising speed, they lift out of the water and the ride becomes incredibly smooth. It's 50 miles and the trip only takes around an hour.

Unfortunately, they seem to be being slowly replaced by non hydrofoil craft, presumably due to lower operating costs.

[1] [http://en.wikipedia.org/wiki/Boeing_929](http://en.wikipedia.org/wiki/Boeing_929)

[2] [http://en.wikipedia.org/wiki/TurboJET](http://en.wikipedia.org/wiki/TurboJET)

</comment><comment><USER15> What happens if you are hydrofoiling 2ft above the water and hit a 3ft wave, especially at speed?

<comment><USER16> [http://youtu.be/sZVIj5TUSKE](http://youtu.be/sZVIj5TUSKE)

<comment><USER17> As far as I can see this doesn't answer the question.

<comment><USER16> Judging by that video, it seems jarring, but not necessarily catastrophic. I imagine the space of water that would have to be displaced by pushing the boat vertically is heavier than the water that manages to hit the hull and affect its vertical position.

</comment></comment></comment></comment><comment> luka-birsa I so want to get one of these!

Anybody knows if it is "super hard", "insanely hard" or "do not apply without an olympic medal" to sail one of these?

</comment><comment><USER18> Hydrofoil kiteboard:

[http://vimeo.com/17754852](http://vimeo.com/17754852)

</comment><comment><USER19> Looks fun and dangerous. Move the tiller the wrong way at 30 knots and you're going to have one hell of a crash.</comment>


The Code Is Just the Symptom - <AUTHOR> https://medium.com/@rubyghetto/the-code-is-just-the-symptom-c77f43b29320

<comment><USER3> It is amazing how culture problems often start with the CEO. Sometimes, non- technical CEOs are very good at their own speciality (selling, motivating, etc.) but extremely bad at systems thinking.

Other times, CEOs hire yes-men and yes-women below them and everyone is afraid/unwilling to tell the CEO the truth.

Other times the company has raised a ton of money and attracts people who would otherwise not work at a startup and whose major focus is resume building and moving to the next job.

If the CEO is the only person meeting with investors or only trusts one or two other people to meet with them that is another big concern. It means there is likely no transparency into the actual team and what is actually going on, which means the CEO is likely BSing the investors.

All of these are reasons why you should not work at a startup if you do not 100% believe in the CEO. Be skeptical b/c most startup CEOs really do not have a track record of insight and integrity. If the CEO is aloof or seems out of touch and not someone who you think would really enjoy talking to you about your job and who respects the work you do, be wary.

<comment><USER4> Replace CEO with "owner of small business" and this is what I see endlessly. The chops needed to build a business and sell a product are a long way along a spectrum from how to grow that business and how to keep the codebase stable.

<comment><USER5> Agreed. Amazingly, some of them are even "technical", but have no concept of technical debt, and zero respect for software engineering practices that don't lead directly to new features. Either they never understood these things in the first place (since this is usually not taught as part of a degree in CS or EE) or they've long since forgotten them.

<comment><USER6> You can be "technical" without a need for a concept of technical debt.

\- Indie video game designer/developers, for example, live in a world where everything they write is a one-off product that will ship, at most, a v1.0.4 six years after v1.0.0. To them, code is a medium for crafting an experience, and whether the code is of quality is immaterial as long as it creates the correct experience.

\- Data scientists (and bioinformatics pepole, and a few other similar groups) live in a world where everything they write is effectively a script-as- experimental-apparatus. If the script is producing output conforming to the proposed experimental method, then it's done. They run it, then discard it. It's not usually even under version control; only recently have such scripts been considered worth including for purposes of peer review and replication.

And there are other examples. I'm not saying that these kind of people are "software engineers"—engineering of any kind is never even a consideration for them; whether the product is well-engineered has no impact on their livelihoods.

But these people frequently _are_ lumped into the category of "programmers", and that tends to confuse this sort of discussion a lot. The "software industry" doesn't just contain engineers doing engineering (well or poorly); it also contains prototypers and illusionists and tinkers and scientists, all working to their own criteria of art, none of whom will have any reason to pick up a single shred of engineering knowledge, even with decades spent in their own industries. And then these people apply for "programming jobs", and we wonder why they don't know what git is or how to properly modularize a codebase for maintainability.

It's a communication problem, I think. We need to stop calling everything we're doing "programming." Maybe we need an entirely new verb for doing software engineering, of the kind you do when you're writing something like car firmware, or Amazon S3, or the Googlebot. "Programming" is about as precise in describing that as "doing math" is in describing the invention of the lambda calculus.

<comment><USER7> I've toyed with the idea of having separate titles & job descriptions for "Software Features Engineer" (those responsible for pumping out user-visible features) and "Software Infrastructure Engineer" (those responsible for the long-term health of the code). In my experience, they really are completely different roles, down to the languages used (features engineers tend to use Python, Ruby, JS, and other dynamic languages, while infrastructure engineers tend to use C++ or Java), attitudes, personality types (infrastructure engineers tend to be much more attentive to detail), priorities, and points in the lifespan of the product when they are most useful. There's already precedent for creating a new job title to solve an organizational problem, eg. Site Reliability Engineer.

Many big companies have such a split in their org chart, with separate "infrastructure" and "features" teams reporting up to different managers, but IMHO that's the wrong split. Very frequently you want a cross-functional team with both infrastructure & features engineers on it, but they remain different _roles_ , just like you might embed a UX designer and UX researcher on a product team even though their job descriptions are very different.

<comment><USER8> Sir nostrademons,

"Software Features Engineer" vs "Software Infrastructure Engineer" is an excellent differenciation. Actually I'm an SFE and I have always felt that I am not a real programmer. SFE will always write more-shiny less-durable features, more often working under an unreasonable management. I feel like I'm tainting the reputation of real SIEs.

Question is: I've always assumed I _had_ to evolve into an SIE or die (or become a Product Manager if I'm lucky to be better than 90% of my colleagues at understanding users). Is it a correct picture of the reality, or is it possible to strive as a "good" SFE?

<comment><USER7> No, but it will take you down a career path that exposes you to more luck & uncertainty than an SIE.

Features engineers _can_ have lucrative, long-lived careers. It usually means they need to be the primary or lead engineer responsible for a significant user-visible product. Think of Andy Hertzfeld for the Macintosh, John Carmack for Doom/Quake, Anders Hejlsberg for Turbo Pascal and Delphi, or Aston Motes at Dropbox. Some of them cashed out directly with F-U money from a startup; others used past track records to get a startup of their own funded or a lucrative job at a big company.

The downside is that you're very exposed to the risk of your project failing and nobody caring about it. At the stage of a project where a SIE is most useful, the project is already underway, people know it's a good idea, and they just need to execute solidly. At the stage where a SFE is useful, the whole point of the project is unknown - that's why you need an engineer that specializes in rapidly testing things out. This applies in big companies as well - my role at Google could best be described as a SFE (though they don't have the title), and I had to prototype a number of features, a couple of which worked out and a good many of which did not.

There's very significant crossover between the SFE role and that of a technical cofounder - the main differences are risk tolerance, willingness to go out and interact with users personally, and product vision. It's very common for people who enjoy the prototyping aspect to end up starting their own companies, as that gives the best alignment of incentives and ability to capitalize on their own work. It's still possible to be a "professional early- employee" or even make a prototyping/R&D role work in a big company, but you need to demonstrate wins in your career.

<comment><USER8> Indeed, I have created my own company ;) It feels like a failure compared to the steady money that my SIE ex-coworkers have, but I enjoy it much more. Your insights give me good context to visualize my career, thank you.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Our CEO hired a VP of e-commerce last year, before there was just an over- worked director handing me down directives from on high. As the sole back-end engineer inheriting an ancient codebase, I've been able to keep things reasonable and clean and not build new crap on top of old crap. But it's taken the careful exercise and maintenance of leverage.

Now we're gaining traction and pushing back on the on-high directives and coming up with a solid long-term plan.

I shudder to think what it would have looked like if there were a whole team of engineers with nobody to add their voice to the leadership.

Engineers don't help this problem when they treat management like idiot work.

<comment><USER10> Engineers don't help the problem when they treat management like glorious god- like perfect beings either.

When your management is bad, there is nothing an engineer can do. They can attempt to bring their concerns to leadership, look for another job, or play the fiddle while the product burns to the ground.

Speaking of bad management, I was very surprised when he claimed that the situation where you are asked to "...make architectural decisions on the fly without knowing anything about what their problems are" he had never experienced before. In all of my experience, it was standard practice.

<comment><USER9> > When your management is bad, there is nothing an engineer can do. They can > attempt to bring their concerns to leadership, look for another job, or play > the fiddle while the product burns to the ground.

Well, they could step up and start fixing problems in the organization themselves. Improving communication flow between departments, building better processes, discovering metrics, these are things that you can do to help make your company better without having to get the leadership involved. Not every improvement needs grand strategy, there's often lots of low-hanging fruit that one person can own and push by themselves.

Just Friday I was sitting in on a planning meeting and realizing that while we have a front-end guy, we don't really have a decent web designer that can draw out ideas and come up with plans for implementing them. So now I'm thinking about how to go about the task of managing that information flow.

<comment><USER11> Unfortunately, it's not so easy. If the culture (i.e. tech is not really important, business comes first) is wrong, your effort is not gonna fix a thing.

<comment><USER12> This applies to more than just start-ups. I work for a company that regularly claims 'we are not a software company'. But... we're writing software. So yes, we are a software company.

<comment><USER13> It's amazing how often the "we're not a software company" phrase is bandied about. My employer has been around for a while, the IT department has over a 30 year history. Yet, we have the phrase repeated to us whenever we discuss using source control, developing libraries, having a web services strategy, etc. It is like saying, "We're only a youth hockey team, not a professional one, therefore we don't need to use the same equipment and strategies as the pros."

Just because you're not planning to be [put your favorite professional software company here] doesn't mean you should avoid learning their strategies for dealing with everyday problems associated with writing software - <USER2> you don't write software at all.

In the end, the phrase is nothing more than an excuse for avoiding the risk of cultural change.

<comment><USER14> If you're working at a software shop that doesn't even use source control I suggest you get out of there ASAP. It's one thing to be missing core tools and methodologies when you're applying for your second job 1-2 years in, but if you hit the 5 year mark and have zero familiarity with source control or web services (for industries where this is valuable), etc. you're going to get passed over for interviews. Staying there may be causing irreparable damage to your career.

<comment><USER15> Or, at the very least, spend some time outside work on a project that uses modern software practices.

Things like the Joel Test (over a decade old) [http://www.joelonsoftware.com/articles/fog0000000043.html](http://www.joelonsoftware.com/articles/fog0000000043.html) and the 12 Factor App (over three years old) [http://12factor.net/](http://12factor.net/) are good places to start.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> This was a very interesting read, but I was a little disappointed that it didn't leave me with a sense of resolution. Did company B get "fixed?" How? How have other companies resolved culture issues that stem from the leadership at the top? Are companies with these kinds of problems just doomed to fail?

<comment><USER17> Usually companies like this can fail for a very long time. As long as someone is willing to pay, you can live with the slow development speed, the high number of bugs and the constant team changes.

<comment><USER4> _this_ exactly. I expect they are paying below average wages, have huge churn of people looking for anything to do while the perfect job arises. Throw in some people new to the area who need a job now, some old contractors who have money and are looking for pocket money and more stability (who's CVs are amazing, they have the gift of the gab but get bored really really quickly and just don't care about the job) and that is a the instant recipe for churn and crap code.

</comment></comment></comment><comment><USER18> Really great article.

This is what Deming (old school father of the concept of quality control) was getting at with his view of organizations. [http://en.wikipedia.org/wiki/W._Edwards_Deming](http://en.wikipedia.org/wiki/W._Edwards_Deming)

This topic is traditionally covered under the umbrella of Quality, with the premise that output Quality is primarily a function of the systems, knowledge, and understanding of the people at an organizational level—and is _not_ a primarily technical pursuit, despite what most people think.

We need this discussion in the software world now more than ever. Really glad to see it.

</comment><comment><USER19> This is what happens when engineers subordinate themselves to non-technical management in a business-driven (as opposed to engineering-driven) organization.

The ironic/tragic thing is that the consultants who are brought in at much expense (and who therefore have some credibility with "the business") are often no better than--usually worse than--the in-house engineers they are supposed to help. If you ever find yourself an engineer in a dynamic like this, you should interpret it as a sign of mistrust--even outright disrespect --of you and your peers by your bosses. Imagine if you were a physician and hospital management thought it necessary to bring in outside physicians to help you with your patients. Not many doctors I know would put up with that, but engineers are culturally so submissive that they go along with it and deal with the Dilbert scenario of the $500/hour consultant giving the same recommendations the in-house engineers have been saying all along (which the consultants get credit for, of course).

If you're ever in a position of authority and feel that it's necessary to bring in consultants to "fix" your codebase, it would be worthwhile to reflect for a few moments on how this situation came to be. Either you failed your organization on the hiring front and have terrible engineers (unlikely), or your otherwise talented engineers cannot do their jobs effectively due to the environment you've created. Perhaps you've forced them to incur so much technical debt by nonstop "sprints", unrealistic deadlines and multiple pivots that any forward progress is all but impossible. Consultants probably won't fix this.

<comment><USER20> > Either you failed your organization on the hiring front and have terrible > engineers (unlikely)

What makes you say that is unlikely?

<comment><USER19> If you accept that engineering skill fits the normal distribution, it's less likely that they are "terrible" than merely average.

Amazing 10X engineers could still pull off shipping a working product even with all the organizational handicaps I mentioned in my earlier post. This doesn't excuse the deficiencies of the organization, nor does it mean that "average" engineers are undesirable or can't do good work. I agree with the theme of the cited article--rather than scapegoat the engineers and pay external consultants to "fix their mistakes", fix the organization and enable the engineers to do quality work.

<comment><USER21> "Amazing 10X engineers could still pull off shipping a working product even with all the organizational handicaps I mentioned in my earlier post."

They could. They're also good enough that they could easily say, "Fuck that shit" and go work somewhere that doesn't have that toxicity. And unless you have a significant ownership stake in the company, I don't see why you wouldn't do just that. Life is too short to work shitty jobs if you have the option not to.

</comment></comment></comment></comment><comment><USER22> There must be a corollary to Conway's Law here... the dysfunction of the code produced by an organization reflects the dysfunction of the communication structures of that organization.

<comment><USER23> Yeah, I think that's an interedting amendment to Conway's law: it's not just about the structure of the organisation/communication, but also about the feelings associated with the communication.

<comment><USER22> It's kind of a consequence of Conway's Law. I don't know if that's best expressed as a corollary or as something else.

</comment></comment></comment><comment><USER24> It's amazing that we've known for decades that concentrating decision making at the top leads to outcomes like this.

It's far better to push decisions as low as possible, and let higher ups coordinate those decisions, and only overrule when absolutely necessary.

<comment><USER25> In the case of an architecture diagram being handed down from on high, sure. But in the case of product feature whack-a-mole, this doesn't seem like something that bottom-up decision-making could fix.

<comment><USER24> And that's where the "as possible" part of "as low as possible" comes in. :)

</comment></comment></comment><comment><USER26> When I was younger, immersed in usability, databases, and big sites, watching the initial rollout of Facebook etc, I thought that a good _technical_ solution could solve social ones.

Now I'm a lot more pessimistic and want to approach it the other way around.

<comment><USER27> One of the common themes at my last gig is that I would start conversations and presentations with "There are no technical problems here. These are people problems."

Eventually they tried to solve both problems by adopting a technical solution so bad that the people left.

<comment><USER15> Peopleware is a great book about this very concept. [http://en.wikipedia.org/wiki/Peopleware:_Productive_Projects...](http://en.wikipedia.org/wiki/Peopleware:_Productive_Projects_and_Teams)

A book from 1987!

Nothing new under the sun.

</comment></comment></comment><comment><USER28> Love this article, but I'm not sure the origin of the sloppy practices described there always originates with the VP/Eng, CTO or CEO. I've worked with plenty of engineers who just don't want to write tests, or tighten up code, or expend the effort to socialize their ideas/accept others. The higher ups might not have the visibility, inclination (or time!) to focus on those issues and encourage best practices, but I don't always detect acts of commission from them to subvert best practices.

<comment><USER29> I don't know if he was saying it always originates from the top but more that it's always allowed to perpetuate from there.

If management doesn't have the visibility/inclination/time to peer into problems and gain understanding, they are encouraging whatever has happened to continue happening for better or worse.

</comment></comment><comment><USER30> I thought this was a good read and I'd be interested in reading a longer piece on the topic. Hopefully the author will continue writing on this theme.

</comment><comment><USER31> Ruby in a large app and also untested. A recipe for disaster.

<comment><USER28> Not sure how Ruby the language is unique here. Doesn't the rest of the statement apply when you substitute any other language?</comment></comment>


Electrical Fire Risks from Devices Plugged In? - <AUTHOR> As my wife and I continue to WFH, I had the sudden realization that we have about a total of 40 wires plugged into either the wall, a dock, or a monitor.<p>Besides unplugging every device from the outlet every night (sometimes this is feasible, sometimes, it is not), what can we do to bring our fire risk to 0?  We both have thunderbolt docks that we like to leave on overnight so that our laptops and peripherals are charged for the next day, but I'm not sure if this is safe... from what I've heard the risk is still there, but the voltage isn't high enough to warrant a concern.  Is that true? <comment><USER2> get power strips, plug all the things into them, and just unplug those at night?</comment>


Show HN: Statpedia – World's Most Simple Chart Creation Tool - <AUTHOR> http://statpedia.com <comment><USER2> "Most Simple" seems like the least simple way to say "Simplest"

<comment><AUTHOR> Interesting observation. Thank you.

</comment></comment><comment><USER3> Very cool tool. Makes creating charts easy for everyone.</comment>


This guy started working on his startup by "scratching his own itch" - <AUTHOR> https://saaspirat.es/mike-started-working-on-upvoty-by-scratching-his-own-itch/ <comment><USER2> Cool! I'm not aware what else is available in this space, what I think would be useful would be to add links to the organizations where I should apply, what's the process etc.

Also I could imagine a visualization of a map for countries of a specific country as to where they can travel with/without visa etc.</comment>


2 Early Stage Investing Rules Worth Breaking - <AUTHOR> http://www.robgo.org/post/704642171/2-early-stage-investing-rules-worth-breaking <comment><USER2> I think the mid-market quote is spot on. There really are no funds looking at the reliable sub 100M revenue market. (where a good percentage of start-ups end up at)</comment>


Running Pure Django Projects on Google App Engine - <AUTHOR> http://code.google.com/intl/nl/appengine/articles/django-nonrel.html#fw

<comment><USER2> I'm not sure that GAE is the ideal environment to run Django in - the whole reason it scales is because it enforces a certain way of doing things (nonrelational datastore, no long-running processes, no local storage).

General Django PaaS will probably be 'nicer' with the various less-restricted options that are springing up (be that mine, ep.io, or others, like djangy, gondor.io, apphosted, or the several others I forget), since those tend to lessen up on the "it must scale" aspect and focus more on making the 99% majority of sites (i.e. medium sized or smaller) work well.

<comment><USER3> I don't think so, I've developed a number of apps with Django on App Engine and, as long as you've developed a bit at the lower level and know the limitations, Django is a very good fit. The guys who wrote Django-nonrel did a very good job, pretty much everything that doesn't do any wild joins will work out of the box.

Overall, I am very very happy with Django on GAE and develop with it, even though I've developed with Flask as well. With microframeworks I generally find that you need to reinvent many of the things that Django already provides.

Your only objection that I can see is really the fact that the ORM joins, so don't. As long as you keep that in mind, everything else is transparent because it's really the same as what other hosts offer (memcache, email, tasks, etc).

</comment></comment><comment><USER4> Prior discussion - <http://news.ycombinator.com/item?id=1955387>

</comment><comment><USER5> I am currently using Django Nonrel with mongodb with very good success for some client work. It's actually deployed to AWS not App Engine, but the code between the two is virtually identical. AWS was chosen for video processing requiremets. The tools and short cuts django provides like the automatically generated admin have made the project viable. I haven't seen the db-indexer project before, but looking forward to checking it out.

</comment><comment><USER6> Minor thing, could we have the link go to [http://code.google.com/intl/nl/appengine/articles/django- non...](http://code.google.com/intl/nl/appengine/articles/django-nonrel.html) instead of [http://code.google.com/intl/nl/appengine/articles/django- non...](http://code.google.com/intl/nl/appengine/articles/django- nonrel.html#fw) ?

<comment><AUTHOR> I missed that when I copied the link. I can't edit it now.

</comment></comment><comment><USER7> I've been using AppEngine for years and I am very happy with webapp, easier and simpler.</comment>


Pyract: a new way of writing Gtk+ applications - <AUTHOR> https://learntemail.sam.today/blog/a-new-way-of-writing-gtk+-applications/ <comment><USER2> So this recreates the _entire_ scene graph whenever the UI needs to be re- rendered? What happens when you use this in a complex application with lots of different nodes that needs to be updated frequently? Think a midi tracker / DAW / video editor, where it's common to have a vertical bar that moves across the screen indicating the current section of audio/video being played. Is this still suitable for that sort of application? I get that it's doing diffs and not actually re-rendering _everything_ , but how heavy is the call to create each node?

<comment><USER3> The Node class (used in render) is just a tuple, so it is very fast. It riffs it to ensure minimal changes.

</comment></comment><comment><USER4> This is similar to what React.js or Vue.js does on the browser. I always thought of this, very nice to see it running. I worry about the following.. 1\. How we do complex objects like Trees and Tables? 2\. How efficient are these Native nodes over DOM nodes in Browser?

I always wonder between Native vs DOM.

</comment><comment><USER5> For a quite similar approach of observing/binding variables to GUI objects, have a look at Qt/QML.

<comment><USER6> GObject/GTK also have GBinding's, which are exposed in PyGObject. Most of the remaining problems stem from things like List/Tree components that use complex models, though providing a derived model class that is backed by a reactive data store would handle that nicely.

</comment></comment><comment><USER7> Certainly much nicer than the traditional way of doing this :)

</comment><comment><USER8> This is great! Is there anything similar for developing macOS apps?

<comment><USER9> I'd investigate something cross-platform like the awesome Toga: [http://pybee.org/project/projects/libraries/toga/](http://pybee.org/project/projects/libraries/toga/)

<comment><USER8> Will take a look, thanks!</comment></comment></comment>


Autojump: a cd command that learns - <AUTHOR> http://wiki.github.com/joelthelion/autojump/ <comment><USER2> For those of you who would like similar functionality sans learning of your MFU directories, you can do something like

export CDPATH=($HOME/common:$HOME/repos)

You'd have to manually symlink your favorite directories into ~/common, of course.

The directories listed in $CDPATH are made available to `cd` no matter what directory you are in, so if you have ~/common/downloads, you can type `cd downloads` from any directory. Tab-completion works with this too.

Not to downplay autojump -- I just prefer this approach since I explicitly control all the directories I want quick access to, and my `cd` command is deterministic (assuming I name directories to avoid conflicts).

</comment><comment><USER3> My friend Rupa's 'z' utility - <http://wiki.github.com/rupa/z/> \- does this pretty nicely, too.

Discussed on reddit here: [http://www.reddit.com/r/programming/comments/7y4ap/where_the...](http://www.reddit.com/r/programming/comments/7y4ap/where_the_fuck_has_this_been_for_the_last_30/)

<comment><USER4> z was inspired by autojump. It has a slightly different philosophy than autojump: while autojump is designed to be so simple that you forget about it after a while, z has more features and is slightly more complex. Using one or the other is mostly a matter of taste :)

</comment></comment><comment><USER5> Much nicer than my solution: <http://akkartik.name/bash.html#cd>

_Update_ : Ah, I knew there was another j a year ago: <http://news.ycombinator.com/item?id=485053>. (And I pushed my version there as well :/)

</comment><comment><AUTHOR> A patch to autojump that:

* Makes it possible to jump to a relative path (e.g. `j ../models`)

* Possible to specify multiple patterns, e.g. `j my_project static`

[http://github.com/amix/autojump/commit/f5fff8d8c0c6e8ce676aa...](http://github.com/amix/autojump/commit/f5fff8d8c0c6e8ce676aadfb8a208d09230ae5fe)

</comment><comment><USER6> I've also found the CTRL-r shortcut quite helpful in Bash. Most of my commonly used directories and commands are near the surface this way, it works on almost everything without installation, and I'm usually in a directory where those commands would make sense.

Although, it doesn't really help if you need to jump to an obscure part of the filesystem.

</comment><comment><USER7> Back in the 90's I used 4DOS on MS-DOS, which had a similar concept of 'jumping' to a directory by just typing the last part of a directory path. You had to pre-index your directory structure with 'CDD /S', though. And it didn't remember your favourite directories to give them priority.

</comment><comment><USER8> I prefer cdargs <http://www.skamphausen.de/cgi-bin/ska/CDargs>

it doesn't learn, but rather you create bookmarks with simple aliases. The nicest part is that it's set up so you can tab-complete bookmarks and subsequent subdirs.

<comment><USER4> Just out of curiosity, have you used both? For how long?

<comment><USER8> I came across autojump a while back, but I have an aversion to 'learning' systems in that they can sometimes conflict with muscle-memory (you expect a certain thing to always perform a certain action, but through training it now does something different)

I've just reinstalled it to check out, and I've noticed a couple of things that I dislike:

1) it doesn't seem to consistently tab-complete (j <tab><tab> returns a bunch of __1__/some/path entries) 2) It's not easy to cycle through/view multiple matches 3) I'm not sure how to modify the database (eg: when I complete a project and archive stuff, I probably don't want to jump there anymore, even though it might be quite highly rated)

cdargs deals with most of these things in a better way, but doesn't have any of the learning features. I've used it now for a few months, and I'm in the process of hacking at it a bit to make it fit better into my workflow.

One useful tip that applies probably equally to both is to add something like:

"\C-f": "\C-a\C-kcdd \t\t"

into ~/.inputrc for a binding style completion.

<comment><USER4> About tab completion:

The bunch of __1__ entries are the best matches, and you simply need to add the number you want and another tab to finish the completion. It's a bit hackish, but it works fine! Maybe I should document this somewhere though :)

You can't directly edit the database, however autojump automatically removes directories that are not there anymore. Thus if you're done with a project, simply move the directory to archive/ or something, and autojump will forget about it. Otherwise the exponential decay works fast enough anyways.

I understand learning systems are not for everybody, though. With autojump, I tried to make the behavior of the system as predictable as possible, but it's not and will never be fully deterministic. I accept this as a necessary bad counterpart to the nice features autojump has, but I understand some people will never like it.

</comment></comment></comment></comment><comment><USER9> This reminds me of this blog post: [http://unqualified- reservations.blogspot.com/2009/07/wolfram...](http://unqualified- reservations.blogspot.com/2009/07/wolfram-alpha-and-hubristic-user.html)

A few extra keystrokes is a good trade to get predictability.

</comment><comment><USER10> I wrote my own utility which works a bit differently. Instead of calling cd, I call a different function which changes to a directory stored by an alias in a DBM database. Any time I'm in a directory that I know I'll want to revisit frequently, I call another function to save the current directory (by alias) to the database. Another shell function lists the current aliases in the database and what directories they point to.

It's a bit of a hack (a combo of Perl and bash scripting) -- something anyone on HN could probably put together in no time, but it does the job. I've been using it for 2 or 3 years now, and I find it to be extremely useful and a decent time saver.

</comment><comment><USER11> Has anyone used this with OS X yet? I installed it manually and haven't been able to get it to work yet.

<comment><USER12> It runs for me, but I have no tab completion. Puzzling.

Edit: scratch that. I have tab completion of things in the database, but not of paths! Much, much less usable than cd for going to places I haven't been before, which is probably half of my usage. Oh well.

<comment><USER4> You're still supposed to use cd to go to places you've never been to! Autojump is a complement to cd, not a total replacement.

</comment></comment></comment><comment><USER13> I tried autojump (and/or something like it) for a short while, but essentially never found that I never remembered to use it/them. cd, cd -, tab completion, symlinks and screen/tmux are enough for me.

<comment><USER14> What about pushd and popd?

<comment><USER13> I'm aware of their existence, but the "hands" in my brain never "reach" for those tools. I find that when you have dozens of shells open in or around the directories you're working in, you don't change directories as much. Like the difference between leaving files open versus closing them and reopening them all the time.

</comment></comment></comment><comment><USER15> I've been using autojump for 6 mos. now; it's one of my fave utilities.

</comment><comment><USER16> Hm. Is it just me, or does it feel like describing a path with plain ol' tab completion isn't really bothersome, impractical or "a lot of keystrokes"? And since when weren't aliases good enough? I definitely see the use for this under Windows, but in a real nix shell? -shrug-

<comment><USER17> So, does it work on Windows, or is there a version for Windows?

<comment><USER4> It works on Cygwin.</comment></comment></comment>


Three years later, Google still has big-time diversity issues - <AUTHOR> https://www.technologyreview.com/the-download/611495/three-years-later-google-still-has-big-time-diversity-issues/ <comment><AUTHOR> Maybe that guy who said that their approach to diversity wasn't working was on to something?</comment>


Show HN: Related topic discovery - <AUTHOR> http://rsearch.ca

<comment><USER2> Im not sure i understand the use case for this tool. Its cool to get related topics, but it doesn't fit how I use a search engine. I'm usually looking for very specific information, this could be useful for ideation and mind mapping software.

<comment><AUTHOR> Thanks, I'll consider how to address that. One of my original ideas was for PR people who need to Google their own company every day.

</comment></comment><comment><USER3> Looks neat. When I searched for 'common lisp' I got a nice tree of CL standard library functions and macros, etc.

When I searched for 'haskell' I got this:

        'undefined method `each' for nil:NilClass'

Plus a big stack trace.

:-)

<comment><AUTHOR> Yikes, I'll check out that Haskell result, thanks!

<comment><AUTHOR> Fixed.

</comment></comment></comment><comment><USER4> Any insight on what techniques it uses?

<comment><AUTHOR> It queries the user's topic in Google, throws out generic or blocked words, sorts by interestingness, and recursively repeats the same operation.

</comment></comment><comment><AUTHOR> Looking for feedback on new user experience. Often, new users don't create any topics. Why is this?

<comment><USER5> It's a great idea and I realize this is probably your first pass at it. The interface, after you get a results set, is a bit challenging to use — I would definitely use a tool like this a lot if you develop a kick-ass UI around it too!

<comment><AUTHOR> Thanks! What aspects did you find to be challenging? (I realize there are many problems, just trying to isolate the biggest issues)

</comment></comment></comment><comment><USER6> currently crashes on any search :-(

<comment><AUTHOR> Haha, my Google API exceeded the quota - currently waiting for it to be re- enabled.</comment></comment>


Making Too Much of TDD - <AUTHOR> http://michaelfeathers.typepad.com/michael_feathers_blog/2010/12/making-too-much-of-tdd.html

<comment><USER2> I think what the author is really talking about is the "build the simplest thing that could possibly work" approach, which is strongly related to TDD, but can be done without TDD as well.

It makes for a great motto, but in practice, developers often disagree about what the "simplest thing" actually is. Mostly, I think this is a function of experience. When you have more experience with a type of development, it's much easier to see the "obvious" future needs.

So in the case of a text editor, it's obvious (to me) that a giant string just won't work. That may not be as obvious to someone with less experience.

Determining what the simplest thing that could possibly work is turns out to be anything but simple!

<comment><USER3> YAGNI.

<comment><USER3> Oh, yeah, of course. You ARE going to need it. You're different. Mod me down for my lack of understanding how awesome you are.

</comment></comment></comment><comment><USER4> One thing I liked about the article is the breakdown of programmers as either engineers or scientists. They say that physics people make some of the best programmers and from what I've seen it is because they adopt a 'scientific attitude' towards the systems. I don't mean scientific in the sense of traditional CS but rather the ability to quickly devise experiments that offer the most information for the least amount of work. When you come at a modern IT system you have have to accept that you won't have the time or resources to understand most of it at the source code level. It is better to be able to quickly experiment and synthesize the results to arrive at a working model of what is really going on. I think people with science (or even philosophy ) backgrounds can be better at this than people who did an actual CS degree.

</comment><comment><USER5> The thing that bothers me the most about TDD is that it really seems to mean _unit_ test driven development. Unit testing has its place, to be sure, but it is only one tool in the box.

By its very nature, unit testing will always be limited to checking simple, well-defined, low-level behaviour. There is no unit test to tell you that you made a good choice of data structure or algorithm. There is no unit test to tell you that your domain model is sound and relevant. There is no unit test to tell you that your calculation code is a faithful implementation of incorrect mathematics that you thought was correct. There is no unit test to tell you that your requirements were the result of poor analysis and as a result you're building a product your customers won't buy.

If we take a single tool like this and elevate it to the point where the entire development process is built around it, then must the process itself not be limited as well?

The TDD community seem to compensate for this by adding the well-known third step:

1\. Fail.

2\. Pass.

3\. Magic happens.

During that final step, we have an opportunity to compensate for any failure of the small-increments, simplest-thing-first approach to converge efficiently on a good end result. This in itself doesn't seem unreasonable, but I have never seen a single piece of TDD advocacy or training material that explains how this is supposed to happen, at least not in any serious detail or in any form that is amenable to training developers in how to do it.

The trouble is, almost all of the hard stuff in programming is in areas that unit tests don't address, such as those I mentioned above. That being the case, the whole TDD process can also only address the easy stuff until the "refactoring" step is explored in very much more detail than it has been so far. I think perhaps this is what Michael Feathers is starting to realise and trying to highlight in this article.

<comment><USER6> "There is no unit test to tell you that your requirements were the result of poor analysis and as a result you're building a product your customers won't buy."

No, but that's why there is integration and acceptance testing, and the sooner you get feedback from actual users the better off you are.

TDD doesn't _have_ to mean unit tests.

<comment><USER5> > TDD doesn't have to mean unit tests.

Really? I'm not sure I've ever seen any TDD-related source claim that the tests that initially fail and are then made to pass are anything but automated unit tests.

<comment><USER7> Generally, you write an acceptance test, watch it fail, drop down into the unit tests that get your code going, pull back up into your acceptance test, move on to the next part...

Here, I wrote something about this: <http://timeless.judofyr.net/bdd-with- rspec-and-steak>

Most of these are not 'unit' tests in the traditional sense of the word. Unit tests are useful, but only as part of a larger testing strategy.

<comment><USER5> > Unit tests are useful, but only as part of a larger testing strategy.

I agree, but I think you're making my point for me. TDD and unit tests alone are not enough, which motivates further developments like BDD.

I think we can apply an analogous argument even to a BDD process, because there are many advantageous properties code might have that can not be determined effectively using a finite number of specific, automated, behavioural tests, no matter what level of abstraction those tests run at. Your BDD process is not as limited as TDD, but it still contains a "magic happens" line, "Refactor code as appropriate."

</comment></comment></comment></comment></comment><comment><USER8> Having worked on both sides, I dislike the author's depiction of high-end consultants as "scientists" as opposed to the "engineers" who ship things. These "scientists" who sell their models of how software development is supposed to work are mostly, in my experience, hucksters. They haven't actually figured it out (no one has), but there's a market for software processes because software is hard and unpredictable, many people want to be told how to do it, and some are prepared to write cheques. People may go into the authority game with good intentions, valid experience, and talent, but without the discipline of hands-on work on real systems (and no, an occasional trip to the client doesn't cut it), it's too easy to fall for one's own hype. All the more because you are surrounded by people who are paying you to tell them what to do and thus themselves have a vested interest in believing that you know.

The deep problem underlying this is that we are a long way yet from having large-scale economic organizations suitable for developing software efficiently. My money's on small autonomous units (a.k.a. startups), but that's still a minority view. There's an impedance mismatch between how most people want to fund and run software projects, and the work itself. The markets this mismatch creates (like the market for software processes) are unhealthy ecosystems in polluted environments. But it is very difficult to see that from the inside, especially when you're a high-end consultant with more money and higher status than lowly practitioners.

I know of only one way around this conundrum of how to tell bullshit apart from knowledge, and it goes like this: write nontrivial programs and show me the code. Then we can talk.

<comment><USER9> _write nontrivial programs and show me the code. Then we can talk._

I think there should be a development group rating organization based on this idea.

</comment></comment><comment><USER10> _where TDD and refactoring fall apart_

This too is what I find most fascinating: Up to a point refactoring is far easier without TDD, but after that point, it's much harder without it.

I know it's not popular, but I think aspect oriented programming may be a nice way to eliminate this conflict.

One question for HN is: Why is it considered bad practice to worry about the range of valid inputs and outputs for a method? Wouldn't this basic consideration, combined with functional testing, offer a far greater degree of confidence in the system than hundreds of unit tests alone, and be far less brittle?

<comment><USER6> "Why is it considered bad practice to worry about the range of valid inputs and outputs for a method?"

Is it? I don't think I've heard people complain about ensuring valid arguments and return values. But they do argue over what's the best|right|coolest way to handle it.

"Wouldn't this basic consideration, combined with functional testing, offer a far greater degree of confidence in the system than hundreds of unit tests alone, and be far less brittle?"

As would appropriate use of automatic type checking. Rather than having my method call explicit code to check that an argument is an integer between 0 and 100 (for example), I'd rather define the method signature such that the argument has to adhere to the behavior of type IntBetweenZeroAndOneHundred. Basically, move some unit tests or explicit method code for argument properties into a type.

But, as the article suggests, this gain in cleaner code or a nicer abstraction may reduce the granularity, making it harder to change later.

<comment><USER11> Some languages have this already. Specifically safety critical languages like Ada. Ever so slowly the entire industry is moving towards what ada had in 1983. Beyond this you can use the spark annotations on top of ada to verify code does what it's expected to.

Here's some Ada range examples type My_Int is range 1..100; type byte is mod 2 __8; type Sin_Values is digits 10 range -1.0..1.0;

Then you can query the object for its range: z'range; or see if it's even valid, useful for finding stray bits switched by cosmic rays - I'm serious here. if z'valid then dowhatever; else printwarning;

</comment></comment></comment><comment><USER3> The problem Feathers describes has a simple cause: the classes in java, C# etc are a premature optimization. The rewrite described, in my experience, is caused because having to reclassify everything is annoying and error prone when:

a) classes are part of the language and,

b) classes are defined by a stream of characters in a flat file on a disc

C++ makes it even more difficult to automate the redoing of classification by requiring that the definition of a class is stored in multiple such files.</comment>