Tuesday, October 7, 2014

The view from Paradise...

The view from Paradise...  Just a couple of photos to give you a flavor for what this season is like here.  The photo at right is looking east from the second floor of our barn.  You can make out the red of maples in fall color on the sides of the mountains.  In places there are also stands of quaking aspen that are like splotches of bright yellow paint.  The line of yellowing trees in the foreground are along an irrigation canal.  There's a mixture of planted and naturally occurring plants there, but the canal sides are dominated by box elder and rose bushes (both naturally occurring).

The land to the left of the white fence belongs to my neighbor Tim D.  He ran oats there last year, but killed them a few weeks ago (which is why it's all brown) and is planning to plow it and plant alfalfa next year.  The small white building in the right foreground is ours, but we're going to have it taken down in a couple of weeks.  We found someone who would like to turn it into a boat house, and he's going to do all the removal work for us in exchange for the carcass.  We're going to replace it with a roof on posts, under which we'll have a diesel backup generator and a couple of fuel tanks.  Peeking through the trees at right you can see the roof of my neighbor's barn.  I was here for a couple of weeks before I realized it was a barn – the building is so fancy that I mistook it for an especially nice home!  Two gorgeous black horses live there, so I guess you could say it's a home after all :)

At left is the arbor in our garden.  The green leaves are a grape vine; the red leaves are the fall color of a vine I haven't identified yet.  It appears to grow at about three times the rate of the grape, so unless I do something about it, I think it's going to win the war for photons...

Barn: the roof, it appears!

Barn: the roof, it appears!  The builders got an awful lot done today.  First they put the sheathing on the two side roofs, and then the put up all the trusses for the center roof.  Along the way they found time to start building the stairs, and to put in dozens of bracing blocks.

With the side roofs in place, walking through the first floor of the barn is an entirely different experience now, as you feel like you're in a building.  The two roofs and the floor of the second story completely block the sky.  The plywood ceiling panels aren't in yet; when they are, that will amplify this feeling a bit more.  The second floor looks huge to my eye: a single 2,200 square foot room with an 8' ceiling.  I've no idea what we're going to put up there, but I can't imagine we're ever going to run out of storage space again...

The bugs of fall...

The bugs of fall...  Before we even moved into our new home in Utah, our realtor warned us about box elder bugs.  Every fall they leave the female box elder trees (actually a kind of maple, Acer negundo) and gather in warm places – especially the south-facing sides of light-colored buildings.  Our home is painted white, and one of long walls faces due south.  The box elder bugs say “Cowabunga!” and descend upon us with great enthusiasm.  That's a bunch of them on the window at right.

They're harmless bugs.  Close up, they look a lot like the fireflies we had in New Jersey where I grew up.  They don't bite or sting, and they only smell if you disturb them, whereupon they produce copious amounts of a really stinky fluid.  The Internet is full of articles about alleged ways to get rid of them, but my neighbors tell me that all of them are hokum, and nothing really works except getting rid of box elder trees or painting your house with some color they won't like.  You can wash them off a building with a hose, but they'll be right back when it dries off.  They don't learn; you can wash them off over and over again, and they still come back (I tried :)

Our realtor told us a scary story about these bugs.  One of his neighbors decided to spray the side of his house with insecticide a few years ago, as the bugs were making his wife crazy.  The box elder bugs are quite tolerant to most insecticides, so he had to spray them with a lot of expensive, exotic insecticide – which worked, but left him with piles of dead box elder bugs along the side of his house.  So he raked up all the bug bodies, put them in a big pile, and set them on fire.  Next thing you know, box elder bug embers were flying in the evening breeze, and some of them landed on his barn.  They set his barn on fire, and it burned to the ground before anyone could get there to put it out.

Oh, my.  We won't be burning piles of box elder bugs around here!  No, siree...

(False?) Crocus, up close and personal...

(False?) Crocus, up close and personal...  The left-hand photo below shows a close-up of the flower's petal, complete with bugs so small I couldn't see them with my naked eye.  The entire flower was heavily populated with a variety of tiny bugs, all of similar size.  As I carried the flower inside, I had no idea it was a insect urban area!  The other two photos show views of the stamens.  The right-hand photo was taken at 60x magnification, and you can just make out the tiny yellow pollen grains...

“This has been a mind-changing experience for me...”

“This has been a mind-changing experience for me...”  Easy prediction: Debbie will love this video :)  Via friend, reader, and former colleague Simon M...

Invisible ink...

Invisible ink...  A history...

Don't mess with old ladies!

Don't mess with old ladies!  Via my mom:
A mature lady gets pulls over for speeding...

Older Woman: Is there a problem, Officer?

Traffic Cop: Yes ma'am, I'm afraid you were speeding.

Older Woman: Oh, I see.

Traffic Cop: Can I see your license please?

Older Woman: Well, I would give it to you but I don't have one.

Traffic Cop: Don't have one?

Older Woman: No. I lost it 4 years ago for drunk driving.

Traffic Cop: I see...Can I see your vehicle registration papers please.

Older Woman: I can't do that.

Traffic Cop: Why not?

Older Woman: I stole this car.

Traffic Cop: Stole it?

Older Woman: Yes, and I killed and hacked up the owner.

Traffic Cop: You what!?

Older Woman: His body parts are in plastic bags in the trunk if you want to see.

The traffic cop looks at the woman and slowly backs away to his car while calling for back up. Within minutes 5 police cars circle the car. A senior officer slowly approaches the car, clasping his half drawn gun.

Officer 2: Ma'am, could you step out of your vehicle please! The woman steps out of her vehicle.

Older woman: Is there a problem sir?

Officer 2: My colleague here tells me that you have stolen this car and murdered the owner.

Older Woman: Murdered the owner? Are you serious?!

Officer 2: Yes, could you please open the trunk of your car, please. The woman opens the trunk, revealing nothing but an empty trunk.

Officer 2: Is this your car, ma'am?

Older Woman: Yes, here are the registration papers. The traffic cop is quite stunned.

Officer 2: My colleague claims that you do not have a driving license. The woman digs into her handbag and pulls out a clutch purse and hands it to the officer. The officer examines the license quizzically.

Officer 2: Thank you ma'am, but I am puzzled, as I was told by my officer here that you didn't have a license, that you stole this car, and that you murdered and hacked up the owner!

Older Woman: Bet the lying bastard told you I was speeding, too!

When your pet discovers it's going to the vet...

When your pet discovers it's going to the vet...  My mom sent me a collection of these; the one at right is my favorite.  That expression is exactly what Miki (one of our field spaniels) has when we park outside the vet's office...

Photosynthesis 2.0?

Photosynthesis 2.0?  Scientists appear to be on the verge of figuring out a way to boost crop plants' photosynthetic efficiency by 25% or more.  Should they?  It's a tough call, with good arguments both pro and con...

Traveler captures train/truck collision...

Traveler captures train/truck collision...  You'll want to watch this full-screen.

Nobody was hurt, which is amazing, as I'm sure you'll agree after you watch this.  The “smoke” the narrating woman refers to is actually evaporating liquid argon – harmless unless it displaced all the oxygen where you were breathing, which is very unlikely outdoors...

Edgar Allan Poe's mysterious death...

Edgar Allan Poe's mysterious death...  I hadn't realized it was quite this mysterious!

Doubts about object-oriented programming (OOP)...

Doubts about object-oriented programming (OOP)...  I read a long article by Lawrence Krubner this morning.  I have no idea who Lawrence is, but I found his article quite fascinating, and some of his points resonated strongly with me.

My perspective on OOP is a little different than Lawrence's, and in fact probably a little different than the vast majority of today's programmers.  This difference in perspective comes about mainly from my age (I'm 62) and the fact that I never had any formal education in computer science or programming – I'm entirely self-taught.

The age matters because I started programming (in '73) before OOP was adopted by the programming community.  In fact, its predecessor (“structured programming”) was just then being introduced.  The most common form of program architecture then was what we'd call “spaghetti code” today – horrifying, hard to understand, and even harder to maintain.  Furthermore, I learned to program in assembly languages, which (back then, at least) contained absolutely no support for even structured programming, much less OOP.  So I've experienced three “normal” regimes in my career: spaghetti code, structured programming, and OOP.  I've written code in well over 100 programming languages, and production code in at least 50.  I've also played around with functional programming, though much less extensively.  I've written quite a bit in Forth (a language that's hard to categorize) and one large project in Prolog (which also doesn't fit easily into a category).

The lack of education matters because I have very little exposure to the theory of programming languages, or architectures for that matter.  What little I have learned is entirely from real world experience (maintaining existing software and creating new software), and not at all from anyone's idea of what the “right” way to do something is.  I've read quite a few books about the theory of programming, but always after the fact, in an effort to understand something new that I've run across.  In many, many conversations with other software engineers this difference in my education manifested itself – generally because my conversational partner would say something that sounded like utter gobbledegook to me, and I'd have to have them explain it to me in language that I could understand.  My most intense experience like that occurred in the '90s, in the course of conversations with two particular engineers: Julia and Mike.  They spouted OOP jargon I'd never heard before at a prodigious rate, and I had to do a lot of reading and parsing of their utterances to have a prayer of understanding what they were saying.

So my perspective is different than most.  So is my conclusion about programming theory.

I don't think it matters.  Or, to say it another way, I don't think it is substantially easier or more likely that understandable, maintainable code will be written as spaghetti code, structured programming, or OOP.  The vast majority of programmers will write opaque, unmaintainable crap no matter what programming model they're using.

I say this with some confidence, after more than 40 years of working with quite a few substantial bodies of code.  There isn't a single one of them that I can point to as particularly understandable or maintainable.  There are no significant differences in the spaghetti code, structured code, or OOP.  It's all equally bad.

That's not to say that I've never, ever seen good code.  I have.  I like to think that I've produced some of it.  But that good code is always in relatively small chunks – a few thousand lines at a time, at most.  Most of the large bodies of code I've worked with have a few pieces like this, like polished jewels stuck in a cow flop.

So I think Lawrence is right: OOP is crap.  But so are the alternatives :)  I think the only thing that matters is how good the programmer is, and whether he or she did the work with craftsman-like care...

“...the lamp of the West still shines brightly in Asia.”

“...the lamp of the West still shines brightly in Asia.”  That's the concluding phrase of Bret Stephens' excellent piece in today's Wall Street Journal about the current struggle in Hong Kong.  He speaks directly to one of my pet peeves: the overwhelmingly admiring tones used by America's pundits and lamestream media when speaking of mainland China...