Reader Mail – 11/20/2011 To 11/26/2011

Due to a defect in the rawr plugin, this post is formatted wrong if you view it on my blog homepage. It does come out right if you view it as a single post or in the RSS reader. I'm going to fix that eventually, but I have less free time now that I have a new job.
David Z commented on FSK Vs. Comment Spam.
If you're running wordpress there is nothing better than the Akismet plugin. It is free for non-commercial use. It is like 99.9% right with very, very few false positives.

However, if I put ads on my blog, then I need to pay for Akismet, $5/month. That rules out Akismet.

It would be stupid for me to make $4/month from ads and then pay $5/month for Akismet.

I'm planning to put ads up soon. I'm waiting to build up my website a little more. Also, with a new job, I have less blogging time.


Esse commented on Oscar Ramiro Ortega-Hernandez.
Yeah, this sort of high profile violence thing is a poor choice except as a last measure, by which I mean the last thing you ever do as a free man or an alive one.

Malcolm X once said "Any time you know you're within the law, within your legal rights, within your moral rights, in accord with justice, then die for what you believe in. But don't die alone. Let your dying be reciprocal. This is what is meant by equality. What's good for the goose is good for the gander."

In other words, if one is going to fire a gun, they should do it seriously, and not just as a token action that squanders their life. If you are going to fall on your sword for nothing, that is a waste.

One problem is that, if I did decide to "go postal", there's no way I could get all the people who I know deserve it, before I got caught. Other strategies are better.

That's why I like agorism and promoting freedom. That attacks the system that lets evil people steal, without directly hurting anyone and without much risk.


Anonymous Coward commented on Test Driven Development Personality Analysis.
A long time ago I met a recruitment consultant. He told me that he aimed to give better service than the vast majority of other recruiters as a means of getting repeat business.

In fact this guy was worst than the rest because he totally sold me down the river to a venture capital company with no software and no customers (the hiring manager effectively lied to me) and I got fired after making the company loads of money. He was friends with management and he must have know what was doing on there i.e. no customers and no software.

Anyway he told me that the software industry is like the FASHION INDUSTRY.

FSK may be seeing a symptom of this. Now the fashion is test driven development. The last fashion was Agile development. Some old fashions were UML or Waterfall.

Companies should hire people good at writing code. But stupid managers need to make themselves feel useful and this means being the clever clogs that recommend silly methods that have nice books written about them.

Esse commented on Test Driven Development Personality Analysis.

If you have a large enough codebase that one person can not hold it all in his head at once, then someone making a lot of changes to code is going to badly break it in hard to detect ways unless you have module testing in the form of regression tests at a fine enough level to instantly detect bad changes. One can leave working code alone and avoid this, but then one ends up with the big ball of mud pattern and it becomes impossible to fix bugs or make even small changes without inadvertently breaking things in subtle ways anyway. One solution to this is allow for refactoring things to redesign in place before making major changes to it, but to do this safely requires that one have comprehensive tests. The thing is though that people won't write tests after the fact when stuff is working, so to get it to happen you have to require that tests be written first, before the code.

So that's why they are doing this. If they aren't doing the whole set of things though, it's all pointless. The testing is to support the ability of one person to refactor code written by another without breaking it.

Esse commented on Test Driven Development Personality Analysis.

BTW, my post is not to advocate but explain the reasoning and set of circumstances that led some to advocate doing this.

Of course as your post hints at, a gigantic problem with this is if you can write tests before you write code you must know exactly what the code does and be writing to a spec that is completely nailed down and which has been thrown over the wall from the architect to the analyst and then from the analyst to the coder.

If it turns out that The Code Is The Design, and the developer is also the person who makes it all work, then it's obviously not possible to write tests first most of the time because we don't yet know how something is going to work.

One solution to this problem is to, as you say, have someone such as a QA department write the tests, to test functionality as described by the technical writer who interviews the developer or just looks at the code. But most companies don't even have QA. It's really funny when they'll be going on about the necessity for heavy methodology and they don't have a QA department that is capable of writing tests to check the code.

Esse commented on Test Driven Development Personality Analysis.

(note: "thrown over the wall from the architect to the analyst and then from the analyst to the coder" of course means Waterfall methodology or BDUF)

Your insight about whether they can explain it back to you is the key. If they don't understand WHY they are advocating building tests first, then they aren't qualified to be advocating it and should just let people do whatever.

Anonymous Coward commented on Test Driven Development Personality Analysis.

Methodology fanboys don't realize that a certain methodology of works for certain types of software.

Suppose you are writing a new type of 3d engine or a complicated parser or are doing experimental stuff in trying to write a totally better type of software... Then the software is so complicated and so time-comsuming and the problems so difficult then having to do up-front tests won't really help you.

I agree with the need for tests in large amounts of software, but if the piece of software you are writing is really advanced and difficult, it may be better just to get the thing working first and solve the problems first. Some software is so difficult you only know the problems once you start the work. Business analysts can't help with this kind of work because they don't understand it.

I never said that I was opposed to automated testing. My complaint was against "tests first, code later" or "test-driven development".

I had two people advocate for "test drive development" in my recent job interview cycle. Both of them seemed like fools.

The key insight is that, when I express skepticism, they dismiss me rather than try to explain to me why it's a good idea.

My new job is the opposite extreme. They don't have a QA server. They don't have a dev server; their other developer directly edited production. I asked them to set up a QA/dev environment on my PC, and they didn't know how to set it up and configure it.

If you never do a restore, then you're never doing a backup!

Jerome commented on Test Driven Development Personality Analysis.

"Test Driven Development" is a buzz word.

However, there are some techniques I've picked up over the years that might be considered "Test Driven Development".

I write test code at the same time I write my code (not before)...so I might write a little code than write a little test harness code to execute that code to be sure it's working properly and than repeat.

I try to isolate code that accesses external resources (database, web services, etc) so that I can test the logic in the code without having those resources available all the time.


RonnieP commented on Unemployment Law.
I would be more offended that the New York law seems to encourage a potential employer to underpay you. If the potential employer was going to offer the same amount you were making before for the position, but knew if he offered 82% of what you were making that you would be forced to take it, I would think many employers would choose to pay the lesser amount, even if they were willing to pay more before finding out about your umeployment history. I mean why not? You can't say no...

Anonymous Coward commented on Unemployment Law.

I've had some sleazy employers before.

In fact the last two companies I worked for still owe me money!

The very last company I worked for are real scumbags and I avoid them like dog dirt in the street. The owner wrapped himself up in a tissue of lies and I'm sure told different sets of lies to different people at different times. Not a nice character to have to deal with.

The second last company I worked for also owes me money. They are getting a bad reputation with former staff openly saying bad things about them. However they are not total scum. I did write to them saying by law they owe me money. From memory it is between one to two thousand dollars. They ignored my letter.

My work history might be a bit better that yours - apart from my current self-employment which I'm sure counts against me! I have a collection of early jobs that lasted a year, but more recently have stayed much longer in jobs. However the reason I stayed so long in my last job (a real scummy horrible place) was simply because if I resigned I knew every new employer would complain about my work history.

My regret is now that I didn't leave sooner. The owner was a psychopath and I have suffered mentally for staying so long.

Anonymous Coward commented on Unemployment Law.

I wonder if a US company fires a h1b non-immigrant worker that they don't have to pay extra employment tax, as h1b non-immigrant workers are not entitled to any unemployment benefits if their job ends.

I could refuse the job, but then I'd lose my unemployment benefit.

The risk of underpaying me is that I might find a better job. However, switching jobs isn't easy. Quite frankly, nobody wants to hire someone who's older than them, more experienced than them, and smarter than them. My options are severely limited. I don't have much negotiating leverage.

Hopefully, they'll start making more money from their website in a few months, and will be able to pay me more. In this case, I sincerely believe that their limitation is "We don't have the cashflow to justify a high salary!"


Anonymous Coward commented on Express Or Local?.
If you are writing software, can't you spend a few days at home doing the same work?

Actually there are real advantages in actually going to work and having all the workers in the same room or building.

In one job, all the other software developers in my group spent several days at home PRETENDING TO WORK. I went into the office every day. As a result I was asked to do much more work and asked to help out with other projects.

By helping out with other projects I helped the company in a big way.

Just minutes before I got fired, one manager told me the work I had done had really helped the company. Obviously at that time I didn't know I would be fired minutes later.

Ironically all my co-workers that PRETENDED to work from home, AND were hired solely on the basis of being friends with a couple of manager, kept their jobs. I got fired.

By coincidence (ha!) only the non-managerial workers that had been in the company long enough to get share options were fired!

One fired worker was re-hired as a contractor via a third-party company. After a while he realized his new pay did not cover his rent and he had to leave London and give up his new part-time job.

I'd rather actually go to work than stay at home all day.

Many employers are hostile to working at home for that reason. You can't tell if someone's really working or fooling around. The real problem is that most employers can't evaluate productivity. If you can't evaluate how well people are working, at least you can count the number of hours they're in the office.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>