Computer God

Note: This entry has been restored from old archives.

I’ve had a string of thoughts that require deeper consideration. The thoughts start with:

There is a god, her name is Hope.

And eventually reach:

If computer intelligence doesn’t get religion then the Singularity cannot occur.

There’s a heck of a lot between those two points, I’m not sure I’ll ever be able to translate it from strings of thoughts to strings of words.

What do wine and tech have in common?

Note: This entry has been restored from old archives.

Answer: an epiphytic marketing industry.

More specifically: a plethora of meaningless awards and certifications and the companies and organisations responsible for them.

Go to the wine section in your supermarket and you’ll see dozens of bottles with little silver, gold, or bronze “medals.” Read the labels and find out what awards they’ve won. Often it’ll be “best” of some ridiculous niche category like “best merolt-shiraz blend from the west side of Dead Man’s Hill.” Seriously, many of them are about that precise, covering all of 3 or 4 wines. That’s if they explain anything about the award at all, in other cases it may just have a year and the name of some unheard-of wine show, or grand-sounding “challenge.”

In my years of drinking wine I’ve come to the conclusion that there is very little relationship between awards and my enjoyment of the wine. However there is some relationship between the awards and the price of the wine. As far as I see it you’re better off going for cheaper wines with no awards. It’s hard to remember this sometimes, we grow up instilled with such a strong sense that everything must be ranked that this “medal” technique hammers right into our subconscious bypassing rational thought.

The technology sphere has a similar system, whereby a plethora of publications, organisations, and dodgy websites give out awards like they’re going out of fashion (I wish.) Many of the awards will have dozens of categories that really only contain 3 or 4 competing products. Sometimes even less since some of these schemes require you to pay up to be considered (and I expect many wine awards are the same.) These rankings are usually of little technical merit, even often judged by non-experts based on marketing material rather than any practical results. Techies may dismiss them yet, disturbingly, they can be an important part of selling a product. The inexpert are easily swayed by these seeming ticks-of-approval, as with wine it can be exactly this sort of meaningless ranking that gets you short-listed in the mind of your customers (most products are not sold to experts.)

Certifications are similar. Take IGT/DOC/DOCG in Italian wine for example, a set of rules that define how you must make your wine if you want to market it in certain ways. It seems as if you’re claiming some guarantee that your wine attains a minimum standard of quality. In reality the only real meaning is that the wine complies by a set of rules that grant it the acronym and, like the awards, enjoyability bears little relationship to the certification. The fact is that mere Vino Da Tavola wines (“table wine,” the term for uncertified wine) seem to be as good a bet if you just want to enjoy a glass. Further, most people don’t know what all the classifications mean anyway! Quality is rarely certified, typically the most you can read into it is location, grape blend, and process – in the hope that prescribed bounds increases the chances you’ll enjoy your wine.

In technology systems exist that are much the same. (Also for people, but that’s another issue.) Some are tick-box standards or rule systems, like the currently hyped SOx and PCI. The problem with these is that compliance really only means that you’ve “gone through the motions,” there’s no guarantee that you actually care or are pro-active about the problems the systems supposedly address. Another form of certification is “product X achieved Y with system Z” – any tech person I know looks at these things and shrugs, sometimes muttering an expletive. It’s a funny old situation where successful companies are created around products that give certifications that the entire base of technical experts in the relevant field dismiss as not being a whole lot of use! But the fact is that, while they’re rarely a useful assessment of the practical effectiveness of a product, they’re often an important cog in the marketing machine. People want benchmarks, people want ratings – how else can they judge the quality. The underlying problem is that there are few experts but many buyers.

Where the whole thing goes most horribly wrong, in the tech industry at least, is when this system starts feeding back into itself. Regulations are created that spawn whole technologies, such as SOx and PCI. We get technology specified by the regulations rather than focused on solving the problems the regulations were invented to address. Defacto-standard rankings are created that measure a quantity that isn’t actually a useful part of a technology’s function. We expend vast engineering effort tuning technologies to do well in the rankings rather than addressing real problems. Successful companies are born from the precise specification and measurement of the wrong things!

It is a little reassuring that no number of unreliable or misleading guarantees makes a crap product a good one and that’ll be the stumbling block for many solutions riding a wave of medals. Alas, it is much harder for the inexpert to know the technology they’ve bought is crap than it is for the inexpert to know the wine they’re drinking tastes like copper coins. (This doesn’t matter so much for wine, there are many buyers and you can get by just fine if you never sell a second bottle to the same person. You typically have much more restricted markets with technology and rely on people coming back for more.)

I started typing this up with the intention of jotting down just a couple of paragraphs comparing wine medals to technology awards. Now it’s >1000 words later and I’ve left many loose ends flapping around in my mind. Someone who knew enough about the industry, marketing, and human psychology could probably write a decent paper (or book) on this. “Technology Defined by Marketing” or, more scathingly, “Selling Widgets to Idiots.” I expect it’d probably be boring and wouldn’t change anything anyway.

[[[FYI: The root thought occurred to me as I sipped an insipid and tinny French red that had a silver medal. “Silver Medal International Wine Challenge” it says, it’s also from a ‘Cru’ status village, and is AOC (of course.) We have a lot of seeming guarantees that this is going to be a damn fine drink. Wrong!]]]
[[[P.S. I don’t think all awards and certifications are meaningless. I also don’t think they’re all (or even mostly) the product of unethical exploitation of the expertise vacuum. To narrow down the more suspect ones look out for those that involve the exchange of money, especially where that money goes to a for-profit entity.]]]
[[[P.P.S. Yes, I have read that the introduction of wine standards certifications in Italy, France, and Spain improved the average quality of wine. Alas I am not so old as to have known wine back before the systems were introduced. As a consumer in the modern wine market (and we’re taking 3 or 4 different wines a week) my observation thus-far is that at a given price level certifications (or awards) don’t mean much when comparing my enjoyment of wine. Further, I’ve drunk several non-certified wines in both France and Italy that are far above the average enjoyability. I’ve even had an French wine producer rant at me about how much he hates AOC since his best wine is always a single-varietal and thus cannot qualify. (If you’re only familiar with “new world” wines (i.e. Australia) you probably don’t have a clue what I’m on about, since the “new world” mostly sticks to naming wines based on the grapes that made them and single-varietals are common. Anyway, there’s a lot more to these “old world” systems than I have time to go into, there are some good justifications for AOC/etc.)]]]

Mr Chicken said

Note: This entry has been restored from old archives.

Mr Chicken said …

I have a feeling that the author of this SMH article is taking advantage of the situation here, despite of the seriousness of the news item. Beginning 4 sentences with “Mr Chicken said” seems just a little too deliberate.

John Chicken is a rather unfortunate name though. At least he’s probably going to most be addressed along the lines of “representative for the defence,” I assume (or whatever the proper court-speak is), and if he gets to Judge it’ll be plain old “your honour.” Doesn’t change the fact that he’d be Judge Chicken though.

Further notes on C++ lambda (N2550)

Note: This entry has been restored from old archives.

Since my earlier post (content here should mostly make sense independent of the post) I’ve taken some time to explore the C++ lambda proposal further, specifically document N2550 [pdf] that fully defines the proposal.

The first note is that the “In a nutshell” example used to illustrate the use of the method is not reassuring. First they introduce the functor:

class between {
  double low, high;
  public:
    between(double l, double u) : low(l), high(u) { }
    bool operator()(const employee& e) {
      return e.salary() >= low && e.salary() < high;
    }
}
....
double min salary;
....
std::find if(employees.begin(), employees.end(),
                between(min salary, 1.1 * min_salary));

Then they provide the lambda equivalent:

double min salary = ....
double u limit = 1.1 * min_salary;
std::find if(employees.begin(), employees.end(),
                [&](const employee& e) { return e.salary() >= min salary && e.salary() < u limit; });

This seems to be the same example that the Beautiful Code blog picked up on.

I have to admit however, this is growing on me just a little. Maybe like mould growing on damp bread.

To dissect:

The [&] introduces the lambda expression, in this case the inclusion of a lone & indicates that the closure created will have reference access to all names in the creating (calling) scope. This is why the code can use min_salary, if the lambda was introduced with only [] the code would be erroneous. You can, and possibly should in most cases, specify exactly what the closure can access and in this case that would be done using [&min_closure]. The normal meaning of & is retained here, the variables the closure accesses are references to those in the enclosing scope — for better safety in this case it is maybe better to use [min_closure], this will ensure the closure will not modify the original value (consider is passed to the closure by value.)

I see a pitfall here, the non-& capture means the closure can access values by the enclosing name and modify them but the modifications will not propagate to the enclosure. It wouldn’t surprise me if, for clarity and readability, the & form (pass by reference) becomes standard and the default form (pass by value) becomes “not done.” I feel it may be preferable for the “pass by value” to actually be “pass by const reference.”

The (const employee& e) gives the “parameter declaration” of the lambda. Essentially we’re declaring a function, or functor, that takes a single const reference to an employee as an argument. Note that this mirrors the operator() of the between functor. There’s more to the declaration than is given here, it can also sport an optional exception-specification (um?) and a return type. Let’s skip the exception specification since I don’t feel up to the task of trying to explain that one. (I suspect it is because the result of a lambda is under the hood a functor and it isn’t insensible to export this part of the definition to the user rather than enforcing no specification.) The return parameter is likely to be more regularly interesting, in this case it is not given but is actually -> bool – why? Because of paragraph 6 of 5.1.1, which essentially says that the return type is defined by the type of the argument to the return statement in the lambda.

The lambda expression itself, or code of the closure if you prefer, is between the { and }. That part is clear enough I expect.

The return type is defined by the top-level expression of the return statement in the expression. This is &&, clearly enough the return type is a bool.

Read the document [pdf], it’s worth the time – it’s a short document.

So?

Um, still not sure, but seeing all that is specified by the document does open up the possibilities much further. I said earlier that I think this lambda syntax has the potential to make code clearer where the function-object (or binder) code replaced achieves a simply expressed end. On further consideration I think this is especially the case where the expression is not easily described with a reasonable functor name (i.e. the functor approach for “greater_than” is fine and possibly better than the lambda equivalent.) The question, for maintainability, becomes: is:

    between(min salary, 1.1 * min_salary))

better than:

    [&](const employee& e) { return e.salary() >= min salary && e.salary() < u limit; });

Personally I still don’t see enough of a win to the latter syntax to justify the extension. Saving the code that defines the functor doesn’t look like a big win and the latter code, while more explicit at place-of-use, doesn’t seem so stupendously more clear to justify the extension either.

What if…

What if the extension allowed for creation of closures more in keeping with their much-hyped use in other languages? Would I, monkey boy, be convinced then? Quite possibly. Scroll down to Chapter 20 in the document and peruse “Class template reference_closure“.

Looking interesting. As I see it the reference_closure definition will permit the creation of instances-of-lambdas (closures.) These can be returned from a class as “closures” giving very specific restricted write access to the internals of a class. Vague shadows of how this could make the design of code I’ve worked on in the past more straightforward are beginning to form. That’s far from an indication of usefulness however, the shadows aren’t any better than “deformed rabbit” right now. I’m still a bit confused as to the lifetime of variables local to the scope of the enclosing function, as opposed to member variables, in relation to an exported “closure.” Especially since the closure template defined seems to restricted to reference-only closures.

I don’t have time to explore deeper at the moment, but it’s certainly food for thought and brings this C++ lambda/closure extension more in line with the hype around it in other languages. (Kat’s work has recently jumped on the closure bandwagon (best thing since Agile?) and it seems that their picture of closures in Perl very much mirrors what would be achieved by this reference_closure. At the same time… it is also achievable with everyday functors, but maybe the new specification makes it all easier and more accessible? Perhaps that is the question.)

The point of all this text is: RTFM [pdf]. Herb Sutter’s post is a quick-n-dirty illustration of simple things that can be achieved using the specification — he refers to the specification itself for your further investigation. I’m envious that he had an implementation that will compile his lambda examples, presumably VC++.

[[I use “closure” and “lambda” almost interchangeably here, however I’m far from confident in my use of this language. Reading up on this online does not help much as there’s a gap between the CS definitions of the terms and many commonly blogged use-cases. In practise it seems a lambda is an in-place definition of function code, what we often refer to as an “anonymous (unnamed) function”, that can be passed down to called functions (and is most often seen defined in the place of a parameter interchangeable with a function reference.) Practice again seems to define a closure as inline function code that can access and modify values in the scope where it was defined but can be returned to and invoked by calling code, this matches fairly well with the wikipedia definition of the term. YMMV.]]

Mrs Beeton’s @ G David Booksellers

Note: This entry has been restored from old archives.

[[The beginning of this entry was mostly written on Saturday the 22nd and any temporally relative statements should be interpreted from that basis.]]
Mrs Beeton's Household Managment

Earlier today we wandered St. John’s before dropping the car back at the hotel. We caught a bus back into the town centre and had some time to kill before our next leg of travel took us to our evening destination, so we found ourselves wandering the streets again. It was still a miserable day, with the weather swinging between wind, snow, rain, and mixtures of the three. On one occasion as the wind picked up and the snow started coming in parallel to the ground we stepped into a narrow passage near the market square for shelter. A short way along we noticed the display window of a bookshop, it looked cosy and warm so in we went! At first it seemed a very usual sort of place, as little bookshops go, shelves tightly populated with myriad books from the pristine, through “slightly foxed,” to those that seemed to be on their way to compost. Then we turned the corner, phwoar! Rows of leather bound volumes, many in sets, several shelves behind glass. A veritable book heaven! I carefully examined some of my favourites, the few classics that I know well, such as Byron and Shakespeare. It was then that I saw Mrs Beeton, phwoar!

We’re talking the classic encyclopaedia of English cookery (inclusive of much of the “bad” English cookery the world knows), Mrs Beeton’s Household Management, complete with thousands (literally) of recipes. This 9.5cm thick, 2kg tome is occasionally referred to by culinary authors and I’ve always wondered at the passing asides with accompanying introductions such as “the great Mrs Beeton.” Though somewhat dated the content is a great historic reflection on English cooking. Some things, especially treatment of meats, are worth paying more attention to than others, but more about that later when I’ve had a chance to read more of the book. There were three copies of the “new edition” on the shelves, as well as a few lesser Mrs Beeton’s volumes covering only a subset of food and recipes. The new edition is introduced with a declaration that much has changed “especially since the War” and that these changes necessitated the release of this updated volume. We’re talking the Great War by the way, that’s the first “world” war. The editions available were all early 1900s printings, and are self-described as having “nearly twice the number of pages [and being] four times the size of its modest ancestor.”

I carefully located the Jugged Hare recipe, which doesn’t include blood, then turned to the section on preparing the hare. This is the sort of book we’re talking about, it covers everything from the moment the hare is brought in from the shoot to eating it. It’s supposedly an omnibus of all things a good housewife should know, not just food, but also cleaning, organising social occasions, and managing the servants! Perhaps a touch schizophrenic in this case, for how many women with servants need to worry about preparing a hare? Personally my interest is just in the British food lore of yesteryear, I’m only a so-so housewife.

I examined all three copies, including one kept behind glass. It turned out that the latter was only 10 quid more than one of the others and I preferred the look of the other. The man managing the collection said the one I preferred was better bound anyway, and the leather certainly did seem more robust (and should have a little neutral boot polish gently rubbed into it every few years.) The main issue (and thus reason for the price difference) was that the better cover was not the original cover, it’d been re-bound at some point in its life but it was definitely an edition from the 1920s or 30s (alas, books of those days didn’t always include convenient printing dates to aid in dating them.) Carried along by the moment and pushed in the back by the heady aroma of old books I bought it. It cost £130, extravagant no? But, to try to place it in some financial context: I recently attempted to buy a new video card for my PC, just a middle of the road one, and that would have cost the same amount. (I failed to buy the card, it was broken so I sent it back to Amazon and gave up on the whole idea.) This book is far more interesting, long-lived, and useful than some crummy piece of computer junk – a bargain even!

I eagerly look forward to having the time to selectively read my acquisition. For the next while though she’s just going to have to rub shoulders with the other, maybe less well-bred, books on my cooking shelf.

Later

[[This part is written one week after the above.]]
Colour Plate: Game
Colour Plate: Game

The book is excellent, amusing, and informative. The aura of Mrs Beeton is one of a middle-aged to “certain aged” matriarch, with a lifetime of practice and experience in managing her household. How else could she write such a book and gain such a reputation? The truth is surprising, the real Mrs Beeton was in her early twenties when the book was written and was dead by 28! The latter, “new,” edition was extensively expanded and edited by other authors, particularly a “Mr C Herman Senn, M.B.E., F.R.H.S., assisted by some of the most famous chefs and teachers of the culinary arts.” (These latter “famous” contributors remain unnamed!) The original Mrs Beeton, it seems, has been superseded by an entirely different personality built on the expectations of readers. The fact is that “Mrs Beeton” is the book, the original author is inconsequential.

In all the book should be regarded as an encyclopaedia of its day, a gathering of knowledge. It seems likely that the original Mrs Beeton “borrowed” most of her content from other sources anyway. The first edition (written in Victorian times) was actually a collection of supplements she’d written over 2 years for a magazine published by her husband, so is likely to be a far different to the “new edition” I have (instilled with Edwardian sensibilities.) (Next project: get a copy of the first edition… or maybe not, they’re typically more than £1000!) I’ve picked up various facts like these while researching the book, the main goal being to date my copy. The information I can correlate between my copy and descriptions I can find online dates my copy to being published between 1923 to the mid-30s – this matches the date approximated by the guy at the store, reassuring.

What of the content? Some of it is highly worth testing out while other recipes are probably only of value as amusements, and would probably be illegal to carry out anyway! Take “Black Swan, Roasted or Baked” from the “Typical Australian Dishes” section for example! “Parrot Pie,” ingredients: “1 dozen paraquets” — “Wallaby, Jugged,” “In winter the animal may hang for some days, as a hare, which it resembles.” A wallaby resembles a hare? Barely. There’s also “Bandicoot and tomatoes.” There’s a recipe for “Pukaki, Jugged” but I have no idea what a Pukaki is and Google doesn’t help unless Mrs Beeton’s actually does mean we should stew an 18th century Maori chief! There’s also a set of pumpkin recipes that I really can’t place as “Australian.”

Much of the Australian content is amusing and it’d be hard to say if it is wrong or not without first catching and cooking a black swan or a wallaby. Next time I’m back home the wildlife better watch out… Also of note, the very brief Jewish section includes a recipe for stewed steak that includes “½ an oz. of butter or fat” and I’m pretty certain the butter would be verboten in this case (meat + dairy.) And these observations come from perusing just a couple of small and specific sections of the book.

Turning to the section on vegetables is a great reflection on the basis for the stereotypical English treatment of the poor old things. It’s also put some perspective on just how much has changed between then and now. The section devoted to vegetable recipes is only about 75 pages long. Here’s a list of “little known vegetables:” sorrel, scorzonera, sweet potato, maize (indian corn), yams, egg-plants, and custard apples. What an esoteric collection! Of course, sorrel, sweet potato, maize, egg-plants, and custard apples are everyday supermarket items now. Maize is now “corn,” but in those days “corn” was a generic term for grains (i.e. a modern reflection on this is that “cornflour” is actually made from wheat and not what we know as corn these days.) In the UK the “egg-plant” is known as the “aubergine,” I suspect its modern popularity in English cooking must mostly stem from French cuisine to have resulted in this name-change (in Australia eggplant is the common name.) Scorzonera is rare and better known as black salsify, I myself would not have recognised the name 6 months ago, and yams are known but hardly everyday. The vegetable section is also revealing in what it does not mention. No celeriac or swede at all for example!

How about cooking vegetables? Ah, mushy English vegetables. On boiling vegetables: “young vegetables with tender fibres will, as a rule, cook in about 20 minutes, whereas those fully mature, and consequently containing a relatively larger amount of fibrous substance, will average no less than 40 minutes.” I’m sure vegetables have been bred to be more tender in the last 80 years, but I can’t believe that 20 minutes for “young vegetables” was ever a good idea! For a case in point this is from the “Asparagus, Boiled” recipe: “boil gently for about 20 minutes.” Even though the asparagus was bundled into bunches of 20 I can hardly imagine 20 minutes resulting in much more than sloppy mush! Maybe in this case the vegetables of the day were tougher?

Where this book may have some interest for the modern day cook, rather than food historian, is in traditional treatments of various meats. Especially the more involved recipes and the stews (plainer “perfect roast” cooking has gained much from modern thinking, and oven technology, but Mrs Beeton does seem to have some agreement with even Hugh on some simple roasts – such as Snipe and Woodcock.) Several of the 40ish rabbit recipes are certainly worth some attention, as well as the 12 hare recipes and those for other game. The many offal/extremities recipes are warrant investigation as well (“Lamb’s Head and Pluck”), and even a decent proportion of the more everyday meat recipes.

If, in the future, I manage to try out a recipe or two from Mrs Beeton’s Household Management I’ll be sure to write it up. Perhaps this’ll mark the beginning of a collection of historic books on food, but that might be a bit too expensive. ‘Till then, try not to overcook your poor old vegetables or bake any protected wildlife.

C++0x lambda

Note: This entry has been restored from old archives.

I just read Herb Sutter’s C++0x lambda/closure teaser post. It’s intriguing, although I cringe at the new syntax. I’ll be mulling over this somewhat and waiting to see what else is said about it by the Internet’s hoard of people more qualified than I… though, of course, Herb Sutter may be the most qualified out there! No doubt I’ll eventually be convinced the new features are wonderful. For now I’m going to hope the technical brilliance of the ISO C++ committee has given birth to something beautiful – and in this instance Herb Sutter hasn’t done a good job of marketing it to numpties like me. (Then again, exception specifications got into the standard as well and it seems that even the people responsible for them would like to disown them now.)

In the “Write collection to console” example I have trouble seeing how the lambda version is obviously better. I look at the three examples and think to myself “huh, what’s the point?” The fact is that the for loop is clear, the for_each lambda version just makes it a little more terse. How about:

    #include <boost/foreach.hpp>
    ...
    BOOST_FOREACH(const Widget & widget, w) {
        cout << widget << " ";
    }

More readable than all Herb’s examples? Possibly. Herb Sutter makes a note that the final lambda-using example is the only one he typed up correctly before doing a complier-run. Maybe this could be related to the fact he’s probably been steeped in the specification of the lambda features lately?

The “Find element with Weight() > 100” example is a better one, aside from the grotesqueness of the lambda syntax. This []( has a face that only a mother could love:

    find_if( w.begin(), w.end(),
        []( const Widget& w ) -> bool { w.Weight() > 100; } ); 

Herb dares us to have a go with binders, here’s what I knock up for boost::bind:

    std::find_if(w.begin(), w.end(), boost::bind(std::greater(), boost::bind(&Widget::Weight, _1), 100));

This is a typical “bind class member return value to function (functor) argument” usage, I see (and use) it a lot. Though for the “>” case there’s an even more terse solution:

    std::find_if(w.begin(), w.end(), boost::bind(&Widget::Weight, _1) > 100);

I don’t particularly think one syntax is more readable or obvious than the other, but I’m used to reading uses of bind. Truth be told however, Herb’s functor example is easily the clearest at point-of-use. Is the clarity not worth the small clutter of having the GreaterThan functor implementation lying around somewhere (and entirely re-usable.) Herb has perhaps not chosen the best example here. Something just a little more complex could make the lambda version seem a lot better than the bind version, though such complexity would just make the overhead of writing the functor less of a concern (and the non-reusable lambda code seem more of a bad idea.)

[[Note: Since I wrote the above, on Saturday, a lively discussion has popped up in the comments on Herb Sutter’s post. In there he explains two strong disadvantages of the binder approach: 1) recognisable function syntax is lost with binders, 2) errors in binders generate some of the most horrible C++ template-spew error messages you can get out of compliers. That latter part is certainly a pain, it takes a few weeks of working with, and making mistakes with, binders before you can weed useful information out of those errors. Though they’re usually down to just a couple of syntax mistakes and you can check for them first and correct without needing to decipher the errors in 80%, or more, of cases. The other common problem I find with boost::bind is passing object arguments and forgetting boost::ref, an error you’d be much less likely to make with the function-declaration style of the lambda syntax.]]

The final “Most algorithms are loops” example is more compelling. But again, the example used doesn’t seem a great win over boost::bind. And both lambdas and binders seem a less maintainable route than functors. [[Note: See previous note for positive points of the lambda syntax over binders that also apply here.]]

It seems to me that the lambda syntax may offer a more robust and maintainable replacement for binders and, in extension, be a better way to “turn things into functors.” That is certainly a worthy achievement in itself. For simple cases the lambda syntax can provide an “it’s all in front of you” clarity to improve the readability of algorithms. For more complex cases I see it being used in lazy ways and giving the world some knotty code maintenance nightmares in the name of the quick hack. Stick to functors is my leaning at the moment, or use functions combined with the lambda syntax as a replacement for binders, if you must. It’s early days yet though, these are some first simple examples and the standard is still in progress. [[Note: insights from the “Beautiful Code” blog. Note that the non-standard solution to his .begin()/.end() pattern dislike is BOOST_FOREACH, it’d be nice to see something like that go into the standard.]

It’s great to see non-trivial new features going into C++, I look forward to reading what the experts have to say about it all! It’s worth noting that the items mentioned by Herb are just the most buzz-word friendly ones, an act of marketing no doubt. I suggest exploring the “Other approved features” that he links to, there’s some interesting ones in there. I’m most immediately intrigued by N2555, N2559, N2540, and N2535 – unfortunately I don’t have time to consider them in detail.

Sat, Sun, & Mon: St. John’s, Mills, Ales

Note: This entry has been restored from old archives.

We stuck close to Cambridge on Saturday and Sunday, wandering the town and driving the fens. On the latter, the history of the landscape is intriguing. Once the whole area was boggy wetland and many of the historic sites and towns were considered islands, as only the higher and drier areas were originally settled. Through the centuries the landscape has been transformed into fertile pastures that are usually not under water, aside from the occasional flood. Ditches and dykes criss-cross the landscape. I hope to learn more about it all some day, for now here’s what we did…

Saturday: St. John’s College, Hemp, Books, and Ale

We decided that we must visit at least one of the colleges while we’re here. In the end one is as far as we got, and that one was St. John’s since it was the first we found that was accepting visitors. As a tourist you pay £2.80 to enter, this gives you a guidance pamphlet with interesting notes and, I guess, peace of mind (you could probably just wander through as there is a regular traffic of locals and students – also, you could just wander in from the backs.) Thanks mainly to the more interesting points highlighted by the pamphlet the wander through the college was a worthwhile experience. Most of the more obvious questions that came to mind were answered by the terse document, and many less obvious points of interest were highlighted. Especially amusing are details in the chapel’s large western stained glass window.

Our examination of the college took us well into the afternoon, taking more than two hours in total. We’d started out late that day, sleet and heavy wind keeping us inside-looking-out. After St. John’s we headed towards the car and bought ourselves hempen scarves from a hemp stall at the market, Kat also picked up an oversized “baker boy” hat she liked from another seller. Our next adventure was to take us out of town and involved ale, so we dropped the car back at the hotel and caught a bus back in. We’d settled on driving that morning and paying an exorbitant parking fee, just to avoid some of the weather. In the end the parking, for three hours I think, was £8 – the taxi would have been the same each way so driving was cheaper. I’m glad we didn’t try driving into town in the afternoon though, it was near to 15:00 when we drove out and we noticed all the parking spots were full and there were traffic queues leading for a couple of miles out of the town centre! The way out was clear thankfully.

To get to the best bus stop near the hotel requires a five minute stroll along a narrow path that connects the business park the hotel is in to a south-eastern suburb of Cambridge. The path is narrow, enclosed on each side by a high wire fence and shrubby bushes, and after a rail crossing passes between an army exercise yard on one side and a body of water on the other (this latter a private fishing reserve.) The suburb our bus stop is in isn’t on a route out of Cambridge so the bus got into town without any delay. We found ourselves with a little over an hour to kill before moving on to our planned train departure. In this time we found a wonderful bookshop, which I’ve written about separately (will post later this week), we also had tea and scones at “Aunties” near the market square – the latter was good but unexciting.

We caught the 17:35 service from Cambridge to Kings-Lyn and hopped off five minutes later at Waterbeach. A few minutes walking and we were at The Bridge, and found ourselves before 20 cask ales! I’ve written more about this separately (will post later.)

The ales pretty much wrapped up our day, we left The Bridge at 21:30 and thanks to incorrect advice from the barman waited at the station for 35 minutes until the 22:15 train took us back to Cambridge. (We don’t blame the barman at all, it’s our own damn fault for not making a note of the timetable!) While waiting in the cold we noticed something interesting, we heard a strange popping whumphing noise, almost like distant fireworks. It turned out that at one end of the platform was a track switch, alongside the rails near this was an enclosure full of gas cylinders, there was gas being let into an enclosure alongside the switching mechanics and this was being ignited at short intervals. Keeping it warm, and functioning, in the cold weather. In time, and on time, our ride back to Cambridge arrived. We reached the city far too late to catch a bus so, me being me, we discovered that the walk between the Cambridge Rail Station and the Holiday Inn Express only takes around 35 minutes (at a fast pace for an unladen 4’8″ person.)

Sunday: Houghton Mill, and Ale

Looking out the window this morning we saw whiteness, overnight snow had coated the landscape. We were somewhat slow in getting out and about again, not quite sure what to do. Our vague plan was to head down to the Lordship Gardens, but given the general slushiness this seemed less appealing than before. So, as a replacement, we selected Houghton Mill as it seemed a more enclosed destination.

The drive up to Houghton from Cambridge took around 30 minutes, mostly a fast zoom along the A14. Driving into the town the first thing of note is the thatched roofs, there’s even a clock tower in the town square that has a thatched-roof shelter as a base. The mill is found down a short and narrow road running from the south of the square, a wall on the right side and a bust of the most renowned head (and philanthropist) of the milling family on the left. At the end of the road you turn through a gateway on the left and see a field (and caravans) ahead, a small tearoom to the right, and further right, unmistakably, the mill and river. The field is usually green I imagine, but this day it was mainly white with a thin crust of snow. There were also two crude snowmen to be seen, looking bent and dirty – snowtramps maybe.

The mill doesn’t open its doors until 13:00 and we were early so took a quick and very cold stroll along the path that begins with the passage through the mill. They have an interesting lock around the bend, very different and much more industrial looking than those we’re used to seeing on the Grand Union canal. That’s as far as we went, as we were not properly prepared for the cold or the mud. In sunnier, and drier, times we’re keen to revisit as there are extensive walkways along the river Orse. We returned to the mill and had tea and scones in the tearoom, much better that what we’d had in Cambridge the previous day!

Just after 13:00 we entered the mill, paying a small fee to the National Trust for the privilege (and making sure we signed the forms that ensue the government adds another 25%, UK tax-payers rejoice.) The mill was excellent, well documented, and in good order. Two things of note are that the mill, in part, is functional, and that there is a hydro-generator fitted in the sluice. The latter typically generated enough power for 10 homes, which is neat. The mill was brought to working order just before the turn of the millennium, thanks to a lot of work contributed by the army (maybe airforce.) They have a photo-album on the ground floor that is worth a perusal.

Normally they have the mill working but they couldn’t on this day since the Environment Agency computer had decided that the sluices needed to be open, preventing flooding I assume, so there wouldn’t have been enough power to run the mill. This was a pity for us since it meant we couldn’t buy any flour! Maybe next time.

All in all our visit to Houghton Mill was very enjoyable. It seems to be well suited to youngsters, fitted out with many action-models of mill mechanisms, some very elaborate (turn on the tap, turn th handle, etc.) We’re considering heading back that way in summer, with a tent as there is a camping ground nearby. I’d be great if there’s somewhere you can have a small fire, imagine it: damper made with flour milled only a few hundred meters away!

We departed the mill after a couple of hours and wound our way back towards Cambridge on back-roads. Taking in views over the flat expanses of fenland, seeking out mounds marked on the OS maps (unsuccessful), and eventually finding ourselves in Histon.

Histon was added to the route because it is the home of a certain The Red Lion that comes well recommended complete with a history of CAMRA branch and national “pub of the year” wins. The reputation is deserved as far as we’re concerned! The full details are a story for another article, to come.

After a couple of halves we headed back to the hotel with take-away beer (await other article for details), popping into a place called Yu’s Chinese for dinner. This place does pretty good food, generous serves, and at a decent price. It’s on Newmarket Road just past the Perne Road roundabout on the way into Cambridge.

Bloated with Chinese we eventually arrived back at the hotel to drink our four pints of real ale, relax, and, for me, write the words before you.

Monday: Anglesey Abbey & Lode Mill

Time is short and thus my description of this day will follow suit. We drove out to Anglesey Abbey, a National Trust property about 15 minutes from Cambridge, and wandered the grounds and house (abbey nee priory.) It’s excellent and entirely worth the £9.50 entry fee. When I first came to the UK I joined the National Trust since the £20 membership fee was accounted for after only two property visits and a few uses of National Trust car-parks. However, once you’re over 25 (my word, is is really that long since I first hit this little island?) the fee more than doubles and being vehicularly-challenged it didn’t seem worth the price. Anglesey Abbey changed my (our) mind, since we expect we’ll visit at least once more this year. So two times 20 quid is 40 quid, and membership for a couple is 77 quid … £37 should be a pretty good incentive to see some more great National Trust properties. Honestly, I’ve seen quite a few in the last three years and they’ve all been excellent.

In short: the gardens alone are worth the trip, and the house is an interesting addition but less interesting than the mill. The Lode Water Mill was the second mill we saw over the weekend and like Houghton Mill it has also been restored to working order. At this mill we could actually buy flour though! We also bought some oat meal for the making of our morning porridge. The wheat (“corn” in the old speech) milled comes from a National Trust property, the nearby Wimpole Home Farm (which also supplies the wheat milled at Houghton Mill.)

The history of the property as you see it today is mostly not so ancient, and the late First Lord Fairhaven seems like a dude I’d like to meet. I’m not sure if he’d be so keen on my ignoble presence however, though he was “new nobility” so possibly less picky about such details. The most ancient part of the property is the dining hall, the structure of which actually dates back to the original monastic building that occupied the “island.”

There’s far more observations I’d like to make about this property than I have the time for. I expect to visit Anglesey Abbey in the summer, maybe I can go into further detail then.

We whiled away most of the day at the property, visited an unexciting pub, picked up some cheese and snacks on the way back, and ate in our hotel room. Here ends the day.

Of Homes and Cars

Note: This entry has been restored from old archives.

Not as romantic as it sounds I’m afraid. These “garden cities” (worth reading, it’s interesting) are a product of “modern” town planning ideals, sprouting from one individual in the late 1800s. The idea “took off”, so to speak, and the design principle has been re-used extensively in the US and Australia’s own Canberra is cut from the same mould as well. Good old Wikipedia has all the details, I’ll leave it at that.

Letchworth isn’t too bad, it lacks the quaintness of Hitchin but dreams and reality are often separated by chasms more vast. We had a look at a place in Letchworth today, and all-in-all are in favour of it. We do have a little more research to do but know that the crime rate is low, similar to Rickmansworth, much lower than Northwood, and far lower than more central London locations we’ve considered. Train-wise there is a pretty fast service into Kings Cross that takes 35 minutes, so it’d probably suit Kathlene OK. Recreation-wise the train gets to Cambridge in 35 to 45 minutes and Hitchin in only 5. I don’t know if Letchworth itself has much entertainment for us, but there’s a largish shopping area (far larger than Ricky) with the usual High Street shops and even a cinema (not that we ever go to the cinema, maybe twice in the last 2 years.)
The particular place we looked at is a little the worse for wear, but isn’t terrible. Our place in Wollstonecraft was of similar age and deterioration, but at least this place isn’t mouldy. We’ve been living in an apartment that was built only 6 years ago, so our perspective has changed in this respect. The place is a middle-terrace house (neighbours through both side walls) and has three upstairs bedrooms, two of a good size and one of a reasonable office size. The potential office room is quirky, painted in sky blue and adorned with a Winnie the Pooh character strip and appliqués. Most importantly, the back yard is large and the stove is gas. We’re told the landlord is an easygoing guy and happy to let tenants paint and decorate the place! Not sure what I think about doing my own painting, not when I don’t own the place myself. There’s a little maintenance work required, but this is apparently “in progress” (mainly just two cupboard doors that need to be reattached and a fridge that needs to be disposed of.)

The trek to the station is probably a 15 minute walk, and would be less than 5 on a bike. The area in general lacks the “natural” beauty found around Rickmansworth though and we’d certainly feel more compelled to go for a car. By fortunate coincidence the young lady who drove us to the place has a Mini! It’s a Cooper and she’s had it for 3 years and had no problems. Generally very happy about the car and very positive about her experience with it. I have little to complain about as far as our Mini went over the long weekend. Five days with quite a bit of driving and only 20 quid of diesel required to top the tank up. Speedy, responsive, corners well, and much roomier than expected. My primary practical complaint is that the left-foot rest is too close to the clutch, even after 5 days of driving I kept getting my foot caught on the rest when depressing the clutch – very frustrating. The second complaint is about the far-left-and-up reverse position, on several occasions I went to shift from 3rd to 2nd and found myself too far to the left to pull down to second. The third complaint is that having the tacho dead-ahead through the steering wheel and the (huge) speedo in the centre console doesn’t work for me. I never look at the tacho, I’d rather have the speedo in front of me. The latter two I’d get used to pretty quickly, not sure about the first though.

With a car getting into the town centre would take only a couple of minutes, and Hitchin town centre would be less than 10 minutes away. It’d also be a safer way to get Kat to and from the station if the hour is late. The property has no lock-up garage, but the low crime rate seems reassuring (no bars on any windows down the street is always a good sign.) The socio-economic profile of this part of Letchworth is a strange one, fairly low-income (high welfare), jobs in retail and skilled labour, married, both working, children. Not us, in other words. So the Internet tells us anyway. Also, property prices are bordering on the affordable – which is intriguing. It all adds up to “what’s wrong with this place.” In August 2007 there was a shooting, one car full of young fucktards attacking another – supposedly not gang-related and remarked upon by most sources in the area as highly unusual. All persons involved were arrested, a bus blocked their cars in and the police were on the scene very quickly. Still… not a good story.

The reason we’re looking at Letchworth and considering the particular place we inspected is one of bad timing. We visited 6 letting offices and in all were told the same story, since January letting demand has soared with no rise in supply. Places in Hitchin (and also Letchworth) tend to go within half a week. The offices say it’s “one of those times,” conversely they’re not selling anything at the moment either. It’s interesting to note that it turns out that most agencies run a letting office as a hedge against property market fluctuations, letting isn’t as lucrative but it becomes busier in times when buying (and maintaining mortgage payments) is difficult.

In the end the pluses:

  • Large back-yard in a roughish state (yes, that’s what I want.)
  • Off-street parking (i.e. English-style concrete front-yard.)
  • Loads of space with three bedrooms, a large living room, and a reasonably sized kitchen.
  • Quiet area, in a corner of the town not on any direct through-routes (we’re told the neighbours are elderly.)
  • Rent is so much less than what we currently pay that the difference would cover most of the monthly cost of a new car (and we’d be paying a lot more if we moved within Ricky.)
  • Of Letchworth:
    • Good sized shopping district.
    • Large Morrisons (supposedly a good thing in the supermarket stakes.)
    • A Cannons (5 minute bike ride away), chain-gym usually equipped with too much cardio crap and no squat-rack but also cheap (if you’re with PruHealth.)
    • It’s fairly green and leafy, if not close-by any good nature reserves or woodlands.
    • Good train connections to places that are great to visit and work (i.e. Cambridge & London.)
    • Linked directly to King’s Cross, so also simple to get to Eurostar (less than 2 hours to Paris maybe?)
    • Bus connections to both Luton and Stansted airports, which aren’t far away.

Minuses:

  • Needs some work (but not much.)
  • Not very close to station (we’ve been spoilt living a sub-minute walk to the local station.)
  • No lock-up parking, in the case we decide to get a car.
  • Of Letchworth:
    • Modern and lacking character (but near to places with loads.)
    • Possible youth crime issues, despite low crime rate?
    • Hard to get to Heathrow (we use BA more often than not when flying, but that could change.)
    • Distant from Watford, although in the same county (we’re keen to keep up with Watford-LUG.)
    • No good nearby woodlands or reserves that we can see, what small woods there are appear to be on private land.
    • The name of the place, despite the “Garden City,” makes me think it’s full of old men in trench-coats.

We have a lot to mull over in the next couple of days. We don’t have a deposit down, so knowing our luck and given the demand we’d want to decide it’s a goer sooner rather than later if we’re to go that way.

I’ve mostly finished other summaries and write-ups of our visit to Cambridge. But now it is time to get dug back into work! I’ll probably dribble the rest out over the next week. I’ve also got some text down for the Hare salad and casserole entries… all to come in the fullness of time.

Ah, the complexities of life.

Charging a Motorola Motofone F3

Note: This entry has been restored from old archives.

After a recent trip I seem to have left the charger for my mobile behind. I Googled for charger specifications but had no luck, so for the record: You can charge the Motofone F3 with 4.5v DC pin-positive. I have no idea if this is the actual output of the official charger, all I know is that it works. It’s easy to do if you have a multi-voltage power supply and a good collection of plugs for it! The supply I used was 500mA, which should be way above requirements in any case.

I was meaning to give a review of this phone model some time, but I doubt I’ll ever do it. In short: argh! That shouldn’t be surprising though, this is an ultra-simple phone. The only interesting feature is the E-Ink display, which is excellent – you can honestly read the display outdoors at night without turning on the backlight! That’s the only positive though, I though a dead-simple phone would be liberating but it really is just a pain in the backside. Keep in mind that I went from a fully-kitted out PDA phone (Motorola A1000) to the F3, about as huge a leap as you could make. (As far as I can see there are few PDA phones available even now that are compellingly better than the A1000, a phone from 2003 IIRC, in any feature other than battery life, and I’ve looked into this a fair bit as I’ve been trying to find an A1000 replacement – I await the release of Android handsets! I was almost tempted to get a Neo 1973 but no-3G was no-go for me.)

The main draw-back of the F3, aside from the lack of web and all those other modern features, is that it uses the SIM card for all data storage. This means the number of SMS messages it can store and the number of address records is tiny. The address records are also really simple, the usual for SIM storage. And, of course, there’s no computer interface (no USB, no blue-tooth, there’s a contact-pad that may be promising but that isn’t “out of the box.”)

The big plus of the F3 is that it is only 15 quid– I spend more than that a week on coffee. It’s the ideal travelling phone, robust and cheap. On the robustness front, I dropped a 30kg dumbbell on it (from only about 4 inches high, and by mistake!) and all it suffered was a minor dent near the screen.

I think that the potential of future models in this line is huge… but I’ll be going back to a feature-bloat model soon, I hope.

Hitchin, Stevenage, & Cambourne

Note: This entry has been restored from old archives.

Our goal on Friday was to explore a couple of towns on the train line between Cambridge and London. This we did, then we also had a look at a business park cum housing estate (or vice-versa?) outside Cambridge.

I failed to mention in my previous notes that I’ve forgotten the camera. We tossed around the idea of driving down to Ricky to pick it up but decided not to bother, it’d probably have been a 1.5 hour round trip from Stevenage. No photos! Quite liberating actually.

Hitchin

Hitchin, our first destination, won us over quickly. Old village architecture, a permanent market area, and an interesting collection of shops in the town centre. The market was quiet and had a collection of pretty dodgy stuff in the guise of “antiques”, however there were also decent looking fruit, vegetables, and meat. Given that it was Good Friday I guess, and hope, that it may have been quieter than usual. To bolster my hope far fewer stalls were occupied than not. But it may be possible that the market is past its heyday, which would be sad.

On walking the winding streets of Hitchin what stood out was the classic white-walled, black-beamed facades. These were even more remarkable since in many cases one end of the first floor was a foot or more higher than the other! I have to imagine that for modern use the core of the buildings has been rebuilt and only the extremely characterful shell of the original building remains. I’d not be surprised to find red brick out the back.

The town centre boasts all the usual High Street brands, ho hum. There is also a brilliant deli with an excellent selection of cheese and the butcher looked good (in addition to two butchers in the market area.) There’s also, surprisingly and amazingly, the best catering store I’ve ever seen in the UK!

The physical features of the town centre are a large square, used part-time for parking and otherwise for reasons unknown. The market area is elsewhere, down a passage from the main square. And on one side is the imposing edifice of the church, seeming much patched together and patched up over the centuries. The church is buffered by the usual graveyard an pleasant grassed grounds. Running to the east of the church is the tamed river Hiz, this bisects the town and runs under the market. I expect this river is actually a remnant, transformed to a channel (or drainage ditch) and now mostly subterranean. The name, Hiz, is pronounced Hitch – thus the name of the town. I’d expect it is better phrased as “pronounced Hitch in antiquity” since the modern phonetic pronunciation must surely be more common now.

We’ll probably pop along to Hitchin once more on the way home, to test out the accessibility by train.

Stevenage

The drive into Stevenage from Hitchin was short and we found ourselves on the main street of the Stevenage “Old Town” in less than 10 minutes. The street was OK but kind of devoid of life, it also seemed to not have any produce stores at all. We wandered the street but weren’t impressed.

We got back into the car and followed the signs to the Stevenage “town centre.” What a travesty of “new town” design, what a hideous beast they’ve built. This is a cold, dank, shell of a town center. A veritable zombie, no doubt actually consuming the brains of any unfortunate enough to inhabit the area.

We did note that Stevenage seems to have excellent provision for cycling. There is, what appears to be, a dedicated road network for cyclists (and walkers.) There’s also a large central parkland that is quite pleasant. However nothing we saw in Stevenage made up for the soulless horror of the so-called “town centre.”

It would seem that our interest in Stevenage is probably now damaged beyond repair.

Cambourne

Heading back to Cambridge we chose a route via an area named Cambourne, our interest in this being derived from the fact that it is supposed to be a hive of high-tech businesses. The actual business park in Cambourne seems small, but there is clearly room for it to expand, and massively (roads leading off into fields, and the like.) The buildings are all shiny, glassy, and new looking. The landscaping is elegant and involves a lot of water, always a points-winner in my book. In typical English “you are being watched” style there are CCTV cameras all over the place too, quite horrible in my opinion.

An interesting note is that along with the business park it seems a whole suburb has been built where I was expecting only business buildings. There seems to be far too great a capacity to serve just the small collection of commercial buildings in Cambourne so I wonder what area the population is supposed to serve. As far as the “town” goes, what we saw didn’t impress us, the place looked bleak. No character, no cafés, just a supermarket, a “fish and chicken” shop, an uninspiring pub, and a flock of real-estate vultures.

Cambourne is about a 20 minute drive from central Cambridge, and it took us 40 minutes to get up there from Hitchin. So the other thing about it is that it isn’t even really close to anywhere. The main road connections other than Cambridge seem to be St. Neot, and Royston, but both seem rather small so probably have little use for a population “overflow” town. There are bus services to Cambridge it seems, but there’s no train line in the area. Most interesting, for a high-tech business park, is that it must take 1.5 hours or more to get there from London. Maybe close access to Cambridge is enough though, I really don’t know.

The only think I can say for certain about Cambourne is that I wouldn’t want to live there… older, characterful, English towns are more my style. It does seem a pleasant working environment however.

I wrote the above paragraphs yesterday. I have two amusing notes to now add over lunch on Saturday. Last night we popped into an Indian place for dinner and by chance we overheard the two couples sitting next to us briefly discussing Cambourne. One of the men was a flight instructor and the other his pupil, the instructor was discussing the “mushrooming” of Cambourne with a note of certain horror in his voice. There was a clear agreement that the place seemed rather strange and difficult to understand, the only positive point voiced was “they have a Morrisons.” Morrisons is one of the smaller supermarket chains, not all that exciting I think.

The second note is that in one of this morning’s Cambridge newspapers there was an article on how these new housing estates are depressive. Cambourne was dubbed “Glumbourne” and the news was that they had to set up a specialist psych unit there to deal with the higher than average rates of depression. The theory, apparently a controversial one, is that these “new towns” are devoid of social structures and networks that many people are dependant on as an integral part of their happiness. In my opinion it could also be a case of the place looking terrible, being isolated, and having no cultural interest.