HN user

jamieb

711 karma

My gmail username is jamiebriant.

Posts5
Comments172
View on HN

Why buy a computer from a company that has ties to the US government, an authoritarian government that supports dictators in Africa, the Middle-East, South America, and East Asia, including torture, drug smuggling, misogyny, and has itself engaged in abduction, detention without trial, and in relation to this case, illegal interception of communications?

Here's another quote: "For every complex problem there is an answer that is clear, simple, and wrong."

My experience, anecdotal as it is, is that an open space per team is the most effective. This being science, when has the truth ever been precisely one end of the spectrum or the other? I'm naturally skeptical of pundits, advocating science, who point out that developers with their own office perform better than developer who share an open space with the call center and then claim that this demonstrates that private offices are the best solution.

The key quote from the article is "quieter and more private".

Maybe in the days when The Architect wrote a design doc and The Engineers went into their offices for six months, then a private office was a great way to get to the "Oh fuck this thing will never work" moment faster.

In contrast most teams I work with collaborate at the feature level: engineers work on the same feature, implementing different pieces together, before moving on to the next feature. We have other teams where individual developers take a feature and go off and work on it for a few days. The "individuals" are "faster" claiming work is complete, but the "teams" are faster at producing work that is accepted.

I should also add that while the team environment works for most engineers, we have some that absolutely require a private space, and we try to accommodate them. Individuals work differently and when we find someone good we try to make the environment work for them.

YMMV.

Is TDD dead? 12 years ago

"TDD creates bad architecture".

What is good architecture? I subscribe to the idea that we are doing software engineering and as such there are some "generally" understood principles such as SOLID, the Law of Demeter, Cyclomatic Complexity, etc that provide objective measures of "good" architecture (I apply SOLID all the way up the architecture hierarchy not just on classes).

What I've noticed is that TDD results in code that scores well against these measures, while code that scores well is easy to test (i.e. after writing the code).

Therefore, I think the argument that TDD creates bad architecture is false.

About 25 minutes into the talk we get to the crux of DHH's complaint and it is that Hexagon is an alternative to the Active Record (which he created) and the only reason Hexagon exists is to allow TDD. Hexagon requires throwing away the really useful code that is Active Record.

Hexagon appears to be an attempt to introduce sound software engineering practices (SOLID etc) into the Ruby world (with what success I do not know). Active Record and Rails in general is really useful if what you want is what it does, but sometimes its not. The implied claim that Hexagon is a bad architecture is false. The claim that Hexagon only exists to facilitate TDD is false.

"Mocks returning mocks returning mocks"

I use mocks. Fowler and Beck said on the whole they don't use them which genuinely surprised me. They cited examples of code where the test actually enforced implementation rather than purpose. I think that's probably how I wrote tests for the first few years. Code that results in mocks returning mocks returning mocks is code that is violating the Law of Demeter. Its bad code. It happens to be really hard to test, and it happens to be really hard to write tests first that way. Universally I've only ever seen tests like that when the tests were written after the code. TDD doesn't produce code like that because its easier to refactor it rather than keep digging that hole.

Mocks returning mocks returning mocks is a symptom of not doing TDD.

"My mind works differently... I have to write code first"

Spike. Problems that I don't know how to solve I spike first (I write code with no tests, or with tests only as drivers of execution). That's easy. The hard question is, "Now I have all this code, I have to throw it away and TDD it?" That's pretty hard to stick to in a business environment. I choose to write tests-after for all those pieces of code that already meet SOLID metrics, and rewrite the code (using TDD) for the pieces that don't. The pieces that don't are very difficult to write tests for after, and they also happen to be the pieces where I find bugs (for example, I'll cut and paste a bit of logic and find its wrong for one set of inputs).

"All code should have full coverage of automated tests"

All three agreed that this is the case. Fowler: "If you have a full suite of tests I don't care how you got it [TDD or not]". I don't know about you but I'm still fighting this battle. I also have to deal with teams that have a "full suite of tests" and 80% test coverage, but where every single one of those tests simply executes code. No actual "test" occurs. Indeed, in particularly memorable test, I managed to delete 70% of the lines of code and all the tests passed (including deleting the one line that was the main purpose of the method). Approximately 90% of all the tests were complete garbage: they reported success as long as the code didn't throw an exception.

Left with Nothing 13 years ago

when someone gets your $197,000 house for $134, they can sell it for $71,000 and take $6000 in legal fees, interest etc, as documented in the article.

The owner loses $130,000. Don't be surprised if the person buying the house for $71,000 is in on the game too.

We have a standardised desktop operating system that is familiar to nearly every computer user on the planet,

And then there's Windows 8.

Also, while we're on the subject, my 8 year old can put together an amazing Keynote presentation on an iPad. She has never used a Windows OS.

Skeuocard 13 years ago

Hi. My team is responsible for the checkout process at a large company. I won't give exact numbers, but more than $100m goes through our teams two pages.

by the time I'm entering my credit card details, I'm already "converted".

Our numbers say otherwise. Optimization of our checkout page is a huge deal any change, even text, comes under scrutiny, and for good (i.e. measurable) reason.

Would I put this demo on our page? If the bugs and confusion can be fixed, I might try it for a very small test group and see what happens. Not sure the confusion can be fixed though.

Yes. This is my point. =) Only by actually working out all these details can we have just laws, and IMHO, we would discover that most of our laws are not just.

We want law that prevents criminals from breaking into banks and stealing your cash, but what we got was a law able to be used to persecute young people to the point of suicide for accessing an "open" system belonging to an educational establishment.

The laws we have now cannot do what they claim to do without being impossibly broad or impossible to implement. As was was discussed elsewhere today, the joke of a "Do what I mean" button, is that nobody, in fact, knows what they mean, and this goes exponentially so for a congress of 500 or so people.

Yes, we should have black and white laws, and unit tests for them. So someone could write a unit test for "Will this allow the NSA to create a secret court that is outside the rule of law?" or "Does accessing a university computer that has an open access policy allow for a sentence of 130 years?"

I believe we'd see a lot simpler laws.

I think there needs to be an acknowledgement that the NSA, the FBI, and the government in general are not staffed by angels or robots, but by human beings, and that some of these human beings are criminals. The very fact that Snowden got all that data means that, regardless of whether or not he's a criminal or a whistleblower, the humans in government cannot be trusted with this data. "The FBI" may have a need for this data but the humans in the FBI are too great a risk. I find it absurd that we are even having to have this conversation with an organization that has to deal with operational security.

Side question: has the State now successfully argued that I can secretly record all conversations provided that I do not listen to them until I later get a warrant or court order?

Personally I think the two-party consent laws for recording are a great boon for corruption, and having the ability to record everything just in case I might later need to prove what was said in court would be immensely useful.

FTA: "Take the example of a tester, or a 3rd line support analyst – in the main their ranks are filled with the below-par programmer. They help the process by reduce the programmers’ work load and don’t cost as much to the CFO’s bottom line."

Don't cost as much as what? As much as a smaller team of expert programmers doing it right?

but the U.S. government stepping in to FORCE employers

Sounds like you're against the US Government.

Unfortunately, because you are replaceable you don't have pull and SHOULD NOT have pull.

A clever businessman would organize all these replaceable parts into a cohesive whole, and then having cornered the market, set his own price. That's capitalism in action. The very people who decry it are the same ones cornering their own markets. When its telecoms, cable TV, healthcare, widgets, corn, DNA, etc, its ok, but when its "units of labor", oh, well now its anti-capitalist and anti-american.

So I'll go along with your idea that Unions are an illegal monopoly on labor after we've gotten rid of the government-created construct called the corporation.

"Lifetime" because his position is a lifetime position. Congress may in future change the law, but for now, his role in "shaping" the security state is Lifetime. Right now, this statement is accurate. The fact that you can imagine a possible future where this is no longer correct is irrelevant. Its about as useful as saying that copyright expires.

"Exclusive" does not mean "omnipotent". We negotiate "exclusive" agreements all the time. The fact that someone else agreed to give you that exclusivity doesn't make the "exclusive" part go away.

If not "Unaccountable", accountable to whom? Sure, there may be other individuals in the hegemony who can raise a flag, but its not you or I. The NSA can lie to the senate and it takes a brave senator to break ranks but even then all they can say is "I think the NSA lied on one of these points" but can't even say which one. There is real coercion going on here.

Seems perfectly accurate to me. You seem to be quibbling over "lifetime" and "power to shape" while at the same time getting bogged down with legal issues. I find this strange since you have a reputation for being good at security, so it seems odd that you are missing what is effectively a social engineering attack on our legal code base. Everything you said makes sense from a legal point of view, and yet, this shit is clearly 100% unconstitutional. How can that happen? Because one pro-police-state judge and his hegemony have everyone buying into the narrative.

"Hello sir, this is the IT dept, can you confirm your password please?" .. "Oh sure, I believe you..."

"Hello senator, this is the FISC, can you keep this secret please because its all legal?" ... "Oh sure, I believe you..."

The icing on the cake is we don't have standing to sue because we can't prove we've been directly affected, but we can't prove it because we can't sue. As soon as a judge held this to be a lawful argument, we got rooted. The People are no longer in control.

"We have to...protect the general public and specifically, in this case, with it involving school children, we have to act."

This is disgusting. If someone says what he did it means one of two things:

1. He really meant it, and is about to go out and eat children.

2. He was being creative in a public medium.

It should be immediately obvious that in this case, we are dealing with situation #2 and the boy should be released. I am of the opinion that the burden of proof means that police should not be allowed to arrest someone even in the case of #1 unless there is more than just a public statement. It beggars belief that after discovering the facts in this case that the police still have him in custody.

This law must be found unconstitutional as soon as possible.

Wikipedia again:

"Originally a neutral term, since the mid-1960s it has acquired a somewhat derogatory meaning, implying a paranoid tendency to see the influence of some malign covert agency in events.[5] The term is sometimes used to automatically dismiss claims that are deemed ridiculous, misconceived, paranoid, unfounded, outlandish or irrational.[6][page needed] A proven conspiracy theory, such as the notion that United States President Richard Nixon and his aides conspired to cover up Watergate, is usually referred to as something else, such as investigative journalism or historical analysis."

Ironic, isn't it, that since the time when genuine conspiracies at the highest level have come to light, the term has been successfully modified in the general vernacular to mean a ridiculous or paranoid idea.

I'm not falling for the redefinition. You're welcome to.

Watergate "Scandal". From wikipedia: "On September 15, a grand jury indicted them, as well as Hunt and Liddy,[9] for conspiracy, burglary, and violation of federal wiretapping laws."

I find it interesting that when the Watergate "Conspiracy Theory" was proven, two things happened:

1. The perpetrators were charged with conspiracy (proving it was a conspiracy), and yet:

2. The Watergate Conspiracy was henceforth known as the Watergate Scandal.

In the Iran-Contra "Affair", "Fawn Hall, Oliver North's secretary was given immunity from prosecution on charges of conspiracy and destroying documents in exchange for her testimony."

Again:

1. Perpetrators charged with conspiracy.

2. The conspiracy is henceforth known as The Iran-Contra Affair.

Rinse, repeat.

2001: Planted Linden Trees. (hmmm. maybe toxic to bees)

2002: no dead bees.

2003: no dead bees.

...

2012: no dead bees.

2013:6/17 Sprayed Lindren trees with insecticides toxic to bees

2013:6/20 25,000 dead fucking bees

Conclusion: "It could be because Linden Trees are toxic to bees."

Seriously. Let's be honest. We used to torture people in extreme cases, but the person doing it knew that (a) it was illegal, and (b) if they were exposed they would be disavowed. (Of course, they might get away with it if they had some really good dirt on their boss, but that requires "using" a "card").

So the person doing the torturing had to be really fucking sure that this person was "guilty" and further that torturing would actually work (which is "not often"). The kind of operative doing this work was strongly personally committed to our country and extremely aware of their own personal investment.

Instead, we now have state-sponsored, legalized torture, and so any and all sociopaths can happily try their hand at torture just for the jolies, at no personal risk.

Spying must be illegal. A nation still needs to do it, but the brave few who do it, are braver still for doing it at personal risk.

I've witnessed first-hand three start-ups slowed or stopped by "ninja" developers using the start-up as an excuse to try some cool new technology that will look good on a resume. In two of them, they were paid the going rate. If you're not getting paid, or getting paid a stipend, then it may be fair to use the start-up as a sort of experiment - the cool experience may be all you get out of it - but this should at least be agreed upon. However, if you're getting paid the going rate, then this is a job, not a party, and your job is to get the job done.

Lets be honest, this sort of thing goes on at large companies too for two reasons: resume stuffing, and job security code. My favorite is when someone builds some really "cool" tech that only they understand, uses it to get a new job, and then quits. If a manager lets this happen, they ought to be fired too, in my opinion.