The internet does weird things to me.
A few weeks ago, Amanda Palmer put up a sound only recording of a brand new song on her bandcamp website, I think it was. She'd performed it for the first time at a live concert and someone there had recorded it, possibly on a cell phone, and made the recording available to her.
As you might imagine, that recording wasn't all that great. Hardly ideal circumstances for such a thing.
But the song... the song grabbed me. It's titled The Thing About Things.
Without specialized software it wasn't even downloadable... you could only listen to it on the website. I really liked it.
Fast forward a couple of weeks, maybe even a month. I find out that now she's made it downloadable. And that she has recorded - but not yet released - a better version of it in a studio. I downloaded the concert version, and am waiting for the song to appear somewhere that I can actually get a good version, for which I will happily give her money.
Fast forward some more. Today, on Amanda's blog - which is in my RSS reader - I see a new post. It's the text of a speech she gave about writing. She gave the speech after a poem she dashed off after the Boston bombing horror caused a kerfluffle, and I'd already watched the speech elsewhere. It's quite good, and a reminder to me to keep creating, and that there are a lot of people in the world who judge without understanding. Here's a link to it. If you're an artist or creator of any sort, you really should watch it: http://vimeo.com/65681037.
Anyway, as I'd already watched - and been moved by - that speech, I just skimmed the blog post. But down at the bottom I found a link to a post by someone who runs Grub Street, which is the writer's organization that Amanda was speaking too. Amanda said it was a good post, so I read it too. And it was. The author talks about some points Amanda raised - about how writers feel validated and who decides what you're doing is worthwhile. Good stuff. Chase that link too.
Now, in that post, there was an embedded video of Amanda playing her Ukulele Song, which is very funny, and worth a listen too. I've heard it before, several times, and figured I'd listen again. And it was worth it. Again, chase the link.
Are you getting how my morning was going yet?
Anyway, the Ukulele song finished up and Vimeo handed me a list of other videos I might be interested in, and there was a link to Amanda playing The Thing About Things. The first version I heard was Amanda and her piano, and despite being a bad recording it brought tears to my eyes. This recording is Amanda and her ukulele, and once again, I cried. It's a much better recording of the song, and she sings it with passion, which is her trademark in my mind.
And so, in my meandering way, with lots of diversions, here, finally, is the point of this blog post: Amanda Palmer's The Thing About Things, performed live at Grub Street in Boston.
May it bring you joy, and maybe a few tears as you remember someone, somewhere.
Peace.
Edit 6/25/13 - corrected the link to The Thing About Things... Not sure how it was wrong unless Vimeo changed it on me.
Thursday, May 30, 2013
Tuesday, March 5, 2013
Programming Rant... Sorry.
For those of you who are not technical, or who don't care about programming, feel free to skip this post. I just have to get this out of my system.
I'm currently slogging through a book on JavaScript. I have a project I want to work on that needs to run in a browser and perhaps be turned into a stand alone smart phone application, so JavaScript seems to be the way to go given what I read. I could be wrong, but it's where I am starting.
The book in question is an O'Reilly JavaScript tome, and as an introduction to the language it isn't too bad, at least if you have some programming background. But the language itself is leading me to continue my belief that OO programming is a disaster.
I get the basic idea behind objects and methods. I am certain that some percentage of programming problems benefit from a system in which objects are available, but I suspect the number of such problems is pretty small overall. Pick your percentage... I really don't care. What matters to me is the complexity increase and efficiency decrease that come with OO. Most programmers have no clue just how their code actually works at the lowest levels anymore, and most schools certainly aren't teaching it. OO techniques just magnify those problems in enormous ways.
By way of example, here's a bit of code from the book I am reading, reformatted a bit to look OK in this post. It's only an example, and the author does mention that it will be slower than other approaches, but, well... just take a peek:
function Range(from, to) {
// Don't store the endpoints as
// properties of this object.
// Instead define accessor functions
// that return the endpoint values.
// These values are stored in the
// closure.
this.from = function() { return from; }
this.to = function() { return to; }
}
// The methods on the prototype can't
// see the endpoints directly: they have
// to invoke the accessor methods just
// like everyone else.
Range.prototype = {
constructor: Range,
includes: function(x) {
return this.from() <= x &&
x <= this.to();
},
foreach: function(f) {
for(var x=Math.ceil(this.from()),
max=this.to(); x<= max;
x++) {
f(x);
}
},
toString: function() {
return "(" + this.from() +
"..." + this.to() + ")"; }
};
and with that code defined, he shows how it can be used:
// An "immutable" range
var r = new Range(1,5);
// Mutate by replacing the method
r.from = function() { return 0; };
The first thing - for the uninitiated - is that this code is implementing an object called a range, which is nominally just two integers. The range (1...5) means the numbers 1, 2, 3, 4, and 5 are in the range, and all other integers are not. Simple enough. And obviously ranges have two endpoints, right? So where, exactly, are those endpoints stored in that code?
The author has an earlier version of this code that uses two variables to store the start and end of the range, but in this version they are not obviously present. I read this code several times, trying to figure it out, before the very last line in the example - the one starting "r.from =" finally tipped me off.
I'm an experienced programmer, and a reasonably good one. Not the best, but above average in my professional experience. I've worked with some really brilliant people over the years, and know where at least a few of my limitations are. Given what I know, this sample code can only be described as ugly and unmaintainable.
The use of a closure is enough to drive some programmers to drink. (I know plenty who never understood recursion. Closures are much, much worse.) Code of this kind is intrinsically difficult to read, difficult to follow, difficult to edit, and so on. And for those brilliant programmers out there who think this is easy to read and maintain, I cannot stress strongly enough how wrong you are. You're only thinking of it from your point of view, not the poor sod who is going to add something new to this code 2 years after you've changed jobs.
Once, years ago, I saw code like this in some C code my employer was maintaining:
int f( char *a, char* b)
{
char *temp;
/* ... lots of code that doesn't refer */
/* to the variable "temp" in any way ... */
strcpy( a, temp );
/* ... code that doesn't matter ... */
}
I was doing some porting work and found that cruft. Digging into the change history of the file in question showed me that a support engineer had "fixed" a bug by inserting the temp variable and making use of it in that way. The fact that he hadn't allocated space to copy into and was instead writing over who-knows-what on the stack didn't even occur to him. He'd tested his code and it worked just fine, so what did it matter? And yes, I tracked him down and talked to him personally. He simply didn't get it.
Really.
The world is full of cases - and people - like that. As a result, the best code for the real world is, sadly, the most readable and maintainable code possible, not the fastest, not the most clever, not the shortest. Fancy programming techniques - like the vast majority of OO - simply make things slower, harder to understand, and vastly increase the "go wrong" space in which programs can fail.
What I am learning about JavaScript - and about OO in general - is that my gut feel was right. These languages are disasters. Inexperienced programmers are creating things that should never see the light of day using idiomatic programming techniques they should never even try to use.
Sure, if you're writing some one-off bit of code that will never be reused, or will only be maintained by you, fine, write it however you want. I don't care. But if you're working on something that will outlast your time with it, or (more likely) your time with the employer who owns it, you have an obligation to write it in such a way that the next guy that looks at it can quickly and easily figure out what you were doing, why you were doing it, and make changes as needed without breaking the universe.
OO was supposed to help that, and within limits it may. But if JavaScript is any example (or C++, for that matter), the languages themselves have an amazing ability to make the code harder to read and maintain.
If we were all brilliant programmers, that wouldn't matter, but we're not, and it does.
I'm currently slogging through a book on JavaScript. I have a project I want to work on that needs to run in a browser and perhaps be turned into a stand alone smart phone application, so JavaScript seems to be the way to go given what I read. I could be wrong, but it's where I am starting.
The book in question is an O'Reilly JavaScript tome, and as an introduction to the language it isn't too bad, at least if you have some programming background. But the language itself is leading me to continue my belief that OO programming is a disaster.
I get the basic idea behind objects and methods. I am certain that some percentage of programming problems benefit from a system in which objects are available, but I suspect the number of such problems is pretty small overall. Pick your percentage... I really don't care. What matters to me is the complexity increase and efficiency decrease that come with OO. Most programmers have no clue just how their code actually works at the lowest levels anymore, and most schools certainly aren't teaching it. OO techniques just magnify those problems in enormous ways.
By way of example, here's a bit of code from the book I am reading, reformatted a bit to look OK in this post. It's only an example, and the author does mention that it will be slower than other approaches, but, well... just take a peek:
function Range(from, to) {
// Don't store the endpoints as
// properties of this object.
// Instead define accessor functions
// that return the endpoint values.
// These values are stored in the
// closure.
this.from = function() { return from; }
this.to = function() { return to; }
}
// The methods on the prototype can't
// see the endpoints directly: they have
// to invoke the accessor methods just
// like everyone else.
Range.prototype = {
constructor: Range,
includes: function(x) {
return this.from() <= x &&
x <= this.to();
},
foreach: function(f) {
for(var x=Math.ceil(this.from()),
max=this.to(); x<= max;
x++) {
f(x);
}
},
toString: function() {
return "(" + this.from() +
"..." + this.to() + ")"; }
};
and with that code defined, he shows how it can be used:
// An "immutable" range
var r = new Range(1,5);
// Mutate by replacing the method
r.from = function() { return 0; };
The first thing - for the uninitiated - is that this code is implementing an object called a range, which is nominally just two integers. The range (1...5) means the numbers 1, 2, 3, 4, and 5 are in the range, and all other integers are not. Simple enough. And obviously ranges have two endpoints, right? So where, exactly, are those endpoints stored in that code?
The author has an earlier version of this code that uses two variables to store the start and end of the range, but in this version they are not obviously present. I read this code several times, trying to figure it out, before the very last line in the example - the one starting "r.from =" finally tipped me off.
I'm an experienced programmer, and a reasonably good one. Not the best, but above average in my professional experience. I've worked with some really brilliant people over the years, and know where at least a few of my limitations are. Given what I know, this sample code can only be described as ugly and unmaintainable.
The use of a closure is enough to drive some programmers to drink. (I know plenty who never understood recursion. Closures are much, much worse.) Code of this kind is intrinsically difficult to read, difficult to follow, difficult to edit, and so on. And for those brilliant programmers out there who think this is easy to read and maintain, I cannot stress strongly enough how wrong you are. You're only thinking of it from your point of view, not the poor sod who is going to add something new to this code 2 years after you've changed jobs.
Once, years ago, I saw code like this in some C code my employer was maintaining:
int f( char *a, char* b)
{
char *temp;
/* ... lots of code that doesn't refer */
/* to the variable "temp" in any way ... */
strcpy( a, temp );
/* ... code that doesn't matter ... */
}
I was doing some porting work and found that cruft. Digging into the change history of the file in question showed me that a support engineer had "fixed" a bug by inserting the temp variable and making use of it in that way. The fact that he hadn't allocated space to copy into and was instead writing over who-knows-what on the stack didn't even occur to him. He'd tested his code and it worked just fine, so what did it matter? And yes, I tracked him down and talked to him personally. He simply didn't get it.
Really.
The world is full of cases - and people - like that. As a result, the best code for the real world is, sadly, the most readable and maintainable code possible, not the fastest, not the most clever, not the shortest. Fancy programming techniques - like the vast majority of OO - simply make things slower, harder to understand, and vastly increase the "go wrong" space in which programs can fail.
What I am learning about JavaScript - and about OO in general - is that my gut feel was right. These languages are disasters. Inexperienced programmers are creating things that should never see the light of day using idiomatic programming techniques they should never even try to use.
Sure, if you're writing some one-off bit of code that will never be reused, or will only be maintained by you, fine, write it however you want. I don't care. But if you're working on something that will outlast your time with it, or (more likely) your time with the employer who owns it, you have an obligation to write it in such a way that the next guy that looks at it can quickly and easily figure out what you were doing, why you were doing it, and make changes as needed without breaking the universe.
OO was supposed to help that, and within limits it may. But if JavaScript is any example (or C++, for that matter), the languages themselves have an amazing ability to make the code harder to read and maintain.
If we were all brilliant programmers, that wouldn't matter, but we're not, and it does.
Thursday, January 31, 2013
On Memory
Way back in 1979 - when I were a lad, as a friend of mine would say - the movie Alien came out. I'm not sure if I saw it in the theaters during its first run or sometime later, but I definitely saw it in a theater before I went to college.
Over the years since, my memory of that experience has become somewhat interesting to examine. I recall the interior of the spaceship as being incredibly realistic and scary, and it seems there were miles of corridor full of venting steam, all dark and full of hiding places. I see the egg/face hugger scene in flashes, so it seems truly terrifying, even now. I know I spent a lot of the time studying the tops of my shoes during the movie because I was too scared to watch it closely. And, of course - being a teenage boy at the time - I remember Sigourney Weaver getting into the space suit at the end. (If you need an explanation of that, well, you must not be - or ever have been - a teenage boy. Or you didn't see the movie.)
I've avoided several opportunities to see the movie again, including at least one in college. Possibly as a result, time has made Alien into something larger than life, something so scary and so real that seeing it again was not something I wanted to do. But finally, just the other night, I broke down and watched it again.
For reasons that are amusing but too complicated to go into here - except to say "well, I guess Alien is a period costume drama... of a sort" - I now own the DVDs for all four movies in the Alien series. So I watched the theatrical release of Alien again, just to see how it compared with my memory.
And I can now confirm that my memory is really bad.
Yes, the movie is good, but it's not nearly as terrifying as I remember it. The sets are nicely made, and the entire thing is well filmed, but a bit less dry ice and steam would have been better. The infamous scene in the dining room on the ship - you know the one, if you've seen the movie - is still striking and memorable, but the creature itself almost struck me a laughable this time around. The larger version of the xenomorph is still well done, particularly for the time the film was made, but I simply didn't think it that scary.
But it turns out my memory of Sigourney Weaver getting into the space suit at the end was just about perfect. Go figure.
Memory is a very odd thing, when it works.
Over the years since, my memory of that experience has become somewhat interesting to examine. I recall the interior of the spaceship as being incredibly realistic and scary, and it seems there were miles of corridor full of venting steam, all dark and full of hiding places. I see the egg/face hugger scene in flashes, so it seems truly terrifying, even now. I know I spent a lot of the time studying the tops of my shoes during the movie because I was too scared to watch it closely. And, of course - being a teenage boy at the time - I remember Sigourney Weaver getting into the space suit at the end. (If you need an explanation of that, well, you must not be - or ever have been - a teenage boy. Or you didn't see the movie.)
I've avoided several opportunities to see the movie again, including at least one in college. Possibly as a result, time has made Alien into something larger than life, something so scary and so real that seeing it again was not something I wanted to do. But finally, just the other night, I broke down and watched it again.
For reasons that are amusing but too complicated to go into here - except to say "well, I guess Alien is a period costume drama... of a sort" - I now own the DVDs for all four movies in the Alien series. So I watched the theatrical release of Alien again, just to see how it compared with my memory.
And I can now confirm that my memory is really bad.
Yes, the movie is good, but it's not nearly as terrifying as I remember it. The sets are nicely made, and the entire thing is well filmed, but a bit less dry ice and steam would have been better. The infamous scene in the dining room on the ship - you know the one, if you've seen the movie - is still striking and memorable, but the creature itself almost struck me a laughable this time around. The larger version of the xenomorph is still well done, particularly for the time the film was made, but I simply didn't think it that scary.
But it turns out my memory of Sigourney Weaver getting into the space suit at the end was just about perfect. Go figure.
Memory is a very odd thing, when it works.
Sunday, January 6, 2013
Half the population...
The latest news about women from afar - India, Afghanistan, and similar locales - and even from some places much closer to home, is awful. Rape, murder, and repression are all too common.
Why do so many think women are less than human? Why can't they speak their minds and contribute to society?
Leaving half the population of the planet out of the list of "those who can" is a serious mistake, whatever the reason.
Back in 2003, Joss Whedon wrapped up Buffy The Vampire Slayer with an interesting ending. In the final episode we get a brief glimpse of a girl coming up to bat in a little league game, just as she becomes empowered. Her smile - that quirky, here I come, just try and stop me smile - sums up the entire series for me, and I suspect it's how Whedon would like it to be remembered. She was becoming something powerful, and that was a very good thing.
I wish Whedon's vision was reality, everywhere. All women should be empowered. They should never take crap from anyone, and if for some reason they do, they should defend themselves fully and be supported in that by the rest of society.
Any religion, philosophy, or person that says that is wrong is not worth knowing, and should be forgotten.
Why do so many think women are less than human? Why can't they speak their minds and contribute to society?
Leaving half the population of the planet out of the list of "those who can" is a serious mistake, whatever the reason.
Back in 2003, Joss Whedon wrapped up Buffy The Vampire Slayer with an interesting ending. In the final episode we get a brief glimpse of a girl coming up to bat in a little league game, just as she becomes empowered. Her smile - that quirky, here I come, just try and stop me smile - sums up the entire series for me, and I suspect it's how Whedon would like it to be remembered. She was becoming something powerful, and that was a very good thing.
I wish Whedon's vision was reality, everywhere. All women should be empowered. They should never take crap from anyone, and if for some reason they do, they should defend themselves fully and be supported in that by the rest of society.
Any religion, philosophy, or person that says that is wrong is not worth knowing, and should be forgotten.
Thursday, October 4, 2012
Rough Days
We have three dogs:
Leah, being quite a bit older, has been panting a fair bit for a long time. Even when it is cool and she's been doing nothing. She doesn't always pant, but it definitely happens more than should be required.
And something like four or five weeks ago, Danno, our big Siberian Husky started showing unexplained pain on occasion. He would just stop what he was doing and start howling like he was being stabbed. Huskies aren't notoriously stoic about pain, so we didn't take this too seriously in general, but we always went looking for a cause and never found one.
As it happens, we had plans to go out of town for a week to see family, and the dogs were going to be kenneled while we were away. We decided to take them to the vet to be sure they were OK before we left, rather than deal with surprises while we were gone.
Sometimes it seems it is better not to know.
Leah's panting is almost certainly something called Laryngeal Paralysis. As some dogs age the larynx gets stiffer and won't open easily to let air in and out of the lungs. These dogs have to work harder to breathe over time, and thus pant a lot. The diagnostic tip is to listen for a deep resonation while they are panting, and Leah has that. The actual diagnostic requires sedating the dog and observing the larynx at work, but we aren't doing that to her just to confirm a diagnosis.
This condition is essentially fatal, but it takes a long time. Leah could have months or years left with us, and is in no immediate danger. The only available treatment is to tie half the larynx open surgically, which makes breathing easier, but can allow them to aspirate things into the lungs. Pneumonia is a relatively common result, and our vet says she probably wouldn't do that surgery on her own dogs.
So we let Leah's situation play out. We have to keep her walks short and keep her out of the sun, though, because she has a hard time cooling off given this condition. Otherwise, we wait and keep her happy. She's in good shape and still has plenty of energy, so nothing here is all that urgent.
Danno's situation is much, much worse.
Sparing you all the diagnostic details, it turns out he has cancer. Probably two tumors, one affecting the neck and another the brain. The impact of these tumors hit so hard and so quickly that we were stunned.
Just a couple of days before we were to leave town, Danno was unable to drink any liquid. He'd just cough up a bunch of clear, viscous, phlegm after each drink. He was dehydrating as a result, and he wasn't eating either. His right eye was turned in - something called Horner's Syndrome - and the right side of his face collapsed in as well.
But two days of overnight care with IV fluids, antibiotics, and (most importantly) prednisone helped quite a bit. He could eat and drink again, and while none of that was going to fix the underlying problem, his quality of life was back to the point that he was enjoying things again.
We discussed surgery, but decided it is not an option. Given the expected location of the tumors, they would not be fully removable, which means they would just grow back, and quickly. Recovery would be long and painful - for a dog that actually screams when he stubs his toe - and the specialist vet told us that even after all that, he might live another six months. The cost for all of this proposed treatment was astronomical as well, but that wasn't what made up our minds. I wouldn't want that kind of treatment for myself given the probable outcome, and we won't do it to Danno either.
As I said above, prednisone gave relief from the pain and let him drink and eat again, to the point that we went on our scheduled trip. We came back late on Friday, and picked all our puppies up from the kennel on Saturday morning.
Skookie and Leah are as they were - though Skookie really wants her big, white friend to play with her again.
Danno was as good as could be expected, but is clearly on a relatively quick decline. Despite the prednisone, he is still coughing up phlegm regularly after a few days, losing weight, and some coordination. I fear he has only days - perhaps a week or two - left with us, before we have to make the final choice.
These things are always hard - awful, in fact - but we've had great times with our 85 pound furball. He's brought joy - and an overwhelming amount of hair - into our lives, hearts, and home. We watch over him carefully, doing our best to make him happy and comfortable, knowing it is our responsibility to keep him from suffering.
In some ways, these are dark days in our home, but Danno is still with us. He still loves laying at our feet, begging for most any vegetable that we're cooking with or eating, and being petted as much as possible.
And we remember all the good times he has given us: the unconditional love and trust, the need to lick everyone's nose just to show he's completely submissive, and the complete friendliness towards every human and dog he's ever met.
The vets all tell us he has an unusual disposition for a Husky. Apparently some members of that breed aren't all that nice. Danno is amazingly friendly, even now in his decline, and no matter what happens I will always think of him as our canine ambassador of good will.
The last chapter isn't written yet, but there isn't that much time before it is. He's asleep behind my chair as I write this, and even now I smile when I look at him.
You're not a good dog, Danno. You're a great dog. And you always will be.
- Leah: a 13 year old, spotted, mix breed.
- Danno: an 8 year old, Siberian Husky.
- Skookie: an 8-ish year old, Shepard mix, who moved into our house because it was better than her previous home. Really.
Leah, being quite a bit older, has been panting a fair bit for a long time. Even when it is cool and she's been doing nothing. She doesn't always pant, but it definitely happens more than should be required.
And something like four or five weeks ago, Danno, our big Siberian Husky started showing unexplained pain on occasion. He would just stop what he was doing and start howling like he was being stabbed. Huskies aren't notoriously stoic about pain, so we didn't take this too seriously in general, but we always went looking for a cause and never found one.
As it happens, we had plans to go out of town for a week to see family, and the dogs were going to be kenneled while we were away. We decided to take them to the vet to be sure they were OK before we left, rather than deal with surprises while we were gone.
Sometimes it seems it is better not to know.
Leah's panting is almost certainly something called Laryngeal Paralysis. As some dogs age the larynx gets stiffer and won't open easily to let air in and out of the lungs. These dogs have to work harder to breathe over time, and thus pant a lot. The diagnostic tip is to listen for a deep resonation while they are panting, and Leah has that. The actual diagnostic requires sedating the dog and observing the larynx at work, but we aren't doing that to her just to confirm a diagnosis.
This condition is essentially fatal, but it takes a long time. Leah could have months or years left with us, and is in no immediate danger. The only available treatment is to tie half the larynx open surgically, which makes breathing easier, but can allow them to aspirate things into the lungs. Pneumonia is a relatively common result, and our vet says she probably wouldn't do that surgery on her own dogs.
So we let Leah's situation play out. We have to keep her walks short and keep her out of the sun, though, because she has a hard time cooling off given this condition. Otherwise, we wait and keep her happy. She's in good shape and still has plenty of energy, so nothing here is all that urgent.
Danno's situation is much, much worse.
Sparing you all the diagnostic details, it turns out he has cancer. Probably two tumors, one affecting the neck and another the brain. The impact of these tumors hit so hard and so quickly that we were stunned.
Just a couple of days before we were to leave town, Danno was unable to drink any liquid. He'd just cough up a bunch of clear, viscous, phlegm after each drink. He was dehydrating as a result, and he wasn't eating either. His right eye was turned in - something called Horner's Syndrome - and the right side of his face collapsed in as well.
But two days of overnight care with IV fluids, antibiotics, and (most importantly) prednisone helped quite a bit. He could eat and drink again, and while none of that was going to fix the underlying problem, his quality of life was back to the point that he was enjoying things again.
We discussed surgery, but decided it is not an option. Given the expected location of the tumors, they would not be fully removable, which means they would just grow back, and quickly. Recovery would be long and painful - for a dog that actually screams when he stubs his toe - and the specialist vet told us that even after all that, he might live another six months. The cost for all of this proposed treatment was astronomical as well, but that wasn't what made up our minds. I wouldn't want that kind of treatment for myself given the probable outcome, and we won't do it to Danno either.
As I said above, prednisone gave relief from the pain and let him drink and eat again, to the point that we went on our scheduled trip. We came back late on Friday, and picked all our puppies up from the kennel on Saturday morning.
Skookie and Leah are as they were - though Skookie really wants her big, white friend to play with her again.
Danno was as good as could be expected, but is clearly on a relatively quick decline. Despite the prednisone, he is still coughing up phlegm regularly after a few days, losing weight, and some coordination. I fear he has only days - perhaps a week or two - left with us, before we have to make the final choice.
These things are always hard - awful, in fact - but we've had great times with our 85 pound furball. He's brought joy - and an overwhelming amount of hair - into our lives, hearts, and home. We watch over him carefully, doing our best to make him happy and comfortable, knowing it is our responsibility to keep him from suffering.
In some ways, these are dark days in our home, but Danno is still with us. He still loves laying at our feet, begging for most any vegetable that we're cooking with or eating, and being petted as much as possible.
And we remember all the good times he has given us: the unconditional love and trust, the need to lick everyone's nose just to show he's completely submissive, and the complete friendliness towards every human and dog he's ever met.
The vets all tell us he has an unusual disposition for a Husky. Apparently some members of that breed aren't all that nice. Danno is amazingly friendly, even now in his decline, and no matter what happens I will always think of him as our canine ambassador of good will.
The last chapter isn't written yet, but there isn't that much time before it is. He's asleep behind my chair as I write this, and even now I smile when I look at him.
You're not a good dog, Danno. You're a great dog. And you always will be.
Thursday, August 9, 2012
If You Read This, You Will Probably Be Offended
I've been asked for my political opinions of late, which just goes to show that some people don't have nearly enough to do. In any case, here's a list of things that influence how I will be voting in the coming election, and what I think about politics in general. There was no way to keep this short enough to read if I justified even a single item, so I gave up on that. It's just a list. You will almost certainly disagree with at least some of it. Don't say you weren't warned.
You might consider looking at pictures of cute kittens instead. You will stay calmer, and sometimes ignorance really is bliss.
As you might guess from this list, I am a cynic about human nature, and probably a hypocrite about a few things as well. Such is life. I also think the chances of changes I like are vanishingly small, which means I am unlikely to be happy about American politics for the foreseeable future.
So how will I vote in this election? Nothing is certain, but examining the issues I see the following:
You might consider looking at pictures of cute kittens instead. You will stay calmer, and sometimes ignorance really is bliss.
- By the time anyone is running for (or being appointed to) high office, I assume they are totally corrupt. No exceptions.
- Politicians and their campaign staffs will - deliberately - take anything their opponent says out of context in an attempt to make him or her look bad. I call this what it is: lying.
- No politician - of any party - will be able to reduce the deficit. They will never be allowed to stop spending. Both will get bloodied by their constituencies if they even try. Don't even bother listening when a candidate claims otherwise.
- The only way to shrink the deficit is to get the economy moving again, and then avoid both increasing spending and pay down the deficit while times are good. Yes, that is highly unlikely, but it is the only approach that could work.
- Just how important is the deficit in the short term? I honestly don't know. But if it is as bad as some make it out to be, why is the rest of the world loaning us money at about 2.6% for 30 years as I write this? That doesn't even cover inflation. We must look like a good bet, or everyone else looks really bad. Right now, at that interest rate, borrowing money isn't all that big a deal. Heck, simple (low) inflation will pay the interest and even some of the principle.
- In the longer term, the national debt is unsustainable. That has to be fixed over time, and the fix will require several things:
- Stop spending money on pointless wars. Get us out of the ones we are in now.
- Stop spending money on pointless military weapon systems.
- Reduce the size of the standing army.
- Reduce the nuclear arsenal stockpile in a big way.
- Phase in cost savings to Medicare, Medicaid, and Social Security. That probably means gradually increasing the age at which people can collect, and gradually introducing means testing, so the wealthy collect less, or not at all.
- Increase taxes on the wealthy.
- Here's a big hint: we cannot solve the nation's fiscal problems with only spending cuts or tax increases: nothing is ever that simple. Nothing. Current tax rates are at record lows and spending is at a peak. Changes to both things must be part of the solution. A growing economy would help too.
- Despite stating above that we have to make changes to our social programs, there is an iron clad, real, need for a social safety net. It must remain, and probably be made even more effective in the process, given the number of people who are falling through it now. To remove or reduce what we have in any substantial way is immoral and repugnant.
- In any system - government or business - there will always be people who cheat and take advantage of it for personal gain. This is not a good thing, but pointing the finger at government corruption without admitting that the problem is just as big in industry - or vice versa - is missing the point. Reducing corruption is a good thing, and the way to do it is openness and accountability in all transactions, both public and private. Until we get to that - or at least closer to it - there will always be corruption, regardless of which system you prefer. And that corruption hurts us all, regardless of where it occurs. Don't be so narrow minded as to think that business is better than government on this front, or the other way around. Humans are the real problem.
- Not all regulation is evil. More regulation and monitoring of the high risk mortgage and derivative markets would have been a good thing back before 2008, and we are still suffering from that lack. That said, regulation can be overbearing and stop things that are actually good if it gets out of hand. The trick is to walk the razor's edge, and it is hard to do. Mistakes will be made - in both directions - and need to be corrected without going too far the other way and causing significant new issues.
- Unions aren't my favorite thing. There was a time when they were required - in certain industries, at least - to offset serious abuses. I get that. And there may be similar problems in places now. But every union is made of people, and people cheat, work systems for personal gain, and so on. Unions are just as corrupt as business and government. It has to be that way thanks to the human element. Besides that, unions simply cannot be universally good. How does a great employee shine in an environment where she cannot ask for a raise or get promoted more quickly than her peers because of union rules and agreements? Waiting for everyone who was hired before you to be promoted, quit, retire, or die is not good for anyone's job or position in an organization. I don't think unions work well with human nature because of this issue.
- Personal responsibility should be a bigger part our our culture. People need do much more on at least these fronts in my opinion:
- Save for their retirement.
- Save for their own health care.
- Keep their debt down.
- Defer instant gratification in favor of longer term stability and financial security.
- Stop suing everyone for every little thing.
Such things would let phasing in changes to our social programs be simpler and more effective, among other things.
- Health care in the US is all screwed up. The wrong incentives are used to pay too much for the wrong things. In addition, the legal system creates additional, perverse incentives that drive prices up as well. The net result is that we pay way too much for comparatively poor health outcomes.
- Insurance companies are evil. Give me a single payer system any day, but remember that the wealthy should pay for more (or all of) their health care themselves, probably by reimbursing the single payer system for some or all of their care.
- Anyone who thinks his religion trumps our (man made) laws is inherently unfit for office.
- Anyone who thinks forcing his view of religion on others is acceptable is also unfit for office, and is pretty much unfit in general.
- Anyone who discriminates on the basis of religion, creed, sex, ethnicity, sexual orientation, disability, etc. is unfit for office - and generally - as well.
- Abortion is for the woman (or the woman and her partner) to decide upon, not the government, which should stay out of it entirely.
- The war on drugs is lost. Decriminalize most of it and tax it. Release - at a minimum - anyone in jail for charges solely related to drug possession (for use) and who has no history of violence.
- Mandatory sentencing laws are, in general, idiotic.
- Marriage is a loaded term. We should stop using it in any legal way. Instead, all states and the federal government should recognize contractual, civil unions. Anyone of age should be allowed to specify who their partner is - regardless of gender - and all the things that currently go with marriage (hospital decision making, visitation rights, child custody, inheritance, etc.) should be based on that contract. If you want to get married - in the eyes of your church - that's fine, but it should have no benefit as far as the government is concerned. You can set that up with your church and do whatever you want there.
- Assuming that we cannot get to a strict civil union setup, it is important to note that your marriage is in no way threatened by the marriage of a gay or lesbian couple. Get a grip on reality and let them be happy together, in the eyes of the law such as we have it setup now.
- What consenting adults do in their bedroom is no one's business but their own. Butt out. As an aside, I'd bet that anyone who disagrees with this would be very uncomfortable if someone started digging into their private lives in the same way. "Don't mind me... I'm just setting up a bunch of wireless video cameras in your bedroom and, oh heck... your whole house. Just go about your business. You'll never know you're being watched if you have nothing to hide."
- Personal liberty - which I will inadequately define as freedom of expression and the avoidance of pointless, intrusive surveillance - is critical, and must be supported. In passing I note that ever since 9/11 the entire US population is so terrified of its own shadow that any government from any party has no problem passing just about any law that claims to make the population safer in some way, no matter how idiotic said law might be. And those laws are places where all kinds of abuse can hide.
- I like clean air & water. Regulation is needed to avoid pollution because humans are weak and stupid and some of them will do the wrong things. And pollution doesn't keep to state or other boundaries... it moves around. We're all much better off since the EPA was created. It - and a few other organizations like it - need to stick around. But always with that pendulum in mind. If any organization gets too nasty and causes more problems than it fixes, it needs to be reigned in.
- Global warming is real - very real - and humans are causing it. Get over your pointless disbelief and let's work to figure out what - if anything - we can do to mitigate the problem. I worry that it is already too late, but I don't have kids who will suffer. You might... let's do something about that.
- I like markets that are fair. Capitalism may be the most efficient way to move goods and services around, but it is subject to the same thing I have been harping on: people are weak and stupid and some will cheat if they can. That cheating, when it happens, can affect millions of us, and regulation is needed to reduce the chances that it will happen, and to correct the problems when it does. Again, though, the caveat about pendulums and keeping both regulations and regulators in check is key.
- Do you remember the saying: "Violence is the last refuge of the incompetent"? Well, guns are the very last refuge of the most incompetent. It is just barely possible you could be the 1 in 100 (or whatever... it's a tiny number) who happens to have his firearm handy sometime in his life when it can be used to save a life or stop a crime. Statistically, though, you're much more likely to have it stolen, or worse. The wild west is (thankfully) long gone, and we don't need firearms around all the time anymore.
- The death penalty is dumb. Remember, people are weak and stupid. Prosecutors and police will sometimes make things up, or just get something wrong. People will confess to things they didn't do because they don't know what else to do, or they are browbeaten, tired, and confused. Lawyers can give bad advice. Juries are notoriously inaccurate as a gauge of the truth. Eyewitness testimony is unreliable. And nothing will bring back the dead, not even killing someone who might have committed the crime. We should eliminate the death penalty entirely and stop stooping to the level of state sanctioned murder. We already know we get it wrong from time to time.
- If you are wealthy, you owe more to society. It's really that simple, and it is a key part of the compact that keeps us going. You may be very smart, or have created something new and wonderful that everyone wants, but you stand on the shoulders of those who have come before you, and who did or created things you depend upon. Much of that stuff that came before is now in the commons: roads, bridges, etc. Be generous and willingly pay for your share and use of such things. That's the right way to live. Taxation is the general way such things are paid for, and that's why taxes on the wealthy are higher. It's fair that way, and makes everyone's life better, including that of those paying the taxes.
- Health care for the poor and indigent benefits the wealthy. The reduction in communicable disease is one direct way. The increased output of the economy is another that is less direct. Letting people die when they could be treated is counter productive as well as immoral and unethical. It's also stupid.
- That said, there is a population problem, and more people isn't always better. While we may not yet have reached the maximum capacity of the planet, we will one day. And it will get ugly. The single biggest thing it appears we can do to keep the population under control is educate girls everywhere. Once they start school, they take control of their own reproductive future, and birth rate goes down. That's a good thing, and should be encouraged.
- Communism sounds great on paper - to me, at least - but it will never work in reality. Humans aren't wired like that, and no matter how many times a heart surgeon listens to John Lennon singing Imagine, he is always going to expect to be paid more than a ditch digger, and there will always be people that cheat on their taxes, or find ways to game a system. Sadly, they tend to wind up in power, and then you have serious nastiness.
- Superstition is not an alternative to science, no matter how you sugar coat it. Move on. Science is our best hope for finding the truth, and for saving our species from disaster.
As you might guess from this list, I am a cynic about human nature, and probably a hypocrite about a few things as well. Such is life. I also think the chances of changes I like are vanishingly small, which means I am unlikely to be happy about American politics for the foreseeable future.
So how will I vote in this election? Nothing is certain, but examining the issues I see the following:
- Since I don't think either party will make any headway on the deficit - short term or long - I discard that as a reason to choose one over the other. Mind you, both parties will claim they are going to fix it, but they aren't telling the truth, and the American people won't let them fix it in any case.
- Both presidential candidates will do just about anything to get into (or stay in) office. As a result, neither has a lead there. Honesty would be such a nice change, but neither side has shown it in the heat of the campaign.
- On issues relating to privacy and personal liberty, neither party has an advantage either. Both stink.
- On the ongoing wars and related foreign entanglements, once again neither party has a particular lead. Obama hasn't exactly gotten us out of Iraq and Afghanistan faster than I think a Republican would have, and he may even have delayed our exit as I see these things. Then again, confronted with the situation, McCain might well have kept us in longer than Obama will in the end. No way to tell, and thus I cannot lean one way or another on that.
- That more or less leaves the social issues, and I there come down more on the side of the Democrats. They aren't a perfect match but the Republicans - with their overwhelming religious intolerance, bigotry, and war on women - are actually repugnant, so here the Democrats really do have a lead with me.
Saturday, July 14, 2012
Yellow Jackets Are The Worst
My wife found a yellow jacket nest the hard way this afternoon and was stung three times. She's fine, but I am keeping an eye on her.
And I will be putting up traps in an attempt to reduce their population. Nasty things. I hate them.
And I will be putting up traps in an attempt to reduce their population. Nasty things. I hate them.
Sunday, July 8, 2012
A Friday Night Interrupted
I just sent the following to a local email list... a list of residents of my mountain area. Figured I'd post it here too, just because someone else might see it and think it over.
Just throwing this out there for others to think about...
Back on Friday night my wife and I were at home, watching a movie. It was warm-ish, as you may recall, so we had a bunch of doors and windows open. At about 10:15pm we both just about levitated out of our chairs because we were suddenly overwhelmed with the smell of smoke. Fresh smoke, not stale, perhaps with some chemical overtones to it.
We checked all around the house, both inside and out. It was definitely outside, and it was probably coming down the hill from somewhere above us. We could see no visible column, and there was no wind, so whatever was burning probably wasn't all that close or that large, and it wasn't going anywhere quickly. I dithered, but I have been explicitly told to call these things in by a Cal Fire captain I trust who used to work at Burrell station. So after I was sure I had no more detailed information I could report, I did just that. I hoped the dispatcher would just log the information and see if anyone else called in. (That way they would have at least one additional data point before sending people out.) But that isn't what happened, and on thinking about it, they probably aren't allowed to do that. Get out and find it if you can is the rule, I'm sure.
So at 10:30pm they dispatched the volunteers and Burrell crew to do a smoke check, that is, to go looking for the source of smoke that someone reported. When I was on the VFD these kinds of calls bugged me a lot. Not because they were called in - that's fine and good - but because they are difficult to handle. Even in daylight smoke can be a very hard thing to locate, when you can see it at all. At night, though, it is much more difficult to find something that has only a smell and almost no way to pin down a visible source. Still, I was doing what I was told back when I responded to these things, and so were the folks who went looking on Friday night when I caused their pagers to go off.
Burrell station and Loma Prieta both responded. Two engines crawled the neighborhood for over 30 minutes each. There was radio traffic saying they smelled it, but they never found the source, and it dissipated over time. In the end, 5 people from LPVFR and the full Burrell crew both reported it UTL (Unable To Locate) and went back to their normal Friday evenings. And I am really sorry I dragged them out of whatever they were doing at the time to go on a wild goose chase, but again, that's what I was explicitly told to do.
So why bring this up? Because something, somewhere, was actually burning. Someone was using a fireplace, or an outdoor fire pit. Possibly that someone put something a bit odd on their fire that created the acrid odor. Whatever the case, that smell caused my wife and I to wonder exactly what was happening, and to call it in. It was a very strong smell in our house that night at 10pm.
What I would like to ask is to please be considerate of your neighbors in the summer months. If you do not have to start a fire, please don't. Smoke drops down to near the ground once it cools off, and it runs downhill, pooling in hollows and valleys. It definitely doesn't disappear. If you start a fire, someone below you will be wondering exactly what we were wondering: what is on fire and where is it? And if there is any wind at all, the worry level only goes up.
Frankly, the same goes for fireworks. Last night at around midnight I heard a bunch of firecrackers go off somewhere. While our weather has (wonderfully) been a bit cooler than usual, we're still in high fire danger season, and fireworks of any sort are a serious risk. Every year I am reminded just how much I hate the 4th of July as things go boom, or even worse, I see colored lights above the local trees. I know this is obvious, but forest fires kill people and destroy property. And I know people love fireworks, but this really isn't the place to be setting them off. Common sense is required.
A quick google search indicates that something on the order of 75% of forest fires are started by people or their equipment in one way or another. 75%.
I'll keep calling these things in when I have to, but I would really like it if that didn't happen when things were dry and the weather is warm.
Thanks.
Sunday, July 1, 2012
Rain Gauges... What Works And What Doesn't
A while back I posted about rain gauges as we started testing some new ones with the goal of figuring out which one(s) we liked and thought were accurate.
Now I have final data for the 2011-2012 rain year I can present my conclusions. To help with that, here's the original picture of the gauges in question:
From left to right, here's what I measured with each gauge last year and what they are called:
I need to move the Stratus gauge about 40 feet from its current location. There are some oak trees nearby that are going to start impinging on the rainfall in particularly windy conditions, so I need to get it out of that area. But when I do that I don't know how much the new location will affect the totals. 40 feet doesn't seem all that far, but I suspect I need to prove it actually isn't important.
I think what I will do is move the Stratus gauge to the new location and leave the 6" wedge gauge where it currently hangs. The idea is to use the wedge to cross check the Stratus and see if they continue to read about the same or not. If I can get through one more year and remain convinced that the 40 foot move hasn't affected things, then I will be done and have only one gauge to work with again.
The other gauges will probably be discarded. None are worth passing on in my opinion, so I will recycle them.
I'll update rain data on my web site - see the links to the right - as things happen in the new rain year, but I'll probably only record the numbers from the Stratus unless I see big differences between it and the wedge.
Now I have final data for the 2011-2012 rain year I can present my conclusions. To help with that, here's the original picture of the gauges in question:
From left to right, here's what I measured with each gauge last year and what they are called:
- 32.86" - A Stratus gauge, 12" capacity
- 32.15" - A weather.com 6" gauge
- 33.02" - A wedge shaped 6" gauge
- 35.20" - Our ancient, yellow, plastic 5" capacity gauge
- 75.81" - A decorative, glass 8" capacity gauge
- The Stratus gauge is far and away the easiest to read if the amount of precipitation is less than 1". The central tube holds 1" of rain and is easy to read in linear 0.01" increments. None of the other gauges were nearly as easy to read, nor were they as accurate (as far as I can tell). That said, however, if the amount of rain goes over 1" it overflows into the outer tube, and the reading process gets more complicated and error prone. Still, this gauge works very well, and after having used it for a season I trust it. It's also the standard in use by anyone doing anything serious with the weather as far as I can tell. There are many places to purchase it. Here's one, for example: http://www.ambientweather.com/stprraga.html
- The 6" weather.com gauge read about 2% less than the Stratus gauge. It is difficult to read in amounts of less than 0.1", so the fact that it was that close is probably due to my rounding readings off in opposite directions enough to even out the error. There is a fundamental design problem with this gauge, though: it slides into a support that is screwed down, but the wind could blow the gauge right out of that support in some cases. While I never had that happen, it got close a couple of times. As a result of those issues I cannot really recommend this gauge. You can find on amazon.com, though, if you are interested.
- The 6" wedge gauge presents a mixed bag. It read only about 0.5% more than the Stratus gauge - essentially the same - but it is hard to read because the markings are small and faint. Any condensation on the side of the gauge and it is nearly impossible to read without wiping it down, holding it up in the light, and squinting. It is also the case that the scale isn't linear, so the more it rains the less accurate your reading will be. And it has only 6" of capacity, so if you're getting a lot of rain you'll be out in it, emptying out the gauge before it overflows. This is the second best gauge here, though, and for some it may be more than adequate. It can be purchased from several online vendors, or directly from the manufacturer: Tru-Chek. It's not particularly expensive either, so consider it if the Stratus isn't to your liking.
- The yellow 5" gauge is really old, and was a hardware store special back when we bought it 20 years ago. It read about 7% higher than the Stratus, and though it is heavily embossed and thus easier to read than the wedge, it is marked only in increments of 0.1". It isn't quite linear either, with a slight taper to the shape. And finally, the 5" capacity is too limiting if you get heavy rains. Despite living with it this long I really cannot recommend it, but you can find something essentially identical at amazon.com if you really want one.
- The butterfly gauge is essentially worthless, having been created by someone who thought they knew how a rain gauge works but actually got all the details wrong. This gauge read 2.3 times the rainfall logged by the Stratus gauge. Yes, really. It's supposed to have 8" of capacity but the impossibly bad design means you actually have less than 4" if you want to bother correcting for it. I could write a tome about all the things they did wrong with this product, but I'm not going to bother. Just don't buy it. Here's a link to a very similar product from the same maker that you can ignore unless all you want to know is that it rained. (You certainly won't have a clue about how much water actually came down if this is the only gauge you use.) In short, give this one a wide berth.
I need to move the Stratus gauge about 40 feet from its current location. There are some oak trees nearby that are going to start impinging on the rainfall in particularly windy conditions, so I need to get it out of that area. But when I do that I don't know how much the new location will affect the totals. 40 feet doesn't seem all that far, but I suspect I need to prove it actually isn't important.
I think what I will do is move the Stratus gauge to the new location and leave the 6" wedge gauge where it currently hangs. The idea is to use the wedge to cross check the Stratus and see if they continue to read about the same or not. If I can get through one more year and remain convinced that the 40 foot move hasn't affected things, then I will be done and have only one gauge to work with again.
The other gauges will probably be discarded. None are worth passing on in my opinion, so I will recycle them.
I'll update rain data on my web site - see the links to the right - as things happen in the new rain year, but I'll probably only record the numbers from the Stratus unless I see big differences between it and the wedge.
A New Rain Year Dawns
Here in California - or at least the bay area - we track our rain annually from July 1 through June 30. That's because our rainy season falls in the winter and spans the new year. If you are trying to figure out how much water the farmers, watershed, reservoirs, and/or water table is going to get, you need to track it around when it falls, rather than splitting it across an artificial date like January first.
So, July 1 marks the start of the 2012-2013 rain year, and the end of our 20th year of collecting rain data at our home.
This year I tested a bunch of rain gauges, and have revised the way I record and display data. I'll write another post about the rain gauges shortly, but first, here are links to the data I have available:
I will provide links to those pages in the right side navigation bar as well, so you can find them in the future without having to find this post.
I leave you to draw your own conclusions from the data. I stress, though, that rain fall amounts vary widely over even small distances, and we have nothing like a statistically valid sample to analyze anything over the long term. We use this data mostly to try and assess how our well will perform over the coming year. If we have less rainfall we can bet we'll our well will low on water before the next rain year gets going and the aquifer can be recharged.
Another thing this data helps us understand is our local fire danger. Rainfall that is well spread out in time keeps the vegetation moist and thus less likely to be a problem. 2011/2012 was the first time I recorded actual rainfall amounts by the day and kept them, so we still have a lot to learn here.
I hope this data is interesting and useful to someone other than me.
So, July 1 marks the start of the 2012-2013 rain year, and the end of our 20th year of collecting rain data at our home.
This year I tested a bunch of rain gauges, and have revised the way I record and display data. I'll write another post about the rain gauges shortly, but first, here are links to the data I have available:
- Annual Rainfall Totals - going back to the 1992-1993 rain year
- Daily Rainfall Amounts - starting with the 2011-2012 rain year
I will provide links to those pages in the right side navigation bar as well, so you can find them in the future without having to find this post.
I leave you to draw your own conclusions from the data. I stress, though, that rain fall amounts vary widely over even small distances, and we have nothing like a statistically valid sample to analyze anything over the long term. We use this data mostly to try and assess how our well will perform over the coming year. If we have less rainfall we can bet we'll our well will low on water before the next rain year gets going and the aquifer can be recharged.
Another thing this data helps us understand is our local fire danger. Rainfall that is well spread out in time keeps the vegetation moist and thus less likely to be a problem. 2011/2012 was the first time I recorded actual rainfall amounts by the day and kept them, so we still have a lot to learn here.
I hope this data is interesting and useful to someone other than me.
Subscribe to:
Posts (Atom)
