Wednesday 28 September 2011

Captchas are evil!

Why do you assume your users are mischievous bots? That´s not nice!

Reminds me when I was on leave when doing my military duty. Me and a couple of guys went to a bar and the first thing the bartender says is "If you skip the check I'll kill you!" Don't assume you're users are bad.

Don't let the users suffer for your spam protection! It's your problem, not theirs!

There are other - better - ways to tell a computer from a human, see http://pastebin.com/raw.php?i=SWFLJzJv. Pasting it here too:
   1: <style>
   2: #sdaq{
   3:  display:none; 
   4: }
   5: </style>
   6: <form>
   7:  
   8: <label>email: <input name="email" > </label>
   9:  
  10: <label id="#sdaq">leave this blank: <input name="sdaq" > </label>
  11:  
  12: </form>

Even a checkbox saying “Uncheck me if you are a human” is better…

Or, you could at the same time filter on humans: http://www.robertfolkesson.se/Home/Arkiv/10302#Comments (scroll to bottom). Only allowing geeks to comment :-)

Sunday 25 September 2011

Windows 8 - what's in it for me?

Are you developing on Microsoft plattform? Want to know what Windows 8 will do for you? Want to be the first to know?

Come to Active Solution and hear all about it!

More info here: http://www.activesolution.se/Seminarier/De-viktigaste-nyheterna-i-Windows-8/

Wednesday 14 September 2011

TDD day with Roy Osherove

Had a great TDD (and unit test) course with Roy Osherove at my company yesterday.
Here are some things that caught my attention. I'm writing them down mainly for a reminder to myself.
1. Good test names
Good test names are everything! There is nothing wrong with that it may take hours(!) just to come up with a good name for the test. Don't start writing code for the test and make up a name for it later - spend time on the name instead! If you have a great name, writing the code for it will take minutes.
2. Refactor tests
This may sound obvious, but you often forget that even your tests needs refractoring. A test should only contain a couple of lines of code. It it doesn't it's a signal that you are writing a bad test. Maybe you're testing the wrong thing or testing to much or anything else. To help: see 1). ...or refactor!
3. No [SetUp]
Don't use setup. It destroys readability. Refractor instead. More reading: http://jamesnewkirk.typepad.com/posts/2007/09/why-you-should-.html
4. No [TearDown]
It's fine to use teardowns. But it's a signal that you are not writing unit tests, you are writing integration tests!

Maybe I'll update this post if I start to remember more things :-)