Takeout
Lame. It seems the Chinese takeout place next door to the office has changed hands. All the people are different, the portions are smaller, and the price has gone up. Not to mention they don't know me, and therefore don't talk to me or give me free soup. To reiterate: lame.
Theories of War
I just read an excellent (though very very long) essay on "Just War Theory" vs. American Self-Defense. It breaks down theories of war into four general groups: 1. Pacifists: those who feel that war is morally unjustifiable and is never an option;
"Just War" theorists: those who feel that war is a measure of last resort, but can only be undertaken through principles of altruism and self-sacrifice;
so-called "Realists": those who feel that war has no moral implications, and can only be thought of in practical terms; and
a theory proposed by the article as the correct theory: that war should be undertaken for reasons of self-defense, and that the purpose of war is to secure the safety and prosperity of the citizens of the country initiating war.
While I had heard of "just war" theory before, I wasn't terribly familiar with its basic principles, or its implications. For the past several years, I had assumed that President Bush was a bumbling idiot, with no plan for the Iraq war, and no reasonable justification for that war. While I still do not at all agree with his rationale or justification, I believe I at least understand his motivations and his background and belief system that made a war with Iraq seem logical to him.
The core behind the "just war" is that it is solely motivated by altruism. A just nation does not start a war to defend itself or retaliate against aggression. A just nation starts a war for some higher purpose, some greater good. Just War theory requires that a nation have some selfless, altruistic motive for starting a war. Just War theory places the lives of enemy combatants on equal footing with friendly combatants. The theory even goes so far as to place enemy civilian non-combatants at a level of higher importance than that of friendly military. American soldiers are required to put their own lives in jeopardy in order to avoid killing enemy non-combatants.
While at first glance this may seem noble and just, consider that so-called "innocent" civilians are rarely actually innocent:
Observe the inversion of justice here. Benevolent, individualistic, life-loving Americans, and death-worshipping, collectivist, nihilistic Arabs—such as the dancing Arabs who celebrated 9/11—are regarded as equally worthy of protection by the American military. The exception is if the American is a soldier and the Arab is a civilian, in which case the Arab’s life is of greater value.
While enemy civilians may not be directly involved in the war, they are certainly not innocent. Civilians support the war effort through material means by providing weapons, money, and shelter to those who do actually fight. Civilians support the war effort via spiritual, religious, and other intangible means as well.
Just War theory is incompatible with self-defense. According to the theory, a nation cannot retaliate against an attack, or make a preemptive strike to avoid an attack, unless this retaliation is done for the benefit of others outside the nation. While there was considerable anger and desire to retaliate after the terrorist attacks of September 11, 2001, President Bush felt the need to also emphasise that the war with Afghanistan was not with the nation of Afghanistan, but with its corrupt leaders (the Taliban) and the terrorist network it supported (al Qaida), and that deposing the Taliban regime would create a better life for oppressed Afghans. In the case of Iraq, where any connection to al Qaida or Osama bin Laden is tenuous at best, the Bush Administration's justification for war had nothing to do with protecting America or Americans: the grand master plan was to stop Saddam Hussein from continuing to oppress and murder the Iraqi people (i.e., to protect the Iraqis), and to help install a democracy in its place, with the hope of setting an example that other nations in the Middle East would attempt to emulate. Arrows pointing to WMDs and terrorism were drawn, but they have ultimately turned out to be misleading and false.
Why attack Iraq? Iran is essentially the seat of Islamic Totalitarianism. Saudi Arabia is a close second. Both nations fund, support, and harbor Islamic terrorists. But, while a case could be made for "bringing democracy and freedom to Iraq," no such altruistic case could be made for attacking Iran or Saudi Arabia.
But why not? Iran and Saudi Arabia are perfect model of present threats to America. While life isn't exactly all peachy with Iranian and Saudi citizens, it would be very difficult to paint a removal of either of their governments as being done for the benefit of their people. How do we deal with these threats? Ineffectively, through attempts at appeasement:
In the rare cases that it has taken any action toward these regimes, its action has been some form of appeasement: extending them invitations to join an “anti-terrorism” coalition (while excluding Israel); responding to the Palestinians’ jihad with a promised Palestinian State; declaring “eternal friendship” with Saudi Arabia and inviting its leaders to vacation with our President; responding to Iran’s active pursuit of nuclear weapons with the “threat” of possible, eventual, inspections by the U.N.
Let's look at our effectiveness in the two wars we have waged. In Afghanistan, we gave advance notice of our intentions to attack, avoided civilian casualties to the extent of failing to remove crucial military targets, and stood back and watched while many important Taliban leaders escaped.
While that doesn't sound particularly successful, Iraq has been a disaster in comparison. To this day, we have failed to defeat the remnants of Saddam Hussein's Baathist regime. While removing Hussein himself was an impressive feat, his regime still lives on in some areas. An insurgency has risen, and continues to kill American soldiers and Shiites. To make matters worse, it's eminently possible that a Shiite theocracy (even a democratically-elected one) could replace Saddam Hussein, which could simply add another proponent of Islamic Totalitarianism to the mix.
Many have blamed our military failures on sloppy planning. I don't believe this is true. The war was planned poorly, no doubt, but it was not done haphazardly. The key is in the Just War outlook: military action had to account for "innocent" Iraqi civilians, and avoid killing them, even if it stood in the way of crucial objectives or put American soldiers in much worse danger. The lives of Iraqi civilians -- even those sympathetic to the Hussein regime -- are somehow judged to be worth more than the lives of American soldiers.
So what is the correct approach? Clearly, pacifism will not solve our problems. Attempts at appeasing Saudi Arabia and Iran have only made them more bold and confident in their opposition to Western life. Just War theory has thrust us into two poorly-executed wars with the loss of much more American life than is necessary, with results that have the potential to make the situation even worse than it was previously.
How about "realism"? Realists believe that practical considerations trump everything, including morality. If an act can bring a quicker end to a war or more effectively protect the "good guys," it should be taken; in fact, it is therefore an obligation to be taken. However, realists miss out on the fact that practicality cannot be separated from morality. Practicality assumes some kind of goal in mind that can be achieved by a certain action (which is deemed to be practical). Any questions as to what are acceptable goals are inevitably moral questions.
At this point, we must consider rational self-interest, or rational egoism, which holds that every individual should be allowed to live his own life without interference, and to pursue his own vision of happiness, as long as his/her actions do not interfere negatively with the lives of others. This principle actually establishes the need for governments. If the sole purpose of a government (with regard to foreign affairs) was altruism, a government would not be necessary. The purpose of the government, plain and simple, is to protect its citizens' rights and freedoms.
And so, by extension, the moral purpose of any war engaged by any government must be to protect the rights and freedoms of its citizens. This, in many ways, directly contradicts the tenets of Just War theory. The rationale behind a war started by proponents of rational self-interest is self-defense.
Now, I don't want this to sound like I'm advocating an "anything goes" approach to war. Under rational self-interest, a warring nation is responsible for protecting its people, not the least of which are its soldiers. The interests of enemy combatants and noncombatants alike are secondary to the interests of the nation's people and soldiers. If the so-called "collateral damage" of civilian casualties is necessary in achieving an important military target, then so be it. If flattening a town full of both civilians and military is the only way to ensure victory, then so be it. But it is not without compassion: if military objectives can be achieved while safeguarding enemy civilian lives, without incurring massive losses for the military, civilians should be left out of the fight.
Let's compare WWII-era Japan to present-day Iraq:
Observe what it took for the United States and the Allies to defeat Germany and Japan and thus win World War II. Before the Germans and Japanese surrendered, the Allies had firebombed every major Japanese city and bombed most German cities—killing hundreds of thousands. Explaining the rationale for the German bombings, Churchill wrote, “. . . the severe, the ruthless bombing of Germany on an ever-increasing scale will not only cripple her war effort . . . but will create conditions intolerable to the mass of the German population.” And as we well know, what ended the war—and the Nazi and Japanese Imperialist threat to this day—was America’s dropping of two atomic bombs on Japan.
[...]
In... World War II..., once massive defeats were handed to the enemy, the causes that drove the military threats were thoroughly defeated as political forces. There are no threatening Nazis or Japanese Imperialists today...
[...]
Many Just War theorists hold—as by their standard they are obliged to hold—that the dropping of atomic bombs on Hiroshima and Nagasaki in 1945 was immoral. America, they claim, should have valued Japanese civilians over the hundreds of thousands of GIs who would have died invading Japan.
A war with a nation is not just a war with that nation's leadership and military. It is a war with that nation's people as well. By making the war with Iraq simply a war with Hussein and his regime, we have lost control of the situation. An insurgency has risen, and, given the rules of engagement, we are powerless to stop it. Most civilian Iraqis are not happy with our actions. The fledgling Iraqi government does not appear to have the support of its people. The American-trained Iraqi police force is motivated not by a desire to see their country repaired, but by the promise of a paycheck. Iraq does not want us there, and yet we try to make it look like we are there to help them, instead of doing what we should be doing: effectively occupying the country and squashing insurrection by any means necessary, and installing a government that will pose little to no threat to us. I'm not saying they have to be puppets of the U.S. government, just that they need to lack a desire -- though fear, if necessary -- to do harm to America.
Another aspect of Just War theory is that all cultures and ways of life are equal and deserve equal opportunity to flourish and succeed. This is simply false and self-destructive. All cultures are not equal. All ways of life do not deserve existence. Extremist Islam has time and time again stated its goals to wipe Western culture from the face of the earth. Iran has gone so far as to directly threaten to erase Israel by nuclear means. How can these cultures coexist? Perhaps they cannot. In that case, which should be allowed to flourish? In my opinion, it is the way of life that encourages freedom and peace, not the eradication of everyone who doesn't agree with you.
But why does that even matter? Why ask who is "right" or "wrong"? The bottom line is that one culture wishes to destroy the other. Are we (the Western world) so willing to be tolerant and accepting of other points of view that we will literally allow those opposing points of view to destroy and eliminate our way of life? I certainly hope not. If it's a choice between us or them, I'm going to choose us.
War is not about spreading "feel good" intentions around the world. War is not about giving the "joys" of democracy and freedom to other nations. War is about safeguarding the lives of those who are threatened. America's goal in attacking another nation needs to be to eliminate any threat that nation poses to America. I'll close with another short passage from the linked article, as it really says it best:
America faces a choice between two irreconcilable foes: self-defense or altruism—which are but forms of the basic choice we all face: life or death. Let us choose life.
Xfce 4.4rc2 Released
This weekend, we just released the second release candidate in preparation for Xfce 4.4.0. Check out the list of changes from rc1, or go ahead and get to the downloads.
I'm really happy with this release (where xfdesktop is concerned, at least). I closed something like 26 bugs, and I'm much more comfortable with xfdesktop's stability level. There are still some features that I wanted to get in for 4.4 that aren't going to make it, but I think the desktop manager is pretty usable and stable, and works well at this point. Give it a try.
Oh, and if you're bothered by the fact that icons that 'fall off' the screen (due to the icon size being too large) never reappear when you lower the icon size, grab the patch from this bug and apply it to rc2.
Xfce 4.4rc2 Released
This weekend, we just released the second release candidate in preparation for Xfce 4.4.0. Check out the list of changes from rc1, or go ahead and get to the downloads.
I’m really happy with this release (where xfdesktop is concerned, at least). I closed something like 26 bugs, and I’m much more comfortable with xfdesktop’s stability level. There are still some features that I wanted to get in for 4.4 that aren’t going to make it, but I think the desktop manager is pretty usable and stable, and works well at this point. Give it a try.
Oh, and if you’re bothered by the fact that icons that ‘fall off’ the screen (due to the icon size being too large) never reappear when you lower the icon size, grab the patch from this bug and apply it to rc2.
Oh, Wikipedia
Apparently, xfmedia has a (tiny) Wikipedia entry. I find that... somewhat silly (if ego-boosting, in a way). Though I did learn something: apparently I haven't made a release in over a year. I suck.
Oh, Wikipedia
Apparently, xfmedia has a (tiny) Wikipedia entry. I find that… somewhat silly (if ego-boosting, in a way). Though I did learn something: apparently I haven’t made a release in over a year. I suck.
Xfce Update
I haven't really written about Xfce lately, I suppose. I've been hacking my ass off the past couple weeks, which has been great. In the past week or so I've closed around 20-23 bugs, and now xfdesktop is down to 9 bugs in bugzilla, a few of which I think might be either fixed or just irrelevant at this point. There's one more that I want to fix, and then I'm ok with releasing our second 4.4.0 release candidate (hopefully this weekend).
This last one is giving me some trouble. Well, fixing the bug probably wouldn't be that hard, but it's the icon view drag-n-drop code, and it's really a mess, a mess I'd like to clean up. Since I split the file icons out into three types (regular, volume, and special), a lot of the original code got copied and pasted, and then modified only slightly for the different icon types. Then the icon view itself handles some of the DnD (the part where you're just moving an icon from one place to another), and the icon view manager orchestrates some of the interaction with the various icons. It's really not terribly well designed, and I want to refactor the hell out of it. I'm having a hard time coming up with a good design, though.
On one hand, I have the simple part of DnD that just deals with rearranging existing icons on the desktop. Both the window icon and file icon modes use this, so it makes sense to have it in the icon view proper rather than duplicated twice in each of the two icon view managers.
However, the file icon manager needs an extra bit: you have to be able to drag one icon and drop it on another (in some cases, anyway; some icons aren't a drop destination). To accomplish this, the file icon manager hints to the icon view that it should allow "overlapping drops" in some situations. Or rather, the icon view allows them in all situations, but then asks the file icon manager if a drop destination is ok. I really dislike special-casing this.
Finally, for the file icon manager, we have a third mode of operation (well, third and fourth, but they're mostly the same idea): dragging icons from the desktop and dropping them in another application (like a file manager), and receiving drops on the desktop from other applications (like a file manager or web browser). The latter bit has two code paths to deal with whether the external drag's destination is on an open part of the desktop, or on an existing icon.
This gets really messy, because each of the three icon types are currently handling external drops on themselves individually. The code is mostly the same, but there are subtle differences in some cases (differences that can probably be factored out, or maybe just ignored entirely with a better design).
My first thought is to leave the 'rearrange DnD' in the icon view where it is now. This is a bit of a no-brainer: the icons themselves and the icon view managers don't deal with this at all right now (and I'd like to keep it that way), and pushing the code into the icon view managers would cause a bit of duplication. So that's fine.
But what about the overlapping drops? I think what I'd like to do is ignore them, at least in the icon view. Or rather, always handle them as if they're possible. So the idea is that when I drop one icon on another icon, the icon view manager gets a synthesised drop event (as well as drag-motion, drag-data-received, etc.) from the local icon; this way it doesn't even have to know it's local, and can treat it just like an external drop (thus using the same code path for something that's in two separate code paths now). For this to work, each icon is going to have to provide a list of source targets it supports, as well as allowed actions. And there needs to be a way for it to say "no, you can't drop me on anything else" (I guess just a NULL return from the supported source targets will do there).
Then, for external drops, I can just handle them much in the same way they're being handled now.
Actually, all this stuff is starting to make some sense. It's a bit late now, but I'll try to work on this tomorrow or Friday.
Xfce Update
I haven’t really written about Xfce lately, I suppose. I’ve been hacking my ass off the past couple weeks, which has been great. In the past week or so I’ve closed around 20-23 bugs, and now xfdesktop is down to 9 bugs in bugzilla, a few of which I think might be either fixed or just irrelevant at this point. There’s one more that I want to fix, and then I’m ok with releasing our second 4.4.0 release candidate (hopefully this weekend).
This last one is giving me some trouble. Well, fixing the bug probably wouldn’t be that hard, but it’s the icon view drag-n-drop code, and it’s really a mess, a mess I’d like to clean up. Since I split the file icons out into three types (regular, volume, and special), a lot of the original code got copied and pasted, and then modified only slightly for the different icon types. Then the icon view itself handles some of the DnD (the part where you’re just moving an icon from one place to another), and the icon view manager orchestrates some of the interaction with the various icons. It’s really not terribly well designed, and I want to refactor the hell out of it. I’m having a hard time coming up with a good design, though.
On one hand, I have the simple part of DnD that just deals with rearranging existing icons on the desktop. Both the window icon and file icon modes use this, so it makes sense to have it in the icon view proper rather than duplicated twice in each of the two icon view managers.
However, the file icon manager needs an extra bit: you have to be able to drag one icon and drop it on another (in some cases, anyway; some icons aren’t a drop destination). To accomplish this, the file icon manager hints to the icon view that it should allow “overlapping drops” in some situations. Or rather, the icon view allows them in all situations, but then asks the file icon manager if a drop destination is ok. I really dislike special-casing this.
Finally, for the file icon manager, we have a third mode of operation (well, third and fourth, but they’re mostly the same idea): dragging icons from the desktop and dropping them in another application (like a file manager), and receiving drops on the desktop from other applications (like a file manager or web browser). The latter bit has two code paths to deal with whether the external drag’s destination is on an open part of the desktop, or on an existing icon.
This gets really messy, because each of the three icon types are currently handling external drops on themselves individually. The code is mostly the same, but there are subtle differences in some cases (differences that can probably be factored out, or maybe just ignored entirely with a better design).
My first thought is to leave the ‘rearrange DnD’ in the icon view where it is now. This is a bit of a no-brainer: the icons themselves and the icon view managers don’t deal with this at all right now (and I’d like to keep it that way), and pushing the code into the icon view managers would cause a bit of duplication. So that’s fine.
But what about the overlapping drops? I think what I’d like to do is ignore them, at least in the icon view. Or rather, always handle them as if they’re possible. So the idea is that when I drop one icon on another icon, the icon view manager gets a synthesised drop event (as well as drag-motion, drag-data-received, etc.) from the local icon; this way it doesn’t even have to know it’s local, and can treat it just like an external drop (thus using the same code path for something that’s in two separate code paths now). For this to work, each icon is going to have to provide a list of source targets it supports, as well as allowed actions. And there needs to be a way for it to say “no, you can’t drop me on anything else” (I guess just a NULL return from the supported source targets will do there).
Then, for external drops, I can just handle them much in the same way they’re being handled now.
Actually, all this stuff is starting to make some sense. It’s a bit late now, but I’ll try to work on this tomorrow or Friday.
Code Search
Google has recently unveiled their code search feature, which lets you search the internet for open source code. I already have more respect for it than for its competitors. When I search “brian tarricone” in Krugle or Koders, I just get mention of my name in a file of Gaim’s source, from a (small) patch I submitted to fix a plugin. When I try Codease, I just get a 502 Proxy Error. Great service, guys.
However, with Google’s code search, I see my name in a bunch of Xfce- and Xfmedia-related files. Rock on. “Results 1 - 10 of about 12,800,” it says. Awesome.
Code Search
Google has recently unveiled their code search feature, which lets you search the internet for open source code. I already have more respect for it than for its competitors. When I search "brian tarricone" in Krugle or Koders, I just get mention of my name in a file of Gaim's source, from a (small) patch I submitted to fix a plugin. When I try Codease, I just get a 502 Proxy Error. Great service, guys.
However, with Google's code search, I see my name in a bunch of Xfce- and Xfmedia-related files. Rock on. "Results 1 - 10 of about 12,800," it says. Awesome.