2018-09-06

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:

#!/usr/bin/python
# 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 = [
 'economic','none','skin','religion','ethnicity','gender',
]
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 = []
  else:
   self.cards = start_cards[:]

 def add(self, card):
  self.cards.append(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:
    try:
      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:
   ans.add(c)
  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.shuffle_deck()
   self.community = Hand()

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

 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
       self.player_hands[p].add(card)

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

 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__':
 player_count=4
 g = Game(player_count=player_count, deck_multiple=2)
 # Everyone gets 5 cards
 g.deal(5)
 # There are 3 community cards
 g.deal_community(3)
 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
Investments10-
 504,020,56529,073
Current assets  
Debtors1,051,5561,047,027
Cash at bank893,8152,793,822
 1,945,3713,840,849
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)
 405,525,9832,976,690

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.

2018-08-26

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.

2018-08-25

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:

Problem:
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.

2018-08-08

BBC shilling for illegal immigration AGAIN

I don't want to claim that this is a trend but they have recent history in this area.

Today Ms Taylor Kate Brown, DC-based BBC reporter temporarily reporting from Mancos CO, reports on the plight of Rosa Sabido who's sheltering from ICE (Immigration and Customs Enforcement) in the local United Methodist Church who have decided to provide sanctuary to anyone breaking the law as long as it's just related to immigration. Anyone familiar with today's UMC will not be falling off their chairs in surprise.

I searched for the word "legal" in the article, and the only instance relevant to her actions was reported speech from an ICE spokesman:

She entered the country illegally and ignored multiple orders to depart
which, I note, nothing in the article tries to refute apart from a quote from Ms Sabido:
I've been trying all this time to become a citizen... I just tried to do the legal thing and in the end all I get was an order of deportation
The "legal thing" - presumably ignoring the (repeated?) deliberate illegal immigration into the USA which was the root cause of the pending procedures?

At least Ms Brown is honest about the motivation of Ms Sabido:

It is an extreme option and one that extracts a high and potentially lasting price.
Really? What "price" are we talking about? Presumably by Ms Sabido's calculations, it's worthwhile - what benefit might she be anticipating?
Rosa keeps busy but her time in the church is about waiting - waiting for a new Congress, waiting for a potential private bill, waiting for a different president.
Basically, a broad amnesty for people already in the US illegally. How nice to have a substantial fraction of a foreign government working directly for your benefit without any thought of payment - save, perhaps, a future vote in their direction?

However, I find the hints about the church itself of particular interest:

But sheltering Rosa was never the original plan. The church had spoken to a nearby organisation that believed there were a handful of families in the area at risk of deportation, all of whom had lived there for at least 10 years.
"They were our brothers and sisters," he says.
A few people left the church over the decision, but more have joined in support of Rosa, says Paschal.
Aha. I'm sure. So the pastor led the congregation into approving the sanctuary policy in support of a few people that they knew, but it turned out to be available to anyone in the neighborhood. Who knew?

Here's the church. Total congregation: 70. That means fewer than 30 people turning up regularly for services. In a town of 1500 with a total of 5 churches that doesn't look like a particularly successful church, and honestly I don't know how 30 people's contributions are funding a full-time pastor. One assumes that the United Methodist Church - or rather, their national congregational contributions - are covering the deficit. So the pastor doesn't have to have much local buy-in, he gets the $ from the mothership. Nice job, if you can get it.

Anyway, Ms Brown is officially no longer reporting for the BBC:

so this is presumably her swan-song. If she's moving out west in a career growth move, it's almost certainly to California so presumably this article is a final burnishing of pro-illegal-immigration credentials...

2018-07-23

BBC shilling for illegal immigration

I shouldn't be surprised at the BBC any more, but their article My life trapped in an American city was so egregious that I feel it deserves a thorough fisking.

My family and I migrated to Phoenix, Arizona, when I was eight years old. I'm now 22 and a student of engineering at the University of Texas at El Paso.
I'm not a criminal yet in a way I'm treated like one.

Well, your parents arranged to violate the immigration laws of the country in which you find yourself, so it's not surprising that the way you could be treated is analogous to the way that others who have broken the laws are treated. And I can't help but notice that you're not blaming your parents for this situation despite the fact that they explicitly arranged for it to happen.

El Paso has checkpoints around it where immigration officers ask for your documents, documents I obviously don't have. I can't leave the city or I risk deportation. Fortunately, my parents became US residents two years ago but, unfortunately, this isn't the case for my sisters, aged 25 and 18, and me.
When they got their papers they moved back to Phoenix in search of more job opportunities after four years of living here. But I risked putting my college education in jeopardy and getting deported if I crossed the checkpoint and was asked for my documents.

I also wonder whether your parents' immigration status would be jeopardized if USCIS found out that they were actively working to conceal other illegal immigrants - you and your sisters, specifically.

My parents visit me once every three or four months - because of work and other things they can't be here more often. But since they all moved I haven't seen my youngest sister. Her high school graduation was last month and I was unable to go even though everyone in the family was there. And I know neither one of my sisters will be able to attend mine.

On the other hand, you get a gratis US taxpayer funded high school education, and I can't help but notice a complete lack of gratitude for this.

I try not to complain since I'm the first of my parents' children to go to college. I feel very lucky. On the other hand, there are days when I'm just tired of it.
I feel like I don't have rights.

Well, you have all the regular rights of anyone within the United States, citizen or otherwise, as enumerated in the Constitution - in fact, a heck of a lot more than in Mexico. What you mean is, you don't have the right to be treated like a legal resident of the country - because you aren't. That's like me visiting Paris and complaining that I don't have the right to be treated like a French citizen. I'm not a French citizen, there's no prospect of me becoming one, and just because I'm touring the Eiffel Tower doesn't give me any rights to that status.

When they ask me "Why aren't you working? or "Why don't you drive?" I have to make them believe that I'm lazy. So they just stop asking. The truth is I'm unable to work or get a driving licence.
As soon as we crossed the border I had to assimilate myself. I learned English and as I was learning it as a child, our teachers would straight out say "Stop speaking Spanish. You're in America now". A few months later I would win spelling bees - compete against white people who only spoke English - and still win.

You've done a great job of learning the language: fantastic! Just curious: what did you learn about the laws of the country you're living in, and the need to respect them? Because that's also kinda important.

After the 2008 recession my dad, a civil engineer, couldn't find a job in Phoenix and we lost the house we had. So we had to go back to Mexico.
I had such a terrible time, it was probably the worst of my life. I was so Americanised that I didn't fit in. That's what they ask you to do to be accepted in the American culture. I had lost my Mexican identity. We were there for a year and a half before we came back.

Looking at your age (22 now) this looks like: left Mexico at age 8, returned to Mexico at age 12, came back to USA at age 13/14. Pardon me for scenting a certain amount of license with the truth here. At age 8 you'd be speaking fluent Mexican Spanish. After 4 years in the USA you'll certainly have an American accent, but you'll be immersed in an immigrant community and frequently hearing and speaking Spanish. The problem is, you didn't like being back in Mexico because it wasn't as nice as being in the USA - even with all the illegal immigration limitations you document so heavily.

I know so much history about this country, more than average US nationals, and I have so much respect for it seeing as I get myself involved in politics to help improve this country's current state. I involve myself more than citizens, people who should worry more about this nation given that it really is theirs.

I see. So you don't think that, for instance, politics in the USA should be reserved for those who are actually citizens and bear voting rights and responsibilities? In fact, by the sound of it, you consider yourself better informed and more responsible than they are? I can't imagine that generating any resentment at all.

It's difficult to dream in a country that, regardless of everything I've done, which is what most immigrants do, doesn't welcome you even if you've seen it as home for most of your life.

I've found the USA very welcoming to immigrants. But then, I came here by following the rules that the USA had laid down for immigrants. Almost as if Americans don't appreciate those trying to end-run around the rules that others are following. Go figure.

I understand that they have the right to choose to whom they grant citizenship. I just wish they would give me some sort of help. I've given up part of my culture, my roots, to be accepted here. I've already given some of me.
Why can't this country give something back?

What, like a free high school education? A community which is so attractive that you'd rather live there illegally than in your home country legally? Legal status for your older sister and parents? Yes, you've really been hard done over by the USA.

Three semesters from now, when I graduate, I may still be deported. And I may never see my sisters again until they can get papers, which by the looks of it will probably be in 12 more years.

You should go and talk to Indian or Chinese H1-B visa holders and ask them about their timelime to permanent resident (Green Card) status. They'd love to only have to wait 12 years. If you want to see your sisters again, you can always go to Mexico after you graduate. What you're actually saying is that you prefer the economic and educational benefits of living in the USA to seeing your sisters. That's a perfectly rational choice, but it's your choice, and it's a bit much to blame the USA for the situation that you can't have your cake and eat it.

You can't deny that this has affected me. This shouldn't be happening.

Right. Your parents shouldn't have repeatedly violated US immigration law in the first place to put you in this invidious position. And yet that doesn't seem to be your point, for some reason...

Pull your head out of your ass, girl. If you really want to stay in the USA, find an American citizen and marry them. I assume that's how your older sister got her residence status. It may be a sacrifice - you might already be in love with someone who's not a USA citizen - but you have to decide what's most important to you.

2018-07-19

Redundant quotes in the news

Man scalped by grizzly bear says he's 'lucky' to be alive

OK, in what universe is he 'lucky' to be alive? Would anyone like to propose that the expected result of being scalped by a bear is anything but death? Anyone? Bueller?

He fought back, kicking the bear and punching its face. The bear released him and he ran inside. The bear had bit his abdomen and torn away part of his scalp and his ear, and he was bleeding profusely.
"There's a lot of blood I'm sure up and down the stairs," he said.
Without cell reception or a landline to call for help, Mr Carbery ran to his car as the bear chased him and drove himself to the nearest hospital.

While full of admiration for this gentleman's tenacity and instinct for self preservation (ignoring his questionable decision to approach a pair of grizzly bears without any kind of firearm, let alone one chambered in .700 Nitro express) I don't think we can ascribe his survival to anything other than sheer luck:

...the bear caught up with him at the door, picked him up by the skull and tossed him to the ground, he says.

If an anecdote in your life includes the words "picked me up by the skull", and you're recounting it, you're clearly luckier than the average.

2018-07-09

On politeness, and abuses thereof

Coming out of the supermarket today, I was assailed in the foyer by a lady in her early 30s standing in front of a poster advertising some kind of pet shelter charity, asking me:

"Do you prefer dogs or cats?"

I'm normally quite a polite person, but this lady was clearly exploiting the polite human instinct to respond to a apparently innocuous question as a hook to draw me into some conversation about the terrible conditions dogs/cats would exist in were it not for the sterling work of this shelter. Once you try to exploit my politeness, darling, you lose all your rights to it.

"Depends: roasted, or stewed?" I replied, and strode out to the car park. A sharp intake of breath and "Oh!" from behind me suggested that I'd hit my mark.

I've had it with the attempted exploits on decent behaviour - politeness, courtesy, fear of giving offence - with the aim of using it to further a political or commercial agenda. I've seen enough of it to be able to recognise when someone's trying it on, and they can expect a withering contempt in response. If more of the public took this approach, it might just dissuade the offenders from this abusive anti-social dialogue.

(For the record, I'm a cat person. Wash in my own spit, the whole deal.)

2018-07-08

How to kill Trusteer's Rapport stone dead

If you, like me, have had to wrangle with a slow and balky family member's Mac, you may have found the root cause of the slowness to be Rapport. This is an IBM-branded piece of "security" software, and has all the user friendliness and attention to performance and detail that we expect from Big Blue - to wit, f-all.

I therefore followed the comprehensive instructions on uninstalling Rapport which were fairly easy to step through and complete. Only problem - it didn't work. The rapportd daemon was still running, new programs were still very slow to start, and there was no apparent way forward.

Not dissuaded, I figured out how to drive a stake through its heart. Here's how.

Rapport start-up

Rapport installs a configuration in OS X launchd which ensures its daemon (rapportd) is started up for every user. The files in /Library/LaunchAgents and /Library/LaunchAgents are easy to remove, but the original files are in /System/Library/LaunchAgents and /System/Library/LaunchDaemons and you need to kill those to stop Rapport.

However, System Integrity Protection (SIP) on OS X El Capitan and later prevents you from deleting files under /System - even as root.

Given that, the following instructions will disable SIP on your Mac, remove the Rapport files, and re-enable SIP. You should be left with a Mac that is no longer burdened by Rapport.

Check whether Rapport is running

From a Terminal window, type
ps -eaf | grep -i rapport
If you see one or more lines mentioning rapportd then you have Rapport running and you should keep going; if not, your problems lie elsewhere.

Disable SIP

Reboot your machine, and hold down COMMAND+R as the machine restarts. This brings you into Recovery mode. From the menu bar, choose Utilities → Terminal to open up a Terminal window. Then type
csrutil disable
exit

Now reboot and hold down COMMAND+S as the machine restarts to enter single-user mode (a black background and white text).

Find and delete the Rapport files

You'll need to make your disk writeable, so enter the two commands (which should be suggested in the text displayed when you enter single user mode):
/sbin/fsck -fy
/sbin/mount -uw /

Now
cd /System/Library/LaunchAgents
and look for the Rapport files:
ls *apport*
You can then remove them:
rm com.apple.RapportUI*
rm com.apple.rapport*

Then
cd ../LaunchDaemons
and look for the Rapport files there:
ls *apport*
You can then remove them too:
rm com.apple.rapportd*

Restore SIP

Rapport should now be dead, but you should re-enable SIP. Reboot and hold down COMMAND+R to go back to Recovery mode. From the menu bar, choose Utilities → Terminal to open up a Terminal window. Then type
csrutil enable
exit

Reboot, and you should be done. Open a Terminal window, type
ps -eaf | grep -i rapport
and verify that rapportd no longer appears.

2018-03-24

Any mentions of Peter Wang or Chris Hixson at today's Marches for Gun Control?

I've been watching the gun control march speeches and Twitter today for mentions of Peter Wang or Chris Hixson - I may have blinked and hence missed it, but it's safe to say that Peter's sacrifice saving 15 of his classmates, and Mr. Hixson's sacrifice for his students, have not been prominent in today's discussions.

Might this be because the organizers find distasteful any possibility that there might be glorification of the military in this event? Peter was a JROTC member, posthumously accepted to West Point military academy, and Chris Hixson was a military veteran.

This whole "March for Lives" thing stinks of politics. This is not a spontaneous grassroots reaction to a school shooting. There's a carefully directed message coming from a central organization somewhere, and it ain't from a bunch of Florida high school students.

2018-03-17

Commando - the Russian Remake

I spent most of today trying to my US taxes, and mostly failing. Wrestling with the American Inland Revenue Service's forms is like wrestling with a pack of disgruntled alligators, except that the IRS is much more motivated than your average alligator to keep tearing off your limbs, and then patiently wait for them to regrow before tearing them off again.

I'm sorry, I got distracted in a mini-rant. Anyway, as part of my procrastination I discovered (don't ask how) that the Russian film industry had made an 80%+ shot-for-shot remake of everyone's favourite 1980's Arnie film "Commando" as "День Д" (D-Day), starring a chap called Mikhail Porochenkov who's every bit as manly as 1980's Arnie, but has much more comprehensible dialogue. Even though the film is in Russian without subtitles.

And, glory of glories, the movie is available in its entirety on YouTube:

For burning 90 minutes of your tax-preparation time, it's hard to beat. You can even play it at 1.5x or 2x speed, and not miss any significant dialogue or plot points.

Mr. Porochenkov delivers a very good alternate to Arnie's character, and the girl who plays his daughter isn't Alyssa Milano but she gets the job done. The Bennett (Vernon Wells) equivalent is awful, he's just a hulk of barely-speaking muscle rather than Wells' scarily crazy character, but the climactic fight between the two is, honestly, much more homoerotic than the original. It's quite disturbing.

The Cindy (Rae Dawn Chong) equivalent is a bit short on the emoting front, but is acceptably attractive, and within five minutes you're praying for their version of Sully (David Patrick Kelly) to suffer a long and painful death as long as it's a) soon and b) mostly off-screen. I suspect the Russian director's decision to move the shopping mall scene to a poolside location was strictly to increase the fanservice component of the film - for all sides of the audience,but at least they kept in a version of "This is my weak arm":

It's well worth 90 minutes of your time - or 60 minutes, or 45 minutes, depending on playback speed and your desire to hear the dialogue - to compare with and contrast to the original. Oh, those Russians.

2018-03-11

You can't spell "POLICE" without "ICE"

The shameless pandering of open-borders mayor Libby Schaaf of Oakland, CA has really been gripping my chaps. For a weapons-grade bit of trolling, and if I were particularly tired of life, I'd recommend walking the streets of Oakland with a T-shirt:

SUPPORT THE POLICE

Because, let's face it, you can't spell "POLICE" without "ICE".

2018-03-04

Bay Area digital road signs - some new messages

While driving along the freeway today (6 lane divided highway, 65 mph speed limit) there was one of the CalTrans digital information signs mounted on a trailer on the shoulder. These sometimes warn you of local hazards ("SHOULDER CLOSED AHEAD") or maybe more general public information ("SERIOUS DROUGHT HELP SAVE WATER"). This one caused my eyebrows to raise because it said "WATCH OUT FOR PEOPLE IN ALL ROADWAYS". Not the specific "ROAD WORK AHEAD, MEN IN ROAD" but instead an almost completely useless message with no specificity of time or location. And yet, someone had taken the time to add the message and show in on the freeway, so I can only imagine that random people wandering along the freeway is, or has been, a real problem.

This got me thinking about what messages might actually be useful and relevant to Bay Area drivers, based on the past few years of experience driving on their roads. I would suggest:

  • MIRRORS: THEY'RE NOT JUST FOR YOUR MAKE-UP
  • WHEN YOU REVERSE, THINGS COME AT YOU FROM BEHIND
  • INDICATORS: NOT JUST FOR WHEN YOU'RE PARKED IN A FIRE LANE
  • YOUR F-350 TRUCK IS NOT AN ELECTRIC VEHICLE, DON'T PARK IN THOSE BAYS
  • DRIVER WEIGHING 400LBS DOES NOT MAKE YOUR CAR A HIGH OCCUPANCY VEHICLE
  • LOOK FURTHER AHEAD THAN THE CAR IN FRONT ONCE IN A WHILE
  • PUT YOUR FUCKING PHONE DOWN, WE'RE NOT KIDDING
  • DON'T PARK DIRECTLY ON A CORNER
  • LET MERGING TRAFFIC IN AHEAD OF YOU, YOU SELFISH GIT
  • INSURANCE: IT'S NOT OPTIONAL
  • DON'T DRIVE AND EAT TAKEOUT FOOD FROM YOUR LAP
  • THERE'S A TRUCK IN YOUR BLIND SPOT
  • CHECK YOUR DAMN TIRE PRESSURE ONCE IN A WHILE

and let's not forget:

  • VISITING THE DMV? ABANDON ALL HOPE

2018-01-21

Prospects for unionizing in Silicon Valley

A topic I've heard increasing buzz about at parties[1] is the idea that Silicon Valley tech workers should be unionizing. The New York Times was discussing unionization in digital media a month ago:

Daniel Marans, a reporter at HuffPost, said the treatment of employees at digital media companies should not remain stuck in a time when websites were small and scrappy, staffed by younger workers who were happy to see their names in pixels.
"That comes to things like transparency on pay, having a decent pay scale that allows a ladder of sustainability where you can support yourself on such an income, and having due process and a guarantee of severance in the case of layoffs," Mr. Marans said.
Ooh, that looks like a great slate of demands, straight out of the union playbook. Let's unpack it.

The union demands

Transparency on pay
Know what everyone else is paid based on level - no practical scope for varying pay based on the positive or negative impact to the company. Any perceptible skew by race, gender or other minority status gets jumped on. This ties in to the next point very well.
Ladder of sustainability
a.k.a. "pay by seniority". The longer you work here, the more pay you get. No concept of "you haven't materially contributed more - or even as much - this year than you did last year, no rise for you." Per the above point, if you're a mother who's been working short hours to match with your daycare needs then you should be paid as much as a single man who's been employed for the same duration as you but has put in twice the hours. (Also as much as a single woman in the same situation as the man, which is even more invidious, but for some reason the law doesn't care about this situation.) And if you've spent 75% of your working day on Twitter supporting the Resistance Against Trump, or endorsing Chelsea Manning for Senate, that is a perfectly appropriate component of your day job.
Due process
Several states in the USA - including California, home of Silicon Valley - follow employment at will where a company can fire a worker just because they don't like them. They don't have to conduct a specific act of misconduct, it's just "it's not working out between us, goodbye!" There are carefully crafted exceptions in each state's laws, but the basic principle holds true for most employees. This violates one of the fundamental tenets of union laws worldwide - employees should not be fireable except in the most egregious circumstances.
Where you can support yourself on such an income
This refers to the lower-level employees - in practice, contractors - and the minimum wage. The more money union employees earn, the higher the dues that the union can ask for. "You're getting $15/hour? We Fought For Fifteen!" Of course, the employees who lost their jobs because their labor wasn't worth $15/hour don't really benefit from this. But screw them, right?
Guarantee of severance in the case of layoffs
As noted above, unions don't really believe in layoffs unless you're irretrievably conservative or Republican - in which case, fuck you. But if severance is unavoidable, you may be out of luck. I was surprised to learn that even in California, severance pay is not required although in practice it's present in most contracts.

Where is this coming from?

My personal opinion - which you should take with a whole bag of salt - is that this drive is a reaction to the past year's tepid (by Social Justice Warrior standards) reaction by Silicon Valley engineer peons to the cases of "hate speech" by such luminaries as Googler James Damore. The 2014 ousting of Mozilla's Brendon Eich seems to have been a misleading catalyst for social justice organizing: the perception was that the relatively small number of social justice crusaders had disproportionate power to influence media opinions and drive online lynch mobs.

The carefully union-unaffiliated Tech Workers Coalition has been pushing this line for a while:

The Tech Workers Coalition is a home for progressives in tech in the Bay Area. We’re an all-volunteer community organization. Our active participants include workers in the tech industry, members from labor union locals, community organizers, and friends.
"Labor union locals", huh? Why am I not surprised?
And now unions are concerned about the possibility of a nationwide “right-to-work” law which would effectively gut their funding. Tech workers need to stand with service workers in these fights.
Translation: we need tech money to fight the union-gutting right-to-work law. California in particular is not a right to work state - if you want to be a public school teacher, for instance, you're going to pay union dues.
Certain things are safer than others, and safer for different people. An undocumented contract worker is in a very different situation than a salaried citizen worker.
Well, there's the teeny tiny issue that the contract company is clearly breaking the law of the nation, so yes...
For tech, it’d be cool to see the strike weapon on the table. History shows us the tactics that will change the world for the better — the tactics that will not only get rid of Trump, but change the conditions that we’re all forced to live and work under.
Oh, that'll be an interesting one. Tech workers striking - "Facebook will go dark for 24 hours unless FB guarantees contractors the right to employ undocumented workers". How exactly do you expect the tech company leadership to react to this existential threat?

You should also give careful scrutiny to Coworker.org who has been publicly allying with union-oriented Silicon Valley employees. It looks to be funded principally by New Venture Fund (a $315M turnover organization whose turnover doubled from 2014 to 2015, and whose 2016 and 2017 turnover I'd be extremely interested to see. In turn they get "advised" by Arabella Advisors who have a very interesting management team with cited connections to e.g. Barack Obama's secretary of commerce, a company focus on regional food and divestment from fossil fuels.

Will it work?

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. That approach neatly nullifies the increasing concern about their lack of material contribution to the company as they spend more time on Twitter and producing social justice memes than actually writing code and making the applications work better.

I wonder, though. The bulk of Silicon Valley engineering employees - who are still the majority of the company - are white, Indian and Chinese males. They are used to ruthless meritocracy from the age of, oh, eight or so. The prospect that some slacker [foreign epithet] could supplant them in promotion or pay just by unfireably hanging around the company while they sweat blood, or block them from a union-favored sinecure by dint of being black / female / transgender / identifying as a dragon is unlikely to be something they'd lie down and accept. I fear that the social justice crusaders are mistaking silence for acceptance, and the settling of accounts after the unionization effort will be (metaphorically) bloody indeed.

I doubt this will get off the ground with Apple. They are notoriously controlling and will both detect and ruthlessly act on any twitches of unionization.

For Amazon, of course, it's much more simple. Any Amazon employee pushing unionization will be deniably but publically killed by an Amazon warehouse robot. I can't imagine Jeff Bezos taking such a challenge to his authority lying down.

TL;DR - there will be a big unionization push for Silicon Valley companies in 2018, and it will go horribly wrong.

[1] You almost certainly don't want to go to the kind of parties I go to. There are no kegs, vol-au-vents, or mini sausage rolls. There's organic Chardonnay, sushi of dubious provenance, and acceptably ethnic cuisine like Vietnamese bánh cuốn and Mexican chilaquiles. I happen to like bánh cuốn, but am under no illusion that the food and beverages are based on what the guests find appealing.

2018-01-13

Prediction for Hawaii in October 2018

Following the ballistic missile false alarm, a surge of babies will appear in Hawaii approximately 9 months from now as men and women clustered together under the bed decide to go out of this world in flagrante and without protection.

There may also be a bunch of unmarried teen pregnancies for those who didn't want to die as virgins...

Good news about Hawaii's ballistic missile warning service

It works!

Watching the 1pm (Hawaii) press conference, the Governor and the Administrator for Emergency Management are going through the expected self-flagellation. The Administrator commented "Our process is to have no more false alarms from now" and that now two people will be required to send out an alert.

The interesting questions, which the journalists don't seem to be asking:

  1. How many false alarms are acceptable - rather, what rate of false alarming is acceptable? Once in 30 years? Once in 10 years? Once a year?
  2. What are the benefits from a false alarm - e.g. testing the alert channel, prompting people to think about their emergency plans - and what are the costs - e.g. mental health events, car accidents, heart attacks, premature consumption of expensive whisky
  3. What actions taken to reduce the risk of false alarms increase the risk of a real alarm being delayed in sending?
Everything comes with a trade-off. The last question is probably the most important. If you only have 10 minutes from alert going out until missile impact (on the current plan), what happens if e.g. your requirement for two people to trigger the alert sending ends up causing a delay because one person isn't around? You just know it's going to happen:
"Hey Akamu, can you watch the console for the next few minutes, I just gotta go to ABC Stores to get some more chocolate macadamias?"
"Sure Alika, I don't want to call in Ula the backup guy if we don't really need to."

I'd like to see a public written postmortem about this incident. Redact names - replace them with roles e.g. "the coming-on-duty emergency alerts worker", "the going-off-duty emergency worker" - and explain:

  • what went wrong,
  • why it went wrong (following the 5 Whys technique),
  • what actions are being taken to remediate the risk, and
  • what do they aim to achieve in terms of the false alarm rate and the failure to alert probability?
Write it in a blameless fashion; assume good faith and basic competence by the people involved. If someone made a bad choice, or slipped and hit the wrong button, the problem isn't with the person - it's the process and technology that let them make that bad choice or press the button in a non-deliberate way.

One interesting question that was raised in the conference: why did some but not all of the sirens trigger? You'd want the process to be that both the sirens team and the alert message should monitor each others' output. If you're the siren operator and get the alert on your phone, the best strategy is to trigger the siren immediately to increase coverage of the alert. The impact of a false siren is much lower than impact of not playing the siren when a missile really is inbound because of the PACOM-to-sirens message channel failing. So maybe this was individual siren operator initiative - reward those folks, and make it standard procedure.

This is a great opportunity for the state government to demonstrate transparency and a commitment to making the systems objectively work better, rather than just playing to the press. Unfortunately, you just know that it's not going to happen like that.

2018-01-10

How To Not Get Your Ass Kicked by James Damore's lawyer

With apologies to Chris Rock

CEOs of major tech companies often worry that they might be the victims of political conservative persecution, so as a public service the Hemiposterical Blog proudly presents:

How not to get your ass kicked by James Damore's lawyer

Have your firm ever been face-to-face with a James Damore lawsuit and wondered, "Is his lawyer about to kick my ass?" Well, wonder no more. If you follow these easy tips, you'll be fine.

Communicate with care

You've heard people say, "Man, I wouldn't say that shit if I were you." Well, here’s some of that shit:

  • Calling people Nazis
  • Threatening to punch Nazis
  • Blocking contact with co-workers
  • Blacklisting co-workers
  • Denigrating men
  • Calling for people with non-liberal views to be fired

You know, you probably won't get your ass kicked in a lawsuit if you just use common sense.

If you make an intemperate comment about diversity then you might just get off with opprobrium from Breitbart; but if you allow a systematic campaign against white people in general and men in particular in your company then, maybe, you need your ass kicked.

Turn that shit off

Here's a no brainer: if your company's employees are spending half their time making SJW postings, then find the bulletin boards and mail lists generating those prejudicial posts and turn that shit off. Giving free rein to employees to make memes about punching Republican co-workers is just ignorant.

Filter your candidates

You want to hire a new employee? Not so fast, your candidate might be crazy! Before you let the candidate in the company, ask them these questions:

  • Do you tweet 20+ times a day on social justice issues?
  • Do you write ill-conceived rants on public blogs and forums?
  • Do you regard 60%+ of the country as basically Nazis?

If you want to hire a new employee, get a libertarian. They don't care what anyone else does as long as they're left alone.

If you get sued

And in case you do get sued, remind your employees to do this one thing:

Shut the fuck up!

If you follow these simple pointers, you probably won’t get your ass kicked by James Damore's lawyer.

2018-01-08

The best messaging advice I ever got...

...was that I should never write any email or document, internal or external to my company, that I would be unhappy seeing on the front page of the New York Times. Obviously this advice was from back in the days when a lot of people still read the NYT. Nowadays I guess the advice should be

"never write anything that you'd be unhappy to see 'trending' on Twitter or prominent on Reddit"

It seems that a bunch of people at Google, including many senior managers who should have known better, did not take that advice. Reading James Damore's lawsuit against Google (starting around the end of page 12, through page 44) he captured a bunch of invective-laden emails, forum posts and other internal content and his lawyer is using that as evidence that Google systematically discriminates against conservative viewpoints of its employees.

Now, I have no idea what the actual legal merits of the complaint are under California law - or any law system to be honest - but the individuals' emails and posts have handed Damore a giant stick with which to beat Google, and no doubt multiplied whatever amount that the lawsuit will eventually settle at. If they'd actually paused to think "how would it look if this email ever leaked?" then maybe this situation wouldn't be such a trash fire.

The alternative, mind you, is that the individuals did consider this risk, but thought "that's OK, all right-thinking people will agree with me when they read this." By their definition they may be correct, but I suspect that they will soon discover how much they are outnumbered by wrong-thinkers.

I'm going to be fascinated to see the reaction of the more conservative members of the press and blogosphere when they read through these posts.

Update: also look in the complaint at Exhibit B (page 74 onwards) with additional posts and memes. Holy crap.

2018-01-07

Solving the sub-letting problem

The mainstream media is curiously quiet about the practice of sub-letting: where tenant X rents a property at a substantially discounted rate - typically, from the local council - and then finds a sub-tenant Y who pays them less than the commercial rate but more than the discounted rate. X makes a profit of close to 100% of the differential. If the local rent for a 2-bedroom apartment in Camden is £2400/month and tenant X gets a council rate of 30% of that value, tenant X is paying £720/month and could easily charge tenant Y £1560/month, for a monthly profit of £840. The council - or rather, its taxpayers - are spending £1680/month for zero social benefit. Meanwhile, tenant X and tenant Y are laughing at them.

The effect of this phenomenon obviously depends on its frequency. If 1 in 1000 council tenants sub-let, this is too small to worry about. If 1 in 10 tenants sub-let, this rises to a significant level of concern.

Google found a very interesting study from 2012:

In 2,120 cases, 8 per cent of the total, HJK found "red" indicators of fraud, where the registered tenant had a mortgage, bank account, active credit or utility bills at another residential address.
In 3,180 cases, 12 per cent of the total, they found "amber" indicators of fraud – active credit, bank accounts, Sky TV or utility bill records held by a person with a different surname at the tenancy address, but no such activity there by the registered tenant.
In the light of the Grenfell fire, where the "rumblings" were that a significant number of tenants were sub-letting and hence it was difficult to identify who was missing and who was not, you'd have thought that there would have been more interest from the London councils in identifying illegal sub-letting - apparently not, though...

How to fix this? The first step is to find people who are being sub-let to but are unaware of this fact (their landlord is tenant X). Every council knows which properties it is providing at sub-market rates. Have a major cross-London publicity campaign with letter mailshots to "Occupier, <ADDRESS>" at each subsidised house; each letter says

we believe that you are tenant X and are currently paying £YYY/month to the council. If tenant X is not living at this address, please provide evidence of your current rent payments to them and we will accept you as a social housing resident instead of them, at that payment level. If you do not do this, and we subsequently find you, you will be evicted with no notice and we will impose a fine of £ZZZ
Complying sub-letters get a year of their current rate, then council has discretion to ratchet up the rent significantly above rent inflation (say, 3x).

Second step: exclude most innocent council tenants. Each 6 months, random visit from a council member. They provide their ID and ask to speak to tenant X face-to-face. Crucially, they don't arrange follow-up appointments - if they can't speak to X on the day, they call back one day in each of the next 2 weeks - but they do follow suggestions about what time of day is good to catch X. If they don't speak to X within 2 weeks, X gets a black mark.

Black-marked tenants then shift to being the subjects of active detection:

  • Inspect the mail going to that address: how much is addressed to X, how much to someone else? Check with utilities, specifically TV and mobile phone companies.
  • If there's significant evidence of sub-letting then bring in the police, enter and inspect the property, illegal sub-letters have their property seized.
  • Councils publish a bulletin every 6-12 months - sent to "Occupier, <ADDRESS>" at all subsidised housing - with statistics of sub-lets detected and seized, and the amount of money saved.
  • Active publicity to residents in the same building: "do you know of illegal sub-letting in your building? Provide evidence to us at <EMAIL> and be eligible for a reward up to £5000, no questions asked.

Coming back to the root cause, though - why aren't councils more interested in detecting illegal sub-letting? It's direct theft from them, and not small amounts either. If Geraldine in accounts snaffled £10K with invoice fraud over 12 months they'd happily throw her in jail and trumpet the detection. Why aren't they similarly vocal about the sublet fraud by Darren and Beyrooz which is ratcheting up a similar loss rate? Is it just too much hassle? Is this a classic example of P. J. O'Rourke's classification of "other people's money spent on other people" - you don't care how much is being spent, and you don't care whether the receivers are getting value for money, as long as you're getting your regular salary and don't have to work too hard?