If a man faces a firing squad of ten men, and nine of them refuse the order to shoot him, does he survive?
Go ahead and
- Recycle your plastic bags
- Avoid excessive wake on the rivers
- Drive under 56mph
- Go LPG
- Give up your car
- Buy fair trade coffee and cocoa
- Buy an A-rated washing machine
- Don’t build that road
- Refuse to walk up Uluru
- Keep your distance from the coral
- Refuse to shop at TESCO
- Tut at the Iraq war
- Go carbon-neutral
- Cancel all your holidays
- Leave your packaging at the till
Does he live?
I posted before about Makefiles when a tool builds multiple targets, and some discussion was had. Further to that, a colleague found this cute solution and we refined it a little. It has several advantages over the last method I put forward:
- It doesn’t require an additional file to be written to disk
- It’s clearer in the makefile
And some advantages over the method ianb suggests in the comments to that post:
- It uses two features rather than a hack (i.e. it clearly shows its fake dependency to be so)
- It works on our system. (GAK why ianb’s solution didn’t)
So here it is:
# -- mode: Makefile; --
# Preamble
.PHONY: all
all: a b
# Rule 1
# The bar ("|") denotes an order-only dependency; i.e. _my_fake_file is
# updated, but that is not enough to cause the commands in this rule to be
# executed.
a b: | _my_fake_file
@: # empty command
# Rules 2 amd 3
# .INTERMEDIATE means that _my_fake_file does not need to be built for its own
# sake. So the commands will be executed here only if its prerequisites are
# newer than a or b.
.INTERMEDIATE: _my_fake_file
_my_fake_file: src
touch a b
# finally, note that _my_fake_file is never created on disc. If and when the
# rule is executed, make internally notes that the target has been built, and
# subsequent visits to Rule 1 do not cause Rule 3 to be evaluated.
Having driven the 10,000,000,000 miles to Norfolk at 0.000002 MPH, I was not going to go home again without having visited the Under The Pier Show at Southwold (Suffolk). It were great. And Southwold’s surprisingly genteel too. On the August Bank Holiday, parking and pub food were both hard to come by but there was a distinct absence of chavviness and even the souvenir shops were all locally hand crafted gubbins rather than placky mass-produced tosh. In all it was terribly civilised, though a bit more Essexy than Norfolk.
There is nothing — absolutely nothing — half so much worth doing as simply messing about in boats.
– Ratty, the Wind In The Willows
Three nights on a cruiser on the Norfolk Broads. The smell of the mudweight when weighed in the morning. A crew paralysed by the hygiene facilities. Mooring and casting-off single-handed. Friendly locals and grumpy locals, but mostly friendly. Windmills. Learning about mooring in crosswinds. More friendly locals. Sitting on the stern in the middle of a broad in the evening, watching our neighbors shinning up their masts and taking photos of one another. Betting on which grebe will surface first. Pub lunches. Pub dinners. An ancient church. Bumping the neighboring boat rather hard on arrival and again on departure. 4 Hours’ sailing to do a 10 minute drive. Lovely Norfolk folk.
A bunch of us are doing the 100 pushups program. You measure yourself by doing “as many as you can”. I realise now that my problem with fitness is not my pain threshold but my futility threshold. I start to wonder what’s the point long before I would have to stop due to physical issues. So my initial test I squoze out 8 pushups before thinking it was a silly exercise and why didn’t I have a nice piece of chocolate or something. That makes me a rank 2.
There are six weeks’ programs of three days, so we’re doing monday wednesday friday and posting results online for the sake of amplifying peer pressure. The first day’s exercises take the form of four sets of mandatory pushups with a minimum rest of 60 seconds between them, followed by “as many pushups as you can manage”. So the last figure is a measure of how far you’ve come. Already this figure has gone up. I think I’ve raised my futility threshold!
7, 7, 5, 4, 10
Incidentally, I know what the point is to this exercise: it’s our salsa performance routine. There’s a lift where Rachael springs like a little elf onto my side and I twirl her around effortlessly before she alights without a sound. That’s the theory anyhow.
On the same shelf in Morrissons:
And a “special” offer from Barratts:
Say one stage in your build process is a tool that writes out a series of source files and config files. You might have a rule that looks a bit like this:
glue.c glue.h net_conf.xml error_list.config: application.config context.xml target.conf
generate_glue.exe $^
The trouble is, this is exactly the same as specifying four rules, one for each of the goals. And, depending on the exact version of make you use, you may find that generate_glue.exe is run four times. If that takes more than 4 minutes then you’re going to get really mad. Especially if you have, say, 80 test applications to generate.
A pattern to get around this is to cause the dependency “tree” to reconverge around a marker that tells you when the generator was last run:
glue.c glue.h net_conf.xml error_list.config: glue_generated.touch
# nothing here
glue_generated.touch: application.config context.xml target.conf
generate_glue.exe $^
touch glue_generated.touch
This way, glue_generated.touch gets checked for its age a bunch of times, but the generation action is only executed if some config file is newer than the touch file.
ISTR that this can fail too (maybe it’s if the time granularity is too large) because somewhere I ended up with a horrible bunch of macrology that actually tested the file age explicitly in order to avoid it STILL running the tool n times.
Anyhow. This doesn’t seem to be anywhere on the internets, so it is now.
No matter what a Celebrity Chef might advise, don’t eat stuff with “bane” in the name. That goes also for:
- deadly nightshade
- poison ivy
- black-eyed susan
- bleeding heart
There are subtle clues about these plants.
They know how to accept flattery. Old ladies, seemingly without fail, really love it when you look them in the eye and say something nice with a smile. Sometimes you get a giggle, sometimes a witty rejoinder (or at least, something that would have been witty in 1946.) Unlike these newfangled sullen youths, they acknowledge a held door or vacated seat.
I think it’s because they are pretty confident that you’re not doing it because you want to schtupp them.
They also know how to dance! Properly, I mean - in couples. When I started salsa there was a woman there who must’ve been over 80. She couldn’t do all the movements and you had to watch out not to move her arms into certain positions from which, you felt, they may never return; but dancing with her was like dancing with a cloud!
It occurs to me that what they have is simply manners.
Hearing on the radio about Post Office closures, you can see why earlier generations have manners and the more recent ones don’t so much. In the old days you couldn’t get groceries without dealing with a person. You couldn’t get road tax or books online. You couldn’t email, you had to go and buy a stamp. From a person. Bread from the baker, meat from the butcher. In other words, people needed to get along with other people, in order just to get along.
Now, people live by remote control, through a computer screen, plugged into the iPod.
You don’t even need to pass money to the person at the checkout any more, just follow the instructions on the screen of the PIN machine.
No wonder the poor kids these days don’t know what to do if you speak to them.
The concept of “people” has shifted now. No longer does “people” represent the individuals who supply your basic needs of food, security, communication and fun. “People” now means those agents working outside your sphere of comfort, of supply, of security. They are the people who might get the last bargain sofa before you, the suspicous male hanging out around the playground, the hackers and spammers making the internet all dangerous and inconvenient, the youths sitting around the street corner not sure what to do with their new found urges, all packing presumable knives and looking for presumable mischief; or they are distant starving peoples who provide us with ways to feel morally superior to one another.
Your homework is in two stages:
1) Come up with a standard fallback response for use in case someone says something nice about you.
2) Tell somebody something nice about themself this week.
So we got this Fiesta, right, which was declared SORN, and we got it an MOT and brought it to my house, where we continued to keep it off the road. We checked that the SORN wasn’t going to run out any time soon, and kept it nice and clean, and started saving up to get it repaired and get insured on it.
Then in about May we decided we ought to become the Registered Keeper so filled in the “notification of sale or transfer” bit.
Then about a fortnight ago, the previous keeper got a letter saying “hey! the SORN’s going to run out soon! you need to re-declare it!”. Whoops! We hadn’t sent off the paperwork to transfer the keeperhood. So we sent it off. I decided to tax the car as of next month and get the durn thing on the road.
Then on the online tax site, it turns out the SORN expired on the 24th May, and, phoning them up, I discover that an “enforcement action” has been taken and someone will have to pay a fine.
It turns out that if you transfer the vehicle the SORN expires there and then. By sending the transfer document in dated over a month ago, I fast tracked myself past all the cordial invitations to redeclare and into the zone of dodgy criminals driving around without tax. Not only that, but the enforcement action is backdated so the time to pay early and get a discount has also expired.
Hopefully the enforcement centre will accept the news that it’s been kept off road the whole time and that we had no clue that the SORN had expired as some kind of mitigation. Time will tell.
Best BBC Comedy quote ever:
“Quick! to the time machine!”
* bzzt- crk - fhwump *
“hmm, that’s strange… it was working tomorrow!



