Tom Lachecki

(Tomalak Geret'kal)


UK Electorate Misrepresented, As Usual

Gordon Brown has finally spoken up loudly and jumped on the anti-Russia bandwagon with chafing hypocrisy.

When Russia has a grievance over an issue such as South Ossetia, it should act multilaterally by consent rather than unilaterally by force. My message to Russia is simple. If you want to be welcome at the top table of organisations such as the G8, OECD and WTO, you must accept that with rights come responsibilities.

We want Russia to be a good partner in the G8 and other organisations, but it cannot pick and choose which rules to adhere to. That is why I will argue tomorrow that Russia should accept Georgia's territorial integrity and international mechanisms for addressing these conflicts, and withdraw troops to their previous positions. [editorial emphasis]

Is it possible to impeach a Prime Minister?

William Hague added:

Russia has become the aggressor – it has gone from claiming to defend Russian passport holders in regions of Georgia to seeking the break-up of the state, showing disregard for the principles of modern international relations.

I simply do not understand how the mainstream media is not picking up on the historical parallels. What everyone is saying here is that Russia, for better or for worse, invaded a sovereign nation because of what it believed to be a worthy cause to end human suffering at the hands of oppression. Sound familiar?

I'm getting really fed up of our leaders and representatives spewing this kind of rhetoric without qualification; the West is pushing for hostility, not Russia. I'm frankly sick of politicians who claim to represent me and my family pulling their trousers down and sticking their tongues out for the history books. Because if this escalates to war we are going to look so very stupid.

Tags: , , ,
Permalink | No Comments  
This Week In Words

Wordle's pretty cool, although I don't know why they bother with such a disappointing FAQ.

Here's a visualisation of this week's blog feed; it's not hard to see where my mind's been at lately.

Tags:
Permalink | No Comments  
Georgia Started It, Acknowledges Brit Public Media

I wrote yesterday about the rampant bias in the Western mainstream media and the inexcusable hypocrisy of G7 leaders.

Today the BBC has included in an article documenting Russia's latest defensive remarks the most seemingly honest summary of the original events that I've seen so far:

The conflict in the region began on 7 August when Georgia tried to retake South Ossetia by force after a series of lower-level clashes. Russia launched a counter-attack and the Georgian troops were ejected from both South Ossetia and Abkhazia.

This acknowledgement that it was, in fact, Georgia (an Iraqi coalition country) that provoked the original fighting is squashed towards the end of the article, but it's there nonetheless and uncharacteristically stated as fact, despite its stark contrast with the recent rhetoric about Moscow being the aggressor.

And it's a fact which fits with the Kremlin's line. Russia's Foreign Ministry accused the G7 of making "baseless assertions about Russia undermining Georgia's territorial integrity," saying, "this step is biased and is aimed at justifying the aggressive actions of Georgia."

That Abkhazia is prepared to be absorbed into the Union of Russia and Belarus "within five years", and that South Ossetia is also open to such a notion, should be all we need to hear to know that Russia's so-called "transgressions" are precisely what these regions want. And if the prevailing view is that Georgia began the conflict, what exactly is the problem here?

Bootnote

If South Ossetians really have been torching Georgian villages, then that should be investigated and dealt with as a matter of course. Any Western politician trying to blame Russia directly for such acts can only be attempting to instigate a climate of fear and terror.

Tags: , ,
Permalink | No Comments  
On Lies, Hypocrisy And War Criminals
Reasonably predictably, Vladimir Putin is suggesting that the United States government played a significant role during the recent conflict in Georgia, a former Soviet state.

The BBC, from which we've seen some blatant bias lately, employs the headline "Putin blames US for Georgia role" in large type. Whilst a neutral word by definition, "blames" certainly has defensive connotations to me.

Of course the White House stoicly denies this, charging that Putin's assertion is "patently false" and "not rational", so it really comes down to a matter of their word against the Kremlin's. If you believe that the White House is run by a group of lying war criminals led by a man whom several Democrats, a former presidential candidate and 30-50% of the American people are attempting to impeach, it seems logical to take the Russians' word for it. If the Western mainstream media don't manage to convince you otherwise, that is.

In fact, I've been rather disappointed lately that every piece of Western reportage I've seen on the subject has all but assumed Russian wrongdoing. There is no debate over the issue nor any balance to the research, as there usually is in such matters. Whilst the majority of real people that I have spoken to at least agree with me that Russia is being bullied by the West after defending separatists from tyrannical treatment, the media are unilaterally overlooking the possibility that Putin's Medvedev's cabinet did the right thing.

I'm a cynic at heart and I am aware that a lot of media outlets have bias one way or the other, but I am starting to think that there is a little more to this than the usual slant.

Putin's claim that US soldiers were in the area during the conflict to stir up trouble on behalf of a Presidential candidate (I read McCain here; he likes wars and would jump at the opportunity to regenerate cause for one) doesn't seem quite so far-fetched when you consider the Republican party's propensity for lying and the fact that the US and its allies jumped on the provocation bandwagon so very quickly. But it's not just provocation any more.

I've already suggested that Western states are engaging in some cardinal hypocrisy. Over the past week various Western nations have loudly proclaimed disappointment at Russia's recognition of disputed South Ossetia as an independent region, going so far as to suggest that Russia is no longer worthy of its position in the G8.

We, the foreign ministers of Canada, France, Germany, Italy, Japan, the United States and the United Kingdom, condemn the action of our fellow G8 member.

British Conservative Party leader David Cameron added:

Having Russia as a member of the G8 at a time when her troops are still on the sovereign soil of another country, I think, is inappropriate.

The countries also said that the action is contrary to UN Security Council resolutions, completely glossing over the fact that four of these seven countries committed precisely the same offences just five years ago. (It should be noted that Georgia is part of the Iraqi invasion coalition, albeit non-belligerent after a recent defensive troop recall.)

French President Nicolas Sarkozy described Russia's move to recognise South Ossetia and Abkhazia as an unacceptable attempt to change borders, despite the fact that his own government is one of three veto power UN Security council members that controversially recognised Kosovan independence in February.

At least when Dick Cheney chimed in, he qualified that the "unjustified" invasive action was taken against a democratic nation:

That young democracy has been subjected to an unjustified assault and the international community has joined in condemning Russia's invasion of a sovereign, democratic neighbor and its recognition of Georgian regions of South Ossetia and Abkhazia.

The US government apparently believes that it's okay to invade two sovereign nations, depose their governments and install leaders more to their liking as long as those nations self-regulate in a manner different from itself. Personally I am a fan of democracy, but those countries which have for whatever reason gone down a different path have every right to follow it, whilst other nations have no right to interfere. American politicians seem to disagree; it's only unacceptable if the invaded country happens to share our political structure.

They're not alone. British Foreign Secretary David Milliband — no significant contribution from Gordon yet, evidently — warned Russia that it "must not start a new Cold War". In doing so, he played on the prevailing opinion of Western culture that the former Soviet state was the only aggressor in the original one. It is my belief that Western governments, with the help of the media, are seizing the opportunity to paint Russia in a dim light and prevent what some said was an imminent rise of international standing for the Eastern bloc nation.

In reference to an article written by Dmitry Medvedev, Miliband added:

The Russian president says he is not afraid of a new Cold War. We don't want one. He has a big responsibility not to start one.

To that, Mr Miliband, I submit that it is in fact the responsibility of everyone — involved and otherwise — to prevent a new Cold War. If he really does not want one, perhaps he should stay out of Russia's and Georgia's business and stop stirring up trouble.

And that goes for you too, George.

Discuss.

Tags: , , ,
Permalink | [2] Comments  
Two Days Late Ain't Early

Police in Shropshire are planning to enter the burnt-out home of a missing family within the next 24 hours, reports the BBC.

The mansion near Maesbrook was apparently the target of an arsonist back on Tuesday; three horses were found dead. Although a man, woman and 15-year old daughter are "missing" along with their two dogs, police have not been able to enter the house until the fire department declare it safe.

It's good news that officers will finally be allowed to determine the family's fate, but I can't quite understand BBC Online's subtitle for the story.

Police hope to be able to enter the home of a missing family that was destroyed in an arson attack as early as tonight.

Under precisely what definition is fourty-eight hours after an incident deemed "early"?

Tags:
Permalink | No Comments  
Tomalak's Tuesday Tip

I might write a tip every week: I certainly seem to make enough mistakes to come up with them with such frequency.

Today I quickly point out a possible bug that can easily come about in C++ if you're altering interfaces. I had an stdlib vector of items that was being passed in from another class by reference that was then passed to a function:

When I came to making my code more efficient, I noticed that the internals of f() would be better suited to work with an array of doubles, rather than an stdlib vector. (To be precise I was passing vertex data to OpenGL for rendering, but I've greatly simplified the story for this post.)

Taking advantage of the contiguous storage afforded by stdlib vectors I simply passed a pointer to the first element, thus bypassing the auxiliary members of std::vector and effectively providing a simple array reference:

So far so good.

Eventually I altered the structure of DataSource (and this is why interfaces should be frozen before implementation, people!) to always pass around pointers where necessary, to help avoid accidental data duplication. I figured that my compiler would help me update all my references to items so I didn't spend too much time tracking down all affected lines.

The result was this:

My expectations fell apart the moment I realised that relying wholly on compiler error messages is a Bad Idea. In fact, the above code is not an error; it merely isn't what I meant. Instead of giving me a pointer to the first element in the vector, it gave me the address of the pointer to the vector, which wasn't entirely useful. This side effect of C++'s implicit array-access-to-pointers had me chasing a segmentation fault in OpenGL for three days.

The corrected code reads thus:

And that could probably be done a whole lot nicer; but it compiles, runs and functions without mangling my machine's memory.

The moral of today's story is that if you really, really must alter an interface during or even after implementation, do not rely on your compiler to help you find change points: search for them yourself with a fine tooth comb. Or, ideally, just get your interface right the first time. That's what I'll be doing from now on.

Updated 11/08/2010: Left-aligned asterisks/ampersands in types, and replaced "STL" with "stdlib". I've learned a few things in two years.

Tags: , ,
Permalink | No Comments  
Just What Doesn't IE6 Content-Accept?

Today at work I discovered a flaw in our framework that was really pretty obvious from IE6, but hadn't been noticed at all pre-testing because nobody expected it.

Our MVC architecture (Model, View, Controller) is capable of responding to HTTP requests with Smarty-generated template output, plain text, or image data. Plain text is used only for debugging and the template output is basic HTML. Both of those are fine.

When we came to implementing database image retrieval, however, we relied on the notion that browsers send a Content-Accept header of "image/*" when bringing data into an <img> tag. We used this supposed fact to automatically serve the image data with an appropriate MIME type, and without attempting to pull an HTML template through.

Now, it would make a lot more sense for content to be served according to the controller that produced it, rather than by what the remote client says it ought to be. What can I say except "management"? The upshot is that the Content-Accept request header defines what type of response is sent back.

Alas IE6 fails when someone submits an HTML form, at which point it seems to noisily accept pretty much anything. The exact Content-Accept header received by the webserver after I submitted our application's login form from my copy of IE6 is as follows:

image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application */*

Overkill? I think so, since I can't think of any reason to specify all of these possibilities and a catch-all; meanwhile, we can no longer rely on the presence of an image/* type in a request's Content-Accept string to determine what view type is appropriate. After all, it's no use our application trying to compile valid image data from a "login successful" HTML page.

Bootnote

It would be better if IE6 just sent a / Content-Accept string if it really wants to. I don't know if IE7 does or not.

Tags:
Permalink | No Comments  
XMLFAIL

There is a growing trend in IT of managers and directors demanding the inclusion of certain technologies in projects just to seem 'cutting-edge', even if they are inappropriate. In particular, what I like to call XMLFAIL is a fast-growing form of idiocy.

Take, for example, the following bright idea from Christopher Green:

We can do this by using what web services use, XML serialization. Its a fast way of getting our data from the proxy class back to XML. Then deserialize the XML back to the entity class.

This within a system, which is pretty mad given how complex and slow XML parsing is, not to mention the relative bloat of an XML stream compared to many other data layouts. The propagation of .NET across what was once a fairly sane industry makes people so dumb.

Please, people, repeat after me: XML is not the answer to everything.

Permalink | No Comments  
Mother Russia to the Rescue

Tags: , ,
Permalink | No Comments  
What Facebook Still Needs

So Facebook's latest re-design is pretty much fully propagated now, which means the whole world is enjoying its AJAX-infested mess of User Interface confusion.

Posting on a wall under some circumstances can have the new post rendered inline under a previous date heading because "Today" doesn't show up until you physically hard-refresh the page. Weeks in and promises later, I can still be on my Home Page, click on the toolbar's profile link and have nothing happen.

These sort of problems are almost unendingly driven by overengineering and are more or less par for the course with Facebook these days. But even so, I'd like to draw attention to a couple of more fundamental things that are still chronically wrong with the site which the developers plainly refuse to change.

Facebook UI Evolution

Firstly, I would really like to be able to prevent my actions from going on everyone's News Feeds. Yes, I know they only appear to people who could see them anyway if they looked for them. Yes, I know I have extensive privacy controls at my disposal.

But, still, c'mon. Just because I'm out about in public doing my groceries doesn't mean I'm happy with someone standing on a rooftop with a megaphone, announcing my movements to everyone. Likewise, if I'm commenting on someone's wall I know that such an action will only be loudly announced to mutual friends. But it's still being loudly announced. It's unnecessary and scary, and to have no control over that is just daunting.

There's such a thing as subtlety and you, my dear Facebook, don't have it any more.

Secondly, and perhaps most importantly, I still can't re-order photo albums. What the heck's up with that?

Tags:
Permalink | No Comments  

Next Page »