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.