Skip to content
The beaver is a proud and noble animal

The beaver is a proud and noble animal

Notes from a bemused canuck

  • Home
  • About
  • Bookmarks
  • Pictures
  • Resume
  • Wine
  • Random Recipe
  • Toggle search form

I’d like the mug…

Posted on May 1, 2014May 1, 2014 By admin

image

… and the mug holder too, please :-)

uncategorized

Why programming sucks

Posted on May 1, 2014May 1, 2014 By admin

computer-rage

Every friend I have with a job that involves picking up something heavier than a laptop more than twice a week eventually finds a way to slip something like this into conversation: “Bro,1 you don’t work hard. I just worked a 4700-hour week digging a tunnel under Mordor with a screwdriver.”

They have a point. Mordor sucks, and it’s certainly more physically taxing to dig a tunnel than poke at a keyboard unless you’re an ant. But, for the sake of the argument, can we agree that stress and insanity are bad things? Awesome. Welcome to programming.

All programming teams are constructed by and of crazy people

Imagine joining an engineering team. You’re excited and full of ideas, probably just out of school and a world of clean, beautiful designs, awe-inspiring in their aesthetic unity of purpose, economy, and strength. You start by meeting Mary, project leader for a bridge in a major metropolitan area. Mary introduces you to Fred, after you get through the fifteen security checks installed by Dave because Dave had his sweater stolen off his desk once and Never Again. Fred only works with wood, so you ask why he’s involved because this bridge is supposed to allow rush-hour traffic full of cars full of mortal humans to cross a 200-foot drop over rapids. Don’t worry, says Mary, Fred’s going to handle the walkways. What walkways? Well Fred made a good case for walkways and they’re going to add to the bridge’s appeal. Of course, they’ll have to be built without railings, because there’s a strict no railings rule enforced by Phil, who’s not an engineer. Nobody’s sure what Phil does, but it’s definitely full of synergy and has to do with upper management, whom none of the engineers want to deal with so they just let Phil do what he wants. Sara, meanwhile, has found several hemorrhaging-edge paving techniques, and worked them all into the bridge design, so you’ll have to build around each one as the bridge progresses, since each one means different underlying support and safety concerns. Tom and Harry have been working together for years, but have an ongoing feud over whether to use metric or imperial measurements, and it’s become a case of “whoever got to that part of the design first.” This has been such a headache for the people actually screwing things together, they’ve given up and just forced, hammered, or welded their way through the day with whatever parts were handy. Also, the bridge was designed as a suspension bridge, but nobody actually knew how to build a suspension bridge, so they got halfway through it and then just added extra support columns to keep the thing standing, but they left the suspension cables because they’re still sort of holding up parts of the bridge. Nobody knows which parts, but everybody’s pretty sure they’re important parts. After the introductions are made, you are invited to come up with some new ideas, but you don’t have any because you’re a propulsion engineer and don’t know anything about bridges.

Would you drive across this bridge? No. If it somehow got built, everybody involved would be executed. Yet some version of this dynamic wrote every single program you have ever used, banking software, websites, and a ubiquitously used program that was supposed to protect information on the internet but didn’t.

All code is bad

Every programmer occasionally, when nobody’s home, turns off the lights, pours a glass of scotch, puts on some light German electronica, and opens up a file on their computer. It’s a different file for every programmer. Sometimes they wrote it, sometimes they found it and knew they had to save it. They read over the lines, and weep at their beauty, then the tears turn bitter as they remember the rest of the files and the inevitable collapse of all that is good and true in the world.
This file is Good Code. It has sensible and consistent names for functions and variables. It’s concise. It doesn’t do anything obviously stupid. It has never had to live in the wild, or answer to a sales team. It does exactly one, mundane, specific thing, and it does it well. It was written by a single person, and never touched by another. It reads like poetry written by someone over thirty.

Every programmer starts out writing some perfect little snowflake like this. Then they’re told on Friday they need to have six hundred snowflakes written by Tuesday, so they cheat a bit here and there and maybe copy a few snowflakes and try to stick them together or they have to ask a coworker to work on one who melts it and then all the programmers’ snowflakes get dumped together in some inscrutable shape and somebody leans a Picasso on it because nobody wants to see the cat urine soaking into all your broken snowflakes melting in the light of day. Next week, everybody shovels more snow on it to keep the Picasso from falling over.

There’s a theory that you can cure this by following standards, except there are more “standards” than there are things computers can actually do, and these standards are all variously improved and maligned by the personal preferences of the people coding them, so no collection of code has ever made it into the real world without doing a few dozen identical things a few dozen not even remotely similar ways. The first few weeks of any job are just figuring out how a program works even if you’re familiar with every single language, framework, and standard that’s involved, because standards are unicorns.

sucks_stamp

There will always be darkness

I spent a few years growing up with a closet in my bedroom. The closet had an odd design. It looked normal at first, then you walked in to do closet things, and discovered that the wall on your right gave way to an alcove, making for a handy little shelf. Then you looked up, and the wall at the back of the alcove gave way again, into a crawlspace of utter nothingness, where no light could fall and which you immediately identified as the daytime retreat for every ravenous monster you kept at bay with flashlights and stuffed animals each night.

This is what it is to learn programming. You get to know your useful tools, then you look around, and there are some handy new tools nearby and those tools show you the bottomless horror that was always right next to your bed.

For example, say you’re an average web developer. You’re familiar with a dozen programming languages, tons of helpful libraries, standards, protocols, what have you. You still have to learn more at the rate of about one a week, and remember to check the hundreds of things you know to see if they’ve been updated or broken and make sure they all still work together and that nobody fixed the bug in one of them that you exploited to do something you thought was really clever one weekend when you were drunk. You’re all up to date, so that’s cool, then everything breaks.

“Double you tee eff?” you say, and start hunting for the problem. You discover that one day, some idiot decided that since another idiot decided that 1/0 should equal infinity, they could just use that as a shorthand for “Infinity” when simplifying their code. Then a non-idiot rightly decided that this was idiotic, which is what the original idiot should have decided, but since he didn’t, the non-idiot decided to be a dick and make this a failing error in his new compiler. Then he decided he wasn’t going to tell anyone that this was an error, because he’s a dick, and now all your snowflakes are urine and you can’t even find the cat.

You are an expert in all these technologies, and that’s a good thing, because that expertise let you spend only six hours figuring out what went wrong, as opposed to losing your job. You now have one extra little fact to tuck away in the millions of little facts you have to memorize because so many of the programs you depend on are written by dicks and idiots.

And that’s just in your own chosen field, which represents such a tiny fraction of all the things there are to know in computer science you might as well never have learned anything at all. Not a single living person knows how everything in your five-year-old MacBook actually works. Why do we tell you to turn it off and on again? Because we don’t have the slightest clue what’s wrong with it, and it’s really easy to induce coma in computers and have their built-in team of automatic doctors try to figure it out for us. The only reason coders’ computers work better than non-coders’ computers is coders know computers are schizophrenic little children with auto-immune diseases and we don’t beat them when they’re bad.

A lot of work is done on the internet and the internet is its own special hellscape

Remember that stuff about crazy people and bad code? The internet is that except it’s literally a billion times worse. Websites that are glorified shopping carts with maybe three dynamic pages are maintained by teams of people around the clock, because the truth is everything is breaking all the time, everywhere, for everyone. Right now someone who works for Facebook is getting tens of thousands of error messages and frantically trying to find the problem before the whole charade collapses. There’s a team at a Google office that hasn’t slept in three days. Somewhere there’s a database programmer surrounded by empty Mountain Dew bottles whose husband thinks she’s dead. And if these people stop, the world burns. Most people don’t even know what sysadmins do, but trust me, if they all took a lunch break at the same time they wouldn’t make it to the deli before you ran out of bullets protecting your canned goods from roving bands of mutants.

You can’t restart the internet. Trillions of dollars depend on a rickety cobweb of unofficial agreements and “good enough for now” code with comments like “TODO: FIX THIS IT’S A REALLY DANGEROUS HACK BUT I DON’T KNOW WHAT’S WRONG” that were written ten years ago. I haven’t even mentioned the legions of people attacking various parts of the internet for espionage and profit or because they’re bored. Ever heard of 4chan? 4chan might destroy your life and business because they decided they didn’t like you for an afternoon, and we don’t even worry about 4chan because another nuke doesn’t make that much difference in a nuclear winter.

On the internet, it’s okay to say, “You know, this kind of works some of the time if you’re using the right technology,” and BAM! it’s part of the internet now. Anybody with a couple of hundred dollars and a computer can snag a little bit of the internet and put up whatever awful chunks of hack code they want and then attach their little bit to a bunch of big bits and everything gets a little bit worse. Even the good coders don’t bother to learn the arcane specifications outlined by the organizations people set up to implement some unicorns, so everybody spends half their time coping with the fact that nothing matches anything or makes any sense and might break at any time and we just try to cover it up and hope no one notices.

Here are the secret rules of the internet: five minutes after you open a web browser for the first time, a kid in Russia has your social security number. Did you sign up for something? A computer at the NSA now automatically tracks your physical location for the rest of your life. Sent an email? Your email address just went up on a billboard in Nigeria.

These things aren’t true because we don’t care and don’t try to stop them, they’re true because everything is broken because there’s no good code and everybody’s just trying to keep it running. That’s your job if you work with the internet: hoping the last thing you wrote is good enough to survive for a few hours so you can eat dinner and catch a nap.

We didn’t start out crazy, we’re being driven crazy

ERROR: Attempted to parse HTML with regular expression; system returned Cthulhu.

Funny, right? No? How about this exchange:

“Is that called arrayReverse?”
“s/camel/_/”
“Cool thanks.”

Wasn’t that guy helpful? With the camel? Doesn’t that seem like an appropriate response? No? Good. You can still find Jesus. You have not yet spent so much of your life reading code that you begin to talk in it. The human brain isn’t particularly good at basic logic and now there’s a whole career in doing nothing but really, really complex logic. Vast chains of abstract conditions and requirements have to be picked through to discover things like missing commas. Doing this all day leaves you in a state of mild aphasia as you look at people’s faces while they’re speaking and you don’t know they’ve finished because there’s no semicolon. You immerse yourself in a world of total meaninglessness where all that matters is a little series of numbers went into a giant labyrinth of symbols and a different series of numbers or a picture of a kitten came out the other end.

The destructive impact on the brain is demonstrated by the programming languages people write. This is a program:

#include

int main( int argc, char** argv ) {
std::cout << "Hello World!" << std::endl; return 0; }

That program does exactly the same thing as this program:

`r“““““`.H.e.l.l.o. .w.o.r.l.di

And this program:

>+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.[-] >++++++++[<++++>-] <.>+++++++++++[<++++++++>-]<-.--------.+++ .------.--------.[-]>++++++++[<++++>– ]<+.[-]++++++++++.

And this one:

Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook.
Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook?
Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook.
Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook! Ook? Ook! Ook! Ook? Ook!
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook.

And once somebody wrote a programming language that let somebody else write this:

#:: ::-| ::-| .-. :||-:: 0-| .-| ::||-| .:|-. :||
open(Q,$0);while(){if(/^#(.*)$/){for(split(‘-‘,$1)){$q=0;for(split){s/|
/:.:/xg;s/:/../g;$Q=$_?length:$_;$q+=$q?$Q:$Q*20;}print chr($q);}}}print”n”;
#.: ::||-| .||-| :|||-| ::||-| ||-:: :|||-| .:|

According to the author, that program is “two lines of code that parse two lines of embedded comments in the code to read the Mayan numbers representing the individual ASCII characters that make up the magazine title, rendered in 90-degree rotated ASCII art.”

That program won a contest, because of course it did. Do you want to live in a world like this? No. This is a world of where you can smoke a pack a day and nobody even questions it. “Of course he smokes a pack a day, who wouldn’t?” Eventually every programmer wakes up and before they’re fully conscious they see their whole world and every relationship in it as chunks of code, and they trade stories about it as if sleepiness triggering acid trips is a normal thing that happens to people. This is a world where people eschew sex to write a programming language for orangutans. All programmers are forcing their brains to do things brains were never meant to do in a situation they can never make better, ten to fifteen hours a day, five to seven days a week, and every one of them is slowly going mad.

</rant>

So no, I’m not required to be able to lift objects weighing up to fifty pounds. I traded that for the opportunity to trim Satan’s pubic hair while he dines out of my open skull so a few bits of the internet will continue to work for a few more days.

uncategorized

The Tao of Minion

Posted on April 30, 2014 By admin

1622728_1488406478041008_3687822096047627780_n

uncategorized

Warning, safety ahead!

Posted on April 30, 2014 By admin

A work colleague decided that my desk was sorely missing a health&safety catalog, so now I give you the best of Schärer+Kunz:

Beware the gimp!
Beware the gimp!
Dr Watson, I presume?
Dr Watson, I presume?
Chastity belt zone!
Chastity belt zone!
APPLAUSE REQUIRED!
APPLAUSE REQUIRED!
Cockney ahead!
Cockney ahead!
Walk fabulously!
Walk fabulously!
Grow an afro!
Grow an afro!
uncategorized

New art, yaaaay!

Posted on April 29, 2014August 26, 2014 By admin

image

Moment de sérénité, by Martin Beaupré.

uncategorized

Oh conservatives, how you make me laugh (and cry)

Posted on April 29, 2014 By admin

A pheasant shot in a field

A few days after it was revealed that an NHS group is considering charging patients for the crutches, walking sticks and neck braces it issues, we discovered that David Cameron has intervened to keep the cost of gun licences frozen at £50: a price that hasn’t changed since 2001. The police are furious: it costs them £196 to conduct the background checks required to ensure shotguns are issued only to the kind of dangerous lunatics who use them for mowing down pheasants, rather than to the common or garden variety. As a result they – sorry, we – lose £17m a year, by subsidising the pursuits of the exceedingly rich.

The Country Land and Business Association – the armed wing of the Conservative party – complains that it’s simply not fair to pass on the full cost of the licence to the owners of shotguns; unlike, say, the owners of passports or driving licences, who are charged on the basis of full cost recovery.

Three days later the government announced it would raise the subsidy it provides for grouse moors from £30 per hectare to £56. Yes, you read that right: the British government subsidises grouse moors, which are owned by 1% of the 1% and used by people who are scarcely less rich.

While the poor are being forced out of their homes through government cuts, it is raising the payments – across hundreds of thousands of hectares – that some owners use to burn and cut the land (helping to cause floods downstream), shoot or poison hen harriers and other predators, and scar the hills with roads and shooting butts.

While the rest of us can go to the devil, the interests of the very rich are ringfenced.

Before examining the wider picture, let’s stick with the shooting theme for a moment, and take a look at the remarkable shape-shifting properties of that emblem of Downton Abbey Britain: the pheasant. Through a series of magnificent legal manoeuvres it can become whatever the nation’s wealthy want it to be.

When pheasants are reared, they are classed as livestock: that means the people who raise them are exempt from some payments of value added tax and certain forms of planning control, on the grounds that they are producing food.

But as soon as they’re released they are classed as wild animals. Otherwise you wouldn’t be allowed to shoot them. But if you want to re-capture the survivors at the end of the shooting season to use as breeding stock, they cease to be wild and become livestock again, because you aren’t allowed to catch wild birds with nets.

If, however, pheasants cause damage to neighbouring gardens, or to cars, or to the people travelling in those cars, the person who released them bears no liability, because for this purpose they are classed as wild animals – even if, at the time, they are being rounded up as legal livestock.

The pheasant’s properties of metamorphosis should be a rich field of study for biologists: even the Greek myths mentioned no animal that mutated so often. In the treatment of pheasant and grouse shoots we see in microcosm what is happening in the country as a whole. Legally, fiscally and politically, the very rich are protected from the forces afflicting everyone else.

But to call on the government to make rational and progressive fiscal decisions, as many of us do, is to misunderstand what it is attempting. It is not seeking to save the country from fiscal ruin – there are many ways of doing that without cutting essential services. It is re-engineering the United Kingdom as a plutocrats’ paradise, in which the rich are scarcely troubled by laws or taxes, while the poor are plunged into a brutal world of casual labour, insecurity and legal restraint. It is creating a world in which the rich may live by their own rules.

So back we go to the hazy days of Edwardian England: a society dominated by rentiers, in which the city centres are set aside for those with tremendous wealth and the countryside is reserved for their bloodsports. As the queues lengthen at the foodbanks, our money is used to subsidise grouse and shotguns. That is all you need to know about how and by whom we are governed.

uncategorized

The 90s called, they want their artists back

Posted on April 29, 2014April 29, 2014 By admin

image

Kavanagh? Voisine? Gagnon? Charlevois? Desjardins? Seriously???

uncategorized

Problems only an introvert will understand

Posted on April 28, 2014April 28, 2014 By admin 1 Comment on Problems only an introvert will understand

You want to cut all ties to civilization but still be on the internet.

Your friend wants to invite more people over, and you don’t want to sound like a bad person by saying no.

Spending a heavenly weekend alone means that you’re missing out on time with friends. And you fear that by doing so, you are nearing ‘hermit’ status.

Your ride at a party doesn’t want to leave early, and no one seems to understand your distress.

That feeling of dread that washes over you when the phone rings and you’re not mentally prepared to chat.

You have an awesome night out, but have to deal with feeling exhausted for days after the fact.

People saying “Just be more social.”

You’re able to enjoy parties and meetings, but after a short amount of time wish you were home in your pajamas.

Staying up late every night because it’s the only time that you can actually be alone.

People making you feel weird for wanting to do things by yourself.

Having more conversations in your head than you do in real life.

People calling you out for day dreaming too much.

Carrying a book to a public place so no one will bug you, but other people take that as a conversation starter.

People interrupting your thoughts, and you get irrationally angry.

You’re asked to do a group project, and know that you’re going to hate every minute of it.

You hear the question “Wanna hang out?”, and your palms start to sweat with anxiety.

You hear, “Are you OK?” or “Why are you so quiet?” for the umpteenth time.

Having visitors stay with you is a nightmare, because it means you have to be on at ALL TIMES.

When people stop inviting you places because you’re the one that keeps canceling plans.

Being horrified of small talk, but enjoying deep discussions.

The need to think introspectively rather than go to someone else with your problems.

Not wanting to be alone, just wanting to be left alone. And people not understanding that.

When people mistake your thoughtful look for being shy, or worse, moody.

That people need to know that you aren’t mad, depressed or anti-social. You just need to not talk to anyone for a while. And that’s okay.

uncategorized

[recipe] Brie and ham bread and butter pudding

Posted on April 28, 2014 By admin

image

Ingredients
3 tablespoons unsalted butter, plus more for the ramekins
450g camembert cheese with rind
400ml single cream
400ml full fat milk
4 large eggs
Kosher salt and freshly ground black pepper
1 baguette, bottom crust discarded, cut into 1/2-inch dice
450g cooked, smoked ham, cut into 1/2-inch cubes
2 shallots, thinly sliced
2 large fresh thyme sprigs
1 Granny Smith apple, peeled, cored and cut into 1/2-inch cubes
1 cup dry white wine
Green salad, for serving, optional

Directions
Preheat the oven to 375 degrees F with 1 rack set on the middle shelf and 1 rack set on the bottom shelf. Fill a large baking dish halfway with warm water and place on the bottom rack.

Butter eight 8-ounce ramekins and place on a baking sheet. Slice the cheese into 1/2-inch cubes and lay on a plate to keep them from sticking together.

Whisk the cream and eggs together in a large bowl. Add 1 teaspoon salt and a pinch of pepper. Add the baguette cubes and ham. Stir to combine.

Melt the butter in a large saute pan over medium-high heat. Add the shallots and thyme, season with salt and pepper and cook until slightly softened and browned around the edges, 4 to 6 minutes. Add the apples, season with salt and pepper and cook until slightly softened and browned around the edges, 3 to 5 minutes. Stir in the wine and cook until the wine has completely absorbed, 3 to 4 minutes. Discard the thyme sprigs. Add the apple mixture along with the cheese cubes to the beaten eggs, and stir to combine.

Evenly divide the bread pudding among the ramekins. Bake until a paring knife inserted into the center of a bread pudding comes out clean and hot, 18 to 25 minutes, rotating the pan halfway through. Allow the bread puddings to cool for at least 5 minutes before serving. Serve alongside a lightly dressed green salad.

uncategorized

Just one glass for me, please

Posted on April 28, 2014October 16, 2019 By admin

image

Now that’s the sort of glass Katy would like…

uncategorized

Posts pagination

Previous 1 … 336 337 338 … 703 Next

Power to the beaver!

Show me the beaver!
September 2026
M T W T F S S
 123456
78910111213
14151617181920
21222324252627
282930  
« Aug    

Quote of the day

The truth may be out there, but lies are inside your head.
--(Terry Pratchett, Hogfather)

Random Posts

  • Well there goes the motorcycle, for now…
  • [recipe] super-moist vanilla cake
  • Whimsy picture of the day
  • [recipe] Waffles 
  • HUPO 2008 – Day 3
reading leopard

Tags

bobble the little blue owl boobies brought to you by the fda cats chonk christmas comics computers are evil covid-19 dealing with idiots dilbert dog ducks galleries geek god bless the land of the free holidays house I am Canadian land of cheese and chocolate linked news lolcat london news from the stupid not my dog nsfw pets pictures potd2014 qotd random shit re-member recipes relationship shrill slice of life stress Tao the british way The Peanut things i miss travel video wine work

Archives

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

Copyright © 2026 The beaver is a proud and noble animal.

Powered by PressBook Premium theme

Loading Comments...