Blogs

I'd like a refactoring lint

So a refactoring editor doesn’t float my boat; a lint tool that warned me that there were bad smells in the code would… Right now I use Gimpel Lint as a code review tool. I run it, it tells me nasty things about the code, I listen, fix or ignore. It would be nice if it could tell me that there were bad smells. I think this is where real value could come from refactoring tools.

A sustainable pace

Ok, it’s that ‘wine’ time of the evening. Miche is working late, I’ve eaten and am close to finishing off a nice bottle of Pinot Noir and my thoughts turn to people being excited by refactoring editors… Firstly: I’ve never used a program that facilitated automated refactoring, so be gentle… Right, so we can select a block of code, right click, select ’extract method’ and the editor does all of the cut, paste and argument passing/receiving fixups… Does that really take people more time to do manually than it does to let the editor do it?

iPaq upgrade

Finally got the Pocket PC 2003 upgrade for my iPaq 3970. The upgrade went nice and smoothly and the iPaq feels quite a bit faster and everything seems a little more polished and easy to use. So far it seems that it was worth the money…

POP3 Client almost complete

The test driven development of the POP3 client code is almost complete. The development proceeded in a similar manner to the server code and I’m left with the same thing to write; the message store… I was quite pleased that the entire client development could be done without needing to connect to a real POP3 server at all. In fact, up until last night, I didn’t have any code that the client could use to talk over sockets.

Way behind the curve

I know I’m way behind the curve with this, but… I downloaded Virtual PC from the MDSN subscriber downloads at the weekend. It rocks. I needed to try something out on a Windows 98 box and I didn’t fancy repaving one of my machines so I went virtual. What’s cool is that once you’ve booted the virgin virtual PC and installed your OS of choice you can just copy the drive somewhere and use it again and again.

Sniff my packets!

Barry sent me an interesting link to a piece that points out just how easy it is to bypass wireless network security. I wonder if you can get a Bart Simpson shirt with him saying “Sniff my packets” rather than “Eat my shorts”…

Dirty Little Secret: Test code is fun to write

I’ve been busy :( but it’s paid busy so I suppose I can’t complain… This evening I got some time to myself to finally sit down and see how hard it would be to use all of my previous test code plus the real production POP3 server and command parser to act as a test framework for my POP3 client. It took just over an hour to plug it all together and then it just kinda worked…

James Antill doesn't like TDD

And this is why I hate TDD, testing is a great thing. But testing too early is bad, and you are obviuosly doing that. First you need to know what your code has to do in full. For instance even if you wanted to have both sync. and async. APIs (I personally abhore sync. APIs due to non-scalability) the obvious implementation is to have something like… James Antill - in a comment on my Tangled Testing entry.

lessonOfTheWeek == !onesize.fits(all)

I’ve enjoyed the hoo har over exceptions this week. It’s made me think and analyse and reassess what I do. I’ll be continuing pretty much as before, but it’s worth spending the time to think about these things once in a while. It was interesting to see people defending their positions and how some were open to new and different ideas and how some were not. It was useful to be reminded that what I consider an acceptable development trade-off may be completely different to what someone working on embedded stuff thinks is acceptable.

Tangled testing?

Last night I started on my POP3 client code. I didn’t know where to start; I wasn’t really in the mood, so I wrote a test… That got the ball rolling. As usual the test first thing left me with a nicely decoupled class to write. Now I’m in a bit of a quandary about how to mock up the server that I need to test the client against… The point of the CPOP3Client class is to provide a programmatic way to send POP3 commands and receive the results, parse them and present them in a way that’s easy to manipulate programmatically.