« September 2003 | October 2003 Archives | November 2003 »

Back to the refactoring project

| 0 Comments
I've spent the last couple of days back with The Refactoring Project. They've done well in my absence. They managed 3 releases; all correctly tagged and repeatable. They started some refactoring of their own and, at first glance, it looks like they've taken on board lots of the suggestions I've been making over the last months. They've fixed a couple of new bugs in the FX code and whilst doing so found that a) the bugs were easy to locate, b) they were easy to fix with very localised changes, and c) the new code was much easier to work…

Comment rot

| 0 Comments
There's an interesting discussion going on on the ACCU's mailing list at present. It's about the value of comments in code. This is one of those topics that comes around every so often and this time I decided to dive in with some controversial suggestions.…

Windows update should...

| 4 Comments
Windows update should let you flag updates as things you dont want. You should be able to add some text if you want; so it can remind you why you didnt want it, and say to it "don't show me this one again unless I ask...".…
Joe Bork explains why he now tells people he works on Word as a way of connecting with something people understand. I found that people seemed to understand what I did if I compared Word to a Moss Bros suit and then explained that I was a Savile Row tailor.…

Murphy's Law

| 1 Comment
This is a nice story about the birth of Murphy's Law. Yes, there was really a Murphy... From the 2003 Ig Nobel prizes, via Barry.…

Does TDD lead to earlier integration?

| 3 Comments
I'm developing a POP3 server. I've been developing the protocol handler test first and it's nearly done. I haven't started on the mailstore itself yet but I could easilly integrate the POP3 code into the server code and have a functional POP3 server...…

Why objects should keep it on the inside

| 0 Comments
So, I'm integrating this POP3 code with my server and the first thing I do is create null message store. I haven't implemented the message store yet, so in order for me to integrate I need a message store that just says yes to everyone being a user and provides mailboxes that are always empty... The test driven development has made this reasonably easy, I have a message store interface so I just need to stub out the methods appropriately. It's then that I find that the interface is bad...…

Harvest Time

| 0 Comments
I had a bit of spare time today so I finished the POP3 server integration. It went nice and smoothly and I tested the result with telnet and Outlook. During the Outlook testing I noticed the 'this server requires a secure connection (SSL)' checkbox. I hadn't been aware that there was a standard port (995) for accessing a POP3 server over SSL. My server currently only supports port 110 for unencrypted transport but I've got code that can turn my server into an SSL enabled server... Looks like it's time to harvest that into The Server Framework.…
The harvesting of the SSL server code took about an hour in all. It was simply a case of shuffling some code around, ripping it out of a project and into the library and then adjusting the original server and the POP3 server to suit. So, I now have a POP3 server on 110 and 995; and Outlook even lets me know that my server certificate is bogus... I guess I need a real message store now...…

MSDN Reloaded

| 0 Comments
Wheee. I can throw all of my existing MSDN disks in the disk bucket and I don't need to keep wondering which is the latest version. They've changed my subscription 'for the better'... Hmm, it seems that now the colours will be used to identify the type of disk (I'm sure that's how it used to be before they changed the subscription 'for the better' last time around) and the major numbers will stay the same when a disk replaces another disk, only the minor number will increment... Sounds sensible... I hope it works.…

Exceptions are for exceptional situations

| 0 Comments
Like drumming up traffic to your site, perhaps? ;) On Monday Joel Spolsky wrote a controversial piece about exceptions; he hates them. Much blog cross linking and local discussion ensued. Today he's followed that piece up with a piece that basically says 'exceptions can be good and they can be bad, it's a design tradeoff'. Which, of course, takes all the controversy out of the original posting; strangely I was expecting something like this...…

Tests and TDD in anger

| 2 Comments
This week we started to make some changes to the FX code. The existing code made some strange assumptions about some of the edge cases and the resulting display was occasionally inconsistent. We fixed that, and the tests saved us from a couple of embarrassing mistakes. Meanwhile, in my free time, the test driven POP3 server development continues. I now have a working server that can run off of a message store that lives on the file system and can do all the things that a POP3 server is supposed to do. So, did the test first approach help?…

Unexceptional examples

| 4 Comments
We're going to run out of amusing titles for these exception related blog entries sooner or later... Joel wants Ned to rename the functions in his 'exceptions are better' example. He wants InstallSoftware(), CopyFiles() and MakeRegistryEntries(). Jesse Ezell leapt in with a C# version which includes the rollback functionality that Joel was undoubtedly hinting at. The thing is, although Jesse is defending the use of exceptions, I think his example is making the case for the other side...…

Tangled testing?

| 2 Comments
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...…

lessonOfTheWeek == !onesize.fits(all)

| 3 Comments
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.…

James Antill doesn't like TDD

| 0 Comments
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. James, I disagree...…

Dirty Little Secret: Test code is fun to write

| 0 Comments
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...…

Sniff my packets!

| 1 Comment
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"...…

Way behind the curve

| 0 Comments
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. So I installed and tested what I needed and I still have a clean Windows 98 box in a box. I installed…

POP3 Client almost complete

| 0 Comments
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...…

iPaq upgrade

| 2 Comments
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...…

A sustainable pace

| 5 Comments
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...…

I'd like a refactoring lint

| 4 Comments
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.…
« September 2003 | October 2003 Archives | November 2003 »

About this Archive

This page is an archive of entries from October 2003 listed from newest to oldest.

September 2003 is the previous archive.

November 2003 is the next archive.

I usually write about C++ development on Windows platforms, but I often ramble on about other less technical stuff...

Find recent content on the main index or look in the archives to find all content.

I have other blogs...

Subscribe to feed The Server Framework - high performance server development
Subscribe to feed Lock Explorer - deadlock detection and multi-threaded performance tools
Subscribe to feed l'Hexapod - embedded electronics and robotics
Subscribe to feed MegèveSki - skiing