Economics, Part II

I like to turn Robert’s economics articles up-side-down. They make so much more sense when you do that.

So, out there we have a set of holders of mortgage backed instruments that they got through various middle men from borrowers of poor financial strength. The current holders ought to have done their due diligence before they bought in — if they did not, we have no sympathy over their fates. So let us assume that they did.

Clearly they saw the risk of a market wide event affecting a very large number of people, lots of those being voters. Clearly they researched the history of political response to such situations. Clearly they saw the serious risk of the rules being changed underneath them. They saw that, they understood that, and surely they priced that into their bids. Thus, if the rules are changed underneath them, they are not suffering any consequence the risk of which they were not paid to take. One could go as far as saying that a lack of political intervention would be an unforeseen windfall for them. That would be a subsidy they do not deserve.

Actually, the investors likely did not have full information available, but had to rely on the representations of the financially engineering banks and the ratings institutes. Investors should have priced such a lack of knowledge in too, but might have a case against the middle men if they were defrauded.

That being said, I have not read and I do not intend to read the specifics of the proposed plans. In fact, paying attention to the promises of political candidates in right races is a waste of time — they will promise you anything. It is in their blood.


It seems like Robert has been reading too many books on economy again. Or rather, has failed to apply the necessary simple sanity checks to what he has been reading.

Authors on books on economy like simplifications and words like “equilibrium”. For example, they might discuss an equilibrium governing the hourly wages and claim that absent any floor on wages, they will find a level where everyone who wants to work is employed. The sanity check for the is the great depression period: no floor, but widespread unemployment. Conclusion: something is seriously wrong with the model or the assumptions.

Robert this time brings us this gem: “The tax on capital gains is a burden on investing. The tax lowers the returns on investment, thus discouraging investment below where it would be in equilibrium […]”.

First simplification: “equilibrium”. We do not live in a static world so assuming an equilibrium is not reasonable. Why should there be one?

Second simplification: assuming the potential investor has a choice between investing or not investing, presumably in some stock. In reality, someone with spare (or borrowed) cash has multiple choices: investing [high return; high risk], stuff the mattress [no return; sore back], put in bank [low return; high tax], etc. Notice the total lack of “not investing” as a choice. The general assumption is that the would-be investor does what is optimal (whatever that means). I don’t buy the argument that a capital gains tax makes people put more money in the mattresses.

Third simplification: the government is also not faced with a choice of imposing the tax or not imposing it. Really. Those two choices do not come with the same revenue, obviously, and the real choice is thus more between imposing the tax and not imposing combined with not building this or that highway. Or taxing elsewhere. Or borrow the balance. Or whatever. The historically aware reader will recall that lowering taxes while hand-waving and saying that revenue would go up as a consequence was proven wrong last time.

Fourth simplification: “The tax lowers the returns on investment.” That is true, but incomplete. The tax works on the loss side too and thus also lowers the risk of an investment which, presumably, encourages investment.

The conclusion of that is that we have a partial proposal whose effects have been judged by a hopelessly oversimplified model. Hence predictions on the effects are meaningless.

For the record, my income is primarily classified as capital gains. I would actually stand to make a killing if the capital gains tax went away. I am just the mouse who wants to know the price of that yummy cheese before I eat it.

Themes Are Evil, Part II

In a previous post, I showed how a GTK+ theme engine can corrupt memory of any application unfortunate enough to be used with it.

In today’s edition, our guest star is the Qt theme engine. It does not, as far as I know, corrupt your memory or otherwise make your innocent application crash.[*] Instead it changes how your program works. For example, for Gnumeric it changes how numbers imported are handled.

If you import the number “8,5” in a decimal-comma locale then you would hope to get eight-and-a-half, right? Well, with the Qt theme you get eight and we, the Gnumeric team, look incompetent. The problem arises because the Qt theme, quite reasonably, initializes the qt library. During that, less reasonably, the following code gets executed:

setlocale( LC_ALL, “” ); // use correct char set mapping
setlocale( LC_NUMERIC, “C” ); // make sprintf()/scanf() work

I am not kidding. The Qt library thinks it should change your locale. What on Earth have the Trolls been drinking? Impure home destilled booze in large quantities?

This problem in various disguises have had us puzzled for quite a while and only very recently was the Qt theme identified as the triggering factor. Once that happened, it was not too hard to locate, but before that we have spent maybe 40 hours looking for this bug. The workaround is to set up a one-shot idle handler that resets the locale properly when the gui comes us. (Repeat this for every GTK+ program that displays or accepts floating-point values.)

The Qt theme people never caught this. If they are mostly “theme” people I can understand, but if they are mostly “Qt” people they really should have known. In either case, it is another exhibit for the case that the GTK+ theme model is seriously flawed.

[*] Well, if you use threads it might. The Qt library calls setlocale to change locale and that’s not allowed in a threaded program.


_C_ managed to find a Wii at msrp locally and turned it into a Christmas gift, allegedly for the kids. We have all been playing all evening and I am all sore.

I feel a little bit sorry for all you guys who have to wait until Christmas morning to open the gifts, :-)

Murray, A Retraction is in Order

(By blog and email.)

Murray, a retraction of that post is in order.

Here is why: I do not think, and you have certainly offered no evidence, that you are competent to diagnose the mental state and ditto ailments of other people. If you in fact do have such credentials from a respectable medical school, now would be a good time to display them. (And to inspect an inquiry from the relevant ethics committee.)

The truth or falsity of the rest of your post is utterly irrelevant. I do not know if it is true or false; I do not care. You have evinced seriously bad judgment and deep character flaws.


I have noticed that main-menu on my system is a bit of a pig. It takes up something like 30 cpu minutes per day. That is kind of crazy considering I don’t really use it much. Certainly not every day. So what does it do?

  • It reads /proc/mounts and /proc/partitions. It then stats everything mentioned in there.
  • It appears to be talking to NetworkManager via dbus.
  • It stats about 100 directories like /usr/local/share/icons

And it does all of those every few seconds.

OpenSUSE 10.3 — First Impressions

I installed OpenSUSE 10.3 the other day and these are my first impressions.

Installation went smoothly — a few packages had to be manually added as usual. Emacs, for example, was not part of the default install whereas Freeciv was. I would like someone to explain that some day.

I am pretty happy with it so far, but of course I have notice something that could deserve improvements.

Package manager
I find the new gui with installed and available in different columns quite unintuitive. The old layout with one list and a install/uninstall/etc marker used much less screen real estate and left meaningful space for package description. Unrelatedly, it starts with gtk assertions:

(y2controlcenter-gnome:4204): libgnomevfs-CRITICAL **: gnome_vfs_get_uri_from_local_path: assertion `g_path_is_absolute (local_full_path)' failed
(y2controlcenter-gnome:4204): libgnomevfs-CRITICAL **: gnome_vfs_monitor_add: assertion `text_uri != NULL' failed

which probably is not a good idea.

The new version is nice, but when I first installed it, it would not start. Investigation showed that its dependency, sqlite2, was not installed, whereas sqlite3 was. I suspect a packaging problem.
Network manager
Where to start? Hmm… It still crashes left and right. I hope I don’t have to see anything about connection to network “(null)” anymore. Why does it have to wake up every second and do nothing?
Login screen
The tab key used to work to switch from login to password. Now it just selects the login name. I am not sure what that change was meant to improve.
Utterly unsuited for a machine like this. Why does Novell push this cpu/battery vacuum cleaner so hard?


I had a look at “OOXML is defective by design” and, quite frankly, I am not impressed.

On my surface it is a comparison of OOXML and ODF and it comes out as a landslide victory to ODF. But anyone who has worked with spreadsheet file formats will easily see that it was written by someone who, intentionally or otherwise, is deaf, dumb, and blind to the shortfalls of ODF. And if that is where you start, then what is the point?

For example, OOcalc suffers from exactly the same rounding issue that Excel does. How could it be any different when both are based on floating point numbers? (An in neither case is that a file format issue, but rather an implementation issue.)

For example, the reason that he can happily declare that ODF has backwards compatibility is that he choses a graph sample. And OOcalc’s graphing system has not, shall we say, seen a lot of improvement since the version he tried with.

Don’t complain that “ECMA 376 documents just do not exist” when the same can be said for ODF. As-of version 1.1 of the specification there still seems to no syntax for 2+2.

One could also ask a question such as “how well can legacy spreadsheet files be represented in either format?” A very reasonable question, in my humble opinion, given the number of sheet out there. Of course, since ODF doesn’t actually have non-trivial formulas, we should probably just interpret it with respect to OOcalc’s format. I do not think ODF would fare well here.

Disclaimer: I have not, and I probably will not, read the full OOXML spec.

Part-Time Vegetarian?

I am struggling with the concept of being a part-time vegetarian. What exactly does that mean? Perhaps even I can be considered a part-time vegetarian when I eat my corn-on-the-cob between my lobster and my steak. Trust me, I am not easily mistaken for a vegetarian!