Oh, Great

Even though by most standards I have a pretty darn good life, and I recognize all the good things that happen day by day, I’ve been feeling a bit depressed. Apparently scientists have discovered one possible explanation.

Humans are pre-programmed to hit the depths of misery at the age of 44, researchers have found.

That is the age at which the probability of depression peaks for both men and women, researchers from the University of Warwick have found. That particular institution’s closest town is Coventry, suggesting they do indeed know what they’re talking about.

Happiness levels tended to peak at around 20, they found, before steadily dipping as people reached their mid-40s. They then started creeping back up again, with people generally climbing out of the hole in their 50s.

Maybe that’s it. Maybe it’s just a biological thing that affects folks my age. Or maybe it’s the burnout-inducing grind of sleep-deprived work for pay, housework, and Amy-watching that leaves me with only an hour or two of leisure time each and every day (if that) for months on end, while everyone around me enjoys three to ten times that and seems utterly disinterested in giving any up even a few minutes to lighten my load. Nah, I’ll go with the biological-clock explanation. That way I don’t have to consume any more of that leisure time explaining myself to other people who still won’t try to do anything about it.

(Hey, it’s a blog. If I can’t have a little self-indulgent wallow once in a while, what’s the bloody point?)

Avoiding More Meltdowns

The Ideas section in today’s Boston Globe has an interesting article called The Black Box Economy. The basic thesis is that ever more complex and abstract kinds of investments have outstripped governments’ ability to exercise oversight and ensure the stability of the financial system. Exhibit A is, of course, the subprime mortgage meltdown in which “collateralized debt obligations” and such have spread loan risk around so much that everyone – except apparently the makers and takers of the bad loans themselves – has become a victim of the current crisis, but the authors contend that CDOs are just the tip of the iceberg. The claim that the aggregate paper value of various “derivatives” is many times larger than the total global GDP, if it’s true, should scare anybody who thinks about the implications for even a little while.

The thing that these derivatives and futures and such have in common is that they represent “assets” that are many levels removed from any visible component of the real production and value-creation process. People who make such investments can reap tremendous profits, or do tremendous damage – neither of which ever does any good for the people who actually create the physical assets on which these paper fortunes are built. In the subprime case, one of the problems is that lenders had absolutely no incentive to ensure that they were making good loans, because they were selling them as CDOs anyway. Those birds were never coming home to roost. Nobody was reaping what they were sowing. One proposed solution, accordingly, has been to require that lenders do retain an interest in the loan, restoring the incentive to exercise proper diligence instead of collecting their fees and then dumping bad loans on Somebody Else.

I think this idea should be extended. We already tax different kinds of investment income (e.g. short vs. long term) differently, so let’s create many more classes of investment income according to the rule that every level of separation from productive reality increases the tax rate. If you invest in actual physical assets, which we’ll call investment class A, then any profit you make on that investment is taxed at a certain rate. If you invest in simple futures or options on those same assets, you’re one level removed so we’ll call those investments class B and tax any profits on them a bit more. A higher-level option derivative might be class C and taxed still more. Let’s put all those theories about “capital market fluidity” to the test. If all of this high-finance speculation is such a wonderful thing, then investors – the real investors, the ones who actually earned the money they’re putting into the system and not just moving Other People’s Money around – will still be willing to buy class E investments despite the high tax rates. If all of the abstraction and leverage is just a sham, though, benefiting only the brokers and not the consumers of investment products, then those consumers might stick to investing in things more directly tied to reality. That should force some of the pathological gamblers in the financial industry to go out and get real jobs instead of messing up the economy for everyone else. As always when the current incentives are perverse, changing the incentives and letting the market do its thing is the way to achieve a better outcome for everyone except the thieves and frauds.

Platypus Ancestors

National Geographic reports some new findings about a very distant ancestor of the noble platypus.

The scientists found that the Teinolophos had already developed features thought to be unique to modern platypuses, including an electro-sensitive “bill” for finding aquatic prey.

By sheerest coincidence, I was reading about Teinolophos two nights ago and wondering specifically about when electroreception entered the picture. Maybe I was getting psychic vibes from somewhere.

Random Snark

Seen on Freedom Democrats (paraphrased):

Q: What’s the one thing a PC user can do that a Mac user can’t?
A: Shut up about their computer.

A little harsh, but very close to being true.

On the Road Again

Yes, folks, it looks like it’s time for a new host again. Back in November, eMax managed to lose my entire home directory for two days. Yesterday, the site was unavailable practically all day because of database problems. With just those two outages their availability for the past year has fallen below 99%, which I know is a higher than I really need but which I also know is lower than any of a hundred competitors can provide for the same price. What really irked me both times, though, is that they claimed the problem was fixed before it really was. I’m willing to be patient. I filed my support tickets as low priority even though they represented total outages as far as I was concerned. I made it perfectly clear that I understand how these things happen and can sometimes take some time to resolve. That patience is a form of professional courtesy which I extend to people whose field is closely related to mine, but lying to me says that they’re not professionals at all. Disrespect your customers and they leave. Simple.

I’ve come to the conclusion that web hosts – at least reasonably-priced ones – are not so much like permanent equipment as they are like perishable supplies. The very same things that make them good eventually cause their servers and their personnel to become overloaded, until they’re not good any more. Experience with my seven previous hosts is that the process takes a little more than a year on average, so after doing this longer than 90% of bloggers I’m almost inclined to switch preemptively every year or so just to stay ahead of the problems. That lack of loyalty arguably makes me part of the problem, but this is one case where I don’t feel a need to be the only guy hunting the stag. Even if my switching is the last straw that turns my new host from good to bad, nobody’s going to die or anything. My moving pretty much affects only me, and besides, it gives me a chance to clean out some of the junk in my online attic.

So, you all know the drill by now. Nothing should be any different – this is really far less of a change than the software upgrade a couple of weeks ago – but if there does seem to be something awry then let me know.

Linux Pointer Types

Looks like Linus is off in space again.

“const” has *never* been about the thing not being modified. Forget all
that claptrap. C does not have such a notion.

“const” is a pointer type issue, and is meant to make certain mis-uses
more visible at compile time. It has *no* other meaning, and anybody who
thinks it has is just setting himself up for problems.

. . .

In other words, “kfree()” can be const.

– Anything that *can* take a const pointer should always do so.

Why? Because we want the types to be as tight as possible, and normal
code should need as few casts as possible.

Not so much, actually. It doesn’t make the types tighter; it just makes them different. “Tighter” has even less meaning in C than const does. At least const means something to the compiler – that it may issue certain warnings or perform certain optimizations based on an assumption of immutability and any violations of that assumption are henceforth Somebody Else’s Problem. As Linus’s example of storing a const alias for a distinctly non-const piece of kmalloc’ed memory shows, const applies only to a particular high-level-language way of referring to some memory and not to the machine-level memory itself. It marks the name or path, not the thing.

The problem with kfree is that its declaration is contrary to the very distinction both I and Linus have pointed out. Only the function parameter is considered const – not the caller’s variable which might be either const or non-const without a warning either way. Having kfree take a const pointer therefore does nothing to detect Linus’s “misuses” at compile time. If people really want to get serious about distinguishing this type of pointer from that type of pointer on the basis of something other than data type then they should use something like Cqual’s type qualifiers which are much more powerful than abusing const. The way kfree is declared does save a cast if the caller’s variable happens to be const, at the expense of forcing one within kfree itself, but I think that’s weak. Reducing casts is a good thing, but automatic promotion to const is also a kind of cast so in a sense the savings here aren’t real. Memory aliases are something that clueful programmers try to avoid, inconsistent aliases doubly so, and I’ve seen many bugs that could have been avoided if differences in const-ness were always flagged instead of automatically and silently creating a const alias for a non-const pointer. A rule of reducing visible casts (while ignoring the invisible kind) carries much less weight with me than a rule that obviously-paired functions such as kmalloc and kfree should operate on the same type.

Another Awful Pun

I found this neat chart on one of my RSS feeds.

TV viewing habits.

The kids in the picture are shown lying on the floor but, since most people watch TV from the sofa, this could be characterized as a . . . wait for it . . . couch graph. I crack me up. If you don’t get it, don’t worry. The reference is a pretty obscure one.

130-Year-Old Pun

An oldie, but . . . well, judge for yourself.

This Must Be Love

PZ Myers would be delighted. The love that can’t speak its name – between an octopus and Mr. Potato Head

Fantastic Images

The Materials Research Society has some great images in their Science as Art competition. I found it because somebody else linked to the nano-explosions one at the top, but I kind of like the “titania inverse opal” one better as a desktop background. It’s too bad these aren’t higher-resolution.

BTW, the title is a reference to Fantastic Voyage since these images are of very small things.