Friday, June 29, 2007

Garden rubbish

One silver lining to the rain clouds that have been deluging us this month. In a gap between depressions, yesterday, I finally got around to emptying the rain butt and rebuilding the stack of bricks and paving slabs it was sitting on.

The bricks at the bottom had started to settle into the gravel on which they'd been set (in the only really wonky bit of work the builders did); and the tout ensemble was only staying approximately vertical by resting against a fence panel of dubious structural worth.

This evening it was 2/3 full already, and dripping from around the tap. So, with more rain promised for the weekend, I had no compunction about emptying it again, and then having to crawl into the smelly depths to re-fit the tap. And then a good shower.

[Now playing - Planet Rock]

Links for 29-Jun

Haskell-based web store -- e-commerce and functional programming do mix

CarbonPython -- build .Net consumable DLLs from RPython

Moonlight Desklets -- cool stuff

Distributed programming IDE for .Net -- gives the ability to program multiple remote computers (i.e. servers) from within one IDE instance

Wednesday, June 27, 2007

Links for 27-Jun

Information Software and the Graphical Interface -- Interactivity considered harmful, and other design heresies

S5 : A simple standards-bases slide-show system -- a slide show format based entirely on XHTML, CSS, and JavaScript.

BOO -- a pythonesque  language for the CLI (and which also interoperates with IronPython to some extent)

F# -- Microsoft's ML-for-.Net language

Colour inspiration from the Old Masters -- pulling color palettes from famous paintings.

Safari 3.0 for Windows re-considered

Tuesday, June 26, 2007

Normal Service...

My Demon hosted site has re-emerged from the ether, intact.

I shall still continue to migrate the more bloggy bits to Life Before Blogging; and then give the site a good look-and-feel makeover, making use of 3 years more web coding savvy.

That darn cat

I don't know if it's that she misses the scrum that used to characterise feeding time, but Jemima has got into the habit of attracting attention, then going to her bowl and eating (and purring a bit). And repeating if we go away.

Flaming Weather

An intermittently sunny morning, with the forecast of being dry for a change. Still didn't fancy cycling into the stiff chill nor-westerly wind.

This quarter's weather has been put on back to front, I think.

Linkes for 26-Jun

This I believe... the developer edition

Feature complete CardSpace control

Testability and its costs 

Sunday, June 24, 2007

My life is on Google

Rather than just put all my Demon-hosted content back as is, it's a good time to refresh my web presence.

I've put a lot of the proto-bloggy cat-blog material into one blog; and my updates of my code-project GeoCities site into another.

And I've moved some of the code archives onto GeoCities UK for the moment, giving chance for a whole new look and feel of web design. I shall keep it small and simple, to get the design (especially the not-yet-written JavaScript environment) before doing a mass upload of many pages.

My old 1024-bit PGP key

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: 2.6ui

mQCNAi9HqY0AAAEEAOui8XEp6QBFeHl8DOA1Lk2BbjS57YRFNIc6QeZEwX4NaUcZ
eeIk90nFVIWdjRRsGobtuMSZMXl9MxZ/cw2xtFfj7JGpU9d1vz12UYebadS+8r2N
yuWEtprjZUGrsXMU1Y1cLuClr+kpsh+4DWNuBXELTILNxlsPD7iuOxyD0TQxAAUR
tC9TdGV2ZW4gQWxhbiBHaWxoYW0gPHN0ZXZlQHdpbmRzb25nLmRlbW9uLmNvLnVr
PokAlQMFEDEXcHz4RAGJlZmjrQEBHaID/1cnTLpxUq5R+sJrm38/nEYv4ynoTnt3
1xAzhOOvV9sl3CPHSm+6KX9svD8e4km473tR6zuDjOSFpSeTs+AE0LX3j63SCYr6
aFNpnTb8bWMne0TywQNVLOcrZO1Ha0gL6pqUaPjkoCm5IbmgFVW5XvLV87kyqgHP
Ro5fgAeEz+ZmiQCVAgUQL4km1loNLV3eBCeNAQEYQQQAgfNjvFXYpwgeq9rqMSNM
UjoZWbEB9LN34ok3wtABjMbWRWkohQS8QSftNrI0aTLv0IFWC+0IIaQ8w7MrQDrT
oTWZx5/dxsyHE2+f0UVlMZrUcMJ3D41bm0USCx5Bj3S6cNOkD8cyRKRxO8MGvZC0
7pWZ4ztIjcsEi+RYSy9YfsSJAJUCBRAvcKeQkrqEpQ6eju0BAfZWBACChMLd6jH3
ZyzoCWYqTlYYx9WPT8XruQvxN3q+tU5rU1N6+JTw8VePsvgC71ux6HishhQ782pG
wJSvgZAplQkwVi3EXGMNm6rYVlLDjAMaZzqKEvudyjl+mTSy1UAvrjJ2aP3dOY4O
4RmwuvOEwXz7Lk8Osrru3lippKwxwUn/VIkAlQIFEC9wgVqcUl4t/Ol3GQEBSTED
/3Vh+p/hAN2wXFrGGXcmOVThvLtmkJ+nDwtWpj7migLD3plN971EVEeuj9mQ91yI
sZBiivI6mx9zvzlLwy20SLRO9izhvmCb+ltsLBNKoQRJ9BcUWAcLfWYKkPpJliXF
ujPyI3PvJ++FtjQsKX0YgJBYyMna37h/HqDxKob7A3n0iQCVAgUQL282VmE0zlX6
a/XdAQH0CAP9HVleA0pcMB/mqrwCbZURfWONAb5Jhbft93fyBKmfDknQ6HQm/ITu
1n6206IEt4xfgQJ1z2eLbOhTwGO9zp9LO6M/MWUD3+euGaA8R4j+XAvM3Uinu4cF
h2ZBJnYCSmBr/ha6uTsNoj21kxbV0azwLXEowKJGoyKrtyrM9AIJrpmJAJUCBRAv
bdQmxErlmHyqa5EBAU/GA/0aEGkRgKgAAlWxg/SSJLlDrdKLHUlwy2OPCVNocJNJ
MtWyDEpDuDfxmdVuSu7p+L+a+QXjz5vAXk3r4IO2/cDJ+eM/+JgLZL1BQpGNaOqZ
W98wG2jyCB3Fq58yn3tK5s6VBCoFKuCwh3xgTug24XXwCmnJhKQVQHeMtcbgnDEA
3IkAlQIFEC9p3tmKFHeOWe3TRQEB/y8EAKvpdhoq0Uox8ls6Qp2ZSClpbRsu5b1y
CPzzb/jo/EjpzknF8WXQkpNtL+F+sAnv2jROa2OtLGgsINVlzzsEZUnI164seop/
+7QWx1YmFn/yRduT5A4KtfzCSGxoWnoYI37IJ4pkrIcqWMRK63TFANJDLHllc/6b
4KflAEGnh+xviQCVAgUQL2nedLiuOxyD0TQxAQEdrwP/dFtJtgtJWTQe+NLs+d8M
XFi5Mgf/ions0jb/KEYC0tNDPuW29jYChSxIRg0J7YOB1EwNL7CxlDXeCQZVr0mB
50JGpZGL0cs1asmzrxe9cgyYnWAPOXeMqW2pcimtZTlXhSvhWnCBa9ngSxD+1HPs
2zvBC34SNW8oVdJaeRvKH94=
=Kkj1
-----END PGP PUBLIC KEY BLOCK-----

I really need to upgrade this one soon.

Thursday, June 21, 2007

The open road

Cycling to work from having running repairs done to the tooth that was playing up at the start of the year (bits falling off now), it was a lovely morning for ambling along the Coton footpath (dodging the hedge cutting), and then on to the old main road.

Were it not for the 3 bits of single-lane roadworks it would have been marvellously quiet cycling. As it was, one was a dismount and push; and the other two too long for me to get through before the lights changed at the other end. And with string between cones, not easy to just nip out of the way of oncoming traffic.

Will be good when the works are all done.

Links for 21-Jun

AD FS Longhorn troubleshooting guide due soon.

More updates for the cardspace control.

Process as a substitute for competence.

NetBeans 6 feature complete with new RHTML support

Wednesday, June 20, 2007

Long day

Woken about 04:30 by having to help Karen to the bathroom, by 05:00 I gave up the unequal struggle and admitted that in the morning light, I was awake; so fired up the laptop and fiddled a bit with the blog, setting up Google Reader and tapping aggregations from that.

I wasn't the only one active at that time -- one of the UK blogs produced a flurry of posts at about 05:20.

On the road by 07:00, at the office by 07:50 for Bike-to-Work Day, and breakfasted copiously; then showered, and with the rest of the team, hit the road down to Chalfont. Going A1/M25, with stop/start traffic from junctions 19-21, it took 2h15. On the return, starting at 15:30 went A413, through Wendover to Tring, B488, A505, A5, A4012, A421, A428 took the same, even with a stop for petrol, and unusually slow traffic between the M1 and Bedford.

In the garden, about 30 minutes ago, just enjoying the slow twilight, I was taken by surprise by a hedgehog crossing the property, and disappearing under the fence.

Tuesday, June 19, 2007

Post # 666

The makeover has happened, as you can see.

Based on the Jellyfish template, with a little bit of beating into shape.

And with the new widget for archives, not before time -- the old month-by-month was getting a bit vast after 4 years.

[Now playing - Planet Rock]

Links for 19-Jun

Escaping from Gilligan's Island -- or should that be "the Village"?  A timely reminder of Steve McConnell's list of classic development process mistakes. How many of these can you see if you look around you?

A General Purpose Asynchronous SOAP Client in ASP.NET

Updated  ASP.NET CardSpace control

Monday, June 18, 2007

Links for 18-Jun

Getting CardSpace tokens programmatically

Private Methods in Javascript

Silverlight, Javascript, Controls, Design -- reports from the London .Net User's group

What's your programming personality? -- My result is:

Your programmer personality type is:

   DLSB

You're a Doer.
You are very quick at getting tasks done. You believe the outcome is the most important part of a task and the faster you can reach that outcome the better. After all, time is money.


You like coding at a Low level.
You're from the old school of programming and believe that you should have an intimate relationship with the computer. You don't mind juggling registers around and spending hours getting a 5% performance increase in an algorithm.


You work best in a Solo situation.
The best way to program is by yourself. There's no communication problems, you know every part of the code allowing you to write the best programs possible.


You are a liBeral programmer.
Programming is a complex task and you should use white space and comments as freely as possible to help simplify the task. We're not writing on paper anymore so we can take up as much room as we need.

Sunday, June 17, 2007

Normal service etc.

Some of my style sheets and links from this blog are hosted on my Demon homepages site. For the first time in 10 years, there seem to be problems with it. For the moment I'll do a partial lash-up, with some of the style information on my home server (router persistence permitting) but maybe I'll rework the whole layout to be local.

Saturday, June 16, 2007

Back to front

After 3 weeks for decorating and carpeting, where I'd moved everything from the main bedroom into the spare room, we are now back in the proper bedroom. The only time any of this works on the house actually pushed me out of the familiar east-facing aspect.

Milestones

Going to pay for the last of the new carpets, had just turned to 20000 on the dial as I parked.

The showery weather continues to make a cycling less than fun option, so just as well I hadn't booked a holiday for this time of the year.

Friday, June 15, 2007

Following up

This starts to explain some of the Bokurano before and after from yesterday

And the drive in wasn't too bad. The "main" road through Kingston was being marked as closed, and the lake was still there at the first turn off into Bourn; but the rest was free of standing water. There was still running water in the usual bits in Bourn; and a lot of mud and gravel washed onto and across the roads.

By this evening even that standing water was gone; though the rest persisted.

Links for 15-Jun

HTML5 differences from HTML4 -- draft

WMD -- what you say is what you mean "mark-down" editor for semantic HTML

More issues with Safari Beta 3

Thursday, June 14, 2007

Anime — Narutaru (Shadow Star)

Pokémon, as realised by Mohiro Kitoh.

As noted earlier, as I'm watching this season's Bokurano, I thought I ought to go back and watch him do to the monster-trainer genre what Bokurano does for super-robots, which is to add a lot of damaged children and death.

As expected, the anime bottles out from the bleakness of the manga (though it is still a lot less jolly than the misleading OP might indicate) -- both softening for TV what it does cover; and then just stopping dead half-way through the story, not even going as far as the Dark Horse translation which got 3/4 of the way before being lost.

Now I guess I have to just go look at the pictures for the last couple of volumes, with that weird sort of fascination normally found when examining a wound.

Also…

Bokurano is, as I'd been expecting, bottling out too. OK, some of it was bound to happen, like showing Aiko interrupted doing her hair (top left), when it's hinted in the manga (lower left) that, well, maybe she might possibly have been using a hairbrush, but certainly not a dryer; and skirting around the more extreme parts of Chizu's plight. But having Kako die in friendly fire (top right), rather than having Chizu cut his throat (lower right) for scrapping with another of the kids when he should have been piloting starts to make it far too close to being nice.

And more…

To the earlier list, add Dennou Coil -- an Augmented Reality cyberpunk-ish school story/mystery. I don't know where it's going, but it's being fun.

H4x0r-granny has to do some debugging.

Summer Weather

We were in a meeting room with no exterior windows when the thunder started. Half an hour later, I emerged to see the rain absolutely hammering down outside, and it kept doing so for the next half hour.

There were a few inches of water on the road in Bourn, but not enough to be a problem, with an engine nice and high -- and the brook hadn't flooded in the valley. But getting through the village, there was a car stuck in deeper water. Turn around, try the other way out, onto the B1042. No problems there; a bit of standing water to cross turning onto the road into Kingston -- but over the first hill, and more trapped vehicles. Turn around, carry on to Toft. And immediately after the Comberton turn, see another blocking flood, and a driver phoning for rescue.

Amazingly, the brook was not flooded at Comberton -- so back to the old main road, and finally get to cross at Coton.

The journey in tomorrow is not going to be fun.

Links for 14-Jun

Outlook clone in WPF

Unicode for CSS class names -- a neat use of the fact that they aren't restricted to ASCII.

How to design software from bad requirements

DuplexBook -- Martin Fowler on his new book xUnit Test Patterns, and textbooks in general

Font Rendering -- respecting the pixel grid

Pro JavaScript techniques (book review)

Tuesday, June 12, 2007

The problem with C++

Really, there are two big problems with this language

  1. How it is taught -- or more often, self-taught, as universities these days seem to teach Java (and that not very well, in my experience supervising undergraduates).  Too often it is introduced as 'C'; then the syntax of classes and templates introduced.  The most important parts of the language -- the Standard Library, and the expected idioms -- get short shrift, most time and energy spent on the (admittedly complicated) grammar.  One of the few books that makes a good stab at the topic is Koenig and Moo's Accelerated C++.
  2. The compiler support -- while gcc and Borland compilers have kept abreast of the language, Visual C++ 2005 is the first Microsoft compiler that has enough template support to compile things like Andrei Alexandrescu's Loki library that Borland handled around the turn of the century -- and the vendor compilers on some of the Unix platforms I have had to use were seriously stuck in the early 1990s (the developer tools suite on AIX, c2001).

Between these two, we accumulate a lot of 'C'-with-classes -- which gives the language an undeservedly bad reputation in many circles.

Links for 12-Jun

volatile -- The Multi-threaded Programmer's best friend (or, how to get the C++ compiler to detect race conditions for you)

Safari on Windows -- and this is the nearest thing there is to an iPhone SDK, too.

Who killed the desktop application?

ASP.Net + Dynamic Client Script -- Silverlight set-up from a single control

IronPython, Unicode and ByteArrays -- strings are not byte arrays

Top 10 tips not to follow

Tuesday, June 05, 2007

Python Binding: a SharpDevelop (IDE) Addin

Following up from the IronPython URL's post…

Alas, as noted on the #develop wiki, the current 0.5 beta of PythonBinding doesn't play with the 2.1 release of #develop; and there is no archive release link on the obvious #develop download page.

Alas, the refactoring that seems to have taken place between 2.0 and 2.1 has made major, non-trivial and non-backwards compatible API changes to a number of crucial classes used in the Python Binding build. It's not just a matter of classes having moved assemblies (needing more references), or namespaces; and having to guess which IDocument interface is meant.

I think MSBuildProject has become MSBuildBasedProject — but what has become of ParseProjectContent CreateProjectContent() I cannot tell; nor of the MSBuildEngineCallback type in the argument list of PyCompilerService.Compile(), itself an abandoned seeming method signature.

This is a level of backwards-incompatibility I personally would reserve for a major release increment. And there isn't even a porting guide obvious on the site or in the #develop code download. And the above is not an exhaustive list of things needing fixing to make the old code play with the new IDE APIs, or even of the first wave of compiler errors.

[Now playing - Planet Rock]

Links for 5-Jun

Microsoft Surface -- touch-screen desktop

Reasons for code bloat -- "More is Less"

Removing the Login Barrier -- another aspect of security vs usability & why SSO is so important.

Monday, June 04, 2007

The FePy blog -- The Iron Python community blog. (Also, interestingly, it seems that the MSFT DLR team are contributing to improvements in Mono for cross platform support of the language).

Review Board -- Google's web-based code review tool

Analysis of Palm's new Foleo --; thin-terminal device

Sunday, June 03, 2007

Summer

Following a wet long weekend, mainly spent moving the main bedroom into the spare room; and a wet week that washed out the chance of a photocall for the local paper about cycling to work, it was suddenly sunny and hot at the weekend.

And, taking me by surprise, Strawberry Fair.

Not as good as it used to be. The T-shirts tend to be faux-countercultural; and the counter-culture is just demented (No2ID being the only island of sanity). But I did manage to pick up a new Panama hat, since I was wanting a spare for the office — and at the point I did, was in need of some portable shade..

Today did gardening to a logical stopping point (refilled the newly empty green bin); and repainted the metal flap on the drive that looked like this

Multi-purpose access

but had become chipped and rusty. I also glued on a couple of pads made from offcuts of heavy-duty flooring vinyl to cushion the front (under-) side when I drive — the chipping coming from crushing stones from the driveway under the metal.

[Now playing - Planet Rock]

Friday, June 01, 2007

The best code of all

I had been planning to write a short essay today on how I felt that I have just completed a few very productive days, where my net code output has been negative to the tune of a few hundred lines.  After all, this is something I have touched on previously, albeit in passing, but I felt needed a bit more emphasis.

And then, in a fit of synchronicity, Jeff Atwood blogs on essentially the same topic, albeit from a different direction -- The Best Code is No Code At All.

It may be something of an acquired taste, but one of the best experiences I find in software development is the point where you are able to delete code.  In project terms, being able to do so marks the point at which the metaphorical rough-cut timber is finally getting sanded down and polished.  Source control systems are there to remember how things were, for good or for ill; so code that is obsolete, or that there is a just plain simpler and plainer way to do, can get the chop with a clean conscience.

While exploratory phases of development may involve a measure of throwing code at a problem until enough of it sticks, and on the first time, cut-and-paste may seem the more attractive code-reuse strategy, coding smaller will pay dividends in the long run.

Just don't leave the flabby code there expressly to get the deleting-it-all kick later.

Links for 1-Jun

I HAS 1337 CODE, LOL -- LOLCODE, a scripting language infused with the Zeitgeist (YARLY, KTHXBYE)

AD FS SDK documentation due in July 

In Defence of Checked Exceptions (Not Really) 

Zen of the DLR and DLR Experiences -- Two presentations on DLR design philosophy and architecture

Simple ASP.NET 2.0 Tips and Tricks --  that you may not have heard about

Secure Python Interpreter -- Sandboxed to restrict socket and file access.

IronPython Cookbook Wiki -- Using .Net from Python/DLR