“The most successful method of programming is to begin a program as simply as possible, test it, and then add to the program until it performs the required job.”
– The PDP-8/e Small Computer Handbook (DEC, 1972) - Chapter 9, Page 9-64
Just what those agile guys are saying!
from Joel.
For those of us still working with VC 6… This page about all the clever things you can do in the debugger watch window is pretty cool. I knew all about s and su and hr but I didn’t know about m, that one’s way cool.
Hmm, looks like all of these work in VS.Net 2003 too :)
OBEX is a nice little protocol and reminds me a bit of a massively simplified version of ISO8583. It’s a pity about the warts on Connect…
The OBEX spec defines objects (messages) in terms of a fixed opCode, followed by a 2 byte length indicator followed by optional headers (fields). Each header identifier indicates both the type of header and the way that the length of the header is encoded. Everything in a message is a header - there’s a ‘body’ header for sending data…
So, we have currency based limits and they’re in millions.
Us: “Are they always going to be in millions for all ccys?”
Them: “Yup.”
Coded, tested, delivered.
Them: “can we have the JPY limits in billions?”
Us: “US or European?” ;)
So now limits have exponents and exponents have names. I dummied up the functions to just return an exponent of 6 and a name of “m”. That worked. Then I added tests for it… I took out the “* 100000” and called the new getLimitValue() function that takes the display limit and applies the exponent…
For my sins, I’ve used Source Safe for version control on quite a lot of my projects in the past few years. It’s got its faults but, well, the price is right…
Now that I have a laptop that I can actually work on again… Ok, I know it’s a lame excuse for buying a new toy, but…
I need to be able to work on at least two boxes at once.
I see a trend here… So, I blogged, I ate, I had a little wine.
And started thinking…
Why did I write the last entry today? I’ve had it in my stack of ‘blog this’ emails that I send to myself for ages. I wrote about it on Joel last week. I didn’t feel the need to blog it then. So why today? Hmm, I guess people might say I’m a self analysing type, I wonder if that’s bad… ;)
I give a lot of source code away on the web. I have done for several years. Often when I tell people about this they try to convince me that I should be selling the code rather than giving it away. They don’t need my code and are way more business savvy than me and they come up with all manner of clever ways that I could do this, but this is why they’re all wrong…
In my usual “don’t read the manual” style I crufted together a simple OBEX decoder, fudged a response to the connect message and watched my iPAQ send the first chunk of the file I’m using as my test. Now I’ll throw away this crummy piece of code and write a proper OBEX protocol handler.
I’m a cynical chap. I like to prove to myself that things work before I invest too much time in them.
I’m a firm believer that software rots unless you’re very careful; and like apples, once one piece starts to go bad the rest quickly follows. The Pragmatic Programmers talk about Software Entropy and The Broken Window Theory and, unfortunately, this week the refactoring project showed how true this is…
We’ve spent several weeks working on cleaning up this project, but there’s a lot of code and it’s all in a bit of a state.
My dabbling with Bluetooth continues. Using WSASetService it’s pretty easy to get your device to advertise a standard Bluetooth service on one of its sockets. Simply create your socket with the Bluetooth address family, bind and listen as normal and then call WSASetService to start advertising a service on this socket to other devices within range. Now call accept and wait…
I chose the File Transfer Service as my hello world service.