Players are fallible; Refs shouldn’t be. Fans have to accept that even star players can have a bad day. That human factor is partly why we watch the game. But we fans are not ready to accept that referees can have a bad day too.

The sport is therefore obsessed with eradicating the human factor from referees in order to put an end to the imponderables of inconsistent official acts on aggrieved fans considered a real human rights violation around the world.

Football was slower than most sports to join the cause, which reflected his more fatalistic outlook on life. (Hey, sometimes life is tough and you end up in a miserable 0-0 tie.) In recent years, the world’s most popular sport has embraced the war on imprecise government.

In some leagues (I see you.) An, England) VAR, the “Video Assistant Referee”, has overwhelmed the game, with long breaks in action for remote officials to analyze slow motion videos with the same obsession that Zapruders’ footage from Dallas has. Lines are drawn on the screen to see if someone’s fingernail or uncombed hair was offside while the world holds its breath to see if a target should be. The NFL has long been happier with reviewing games because interruptions in action were already part of the game and because the league, inspired by American society litigation, brought the review process into the competition itself by awarding teams a certain number of Challenges.

After VAR was introduced into football to minimize referee subjectivity, the high priests of the game in Switzerland had to revise the rules of the game to minimize their inherent subjectivity. A good example of this was the handball rule revisions that attempted to remove a letter of intent to determine if a violation had been committed. The changes have wreaked havoc as officials have instead been “objectively” asked to determine if a person’s arm is in a position that would make their body “unnaturally bigger”.

In the current English season, the second , where VAR remote officials are present, after checking the slow motion replays from every possible angle, they call the referee on the field to look at the side monitor as if tossing their arms up and saying, “We don’t know what are you thinking? “

This brings us to the Facebook Oversight Board’s review this week of the company’s decision to indefinitely dismiss Donald Trump following his supporters’ arson in connection with the storming of the US Capitol on January 6th expose the platform. The Oversight Board believed that Facebook was right to block Trump’s posts for violating its guidelines against incitement to violence, but fail to specify where we go from here and throw the question back to the company itself. Regarding the “indefinite suspension” of Trump by Facebook, the board decided essentially according to the company’s own rules: “Yes, that’s not a thing”. It was determined that Facebook must make a clear and informed decision about Trump’s fate over the next six months, in line with Facebook’s guidelines, which currently include permanent bans and temporary suspensions as possible sanctions. The board also opposed Facebook’s request to propose clear criteria for distinguishing the treatment of officials from other users on the platform.

The decision must make Facebook CEO Mark Zuckerberg feel like an arbiter on the field feels that was called to the side monitor by VAR officials to see for themselves. Especially if that local arbitrator had spent $ 130 million setting up the VAR system to avoid the political issues associated with these calls.

I continue to be impressed with the thoughtfulness of the oversight Board, the global elaboration of these cases and the ambition to keep the company to a higher standard than before, even if these traits led to a somewhat frustrating outcome in this case.

As Rebecca Mackinnon wrote for Future Tense, those are Board powers to hold Facebook accountable, albeit limited, and one of the main levers normally available to hold management accountable at public companies is absent on Facebook – namely shareholder activism. That’s because Facebook has two types of stocks, and the Insider Class B stocks that you and I can’t buy counts 10 Class A votes each. MacKinnon rightly notes that corporate governance reform by Congress or the Securities Exchange Commission to target such two-tier stock structures would empower independent shareholders and dilute Zuckerberg’s power.

Which some tech watchers What may fail to realize is that traditional media outlets like the New York Times, Washington Post, and Dow Jones perfected such dual-share governance long before Big Tech encountered it, and it was defended in many areas to achieve Isolate They almost sacred trusts from short-sighted pressures from shareholders (how about we shut down some of those expensive overseas offices to maximize profits ?!) and, worse, from potential threats from shady interests. (Without his dual-stock structure, Donald Trump or someone else could have launched a hostile takeover bid on the New York Times a decade ago when the paper was in trouble and nominally not worth that much.)

By creating two Share classes have enabled newspaper companies to gain access to the capital markets while ensuring that their founding families retain the control they would normally exert over a private company, allowing them to remain committed to the enduring values ​​of their journalistic companies over the long term. Think of these companies as the equivalent of constitutional monarchies in the universe of otherwise democratic public corporations.

Now, Zuckerberg enjoys the same isolation from shareholders on Facebook as the Sulzberger and other media dynasties, which is particularly ironic since he’s been around for a long time opposed a comparison with these media publishers and the social and civic responsibility they assumed. This is a constitutional monarch who came to his throne who lacked a constitution or set of values ​​to protect them.

That could change over time as circumstances dictate. The fascinating question that arises in an exciting tug-of-war between Facebook and its oversight board is whether the company will inadvertently manage to outsource the acquisition of its own make-up, if not its own soul, or whether it will continue to insist on that The Chamber continues to review its arbitrary judgment, calls for a vacuum.

Katie Engelhart’s The Inevitable: Dispatches on the Right to Die explores questions we ask ourselves often but seldom aloud: What does it mean to die with dignity – and to live? Who can answer this question and for whom? Engelhart, a New America Fellow, interviewed “hundreds of people involved in assisted death in various ways, both inside and outside the law.” The result is an intimate, complex look at the right to die debate. – Mia Armstrong, frequent Future Tense contributor and coordinator of the Convergence Lab at Arizona State University.

On this week’s episode of Slate’s technology podcast, presenter Lizzie O’Leary discussed with Kate Klonick, one of the foremost thinkers in the field Platform governance, via the Oversight Board’s Trump decision. Last week, Lizzie spoke to Mike Isaac of the New York Times about Facebook’s war with Apple.

Please visit us online on Wednesday, June 9th at 6pm. Eastern for the first meeting of the Science Fiction / Real Policy Book Club, presented by Future Tense and our partners Issues in Science and Technology. Our first book: Autonomous by Annalee Newitz. Autonomous follows the story of a pharmaceutical pirate named Jack, an anti-patent scientist who aims to bring cheap medicines to the poor. Without revealing too many spoilers, Newitz’s story also contains a love story between military agents and robots, a pursuit of justice, and the danger that late capitalist modernity poses to personality. RSVP here.

Future tense
is a partnership of
New America and
University of Arizona
that examines emerging technologies, public order, and society.

“)), c = l (y [i.size_id] .split (” x “). map (function (s) {return value (s)}), 2), s.width = c [0 ], s .height = c [1]), s.rubiconTargeting = (Array.isArray (i.targeting)? i.targeting: []). redu (function (e, t) {return e [t.key] = t. Values ​​[0], e}, {rpfl_elemid: f.adUnitCode}), t.push (s)): r.logError (“Rubicon: bidRequest undefined at index position:”. concat (o), n, e ), t}, []). sort (function (e, t) {return (t.cpm || 0) – (e.cpm || 0)})}, getUserSyncs: function (e, t, n, r) {if (! D&&e.iframeEnabled) {var i = “”; return n&& “string” == typeof n.consentString&& (“boolean” == typeof n.gdprApplies gdprAp = “.?. “&gdpr_consent =”). Concat (n.consentString): i = “? gdpr_consent = “. concat (n.consentString)), r&& (i =” “. concat (i?” & “:”? “,” us_privacy = “) .concat (encodeURIComponent (r))), D =! 0 , {type: “iframe”, url: “https: //” .concat (b.syncHost || “eus”, “ / usync.html”) i}}}, transformBidParams: function (e) {return r.convertTypes ({accountId: “number”, siteId: “number”, zoneId: “number”}, e)}}; function h (e, t) {var n = obgetConfig (“pageUrl”); n = e.params.referrer? e.params.referrer: n || t.refererInfo.referer; return^http:/i,”https:”):n Genealogie function _ (e, t) {var n = e.params; if (“video” === t) {var i = []; return i = [ playerWidth,]: Array.isray (r.deepAccess (e, “”)) &&1 === i = playerSize [0]: Array.isArray (e.sizes) & &0e.length) && (t = e.length); for (var n = 0, r = new array (t); n ‘; var i, o}}, h = function (e) {var t = 0 = e&&t.innerWidthe.length) && (t = e.length ); for (var n = 0, r = new array (t); ne.length) && (t = e.length); for (var n = 0), r = new array (t); n = e. length? {done :! 0}: {done:! 1, value: e [r]}}, e: function (e) {throw e}, f: i}} trigger new TypeError (“Invalid attempt to iterate non-iterable instance. NTo be iterable, non-array Objects have a [Symbol.iterator] () method. “)} Var o, a =! 0, s =! 1; return {s: function () {n = e [Symbol.iterator ()}, n: function () {var e = (); return a = e.done, e}, e: function (e) {s =! 0, o = e}, f: function () {try {a || null == n.return || n.return ()} finally {if (s) throw o}}}} (o); try {for (us ();! (a = un ()). done;) {var f = a.value; 01e3 *,! i || s || r || zero! = (d = n) &&d! == B (t)? o = e.submodule.getId (e.config, t, i): “function” == typeof e.submodule.extendId&& (o = e.submodule). extendId (e.config, t, i)), c.isPlainObject (o) && ( (U (e,, i =, “function” == typeof o.callback&& ( e.callback = o.callback)), i&& (e.idObj = e.submodule.decode (i, e.config))): e.config.value? e.idObj = e.config.value: (u = e.submodule.getId (e.config, t, void 0), c.isPlainObject (u) && (“function” == typeof u.callback&& ( ) lback = u.callback), (e.idObj = e.submodule.decode (, e.config)))}} Function Y () {var e, t, n, r = (e = D, t = j, Array.isArray (e)? E.reduce (function (e, n) {return! N || c.isEmptyStr ( || (! || c.isEmptyStr ( || c.isEmptyStr ( || -1 === t.indexOf ( &&! c.isPlainObject (n.value) && (n . Memory || n.value) || e.push (n), e}, []): []); r.length&& (n = k.filter (function (e) {return! i () (P, function (t) {return ===})}), P = (function (e) {var t = i () (r, function (t) {return = ==}); return e.findRootDomain = z, t? {Submodule: e, config: t, callback : void 0, idObj: void 0}: null}). filter (function (e) {return null! == e}),! x&&P.length&& (object (ua) (). requestBids.before (G, 40) , c.logInfo (“”. concat (S, “- usersync config updated for”) .concat (P.length, “submodules:”), (function (s) {return}) ), x =! 0))} Function $ (e) {i () (k, Function (t) {return === e.nam e}) || (k.push (e), Y ())} function X (e) {P = [], x =! (D = []), y = void 0, -1! == (j = [w.localStorageIsEnabled ()? O: null, w.cookiesAreEnabled ()? A: null] .filter (function (e) {return null! == e})). indexOf (A) &&w.getCookie (C.)? c.logInfo (“”. concat (S, “- Opt-out cookie found, exit module”)): – 1! == j.indexOf (O) &&w.getDataFromLocalStorage (C)? c.logInfo (“” .concat (S, “- Opt-Out localStorage found, exit module”)) 🙁 e.getConfig (function (s) {var t = e.userSync; t&&t.userIds&& (D = t. userIds, h = c .isNumber (t.syncDelay)? t.syncDelay: I, _ = c.isNumber (t.auctionDelay)? t.auctionDelay: E, Y ())}), Object (ua) (). getUserIds = V, Object (ua) (). getUserIdsAsEids = K, Object (ua) (). refreshUserIds = H)} X (ob), Object (pc) (“userId”, $)}}, [894]) , pbjs.processQueue ();
}, {}];
window.modules [“visibility.legacy”] = [function (required, module, export) {“use strict”; DS.service (“$ visibility”, [“$ document”, “$ window”, “_ throttle”, “Eventify”, function (e, t, n, i) {var o, r, h = []; Function s (e, t) {return et? E: t} Function d (e, t, n) {! E.preload&&e.preloadThreshhold&&function (e, t, n, i) {return = e.shownThreshold&&! e.seen?, new r (“shown”, t))}, 15)) :(! n || i1&& (h = e (r, Math.floor (n / o), i-1, o)) , h}, this.getVerticallyVisiblePixels = f, this.getViewportHeight = function () {return t.innerHeight || e.documentElement.clientHeight || e.body.clientHeight}, this.getViewportWidth = function () {return t.innerWidth || e.documentElement.clientWidth || e.body.clientWidth}, this.isElementNotHidden = u, this.isElementInViewport = function (n) {var i = n.getBoundingClientRect (); return> = 0&&i.left> = 0&CSE = o.length) return {done: true}; return {done: false, value: o [i]}; }, e: function e (_e) {throw _e; }, f: F}; } throw new TypeError (“Invalid attempt to iterate a non-iterable instance. nTo be iterable, non-array objects must have a [Symbol.iterator] () method.”); } var normalCompletion = true, didErr = false, err; return {s: function s () {it = o [symbol.iterator] (); }, n: function n () {var step = (); normalCompletion = step.done; Regression; }, e: function e (_e2) {didErr = true; err = _e2; }, f: function f () {try {if (! normalCompletion && it.return! = null) it.return (); } finally {if (didErr) throw err; }}}; }}

Function _unsupportedIterableToArray (o, minLen) {if (! O) return; if (typeof o === “string”) return _arrayLikeToArray (o, minLen); var n = (o) .slice (8, -1); if (n === “Object” && o.constructor) n =; if (n === “Map” || n === “Set”) returns Array.from (o); if (n === “Arguments” || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray (o, minLen); }}

Function _arrayLikeToArray (arr, len) {if (len == null || len> arr.length) len = arr.length; for (var i = 0, arr2 = new array (len); i