Monday, January 24, 2005

Naming Conventions

Good presentation by Brad Abrams about naming conventions - nothing new, but it's all spelled out in detail, types, methods, parameters, properties etc. along with the most important point (IMHO) - that naming conventions only apply to externally visible entities (i.e. public and protected.)
Private names are left to the developer / development team.

Sql Adapter and char(1)

There appears to be a bug in the SQL adapter wizard that prevents the creation of receive port schemas if the undelying SQL datatype is char(1).

Balaji Thiagarajan has posted a workaround here.

Saturday, January 22, 2005

Picasa 2.0

I've been playing with Picasa 2.0 recently, and it's fantastic. It has all the look and feel of a Mac program, and is definitely worth checking out, if you store any photos on your computer.

Picasa contact sheet collage.

Picasa picture pile collage.

Tuesday, January 18, 2005

Mini-mac economics

This was posted before the mac conference, following on from the Think Secret story. I've lost the link to the original article, but the quote is quite interesting:

"We might see that as early as next week with the rumored introduction of an el-cheapo Mac without a display. The price for that box is supposed to be $499, which would give customers a box with processor, disk, memory, and OS into which you plug your current display, keyboard, and mouse. Given that this sounds a lot like AMD's new Personal Internet Communicator, which will sell for $185, there is probably plenty of profit left for Apple in a $499 price. But what if they priced it at $399 or even $349? Now make it $249, where I calculate they'd be losing $100 per unit. At $100 per unit, how many little Macs could they sell if Jobs is willing to spend $1 billion? TEN MILLION and Apple suddenly becomes the world's number one PC company. Think of it as a non-mobile iPod with computing capability. Think of the music sales it could spawn. Think of the iPod sales it would hurt (zero, because of the lack of mobility). Think of the more expensive Mac sales it would hurt (zero, because a Mac loyalist would only be interested in using this box as an EXTRA computer they would otherwise not have bought). Think of the extra application sales it would generate and especially the OS upgrade sales, which alone could pay back that $100. Think of the impact it would have on Windows sales (minus 10 million units). And if it doesn't work, Steve will still have $5 billion in cash with no measurable negative impact on the company. I think he'll do it."

The [ACID] transaction is dead; long live the [compensating] transaction

For what seems like forever, developers have learnt about ACID transactions and the "two-phase commit". Like database normalisation, it's just something that everyone needs to know. The "Hello World" of transactions is the bank transfer. If you move money between two accounts, then the debit from the source and the credit to the destination must be completed as an ACID transaction - otherwise someone loses out. Fact.

The birth of the message-centric, asynchronous, loosely-coupled (any more buzzwords?) "service" model has serious implications for the traditional transaction, as it has become impossible to coordinate transactions across service boundaries, over long periods of time. Hence the concept of the "compensated" transaction. If your action fails, then use some kind of compensating process to undo whatever you'd started. (This is easier said than done - as someone once pointed out, if the initial process launches a missile, compensating for it is tricky.)

I now have incontrovertable proof that the two-phase commit is dead; long live the compensating transaction.

I have seen a number of strange payments over recent months from my mortgage company to my current account, matching the amount that I pay them at the beginning of every month. The mortgage company couldn't find any standing order, and once I'd convinced myself that they weren't simply giving me the money, I investigated further. It turns out that I'd not updated the bank account details when I changed mortgage, and that my monthly debit was being paid to a non-existant bank account. However, rather than reject the payment, raise an alert to someone, and sort the problem out, their systems were simply repaying the money about 7 days after the initial payment. This had been going on for about 6 months!

God alone knows where the money went in the missing days, as no one took responsibility for it (and were not therefore earning interest on it.) I also incurred an overdraft penalty during that period. Since I had expected the debit transfer to occur in any case, I don't really have an argument for personal compensation on this one, but it raises an interesting point!

Avian Carrier Standard

It's an oldie, but still worth reading:

Somewhere I've read a document on the use of a pick-up truck and DAT tapes to achieve ultra-high bandwidth data transfers, but I can't seem to find it. A beer for anyone who can find the link...

Virtually perfect?

I'm thinking of rebuilding my machine to the bare minimum, installing VMWare (or V'Server), and basically running the whole time as a virtual machine. The question is whether my machine is powerful enough to run VS.NET within a virtual machine, and whether V'ware is reliable enough?
Surely the time has nearly come when all machines run as virtual machines within a shell OS container? Storage is so cheap that you can backup entire images, giving instant rebuilds. You could even keep your own image on a DVD (well, almost), and take it with you.

Which is, I guess, where this is going? It's an interesting concept - you could run a series of locked down OS for different purposes. As a contractor this is particularly interesting - clients could issue an OS image that would allow someone to VPN / access corporate email, etc.

You could become a virtual employee of a number of different client companies, and if they wanted a day or two's work, you could just boot up the Xyz plc image, and you're already there. It could happen. Really.

On next week's show... Hugo commutes to work in his personal rocket ship. Before travelling back in time to fix his grades, then spending the weekend on Titan.

Regenerate BizTalk [web reference] Files

Occasionally I find myself updating web references, to no avail. VS.NET 'says' it's updating, but nothing seems to happen (the reference*.xsd files are unchanged). I used to get around this by deleting and re-referencing the web service, which is a pain.

Turns out that in addition to the "Update Web Reference" option when selecting the reference, there is a "Regenerate BizTalk Files" context-menu option if you select the file beneath the reference itself. This does the trick. :-)

I'm guessing that the update simply changes the .disco / .wsdl files, whilst the regenerate option change the reference*.xsd files.


This is actually quite interesting:

"These [search] engines crawl the public web without asking permission, and cache and reproduce the content without asking permission, and then use this information as a carrier for ads that generate private profit."

2005 Predictions

It's a bit late, and they're not mine, but here are some interesting predictions for the coming year.

Thursday, January 06, 2005

Objects of desire

1. I'm warming up to buy a Hush E-Series media server. I know I could build one myself for about a 1/5 of the price, but it just wouldn't be the same. (No dual digital TV receiver though :-( )

2. I'm thinking about a Nikon D70 to replace my old Nikon SLR, which broke whilst on holiday last year (if anyone from Conchango HR is reading this - no, no one ever called me back about my valid insurance claim!)

3. After my earlier rant about Panasonic's ability to produce a piece of consumer electronics that would look ugly in a server farmer, Apple have gone and produced a top-end server that wouldn't look out of place in your living room. The Apple "Switch" page is now in my favourites...

Sunday, January 02, 2005

Happy New Year

Happy new year everyone - I for one am hoping for a bit more stability in 2005 - 2004 included 3 different jobs, and 2 months without work, which is not so good for the nerves.

2005 is the year of:

1. The Digital Home - I've been talking about getting properly wired (or wireless) for a while now, and even thought about setting up my own business in this area about 18 months ago (as I was finding it so difficult to get any useful, impartial, advice), and I could do with upgrading my existing TV, which has recently decided to revert to black & white pictures only.

In addition to the Sky+, DVD-R / PVR, Apple iTV, Windows MCE options, here are another couple to look out for:

2. Get fitter, and pref. stop commuting. Travelling to work on the train for much of 2004 has proved my undoing.

3. Go on more holidays. I don't have enough of them, and I never plan them in advance.

4. Ski more. I love it, and don't do nearly enough. No new contracts in Feb / March thank you :-)

Have a great year everyone.