Archive for September, 2006

SharpDevelop (continued)

Friday, September 22nd, 2006

I’ve moved a medium-sized non-critical project from VS 2003 to SharpDevelop to see how things go. Here are a few random observations from briefly playing around.

  1. There doesn’t seem to be any visual edit capabilities for menus, or if there is I can’t find it. This is no great loss, as I’d rather edit the code anyway. In a way, it would be better if there were no designer facilities at all, then I wouldn’t be tempted to use them.
  2. The code completion kicks in when you’re editing comments. Attempting to type “new picture” in a comment requires pressing the escape key at the right time to get rid of the code completion. I find code completion irritating enough when typing code, but when typing English it’s a nightmare. I could disable it I suppose, though I would rather have the option to use it (when I ask) instead of it butting in.
  3. The search interface seems very unfriendly, at least the way I’m using it. I press ctrl-F, the search dialog appears, I type the text, and hit return. On VS, I can then press Escape to get rid of the dialog, but with SharpDevelop the only option seems to be to reach for the mouse and click the minature ‘x’ button.
  4. The editor seems to suffer from some serious performance issues when there are lots of icons in the left margin.
  5. Apart from a few bits of tinkering with imports, and the ditching of the Setup project, the whole thing worked straight away.

That’s all for now.

The Cardboard Child

Thursday, September 21st, 2006

Today I’m going to explain my surefire road safety scheme, which I think should be implemented with immediate effect. It all centres around those lifesize cardboard cutout things which will be issued to the traffic police who are empowered to place them on the road anywhere they like - typically this will be just round a blind corner. The penalty for hitting one is a 5 year driving ban, during which the offender must spend every weekend on cardboard child placement duty.

I don’t think this is unreasonable, and in fact over the years I’ve never heard a single valid argument against it. Thinking about it, when challenged, people tend to just smile nervously and look for someone else to talk to.

Pointless

Tuesday, September 19th, 2006

Everything here is pointless, so to warrant the title the post must be about pointless things.

I passed my favourite pointless road sign today - it’s a massive white-on-blue motorway job, which reads “No services on M1″. It’s located about a minute (traffic permitting) before you reach the northern end of the M1!? If anyone can offer an explanation for that I’m all ears.

Not much further on, an even more gigantic sign reads “Wide hard shoulder for 2 miles”. It’s true, since you could easily park coaches side-on all the way along it, but do we need a warning? I can’t imagine why, but then I can’t explain the disturbing number of people that drive along it. The excessive width makes it look less like a lane, not more.

And then tonight, and this is what brought the subject to mind, I saw a real gem on the A59 near Knaresborough. This is one of those temporary yellow signs, like the ones that make sure that battered old Saabs and Volvos can find their way to stamp fairs and steam engine rallys. “For Wetherby, follow existing signs”. Uhuh. Hope nobody steals it, or there’ll be chaos. I suppose it could be a way of ending a diversion though.

Switching to shopping, I’ve long been amused by both Sainsburys and Morrisons who have evidently issued a directive that all customers must be asked “Do you want any help with your packing?” and also a straight face must be kept when they only have 3 items. Actually, thinking about it, the less items you have, the more likely it is that they’ll ask. What brought this to mind is that guy in the garage in Manchester today delivered, unsolicited, the same observation about Asda, while I tried to pay him for my petrol and some provisions for the motorway.

Chips again

Monday, September 18th, 2006

It only took 11 days for us to have chips again, but this time some of them were not potatoes, they were parsnips - served up with the remains of yesterday’s roast chicken and cauliflower cheese. Obviously yesterday the chicken came with roast potatoes. You can see why my thoughts are dominated mostly by the potato.

Today I’ve been mostly code reviewing. Sometimes I wonder how this stuff works at all - the highlight was something that was very badly designed in the first place, but due to several mistakes in the implementation the end result was actually nowhere near as bad as what the developer was trying to do.

Duck, cat

Sunday, September 17th, 2006

This morning, baby Mia is staggering around the yard at high speed, throwing stones at the cat. Her proudest moment was two stones launched simultaneously, one from each hand, and surprisingly accurately. From a distance of at least 7 feet* they fell only about 6 inches** short, but otherwise right on target. If this is normal behaviour for an 11 month old, I’m a chinaman.

*For seafaring types, in fathoms, this is 1.16666 recurring.

**For horseracing types, in furlongs this is 0.000757575 recurring.

The Prickliest Hobo

Sunday, September 17th, 2006

The hedgehog with the top of its head sliced off (see earlier post) has been sighted again, up at the farm. In broad daylight, it scuttled across the farmyard oblivous to two dogs and several chatting people. From this, scientists can conclude that the top section of a hedgehog’s brain is responsible for (a) a nocturnal lifestyle, and (b) avoidance of predators. Thus, there is a glimmer of hope for insomniacs and people who keep getting into fights and I predict that in the future, laser head slicing will be as common as taking an aspirin.

Mash

Saturday, September 16th, 2006

Continuing the potato series, tonight I’m making mashed potato. I’ve seen various TV Chefs* going on about how to make the ‘perfect mashed potato’, which frequently involves all kinds of ridiculous machinery and techniques, and the end result is some kind of gloop that looks like wallpaper paste. Well no, I say, because the perfect mashed potato is one that still bears some resemblance to potato. Also, if you’ve read my previous potato postings, you’ll guess that my way is going to be easy.

I should think anyone who calls themself a chef is going to be absolutely horrified by what follows, but that’s ok - you don’t have to eat my mash, and I certainly won’t eat yours.

So: peel potatoes (optional**), chop them into chunks, place in pan of boiling water (just water, nothing else), leave them in there until you can see the water turn a bit starchy, then drain. At this point, you can add butter (loads), milk (not too much) or pepper (truckloads) at your discretion, or any combination of the three. And/or cheese. Then mash it up, but not too much. That’s it.

If that sounds really dull, you can effortlessly toss some stuff in while the potatos are boiling - some herbs are the obvious idea, but chopped leeks or onions are good too.

So there ends today’s potato post, but don’t worry, because I’m sure I’ll be back with more spuds of wisdom.

*In the age of reality TV, TV Chefs have been renamed Celebrity Chefs, presumably to distinguish them from all the non-celebrity chefs clogging up the airwaves.

**Sometimes it’s nice to have the skin on them, sometimes it isn’t. Variety is the spice of life. However, if there’s any green colour to the spuds, I always peel them. The green stuff is chlorophyl which naturally forms near the surface as the potato (exposed to light) ages. This is all well and good, but it’s an indicator that another process has been going on, which is the formation of solanine. Solanine is both minging and poisonous, though I think you would have to eat a barrowload of green potatoes to feel any ill effects.

Hedgehog Hospital

Wednesday, September 13th, 2006

The other day while sitting outside we heard a sneeze from the grass, and Mika was just stopped in time from pouncing on a very unwell looking hedgehog. It seemed like it had been in an argument with a lawnmower, resulting in the loss of a large chunk of the top of its head - though not too recently, as it seemed to be healing, and there was no infection. After a lot of umming and aahing we decided to give it some cat food, though it looked so unwell we thought it might not even eat. To our surprise, it tucked into the cat food, polished it off and went about its business.

The twist came today, when we told our gardener* about it. He lives about a quarter of a mile away across the fields, and it turns out they’d found this same hedgehog a couple of weeks ago, with the wound fresher and badly infected. It was treated with “some of that stuff you put on sheep when they’ve got maggits” and off it went.

Notice that the events in this exciting story occur out of order to how they actually happened in the calendar, i.e. you don’t find out about the hedgehog’s original treatment until later. This confirms my suspicion that Quentin Tarantino is secretly scripting my life, and I’m only stating this here to deflect any blame in the event that I accidentally shoot someone when my toast pops out of the toaster tomorrow morning.

*we don’t have “a gardener” the way the Queen might - in fact I just neglected our oversized lawns and orchard to such an extent that we had to get a pro in to rescue the situation.

Eight Trains

Monday, September 11th, 2006

I’ve been on eight trains today, which is more than the rest of 2006 so far put together, as follows: Weeton to Leeds, Leeds to Kings Cross, Kings Cross to Vauxhall, Vauxhall to New Malden, and then the same again but in reverse.

Last time I did the same journey, I drove down the night before and stayed in hotel. That was cheaper, as well as more pleasant. While it doesn’t seem to bother most people to be riding around like cattle and herded through tunnels and gates, it’s something I always try my best to avoid unless absolutely necessary, and today has reinforced that.

Fortunately, the cattle trucks got me to the meeting early, and it was definitely a worthwhile trip.

Back home, baby Mia, who was in bed asleep when I got up at 5am, is in bed asleep. It’s probably only the third or fourth time that’s happened in eleven months, which is too many for my liking but it could be a lot worse.

SharpDevelop

Saturday, September 9th, 2006

I’ve had my eye on the SharpDevelop project for a while now. SharpDevelop is an open-source IDE for languages that run under Microsoft’s .NET Framework, or it’s open-source equivalent, Mono. Earlier versions have looked promising, but not yet convincing, but last weekend was my first good look at version 2.

Essentially, SharpDevelop is a clone of Microsoft Visual Studio .NET, although many differences are apparent from the word go. A good deal of these are differences for the better - the most notable being the ‘forms editor’ which is so far superior to Microsoft’s effort that they ought to be ashamed. On the downside, debugger support is still a little flaky (though less so than last time I looked) and lacking in features.

I needed a small app to provide a quick friendly UI for editing some data stored in XML files, so I used the opportunity to take SharpDevelop for a test drive. It performed almost flawlessly, and the mini-project was a success. Of course, success in a minor development task like this doesn’t mean it’s ready to take on large-scale application development. I’m not convinced it is quite there yet, but my next excursion with it will be to try and transfer a large project across from VS.NET to SharpDevelop and see how it performs.

When you consider that this is free, and we’re currently staring down the barrel of a multi-thousand pound bill to upgrade a small development team from VS.NET 2003 to VS.NET 2005, perhaps the better option would be to wait, or even make any necessary fixes ourselves.

The only shocker was that my tiny app had a 9MB memory footprint on startup, but I can’t point the finger at SharpDevelop for that, because the same was true when I compiled it with Visual Studio - no surprises there since both use the framework’s compiler.