Blogs

Pinging down NetMeeting data channels

Back in 1999 Darren came up with a cunning plan to make lots of money. The plan was ‘device control over the internet’… In summary, we didn’t. Ideally this plan required an audio/visual link as well as a device control link. I decided that doing the audio and video ourselves was too much work and that we’d be better off using the NetMeeting data channel for our device control. We would get the audio/video stuff for free and wouldn’t have to worry about things like cameras and microphones.

Wise words

“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.

Top tip

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 and ISO8583

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…

That test driven development thing might just work

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…

Full bodied, or not?

So, I have the standard MT rss 1.0 syndication feed that I hacked to include the full body of each entry and I have the all new, funky, MT rss 2.0 feed that I have left as is and which doesn’t include the full body of the article… And people argue over how this stuff should work and I have, like, 2 readers and, well, use whichever you want… The RSS 2.

Switching to CVS

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.

Analysing my blogging

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… ;)

Giving it away

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…

Analysing my analysis

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.