Symbolic of California's struggle against reality - car insurance

Dear readers, it has been a busy couple of months, but I thought I'd check in after reading a barnstormer of a story from CALmatters. First, a little bit of background.

In October 2018, California Governor Jerry Brown signed the California Senate Bill SB 179, which created a new gender "nonbinary" designation for all forms of state ID - including, of course, driving licenses. This then gave drivers the option of listing their gender as nonbinary. Regular readers of the antics of the Californian government will be forgiven for not falling off their chairs at the realization that this has had some unexpected consequences.

It seems that as a follow-on, California's outgoing Insurance Commissioner Dave Jones issued a regulation last month prohibiting the use of gender in automobile insurance rating. One can speculate why he did this, but (judging from the self-centeredness of transgender people I've met around here) if I were a car insurance company, I'd be giving a hefty premium bump to anyone checking that box ; perhaps this was Mr. Jones' attempt to get out in front of that problem. Ten out of ten for forward thinking, minus several thousand for economic illiteracy - of which, more later.

The proximate effect: California's Department of Insurance has decreed that auto insurance companies can no longer grant breaks in insurance rates to teen drivers who are female, or charge young men more. So if you're a woman - in particular a young woman - in California looking to insure a car, you can expect your new rate to take a sharp move skywards:

[California auto insurers' rep] Frazier said the gender of teen drivers can result in an additional cost for boys or discount for girls of about 6 percent on their premiums.
Honestly, that seems low-ball to me:
The association also cited a 2016 Insurance Institute report saying: "Men typically drive more miles than women and more often engage in risky driving practices, including not using safety belts, driving while impaired by alcohol, and speeding."
Yep, I'd agree with all of that, especially for late teens/early twenties. Given that, a 6% male-over-female premium seems really low. I'd expect it to be more like 25%. We'll know for sure when insurance renewal rolls around and California girls start yelling on Twitter.

The real prize for willful ignorance or brazen lies, however, must go to the new Insurance Commissioner Ricardo Lara:

Lara supports that policy, saying in a statement: “Gender, race, ethnicity or sexual orientation are beyond your control, and it is not a fair or even an effective way to predict risk.
That's right, Ricky. Any insurance company could charge boys the same as girls with no additional risk, and quickly get every single boy in the country insuring their car with them, but they don't do so because they... like leaving huge sums of money on the table? Yes, that must be it.
Commissioner Ricardo Lara made history in 2018 by becoming the first openly gay person elected to statewide office in California’s history. Commissioner Lara previously served in the California Legislature, representing Assembly District 50 from 2010 to 2012 and Senate District 33 from 2012 to 2018. Commissioner Lara earned a BA in Journalism and Spanish with a minor in Chicano Studies from San Diego State University.
I guess he skipped all the finite math classes in high school. Or worse, he know's he's talking bollocks but simply doesn't care because no-one will call him on it.

Consider yourself called on it, Ricardo.

It's possible, however, that it won't actually work out in practice as Ricky intends. We saw how this worked out in Europe after a European Court of Justice ruling. [note: link from that notorious right-of-center rag The Guardian]:

But what has happened since the rules came into force? Instead of the gap between men’s and women’s premiums narrowing, as expected, it has actually widened. In 2012, men on average paid £27 more for a car insurance policy than a woman, but rather remarkably they now they pay £101 more – nearly a four-fold increase.
What appears to be at work is that car insurance companies set a price very much according to all the other data they can find on you – without actually asking your gender. So the quote you get back reflects the risks attached to your occupation, how much you drive, the sort of car you drive and whether you have made any modifications to the car.

Perhaps this is fine with Ricky - as long as there is the appearance of fairness, and he's protecting his favored class of people from reality, this is all Working As Intended.


Life of an actuary: more exciting than you might believe

When I was in university and hanging around the mathematicians - those students who dedicated their life to math(s), and I use "life" in the loosest sense possible - the standard joke was that the really successful ones would get involved in professional gambling[1], most of them would be accountants, and the ones who couldn't handle the excitement of accountancy[2] would become actuaries.

At least two of the three were true. Approximately the majority of the mathematicians I knew ended up in accountancy or related consultancy, and the actuaries were definitely around the low end of the social scale in the subject. Given the starting point of a mathematics degree, that's a scale needing very fine calibration. Anyone who chose optional courses in computer science ended up working for Big Tech and making out like a bandit.

Today I stumbled across a site Be An Actuary, which is (as far as I can tell) not a spoof site. It contains invaluable advice and guidance on what to do if you feel that actuarialism[3] is your calling, and a critical piece of information is what a day in the life of an actuary is like.

Before reading these quotes, you may wish to equip yourself with a spoon[4].

So far today, I've researched the applicable accounting rules and written a report for a client who's acquiring a small life insurance company.
Be still my beating heart.
I am constantly asking myself "Does this make sense?".
I'm assuming that "this" doesn't apply to "my terrible career choice". But it should.
In a midsize company like mine, there is also opportunity to price a new product, which takes creativity, or respond to an insurance department inquiry, which requires communication skills and tact.
Or, in despair at my life, throw myself through a 10th floor window, which requires a good run-up.
I currently manage three reserving analysts and we spend most of our time doing reserve analyses and projects like catastrophe modeling, loss modeling for some of our low frequency/high severity lines, and supporting our Corporate Actuary as he writes Actuarial Opinions and Reports.
You should spend some time on serious introspection on how your life got to be this way.[5]

If you still have more than one eye remaining to view the remainder of this blog post, you're a more resilient person than me.

[1] Specifically, running the numbers games in the casinos rather than playing them.
[2] Yes, that's irony.
[3] Probably not a word, at least I hope not.
[4] Because it's DULL, you twit. It'll hurt more.
[5] Probably, you have Korean/Indian/Chinese parents and you paid more attention to their ambitions than your desires.


Unionism in Silicon Valley - called it

Back in January I made the following prediction:

What do I think? Twitter, Facebook and Google offices in the USA are going to be hit with unionization efforts in the next 12 months, initially as a trial in the most favorable locations but if they succeed then this will be ramped up quickly nationwide. This will be framed as a push to align the companies to approved socially just policies - which their boards mostly favor already - but will be used to leapfrog the activist employees into union-endorsed and -funded positions of influence.

Sure enough, a bunch of Google staff walked out of work today, nominally to protest at ex-Android head Andy Rubin getting a cool $90M in severance after being accused of dubious behaviour with someone in a hotel room, which he denies:

Rubin said in a two-part tweet: “The New York Times story contains numerous inaccuracies about my employment at Google and wild exaggerations about my compensation. Specifically, I never coerced a woman to have sex in a hotel room. These false allegations are part of a smear campaign to disparage me during a divorce and custody battle. Also, I am deeply troubled that anonymous Google executives are commenting about my personnel file and misrepresenting the facts.”
For the record, Rubin sounds a bit sleazy even if you apply a high degree of scepticism to the exact circumstances of the event.

Let's look at the "official" walkout Twitter account, and wonder who's actually driving this organisation:

For posterity, the "demands" are:
  1. An end to Forced Arbitration in cases of harassment and discrimination for all current and future employees.
  2. A commitment to end pay and opportunity inequity.
  3. A publicly disclosed sexual harassment transparency report.
  4. A clear, uniform, globally inclusive process for reporting sexual misconduct safely and anonymously.
  5. Elevate the Chief Diversity Officer to answer directly to the CEO and make recommendations directly to the Board of Directors. Appoint an Employee Rep to the Board.
Points 1-4 seem pretty reasonable - but what does point 5 have to do with the rest of the list? And who would this "Employee Rep" be - a unionisation activist, perchance? $10 says I'm right. This is a classic tactic: take a reasonable area of complaint and use it as a Trojan Horse to sneak in the early stages of unionisation to the company.

Google allegedly employs very smart people. If only they exercised their critical faculties half as well as their intellects, they might be asking uncomfortable questions of the protest organisers about where point 5 came from and who the organisers have in mind to take on "employee rep" duties. I guarantee you that it's not Rob Pike or Jeff Dean.


CASH / CASSH 2017 and the importance of attracting funding

Both my regular readers will recall my personal crusade to investigate the Marcela Trust and why UK "charities" such as "Consensus Action Salt for Health" (CASH) and "Action on Sugar" (different branch of same charity) are being funded to stop people eating bacon.

As part of this ongoing investigation I downloaded CASH accounts for 2016-2017 from the UK Charity Commission website. Saved a copy as well for future reference. The TL;DR:

  • Rebranded to Consensus Action on Salt, Sugar and Health (mission-merged title, happened some time after April 2016);
  • Notes that they're associated with charity Blood Pressure UK featuring long-time CASSH reps Katharine Jenner and Prof. Graham MacGregor (and they accidentally mis-cite the charity number, it's 1058944 not 1059844);
  • Blood Pressure UK burned through 30% of their funds in year-end 2017 (£210K to £140K) so it's anyone's guess how long this venture will last without a cash infusion;
  • CASSH brought in £50K in 2017 - down from £215K in 2016 - and spent £250K in 2017 - up from £153K in 2016. So they're down from just over £750K in funds to a bit over £560K. This doesn't seem very sustainable long-term
  • Basically, no-one is giving CASSH any significant amount of money. Tragic, really. I'd imagine that the general choke-off in government funds to "charities" is starting to bite.
  • About half their expenditure is in food salt/sugar surveys; seems that those surveys aren't translating into funding for action. No-one cares about what they find.
  • In summary, CASSH is going to run out of cash in the next 3-5 years unless they can find a charity or government agency with reasonably deep pockets to fund their surveys

Great quote from their annual report:

Andrea Martinez-Inchausti told attendees [of the CASH reception at the House of Commons, sponsored by Sir David Amess MP] that BRC members, such as Tesco and Waitrose, are committed to salt reduction but following initial reductions, further reductions in salt are posing a technical challenge.
Let me guess: no-one wants to eat food with near-zero salt?

In fairness, I'd note that a key difference between CASSH and the Marcela Trust is that the latter sends large chunks of its finances to a few directors in remuneration, whereby CASSH at least has the decency to avoid hosing money at its trustees. (I'm curious about where in detail the £120K of survey cash goes, but have no reason to believe it ends up in CASSH trouser pockets).

Ah, CASSH. It seems that trying to reduce sugar and salt consumption in the UK, or indeed world-wide, is very much a minority interest and not one than people are prepared to back with significant quantities of their own money. I'm sure people talk a good game, but their revealed preferences in funding show that they don't actually care. Sorry guys!


Post Kavanaugh confirmation the Left loses its fecal matter

An hour or after Brett Kavanaugh was confirmed as the replacement for Associate Justice Kennedy on the Supreme Court I decided to trawl Liberal Twitter for the reaction. I was not disappointed.

Yes, I'd imagine it did. I wonder why history seems to be repeating itself?

Yes. They've given Republicans a significant boost in advance of the November mid-terms, where Democrats were previously indicated as performing well. Well done survivors! Bet you're pleased.

The Democratic party?

Also, the republic's legislative branch function of selecting the members of the judiciary.

It says "men can be just as blind to facts and the principles of justice as women. Yay equality!" Also "what's with the red suit, Reverend, are you trying to attract attention to yourself rather than your celestial Boss?"

Should we bring Bill Clinton's hands into the discussion then? How about (Heaven forfend) Joe Biden's?

I'm fine with making these cheap shots. The Democratic senators and associated mob who tried to lynch Brett Kavanaugh made this confirmation expensive enough for him and his family - and for Christine Ford, let us not forget. Let's have some symmetry.


Mandatory women on California boards of directors: the potholes in SB-826

In a huge strike for equality[1], California has decreed that all-male boards of directors need to go the way of the dinosaurs:

This bill, no later than the close of the 2019 calendar year, would require a domestic general corporation or foreign corporation that is a publicly held corporation, as defined, whose principal executive offices, according to the corporation’s SEC 10-K form, are located in California to have a minimum of one female, as defined, on its board of directors, as specified. No later than the close of the 2021 calendar year, the bill would increase that required minimum number to 2 female directors if the corporation has 5 directors or to 3 female directors if the corporation has 6 or more directors.
Of course, there could be no material ill effects from this policy. Otherwise, I'm sure they'd have been addressed in the California Senate, whose members are clearly much more concerned with the financial health of their state rather than virtual signaling.

Speaking of which, I have a very attractive bridge situated between San Francisco and northern California which I'd be willing to sell to any interested reader.

Did anyone notice that this implies that it requires moderate-sized boards to move to 50% female representation within three years? I'm sure that this is excellent news for moderately-well-known near-C-level (tech, pharma) females in California. If I could buy shares in this demographic, I'd be all-in. However, a more directly accessible trading strategy would be based around the aforementioned set of California-based companies with 10 or fewer board members. Please note that this is not professional trading advice, you'd be crazy to trade based on the superficial research of a random person on Twitter, etc.

  • For any such company which already exceeds the 2021 criteria, hold.
  • For any such company which doesn't currently meet the 2021 criteria but will meet it with 1 additional board hire, sell if you hold it.
  • For any such company which needs to hire 2+ females to meet the 2021 criteria, sell short based on the predication of a 2022-2023 disaster
Bringing in people to the board based on gender is unfortunately disproportionately likely - based on ease of discovery - to incorporate vocal SJW-biased women who spend the majority of their time selling the story that "women are discriminated against in tech!" Now, this may even be true - in my experience, it's not, but that's another blog post - but by hiring these women the affected boards of directors are bringing aboard people whose primary interest is the "improve female representation in tech" narrative, rather than (say) "make this company work better and be more profitable". What could possibly go wrong?

In particular, any company hiring Anita Sarkeesian, Ellen Pao, Zoe Quinn, Brianna Wu, Erica Baker or other such vociferous campaigners in the context of this act is doing the equivalent of filling five of six chambers of a revolver with live ammo, pointing it at their head, and squeezing the trigger.

On the other hand, if a company's board can persuade one of its existing male members (ooh err) to "identify as female" then I'd go long on that company based on willingness to turn SJW rules back on themselves. What is California going to say? "Oh, you're not really a woman, you're just pretending?" According to the bill:

“Female” means an individual who self-identifies her gender as a woman, without regard to the individual’s designated sex at birth.
I'd imagine that any such willing volunteer would see a sharp bump in their compensation.

Practically, this incentivizes a medium-size board of directors which has at least one woman to trim excess (male) directors in order to bring them into compliance without introducing a potentially disturbing (female) member to the board. Expect to see the distribution graph of board sizes in California to take a leftwards lurch in the next couple of years.

Now, let's consider the perspective of a woman hired to a board of directors in a California-based company after this law is passed. How many people in the company will believe she was hired for her expertise? And how long will she hold the label "diversity hire" - even if the board actually hired her for her expertise? If I were a C- or D-level female executive in California, I'd be spitting mad about this devaluation of my expertise. But then, I'd bet that the lobbying for this bill came from the achievement-challenged section of the prospective candidates. "Damn my dubious merits, hire me because I'm kinda-female and very woke!"

[1] For non-British readers, this is irony. There may be more instances of this phenomenon throughout this blogpost.


Victimhood poker - the implementation

Back in 2006, blogger Marlinschamps proposed the rules for the game of victimhood poker. In a spare couple of hours last weekend, I decided to code this up so that we had an implementation of it. Beloved readers, here is that implementation. It's in Python; I show it in chunks, but it should all go in a single file called e.g. victimhood.py.

First we define the cards in the deck, their points, and their class:

# This code is in the public domain. Copy and use as you see fit.
# Original author: http://hemiposterical.blogspot.com/, credit 
# would be nice but is not required.
import random
deck = {
 # Key: (points,class)
 'Black':           (14, 'skin'),
 'Native-American': (13, 'ethnicity'),
 'Muslim':          (12, 'religion'),
 'Hispanic':        (11, 'ethnicity'),
 'Transgender':     (10, 'gender'),
 'Gay':              (9, 'none'),
 'Female':           (8, 'gender'),
 'Oriental':         (7, 'ethnicity'),
 'Handicapped':      (6, 'none'),
 'Satanist':         (6, 'religion'),
 'Furry':            (5, 'none'),
 'Non-Christian':    (4, 'religion'),
 'East-Indian':      (3, 'ethnicity'),
 'Hindu':            (3, 'religion'),
 'Destitute':        (2, 'economic'),
 'White':            (0, 'skin'),
 'Straight':         (0, 'gender'),
 'Christian':        (0, 'religion'),
 'Bourgeois':        (0, 'economic'),
# Categories in the order you'd describe someone
category_list = [
categories = set(category_list)
In addition, a couple of helper functions to make it easier to ask questions about a specific card:
def cardscore(card):
 """ How much does this card score? """
 (s, unused_cls) = deck[card]
 return s

def cardclass(card):
 """ What class does this card represent? """
 (unused_s, cls) = deck[card]
 return cls
Now we define what a "hand" is, with a bunch of functions to make it easier to merge other cards into a hand and compute the best score and hand from these cards:
class Hand(object):
 """ A hand is a list of cards with some associated scoring functions """
 def __init__(self, start_cards=None):
  if start_cards is None:
   self.cards = []
   self.cards = start_cards[:]

 def add(self, card):
 def bestscore(self):
  (score, bestcards) = self.besthand()
  return score

 def bestcards(self):
  (score, bestcards) = self.besthand()
  return bestcards

 def besthand(self):
  """ What's the highest possible score for this hand?
  Limitations: one card per class, no more than 5
  cards in total
  Return (score, best_hand)
  score_by_class = { }
  card_by_class = { }
  for card in self.cards:
      s = cardscore(card)
      card_class = cardclass(card) 
    except KeyError, err:
      raise KeyError("Invalid card name '%s'" % card)
    if card_class not in score_by_class:
      score_by_class[card_class] = s
    if s >= score_by_class[card_class]:
      score_by_class[card_class] = s
      card_by_class[card_class] = card
  # We now have the best scoring card in each
  # class. But we can only use the best 5.
  cards = card_by_class.values()
  cards.sort(lambda x,y: cmp(cardscore(x),cardscore(y)))
  if len(cards) > 5:
    cards = cards[0:5]
  tot = 0
  for card in cards:
    tot += cardscore(card)
  best_hand = Hand(cards)
  return (tot, best_hand)

 def merge(self, hand):
  """ Merge this hand and another to return a new one """
  ans = self.copy()
  for c in hand.cards:
  return ans

 def copy(self):
  return Hand(self.cards)
 def __str__(self):
  return ', '.join(['%s (%d)' % (c, cardscore(c)) for c in self.cards])

 def card_in_class(self,class_name):
  """Returns a card in the given class, if the hand has one"""
  for card in self.cards:
   (s,c) = deck[card] 
   if c == class_name:
    return card
  # No match
  return None

 def description(self):
   card_order = [self.card_in_class(c) for c in category_list]
   card_order = filter(lambda x: x is not None, card_order)
   return ' '.join(card_order)
Now we can define a game with a number of players, and specify how many copies of the deck we want to use for the game:
class Game(object):
 def __init__(self, player_count, deck_multiple=2):
   self.player_count = player_count
   self.deck_multiple = deck_multiple
   self.player_hands = { }
   for i in range(1,1+player_count):
     self.player_hands[i] = Hand()
   self.community = Hand()

 def shuffle_deck(self):
   self.deck = []
   for i in range(self.deck_multiple):

 def deal(self, cards_per_player):
   for p in range(1,1+self.player_count):
     for c in range(cards_per_player): 
       card = self.deck.pop()  # might run out

 def deal_community(self, community_cards):
   self.community = Hand()
   for c in range(community_cards):
    card = self.deck.pop()

 def get_community(self):
  return self.community

 def best_hand(self, player_num):
   h = self.player_hands[player_num]
   # Expand the hand with any community cards
   h2 = h.merge(self.community)
   return h2.besthand()
Finally, we have some code to demonstrate the game being played. We give 5 cards each to 4 players, and have 3 community cards which they can use. We display each player's best hand and score, and announce the winner:
if __name__ == '__main__':
 g = Game(player_count=player_count, deck_multiple=2)
 # Everyone gets 5 cards
 # There are 3 community cards
 print "Community cards: %s\n" % g.get_community()
 winner = None
 win_score = 0
 for p in range(1,1+player_count):
  (score, hand) = g.best_hand(p)
  print "Player %d scores %d with %s" % (p, score, hand)
  print "  which is a %s" % hand.description()
  if score > win_score:
    winner = p
    win_score = score
 print "\nPlayer %d wins!" % winner

Don't judge my Python, y'all; it's quick and dirty Python 2.7. If I wanted a code review, I'd have set this up in GitHub.

So what does this look like when it runs? Here are a few games played out:

Community cards: Christian (0), Native-American (13), Gay (9)

Player 1 scores 40 with Non-Christian (4), Gay (9), Native-American (13), Black (14)
 which is a Gay Black Non-Christian Native-American
Player 2 scores 22 with Christian (0), Bourgeois (0), Gay (9), Native-American (13)
 which is a Bourgeois Gay Christian Native-American
Player 3 scores 30 with Destitute (2), Satanist (6), Gay (9), Native-American (13)
 which is a Destitute Gay Satanist Native-American
Player 4 scores 42 with Female (8), Gay (9), Muslim (12), Native-American (13)
 which is a Gay Muslim Native-American Female

Player 4 wins!

Community cards: Non-Christian (4), Bourgeois (0), Furry (5)

Player 1 scores 24 with Straight (0), Destitute (2), Non-Christian (4), Furry (5), Native-American (13)
 which is a Destitute Furry Non-Christian Native-American Straight
Player 2 scores 26 with Bourgeois (0), East-Indian (3), Non-Christian (4), Furry (5), Black (14)
 which is a Bourgeois Furry Black Non-Christian East-Indian
Player 3 scores 30 with Bourgeois (0), Non-Christian (4), Furry (5), Oriental (7), Black (14)
 which is a Bourgeois Furry Black Non-Christian Oriental
Player 4 scores 33 with Destitute (2), Handicapped (6), Muslim (12), Native-American (13)
 :which is a Destitute Handicapped Muslim Native-American
Player 4 wins!

Community cards: Transgender (10), Muslim (12), Oriental (7)

Player 1 scores 53 with Handicapped (6), Transgender (10), Hispanic (11), Muslim (12), Black (14)
 which is a Handicapped Black Muslim Hispanic Transgender
Player 2 scores 33 with Bourgeois (0), White (0), Transgender (10), Hispanic (11), Muslim (12)
 which is a Bourgeois White Muslim Hispanic Transgender
Player 3 scores 40 with Furry (5), Transgender (10), Muslim (12), Native-American (13)
 which is a Furry Muslim Native-American Transgender
Player 4 scores 37 with Destitute (2), Handicapped (6), Oriental (7), Transgender (10), Muslim (12)
 which is a Destitute Handicapped Muslim Oriental Transgender

Player 1 wins!

What does this prove? Nothing really, it was kinda fun to write, but I don't see any earthshaking philosophical insights beyond the fact that it's a rather silly game. But then, that's true for its real life analogue as well.

Programming challenge: build a function to instantiate a Hand() from a string e.g. "black east-indian handicapped female" and use this to calculate the canonical score. Bonus points if you can handle missing hyphens.

Scentrics worth half a billion quid - and other fiction

Regular readers (both of you) will recall my previous scepticism regarding IT "security" company Scentrics. TL;DR - they're pushing the idea that a key part of "secure" email is sending a copy of every email to a central server, encrypted with a key that only gives access to a trusted party - your local government, for instance. Singapore seemed very interested in their proposals, for reasons one can imagine.

Out of idle curiosity, I thought I'd check the Scentrics accounts for 2016-2017. Well, gosh.

 30 June 2017
30 June 2016
Fixed assets  
Intangible assets504,014,09220,455
Property, plant and equipment6,4638,618
Current assets  
Cash at bank893,8152,793,822
Creditors within 1 year(893,718)(893,232)
Net current assets1,051,6532,947,617
Total assets less current liabilities505,072,2182,976,690
Provision for liabilities(99,546,235) 
Net assets405,525,9832,976,690
Capital and reserves  
Called up share capital130130
Share premium5,778,5965,778,596
Retained earnings399,747,257(2,802,036)

How would I read this? They spent £1.9M of their cash on various things during the year; about half of that on medium-to-long term debt servicing, and the rest presumably on overheads (salary, office, patent office fees, other professional service fees). This is clearly not sustainable, and indeed last year they had a net worth (retained earnings) of minus 2.8 million pounds. How could this be fixed?

Well, they've just gained £504 million in intangible assets. The associated notes indicate a "revaluation" of their intangibles happened, which changed from £22K to £560M. There was a 10% amortisation charge ("spreading out") over the year, taking them down to a measly £504M. That's quite a change, what was involved?

Patents and licences were valued on an open market basis on 20 August 2018 by the Directors
There's also the useful information:
Patents and licences are being amortised evenly over their estimated useful life of ten years.
But there's no obvious licence revenue in the company accounts that I can see, and there's still only 4 employees (the directors) so they're not doing anything substantial with the resources, so I'd bet this £560M change is an evaluation of the worth of their patents. Let's look at these, shall we?

The main Scentrics patents pivot around the previously discussed system where a client (mobile, in the most recent patents, but there's nothing specifically "mobile" about them) talks to a centralised mail server to obtain encryption keys to safely send messages to it for routing onwards a destination, and then separately sends a copy of the message (asynchronously! wow, there's some modern thinking) to a "monitoring" server using a different encryption key.

Basically, it's a system for a company or government to enable scanning of email sent by its employees/citizens - as long as they're using its mail application, of course. If the employees use Outlook.com, Gmail, or any number of other public webmail services, they are sunk. So companies will block all the webmail applications by restricting the web browsers in their corporate devices, forcing use of the corporate mail server (Outlook, most likely) which they can snoop on. They don't need Scentrics' patents. Governments would need a willing population to live with the (likely) crappy, unreliable custom email application and not look elsewhere for their email needs. Even China struggles to keep up with restricting their population to approved websites, and they're a gosh-darned communist dictatorship.

It's not impossible that Scentrics reckons they can get a major corporation or government to licence their patents, but I'd have to rate it as unlikely at best. Why would someone pay £500M for it, rather than (say) £5M to get a moderately competent cryptographer to design a better system? The patent is extremely dubious to defend in my personal technical opinion; there are alternative strategies such as encrypting the message with a randomized key, encrypting that key with a) the recipient's key and b) the monitoring service's key, and enclosing both encrypted keys in the message. Then the client only has to send one message, and the monitoring service can store it and decrypt it on demand. But hey, what do I know.

Guru Paran Chandrasekaran and Andrea Bittau - happy to bring you gents up to speed on the state of modern cryptography, if you're interested. No charge!

(They've finally fixed their https problem. Guess it got a bit embarrassing.)

Update: Looks like Andrea Bittau was killed in a motorcycle crash last year. Nothing sinister, just terribly sad - 34 years old.


Marcela Trust 2017: where's the charity spending?

In my vast fields of free time, dear reader, I scour the accounts of the Marcela Trust so that you don't have to. The accounts for 2017 make interesting reading.

Long story short, the Marcela Trust is steadily burning through the money from OMC Investments, which in turn came from the wind-up of Nissan UK. As of the start of their 2016-2017 financial year they had £86 million; after a bunch of losses on the property market they were left with £81 million at the end of the year. This doesn't seem like a wonderful record for the year for their five trustees:

  • Jeanette Franklin MBE (of the Nuffield Orthopaedic Centre, MBE for fundraising for them)
  • Dawn Pamela Rose (Marcela Trust stalwart)
  • Brian Arthur Groves (Marcela Trust stalwart)
  • Mark Robert Spragg (Marcela Trust stalwart)
  • Paul Hotham (conservationist, also of Flora and Fauna International which has graced these pages in years past)
and yet the indications are that the trustee remuneration wasn't that much reduced from 2016 accounts. Dawn Rose trousered about £200K in total compensation (down from £270K last year) and Brian Groves got £80K rather than £100K last year. We don't know directly about a couple of the other trustees as they are paid out of a subsidiary company, but the pattern we can see is about a 20% payment reduction from 2016.

Now, the natural temptation is to ask the trustees how they can justify their salaries based on a £5 million loss over the year, but that's not fair - the value of investments can go down as well as up. We should evaluate them on how they manage the charity's spending on charitable causes - after all, that's what a charity is all about. And the accounts note specifically that the trustees do not actively fund-raise - although why they recruited someone with an MBE for fund-raising as a trustee is a bit of a mystery.

The Marcela Trust charity spent a bit over £12K on charitable activities in 2017. Last year it spent £4.8 million - but then, it got £4.75 million in donations.

One is left (per William of Ockham) with the hypothesis that the Marcela Trust trustees view their job as spending the minimum of money on charitable causes that they have to, while personally benefiting from the slowly diminishing OMC assets. I certainly don't know how they can look at this year's figures with a straight face and claim that they should be paid anything beyond a nugatory amount for their efforts.

The theme emerging from the last few years is that someone on the trustees is using the OMC funds to build a steadily growing property empire: among other investments, The Queen's Head Hotel ("QHH Limited"), the Old Post Office in Leeds, something referred to as Greyfriars Colchester which I assume is the eponymous luxury hotel, and now Castel Salbek which "acquired a property in Transylvania which is proposed to be developed into a small luxury hotel." What is a UK-based charity doing investing in a random small hotel in Transylvania? Your guess is as good as mine, but it doesn't seem to be a core focus for the charity, which makes me wonder which trustee has directed this investment, and how they (or their friends) expect to benefit from it.

If I were the Charities Commission, I think I'd be looking over the past few years of accounts and starting to ask some pointed questions about how exactly this entity is behaving as a charity in terms of fundraising for and investing in charitable causes, as opposed to being just a vehicle for speculating in (mostly hotel) property.


Blacklist your master, and whitelist your slaves - Silicon Valley word police

Working in Silicon Valley ("putting the crazy into California!") is always an education; there seems to be a Shepard tone of neuroticism in and out of the workplace. Every time you think you've seen the craziest thing you can imagine, something nuttier comes along shortly afterwards.

In the world of global-scale computing, big services like Facebook, Twitter and Gmail are very strongly interested in what happens when a machine in their service infrastructure fails. (This is relevant, I promise.) If only one machine knows how to handle data from user Joe, then Joe is going to be very upset when that machine reboots for an OS upgrade (5-15 minutes downtime), or worse becomes permanently unavailable because a data center technician accidentally bridged the rack bus bar onto the hard drive with her [1] screwdriver because she was paying too much attention to the shapely arse of the technician fixing the next rack over.

The natural solution is that you have multiple machines - maybe in multiple datacentres - which know how to handle data from Joe, and there's some kind of load-balancing across them which knows which of those machines are healthy, and which aren't. But out of all of those machines, you need to have at one which has the canonical state of Joe's data, and which all other machines agree to take data from. Otherwise you end up in the state where there are two or more different views of Joe's data, and can't tell which is valid. In that case, the machine with canonical state is known as the "master", and the other machines receiving state from it are known as "slaves".

I think you can see why this terminology has started to become "controversial" to the Usual Suspects:

The term Master in Master Components is potentially offensive to people of color and women, and I suggest we use a more inclusive synonym.
Proposed Solution:
Suggest renaming to "Primary Components" or "Leader Components"

(By contrast, when the failure occurs at a higher level in the software, you end up writing garbage to all copies of the data - on both masters and slaves. If you've overwritten previous data, your only hope is to bring it back from an earlier system state snapshot - witness this Gmail inbox wipe-out from 2011.)

That was silly enough, but now the common terminology of "whitelist" (allow these items, but not others) and "blacklist" (allow all items except these) has come under attack:

Per https://twitter.com/dhh/status/1032050325513940992, [Tweet by Ruby-on-Rails founder] I'd like for Rails to set a good example and tone by using better terminology when we can. An easy fix would be to replace our use of whitelist with allowlist and blacklist with denylist.
We can even just use them as verbs directly, as we do with the former terms. So something is allowlisted or denylisted.
Obviously the narrative here is that "black" is associated with negative connotations ("block") and "white" associated with positive connotations ("allow"). So I'd be fascinated to know why they continue to allow Code Pink to seize a positive affirmation space for people of the predominant Western European ethnicity, and refuse to attack the use of "yellow" for cowardice.

It's not just limited to colour of skin - there are a long-term crusades to stop people using "guys" as a generic term for a group of familiar people, "handicapped" for people who are disabled, and "innumerate" to describe Diane Abbott.

It's clear that this is a concerted effort to control the use of language in order to shape ideas - if you're forced to use an approved (restricted) vocabulary, you can't easily express concepts that are regarded as unacceptable by the vocab approvers. And if you think it's going to stop here, I have a bridge to sell you.

I don't have any intrinsic objection to using alternative terminology for master/slave, or for blacklist/whitelist. But I've scrutinised the people calling for this change, and I'm going to keep using the original terminology because civilised people should not yield an inch to these totalitarian fuckers.

If I were tired of employment, I'd be tempted to make a traditional English dish and bring it to my next group potluck. "Oooh, these are tasty, what do you call them?" "Faggots." It would be worth it just to hear the sharp intakes of breath and see the (put-on) outrage. I could even double down: "Are you saying my cultural heritage is offensive?" although of course I'd lose badly by the rules of intersectionality and Victimhood Poker.

[Complete tangent - traditional English terminology for the testicles of an animal is "fries", so you can have "lamb fries", "pig fries" etc. Therefore when someone from an older generation asks you "do you want fries with that?" you might get more than you bargained for.]

[1] All the recent training examples I've seen have had women take a dominant role as problem-solvers, and men nearly exclusively doing the stupid / illegal / morally dubious actions. In the spirit of gender equality, this is me trying to redress the balance.