Consider the following example – this is valid JavaScript! But just by looking at it, that seems unlikely… Try copying the code portion into a browser console and see for yourself.

$ cat redef-keywords.js
if‌ = isNaN;

if‌ (NaN)
    console.log("This line will never be printed.");
$ node redef-keywords.js
This line will never be printed.

Edit again: after shuffling around a bit, ES5+ should now be possible, at least in theory.

Edit: change from ES5+ to ES6+ for technical reasons.

j8t is a project I created which efficiently translates any generic JavaScript program (ES5+) into one which uses only 10 unique characters. Why 10 and not 8 or 6, like other projects? Simply put, it’s about following the rules to the letter.

It is based on the idea that individual characters can be formed by abusing various features in the language. For instance:

> +[]
> +!![]
> (+{}+[])[+[]]


I am taking this way too seriously when I say that similar projects I know of are all cutting one or more corners. As far as I know, 10 characters is the minimum if you want to do it “properly”. So I set out to do that. In the process, I also made various optimizations that makes it possible to convert large programs, and do so efficiently, or indeed convert j8t itself. I’m not aware of any other project that can do the same.

So, what is this good for?

Short answer: nothing! If you’re still reading at this point, you should have known that.

Long answer: it’s a bizarre form of entertainment, and at the same time it is possible to learn a lot when pushing things to the limit.

Recently a code of conduct for Linux kernel developers was adopted. The full text is also included below (except for headings), interspersed with my comments and with emphasis added. In the interest of (hypothetical) brevity, I am focusing on what I perceive to be the major issues with it, therefore I am refraining from commenting on at least a few lesser issues.

I don’t know how this document will be enforced of course. That is precisely the problem. Some leeway is understandable. This is just absurd. It is not just vague, but opens up more avenues for abuse than if there was no document at all.

It is relevant context that this document – except for some cosmetic changes relating to where reports should be made – is based word for word on the contributor covenant, a document written by Coraline Ada Ehmke, who as you can see on that page is a self-proclaimed “Social Justice Warrior”. This screams of a political power grab.

Let’s go through the Linux version:

In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone,

Stop, stop, stop. This sounds innocent enough at first, but who defines harassment? The Cambridge Dictionary includes the following definition: (emphasis added)

behaviour that annoys or upsets someone

If a maintainer says: “we appreciate your considerable investment in this code, but we are sad to say we will not include it because of X, Y and Z”, would it perhaps be considered annoying by the person receiving that feedback to see all their sweat and tears go to waste? If this aspect of the code of conduct is ridiculous enough to never be enforced, why is it included in the first place?

So: we’re not even a full sentence in, and we can already interpret the document as follows:

As a Linux kernel maintainer, you pledge to never reject anyone’s code, if you suspect it might annoy them.

It gets worse.

The sentence continues:

regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.

I thought the word everyone was pretty precise and inclusive. What is this doing here besides making an ideological statement?

Next come some “recommendations” of how to behave:

Examples of behavior that contributes to creating a positive environment include:

* Using welcoming and inclusive language

Let me guess – prefixing a mail to a group of people with “guys” is not “inclusive”? Basically: type like a bureaucrat, or we’ll come after you for not being inclusive. But if you do type like a bureaucrat, we’ll come after you for not being welcoming!

* Being respectful of differing viewpoints and experiences

Respect is earned.

* Gracefully accepting constructive criticism

How about just receiving constructive criticism? It may or may not be accepted.

* Focusing on what is best for the community

Who decides what is best?

* Showing empathy towards other community members

So if you have empathy but – according to someone else – don’t show it, that doesn’t count? A lot of the Linux kernel communication goes through e-mail, not exactly the best medium to show empathy. And what does that mean anyway? Do what you feel is right, but in a nicer way? Or do what you feel is wrong, just so that someone else might avoid taking offense?

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment

Who defines what an attack is?

See comment at the top regarding harassment.

* Publishing others’ private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting

Who decides what is inappropriate?

Maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.

So here’s where attack and inappropriate get defined I suppose. Isn’t this what is really setting the stage here? How about if the entire code of conduct is replaced with this single sentence instead of all this mumbo-jumbo?

Maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.

Never mind, here the “appropriate”, “fair” and “clarifying” part go out the window as well, as does the code of conduct itself. Now we’re talking about “other behaviors”! So now you can get into trouble based on the particular mood of a particular maintainer on a particular day.

This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.

More mumbo-jumbo. This does not put any effective limits on what “representing” means. We might as well assume that anything you do in your life could be considered “representation” if it somehow comes into contact with a Linux kernel developer.

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the Technical Advisory Board (TAB) at <tab@lists.linux-foundation.org>. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The TAB is obligated to maintain confidentiality with regard to the reporter of an incident.

I.e.: you can get accused by someone who wants to be anonymous, without having the chance to defend yourself against that person or persons. Otherwise the TAB would be breaching their obligation to maintain confidentiality.

Further details of specific enforcement policies may be posted separately.

Maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project’s leadership.

This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html


  • What “representing” the project or community means can be defined at any time, to mean anything.
  • “Inappropriate” behavior can be defined at any time, to mean anything. At a miminum, annoying someone on a single occasion qualifies.
  • You can get accused anonymously, without a chance to confront that person.
  • You can get banned for “inappropriate” behavior while “representing” the project or community.


If you, as a Linux kernel developer, anywhere in the world, at any time, in any context, whether you realize it or not, behave in some way that, directly or indirectly, results, at any time in the future, in some anonymous person, justified or not, claiming to feel at least slightly uncomfortable, be warned that you may be permanently banned from contributing to the Linux kernel.

Yesterday, the European Parliament voted in favour of the infamous “link tax” and to build more firewalls on the Internet, obsessed with censoring any material that might infringe on copyright. In so doing, perfectly legal uploads would most certainly become collateral damage of the nearsighted robots that are supposed to enforce this.

The EU is quick to point out that this will not affect “small” companies, in practice meaning ones with fewer than 50 employees. That is hardly any comfort, and WordPress.com for instance has 779 employees at the time of writing this. Should everyone with a blog now start looking over their shoulders?

Mozilla (the folks behind Firefox) has more details on the situation before the vote, and where we are after the vote.

As for Sweden, here’s how the voting went: (Socialdemokraterna form the current government here, together with Miljöpartiet)


Name Group in the European Parliament Group in the Riksdag
Aleksander GABELIC S&D Socialdemokraterna
Jytte GUTELAND S&D Socialdemokraterna
Anna HEDH S&D Socialdemokraterna
Olle LUDVIGSSON S&D Socialdemokraterna
Marita ULVSKOG S&D Socialdemokraterna
Soraya POST S&D N/A


Name Group in the European Parliament Group in the Riksdag
Fredrick FEDERLEY ALDE Centerpartiet
Jasenko SELIMOVIC ALDE Liberalerna
Cecilia WIKSTRÖM ALDE Liberalerna
Kristina WINBERG ECR Sverigedemokraterna
Malin BJÖRK GUE/NGL Vänsterpartiet
Lars ADAKTUSSON PPE Kristdemokraterna
Anna Maria CORAZZA BILDT PPE Moderaterna
Christofer FJELLNER PPE Moderaterna
Gunnar HÖKMARK PPE Moderaterna
Max ANDERSSON Verts/ALE Miljöpartiet
Jakop DALUNDE Verts/ALE Miljöpartiet
Linnéa ENGSTRÖM Verts/ALE Miljöpartiet
Bodil VALERO Verts/ALE Miljöpartiet

Abstentions: none.

Appears not to have been present:

Name Group in the European Parliament Group in the Riksdag
Peter LUNDGREN ECR Sverigedemokraterna



UPDATE 2017-08-09, 18:19 UTC: I just thought it was worth mentioning that the raw document (the one which includes sources) can – at least for now – be found by simply searching for “google memo” on Google News, as shown at the bottom of this post. Hopefully this means that significantly more people will get a more nuanced picture of things.

(This is a follow-up to my previous blog post on the same topic.)

To see the memo in full – with sources! – please go to: diversitymemo.com

Before you read through the media responses to this memo, please check out the following articles, or you may be missing key points here:

Now, to the “fun” part. Do you see your favorite media news outlet in the list below, perhaps?

Since there’s seemingly so much agreement out there, it must mean they’re all on to something… right?

WRONG. Read the articles above, please.

See if you can spot a trend… (I’ve left out the links, since I’m lazy and I’m only looking at the titles here anyway.)

Here we go:

ABC News: Google fires employee behind controversial anti-diversity memo
BBC: Was Google wrong to fire anti-diversity memo author?
CBS Miami: Google Engineer Fired For Sexist Memo
CNBC: Why it may be illegal for Google to punish that engineer over his now viral anti-diversity memo
CNN: Google CEO condemns anti-diversity memo
Forbes: Google Fires Anti-Diversity Memo Writer, Drawing Ire In Right-Wing Circles
Fortune: Read Google CEO Sundar Pichai’s Letter About the Controversial Anti-Diversity Memo
Fox News: Fired Google employee who wrote anti-diversity memo threatens to sue; legal expert says he doesn’t have a case
Gizmodo: Exclusive: Here’s The Full 10-Page Anti-Diversity Screed Circulating Internally at Google
Motherboard: Google Employee’s Anti-Diversity Manifesto Goes ‘Internally Viral’
MSNBC: ‘Recode’ Editor: Google’s Anti-Women Memo Hurts Tech Industry
Newsweek: Who is James Damore? Alt-Right Furious After Google Fires Engineer Over Anti-Diversity Memo
Reuters: Google fires employee behind anti-diversity memo
The Guardian: Google reportedly fires author of anti-diversity memo
The New York Times: Google Fires Engineer Who Wrote Memo Questioning Women in Tech
The Sun: What was in the Google anti-diversity memo and who is its author James Damore?
The Telegraph: Julian Assange offers job to fired Google employee who wrote anti-diversity memo
The Verge: Google fires employee who wrote anti-diversity memo
TIME: Google Has Fired the Employee Who Wrote an Anti-Diversity Tirade, Report Says
ThinkProgress: Google fires employee responsible for 10-page sexist screed
USA Today: Engineer behind Google anti-diversity memo confirms firing: report
Vox: Google has fired the engineer whose anti-diversity memo reflects a divided tech culture
Washington Post: Decoding the ancient logic of the Google Bro
ZDNet: Google fires anti-diversity engineer

And yet, the memo is in actuality pro-diversity. It makes one wonder why the false talking points are parroted so eagerly…

These were quite arbitrary picks, there were simply too many articles along the same lines, so I had to stop at some point.

Now, some news outlets go a little further…

Huffpost: Here’s Why I’m Not Reading The Google Employee’s Anti-Diversity Memo

Yeah, OK, “he’s a bad guy, because I said so! Boohoo!”

Very mature, thanks…

But that’s clearly not strong enough, perhaps this author has something to learn from Wall Street Journal? In a piece titled “Memo to a Google Engineer”, the subtitle reads:

“Hey, shut up. Google is fighting the diversity furies and you’re not helping.”

This opinion piece, as it turns out, seems to actually be defending James Damore (subscription required, so I don’t have access to the full piece), but they could work on their wording as well…

Clearly, a vast amount of this supposed “reporting” is not very useful, so, please, RTFM (politely translated as Read The Fine Memo), check out the source material, and make an informed opinion of your own.

Partial Google News screenshot from August 9 – the second link goes directly to the raw PDF:


UPDATE 2017-08-09: the memo is available via diversitymemo.com as well.

A Google employee wrote an internal document (not so internal now…) criticizing how the company treats their employees and people who apply for a job there.

This person has since been reported as being fired, though Google won’t confirm this, saying they “can’t comment on individual employee cases”. So while the timing is not in favor of Google in my view, it’s possible he was fired for some unrelated reason. I’m not speculating too much on this either way.

That aside, let’s focus on the memo linked to above, and it’s quite a read.

Google CEO Sundar Pichai responds in a memo of his own:

First, let me say that we strongly support the right of Googlers to express themselves, and much of what was in that memo is fair to debate, regardless of whether a vast majority of Googlers disagree with it. However, portions of the memo violate our Code of Conduct and cross the line by advancing harmful gender stereotypes in our workplace.

He does not go on to say what “portions” or “harmful gender stereotypes” he is referring to.

I find the way that Google and the media is treating this employee is lacking, to say the least. I’ve seen this being caricatured, strawmanned (is that a word?) and worse. By all means, go ahead and criticize the memo if you will, but get the facts straight, and if you’re going to make claims about the document, have the decency to actually present it in the first place!

Gizmodo at least reproduces the memo, “in full” they say, and then go on to say in passing that “two charts and several hyperlinks are also omitted”.

Yes, I suppose 32 links to sources are technically several. (That’s without counting the half dozen internal links on top of that.)

SHA-256 checksum of the PDF:

%d bloggers like this: