May 012014
 

Let me pretend for a moment that I am Vladimir Putin.

Our sole sea access towards the Mediterranean is from the strip of coastline on the Black Sea between Ukraine and Georgia. We have recently invested massively in a naval base at Novorossiysk, the only readily-accessible city, as the coastline southwards to Sochi is obstructed by mountains:

Ukraine / Russia / Georgia

Ukraine has had strong ties with Russia ever since we annexed the Crimean Khanate in 1783. Barely 25 years ago it became independent. The first 10 years were a mess, with a 60% loss in GDP. In 1996 Kuchma was elected president and as corrupt as they get. Since 2004 Yanukovych and Yushchenko have been taking turns at rigging elections and mis-managing the country, which is now in a shambles.

Earlier this year it is brought to my attention that the EU is negotiating closer ties with Ukraine. The logical conclusion is that Ukraine will sooner or later join NATO. When that happens, my naval base at Novorossiysk would be barely 125Km from Kerch, from whence it would be easy to deny us naval access to the Black Sea. This is strategically unacceptable, as sailing to the Mediterranean / Africa / the Middle East from the Baltic or the Pacific is unthinkable.

To keep unfettered access to the Black Sea, the area from Donetsk to Sevastopol cannot be allowed to present a threat to Russia, the question is: how do I achieve this?

Simply invading the area would probably succeed. The Europeans would procrastinate, Obama would chastise, but nothing would be formally done to stop me, and reasonably so: the Europeans need our natural gas and Obama has repeatedly shown that he won’t go to war just because some foreigner’s rights have been trampled.

That would be a crude solution, let me envisage a wiser plan:

  • Get the KGB to identify self-seeking troublemakers in Ukraine and encourage them to sue for ‘democracy’. Provide appropriate financing to sustain them for a few months.
  • Once the demonstrations are in full swing, send in half a dozen elite snipers to pick off the noisiest, thereby turning them into martyrs. Actively propagate the rumour that the snipers were Ukrainians, the Internet will do the rest. Pay said snipers handsomely to keep their mouths shut.
  • The troubles created will be enough to dissuade foreign aid and investment, the economy will tank, what remains of the government will be incapable of restoring law and order.
  • Announce that I am providing assistance to Russian nationals in Eastern Ukraine. To prove my good faith, get the KGB to suggest holding a referendum to some red-neck local, who takes the bait and goes on TV calling himself the new president of Crimea.
  • The outcome of the referendum is a foregone conclusion: Crimea wants to be part of Russia. For the stupid foreigners’ benefit, encourage the notion that Crimea and Eastern Ukraine are the same thing.
  • Stupid foreigners beguiled, instead of sending my troops to Eastern Ukraine, I send them to the Crimea to establish my strangle-hold on Sevastopol.
  • Wait a few months, to let the world accept that Crimea is once again part of Russia.
  • Based on the success of the Crimean referendum, find a clown in Donetsk to suggest a similar referendum in what really is Eastern Ukraine, roughly from Kharkiv to Melitopol.
  • Rig said referendum if necessary, funds are no object. The line east of Kharkiv – Sevastopol is now part of Russia and I’ve achieved my goal.
Jan 312014
 

I knew that LINQPad was good, but hadn’t realised that in addition to LINQ proper, one can write whole programs, complete with generics:

Function Rank(Of T As {IComparable(Of T)})(items As IEnumerable(Of T), item As T) As Integer

   Dim ranked = From i In items
                Order By i
                Select New With {
                   .key = i,
                   .ranking = (From r In items
                               Where r.CompareTo(i) < 0).Count + 1}

   Return (From i In ranked
           Where i.key.CompareTo(item) = 0
           Select i.ranking).Single

End Function
        
Sub Main()
   Dim l As New list(Of Integer) From {9, 1, 3, 8, 4, 6}
   Dim r As Integer = rank(Of Integer)(l, 6)
   console.write("6 is the " & r & "th element of ")
   For Each n As Integer In l.orderby(Function(x) x)
       console.write(n & " ")
   Next
   console.writeline()
End Sub

which correctly prints
6 is the 4th element of
1 3 4 6 8 9

To say that I’m impressed is a vast understatement.

Dec 102013
 

18 months ago I suggested that UBS get out of investment banking, if for no other reason than I was sickened by having to pay thousands of francs to bail a too-big-to-fail greedy bunch of arseholes who should have been hung out to dry long ago. I apologise for the strong language, but I really am sick and tired of this. In an unexpected move, they appointed Sergio Ermotti, a wise Swiss-Italian (like the brilliant Alfredo Gysi) as group CEO and he had the sense wind down the loss-making division. I’m far from ready to heap praise on UBS, but let us render unto Caesar, it’s a step in the right direction.

Nov 282013
 

The debate over e-cigarettes continues to rage, with statements that are often so extreme as to be laughable. I particularly enjoyed the latest from the European Commission’s proposal for Article 18 which states

Electronic cigarettes are a tobacco related product.

This makes as much sense as saying

Caffeine is a cocaine-related product

because they have similar-sounding names. Nicotine can be synthesised in a laboratory. The fact that it is cheaper to extract it from tobacco demonstrates convenience, not necessary relation.

Let’s look at some facts about nicotine’s properties, in relation to other common drugs (I add the adverb ‘quickly’ as a reminder of Haber’s Law):

  • Caffeine is a widely-used addictive drug that is perfectly acceptable. The lethal dose of caffeine for rats is 192 mg/kg. A cup of coffee contains 40mg of caffeine. A 70Kg human will thus die on drinking 192*70/40=336 cups of coffee quickly.
  • Nicotine is widely portrayed as an addictive poison which should be avoided at all costs. The lethal dose of nicotine for rats is 50mg/Kg. A cigarette or equivalent use of an e-cigarette delivers about 1mg to its user. A 70Kg human will thus die on smoking (or equally vaping) 50*70=3’500 cigarettes quickly.
  • Alcohol is a widely-used addictive drug that is perfectly acceptable. The lethal dose of ethanol for rats is 7’060 mg/kg. A 70Kg human will thus die on drinking 7’060*70=~494g (about 1.2 liters of vodka) quickly.

I’ll be accused of bias, but it seems much easier to drink a couple of bottles of vodka than it is to to drink 33 liters of coffee. Smoking a few thousand cigarettes (or vaping the equivalent) is simply impossible, in a relatively short space of time. The point here is that abusing anything quickly enough will kill you.

Long-term use presents a different picture.

  • Caffeine has no known dangers.
  • Cigarettes are a health risk. “In 2000–2004, cigarette smoking cost more than $193 billion“.
  • Alcohol is too. “The economic costs of excessive alcohol consumption in 2006 were estimated at $223.5 billion“.
  • Vaping is recent, so there are no long-term studies, but nicotine alone has never been associated with a health risk and propyl glycol is innocuous.

The medical profession seems to agree with me:

“Nicotine itself is not a particularly hazardous drug, says Professor John Britton, who leads the Tobacco Advisory Group for the Royal College of Physicians. It’s something on a par with the effects you get from caffeine.
If all the smokers in Britain stopped smoking cigarettes and started smoking e-cigarettes we would save five million deaths in people who are alive today. It’s a massive potential public health prize.”.

How is it that policy makers ignore this? The answer is obvious, unless you fall under Hanlon’s Razor; the truth is this:

  1. Governments collect some 400 billion $ in cigarette taxes yearly
  2. The tobacco industry profits were ~$35 billion in 2012. They have both the clout and a strong incentive to eradicate vaping by promoting regulation to restrict e-cigarettes.
  3. The pharmaceutical industry sells close to a billion $ in Nicotine Replacement Therapy products. They will logically lobby to maintain this profitable business.

My advice to vapers: Buy a 20-year stock of 100mg/mL e-liquid (a few liters) whilst you can and hide it in your cellar; the 600% nicotine tax is just around the corner.

Nov 152013
 

That people find smoking objectionable is perfectly understandable, cigarette smoke contains a plethora of undesirable substances, many of them carcinogenic. For many years I have smoked away from everyone for the obvious reasons.

I recently replaced 40 years of smoking Marlboro lights with vaping. Absolutely nothing to be proud of nor news-worthy in any way, it simply seemed reasonable, once I had learned of the alternative, to replace a health-endangering activity with one that was less so.

Given that vaping presents no risks to bystanders, I quietly vaped at my office desk. Not a day later, complaints were raining and a manager called me in, declaring that vaping was forbidden.

Fine. At the next restaurant I visit, I will complain vehemently about the man who eats with his mouth open and demand that the old biddy with her Chihuahua be expelled from the restaurant immediately.

Mar 192013
 

Word 2007 recently balked when re-opening a file I had spent quite some time on, with “The file cannot be opened because there are problems with the contents”. Not to worry, I said to myself, the Details>>> button will tell me what’s wrong. I couldn’t have been more wrong, it said “No error detail available”. This is bad programming at its worst. If Word has figured out that the file is unreadable, it must by definition know why it can’t read it; either it can read it or it can’t and it has to know why. If one of my programmers did something like that they’d be enjoying a very long weekend, apparently not the case at Microsoft.

Some Googling later I’d discovered a raft of morons trying either to make me download some virus-riddled software or promising to repair my file for 22$. SavvyCorrupt is a prime example, he has the balls to post on SourceForge, but without publishing the source. TechRepublic has the usual collection of spam links and if you’re really have a soft spot for viruses, you might like to try wordrepairrecovery DOT com, repairmyword DOT com and all the other spammers.

The solution is remarkably simple and little-advertised: Open Office. I installed it and opened my ‘damaged’ docx file with only a slight loss in fidelity; a “Save As .DOC” and I was a happy man.

As our American friends would say, “your mileage may vary”, but it worked perfectly for me.

Mar 172013
 

The European Union has decided to bail out the Cypriots on the condition of imposing a 9.9% one-off tax on holdings over €100’000 deposits in Cypriot banks and 6.7% below €100’000. The justification is that Cyprus only represents 0.2% of the EU GDP and the holdings in question are held mostly by rich Russians and a handful of under-represented Brits. Be that true or not makes no difference; citizen X living in Cyprus has exactly the same rights as citizen X living in France, Germany or wherever. Unilaterally confiscating a citizen’s assets without due cause is not only unacceptable, it is theft. Were my government to propose such a measure, my instinctive reaction would be to buy a weapon; for if my basic property rights are no longer secure, there’s little left else to lose.

Mar 012013
 

The European Union seems close to making a law that limits excessive bonuses. Few will disagree that the finance industry needs to be curbed, and the intention is good. The problem is in the method proposed; no matter how carefully it will be worded (the text apparently runs to over 1’000 pages), they’ll always be someone smarter to find a work-around.

The wiser and far more concise solution problem was proposed by the Swiss entrepreneur Thomas Minder in the initiative he made back in 2008. Here is an English translation, which I made from the official German and French texts:

Federal Peoples’ Initiative “against Rip-off”[1]
The Swiss Federal constitution of 18 April 1994 is completed as follows:

Article 95, alinea 3 (new)

In order to protect the economy, private property and shareholders and to ensure sustainable management of businesses, the law requires that Swiss public companies listed on stock exchanges in Switzerland or abroad observe the following rules:

  1. Each year, the Annual General Meeting votes the total remuneration (both monetary and in kind) of the Board, the Executive Board and the Advisory Board. Each year, the AGM elects the President of the Board or the Chairman of the Board and, one by one, the members of the board, the members of the Compensation Committee and the independent proxy voter or the independent representative. Pension funds vote in the interests of their policyholders and disclose how they voted. Shareholders may vote electronically at a distance; proxy voting by a member of the company or by a depositary is prohibited.
  2. Board members receive no compensation on departure, or any other compensation, or any compensation in advance, any premium for acquisitions or sales of companies and cannot act as consultants or work for another company in the group. The management of the company cannot not be delegated to a legal entity.
  3. The company statutes stipulate the amount of annuities, loans and credits to board members, bonus and participation plans and the number of external mandates, as well as the duration of the employment contract of members of the management.
  4. Violation of the provisions set out in letters a to c above shall be sanctioned by imprisonment for up to three years and a fine of up to six years’ remuneration.

Article 197 chapter 8 (new)

Pending implementation of the law, the Federal Council shall implement legal provisions within one year following the acceptance of article 95 alinea 3.

The genius of Minder’s text is that instead of setting limits on bonuses, it simply forces shareholders to approve them every year, whilst ensuring that it’s the real shareholders that vote.

We’ll be voting on it this weekend (I already voted for) and it seems that it has a good chance of passing. If it does,

Minder’s text was passed on the 3rd of March 2013 by all the counties and an astonishing 67.9% of the voters. Of the 183 initiatives submitted to the vote in Switzerland since 1893, only 21 (8.7%) have been accepted. 67.9% is the 3rd highest score ever obtained by a popular initiative. The highest score, 83.8%, was obtained in the 1993 initiative to make the 1st of August a National holiday; hardly ground-breaking. The 2nd highest score, 71.4%, was for the 1921 initiative on international treaties.

I predict that the concept will gradually be adopted globally and Thomas Minder will be recognised as the father of a new era in corporate governance.

1. It is difficult to find an exact translation of Abzocker. Cheater, swindler, deceiver and liar are all close. Abzockerei literally means rip-off, but Abzockerei isn’t slang. Scam is another synonym.