We Are What We Read / Bitcoin and Lovecraft

Somebody, somewhere, has mashed up an internet thinkpiece on bitcoin with weird near-future sci-fi and mind-bending Lovecraftian horror. It is the internet after all.

However many examples of the above already existed (it is the internet after all!), there is one in particular that I read recently, over the course of a roughly two-hour train ride.

Read with caution: https://zerohplovecraft.wordpress.com/2018/05/11/the-gig-economy-2/

I don’t know exactly where it came from or who wrote it; the blog that posted it has no other information and only one other (protected) post, apparently a draft of the public version. This anonymity is suitably in-character and probably deliberate. I found out about the story through this Slate Star Codex post; I would not be at all surprised if Scott Alexander is behind the whole thing and just didn’t want it directly associated with that online identity for some reason.

I won’t go into the story itself really at all, there’s not a lot of it I could do justice to and while “read with caution” is entirely accurate, it is absolutely worth reading. Instead I want to talk about what reading does to us.

For some time after I’ve read something truly absorbing, the imprint of that work stays with me, echoing through not only my thoughts but also my speech patterns, word choice, and something which I struggle to describe other than as “the shape of my consciousness”. For example, I’m a big fan of Patrick Rothfuss’s The Name of the Wind and its sequels (collectively The Kingkiller Chronicle). Rothfuss has a very distinctive, very fluid style of prose, often characterized by lists without the typical join words like “as” or “his”. From the first page of the first chapter of The Name of the Wind:

They had taken his sword and stripped him of his tools: key, coin, and candle were all gone.

Note the lack of repeated “his” before the descriptive list, and also the alliteration. From a few pages later:

It was a spider as large as a wagon wheel, black as slate.

Note the lack of “and as” before the word “black”. I’m not even sure if this sentence as written is technically correct, but it’s clear enough and the overall effect of an entire book constructed this way is beautiful. Language is descriptive not prescriptive anyway.

It’s easy to understand how reading some 1200 pages of this prose might impact one’s own speech patterns. I’ve gone through the available books a couple of times over the years, and every time I’ll spend a week or more afterwards speaking just like Rothfuss writes: terse, eloquent, fluid.

[J]ust like Rothfuss writes: terse, eloquent, fluid.

See? I’m doing it here after just talking about it.

But as I mentioned, it goes beyond just word choice and sentence structure. I already mentioned “the shape of my consciousness” and I stand by that vague gesture towards something I can’t otherwise pin down. Although I do have a small poetic and flowery streak, I am not normally given to purple prose, but for some time after I’ve read Rothfuss I won’t just speak it; I’ll think it. Something about the shape of the sentences, the word choices, demands that adjectives and nouns come in sets, which means I use more of them than I otherwise would. This gives everything more shape than it would otherwise have, and paints a richer picture of the world.

I make different decisions as a result. I am a different person.

This is, I suppose, just a really complicated way of saying “this book changed my life”! That’s not an incorrect interpretation. But really, I’m arguing anecdotally for the Sapir-Whorf hypothesis.

I’m doing that, just to be able to say: that “The Gig Economy” story did some weird things to my brain. I’m glad I didn’t have to interact with other humans for a while afterwards.

Advertisements

Other Opinions #66 – In-Groups, Out-Groups, and the Intellectual Dark Web

https://quillette.com/2018/05/25/groups-groups-idw/

Oh this one is so much fun. Everybody gets to be mad! Libertarian fan of Jordan Peterson and Sam Harris? You’ll hate it. Liberal believer in social justice and structural power analysis? You will not walk away happy.

The real short version is that tribalism affects everyone whether we like it or not.

The slightly longer version is that there is an ongoing societal debate on the internet over… basic philosophy, I guess. Should we evaluate speech claims as isolated factual truths, to live and die on their own based on whether they map to reality? Or should we evaluate them as political acts, intrinsically bound to their context, to society, to power structures, and to the speaker?

Hint: the real answer is “both”.

Disclaimer: I don’t necessarily agree with or endorse everything that I link to. I link to things that are interesting and/or thought-provoking. Caveat lector.

Theoretical Fun

The company I work for, like many other tech companies, has a thing where you get to spend a certain amount of your time working on projects of your own choosing. The most well known-example of this is Google’s now-defunct 80/20 rule but there are plenty of others.

This past week I had an opportunity to do some of this, and ended up brushing off my very theoretical computer science roots and digging into some graph theory in order to solve a very practical problem. Of all the things I get to do in software, this is far and away my favourite, and I had a blast working out the possible solutions.

In my career so far I’ve been lucky enough to have several opportunities to solve problems of this nature and then build out the solutions, and even publish some of them to talk about. It is extremely rewarding work. There are of course a few I can’t talk about as they are still internal, but here’s a sort of “hall of fame”: two other problems that I had a ton of fun solving at a computer-science-theoretical level and also resulted in really awesome (and sometimes popular!) practical solutions.

Wheel-of-Fortune Memory Allocator

https://github.com/eapache/wof_alloc

Arguably the overarching project here was Wireshark‘s wmem framework which I also designed and built, but while wmem was a lot of fun to work on it wasn’t particularly novel; it was just another memory pool library with a few minor tweaks to suit Wireshark’s use case and migration path. However, Wireshark’s unique memory allocation pattern demanded a custom allocator algorithm which I eventually extracted into this library.

As far as I can remember this was the first practical problem of this nature that I got to take the entire way: from identifying the problem, designing the solution, to building and shipping it, and I am forever grateful to the Wireshark core team for trusting a (at the time) university student to go and rewrite the deepest foundational layer of the project. At just under 1000 lines of pure C this allocator has been shipping in released versions of the project for 5 years now effectively unchanged, and the standalone version gets a fair number of hits on GitHub.

Sarama Async Producer

https://github.com/Shopify/sarama/wiki/Producer-implementation

A little while later, my first major project at my current job was to write a golang client for the Apache Kafka platform. Like wmem, a lot of it was pretty standard work (in this case implementing message formats and managing TCP connections). However, the design of the producer implementation was another one of these instances of theoretical fun. The requirements on a performant Kafka producer are complex and varied, balancing messages and batching across topics and partitions and brokers, while also maintaining message order in the face of partial failures and retries. I can’t tell you how many evenings I spent wandering around in a fog, stopping occasionally only to make tweaks to weird hypothetical flow diagrams on my whiteboard.

To a certain extent this project was less practical than the allocator; the reference java implementation was open-source and would have been fairly straight-forward to copy, but I did it myself for two main reasons:

  • I was working in Go, which provided me with very different concurrency primitives and indicated a very different design.
  • I was young, and not as aggressively pragmatic at the time.

To a certain extent it was also less successful; it has continued to evolve over the last four years and there are still parts of the design that I’m not entirely happy with. That said, it’s also far and away the most complex single algorithm I’ve ever built, and judging by Sarama’s popularity, it’s doing its job just fine in practice. I even managed to get a conference talk out of it.

GraphQL Warden

https://github.com/rmosolgo/graphql-ruby/issues/1333

If you recall my recent post on what I’ve been working on recently for my “real” job, it won’t surprise you that my most recent project is tangentially related to that. This one hasn’t been built yet (and my own pragmatism means it may never get built) but even from a design perspective I had a lot of fun with the process here. I definitely got way too excited when I realized that I could represent the two halves of the process as symmetric reachability problems in a graph-theoretical isomorphism of the schema.

And just maybe, the next time I get a chance to spend some “me time” at work, I’ll write an actual implementation of it!

Other Opinions #65 – Trying to make sense of Bourdain

https://www.popehat.com/2018/06/10/randazza-trying-to-make-sense-of-bourdain/

There is something to this one that seems to strike home for me. The idea of “success” as ultimately unsatisfying is something that doesn’t get talked about enough. Give me a family and community any day of the week.

Disclaimer: I don’t necessarily agree with or endorse everything that I link to. I link to things that are interesting and/or thought-provoking. Caveat lector.

This Means War – Is Trudeau Ready?

(Betteridge’s law says “no”.)

Last week, American president Donald Trump announced two major tariffs on Canadian aluminum and steel. This was a watershed moment in the relationship between the two countries, who have long shared a highly cooperative diplomacy and a tightly integrated economy. We are now in the midst of a trade war, and that requires a major shift in perspective. In the upper echelons of business, much is made of the difference between a peacetime CEO and a wartime CEO. The analogy is drawn from politics of course, and now we have an opportunity to see the original essence of that analogy in practice, as Canada shifts diplomatically from peace to war. The question of the moment then, is whether Justin Trudeau is ready for it?

Trudeau’s first two years as Prime Minister have been characterized by positivity, just like his campaign. He continues to talk about opportunity, growth, and inclusion every chance he gets. He is, in other words, the very picture of a peacetime leader. But peacetime leaders tend to get crushed in times of war; just ask Neville Chamberlain, the British Prime Minister leading up to World War Two. Like Trudeau he talked a good early game, pushing back against Germany when possible but also accommodating them in the name of a broader peace. Like Trudeau, Chamberlain combined calculated displays of strength and resolve with a general flavour of good will. His policies were widely popular among the electorate. And like Trudeau, Chamberlain was not ready for war.

Barely nine months in to the second world war, after a string of disasters culminating in a wholesale retreat from Norway, Chamberlain resigned. His replacement was none other than Sir Winston Churchill, a war-time leader if there ever was one. Churchill was everything that Chamberlain was not: one of the world’s greatest orators, direct, focused, and completely unwilling to back down. Where Chamberlain was diplomatic, refined, and heavily invested in keeping the peace, Churchill was a leader with only one goal: to win the war. He stuck to his guns even when his choices were massively unpopular, which in fact they were at the time. He was appointed Prime Minister on Chamberlain’s resignation, not elected, and lost the post at the very next public election.

So what does this mean for Canada today? I suppose it is possible that Trudeau will be able to pivot, transitioning from a peacetime role to a wartime one. If he can pull that off then he will likely go down in history as one of Canada’s greatest leaders. However, it seems unlikely. The required shift in perspective would be very much out of character, and his initial response to the tariffs has been… tepid. Retaliatory tariffs, yes, but dollar-for-dollar; literally a call, not a raise, and one that (per Coyne) will harm Canada far more than it has any persuasive power over the United States.

If Trudeau cannot pivot, then we are in for a rough couple of years. Barring a true catastrophe, Trudeau is unlikely to resign before next year’s election, but there is no-one currently on the ballot with the necessary capabilities. The NDP have always been a peacetime party, and Jagmeet Singh is no exception. Andrew Scheer was elected leader of the conservatives as a direct response to Trudeau, in an effort to win back some of the voters turned off by Harper’s determination and negativity. Ironically for them, (and for me, as somebody who voted against him in the 2015 election) Stephen Harper is now the Prime Minister we need.

Up until this moment, I have been generally happy with Trudeau as Prime Minister; he was a welcome breath of fresh air after so many years of Harper, and is generally closer to my positions on policy. Today, I wish we’d given Mr. Harper one more term.

Other Opinions #63 – The case for swagger: Canadians have a lot to be proud of

https://www.theglobeandmail.com/business/commentary/article-the-case-for-swagger-canadians-have-a-lot-to-be-proud-of/

Disclaimer: I don’t necessarily agree with or endorse everything that I link to. I link to things that are interesting and/or thought-provoking. Caveat lector.