Boris Smus

interaction engineering

Comparing classical music interpretations

I built an audio player to easily compare multiple interpretations of the same piece. Here's an interactive demo, and a video to give you a sense of how it works:

Continued →

Against retweets

Create and consume time for content of various lengths.

One of these data points is not like the other. Also, isn't it neat that common units of time duration fall nicely onto a logarithmic scale?

Make twitter great again?

I used twitter the most while working in developer relations, mainly sharing articles about web development that I thought deserved more attention. My feed consisted of engineers, developer advocates, and web standards folks I respected, all of whom had something interesting to say. Twitter was my interest graph, in contrast with Facebook, which was just a poor facsimile of real life relationships.

As my career and interests shifted, so did the people I followed on twitter. I started following VR engineers, machine learning researchers, philosophers and psychologists. But more tweeps meant more tweets. Soon I had a twitter list for people that I had reluctantly unfollowed. They had interesting things to say, but said them too often.

Following someone on twitter is like having a direct line into their brain. If they write about a subject you are passionate about, fantastic. If they have broadly aligning interests, chances are they will turn you on to something neat, or if you're lucky, life changing. Unfortunately, most of the time, twitter brains are distracted, anxious, angry, or unhappy. Spastic tweet storms and political ramblings deserve only one thing, a hearty unfollow.

Twitter's bad design decisions only compound the problem. In "Retweets Are Trash", Alexis Madrigal writes, "When Twitter introduced a retweet button, in 2009, suddenly one click could send a post careening through the network. The automatic retweet took Twitter’s natural tendency for amplification and cranked it up." Apparently it's not hard to globally disable retweets using a crude hack. Anecdotally, it seems to have made my feed a bit calmer.

A quick update on my white supremacist spam problem. Time seems to have sorted it out, and the remaining squawks have been muffled by twitter's quality filter. I also tried using Mastodon. It was a calming experience at first, but when I followed a few people and dug around a little bit, I was dismayed to see most design choices mirroring twitter's. I caught up on RSS feeds, which I really like. But the RSS ecosystem continues to die. Of nearly five hundred RSS feeds in my OPML file, more than half are broken links. Occasionally the links are fixed, causing my reader to choke on a year's worth of articles from a blog whose existence I've long forgotten about.

I can't quite decide whether or not to use twitter again. I keep thinking that I once got a lot out of my original use of the platform. If I do return, I'll be making use of the @reply quality filter, fully disable retweets, and unfollow more aggressively. Whether this makes twitter great again remains to be seen.

Lynched on Twitter

Last week, a sarcastic twitter reply I posted two years ago was picked up by an account called Blue Check Watch, looking for verified twitter accounts disparaging white people. As a result, my account has become inundated by a hybrid human-bot army of white supremacist trolls. Most responses accused me of anti-white racism, completely missing what I thought was obviously a sarcastic tone. Sadly, many of the attacks are really nasty and ad-hominem. One user posted "Why do people who say this always look like this?", alongside my twitter profile photo. Others are explicitly anti-semitic messages that do not bear repeating here. Ominously, I received an email from Twitter informing me that they have investigated my tweet, flagged for violating their TOS and "have not taken any action at this time."

Writing my snarky tweet two years ago, I was a bit uncertain whether it was within the bounds of social acceptability. A white guy telling another white guy that white guys are "the worst", was intended to poke a bit of fun at the self-flaggelation associated with progressive politics. There is only so much self-censorship one can do while still remaining authentic. In a surprising twist, my tweet was offensive to a group I hadn't even thought about in a way I could not have predicted, two years after the fact.

Twitter lynchings are not new, but it's different when it happens to you. It has not had any serious consequences (yet?), and until it does, I will continue to view this as a funny story, and not something truly traumatic, as it is often framed in the press. Still, this experience serves as a good reminder of a few points:

  1. Twitter's UI for threaded conversations is terrible, and hardly anyone of my virtual lynch mob even bothered to look to the tweet I was responding to.
  2. My tweet was five words, twenty four characters. It was meant to be pithy, because that is how twitter works. But brief posts beget brief responses, which is fine between friends, but not fine when the whole world is watching.
  3. Relatedly, sarcasm is hard to convey in this situation. Only two responses suggested that maybe I was being sarcastic, imploring my attackers, "Don't be lazy."
  4. The fact that tweets have no expiry date means anything you have ever posted can be used against you in surprising ways. It took two years for my tweet to be picked up. James Gunn's incriminating posts were ten years old. Social norms change quickly, and this is one argument in favor of ephemerality.
  5. On that same note, it seems that the white supremacy movement has really embraced the internet over the last couple of years in some sick symbiosis with the POTUS. At the same time, it's striking that the result of someone's pathetic search for anti-white sentiment yielded such a lackluster example.
  6. Despite a general willingness for my views to be challenged, I don't have energy or desire to engage with this mob. I made no attempts to respond to any of my attackers. They appear to be victims of confirmation bias, stupid and/or malicious, and I have little faith that they will listen.
  7. There are some really nasty people on the internet. If triggered, they will sherlock your religion, your employer, your family, and try to hit you where it hurts the most.

Lynchings aside, I've been trying to use twitter less in favor of consuming and producing longer form content, like books, blogs, and conversations. Given that my account is currently being inundated with anti-semitic spam, I have very little incentive to continue using the service. One thing that has been keeping me on the platform is the potential reach I can get through 6K followers. I should remember that in the grand scheme of things, this is a small number, 5 orders of magnitude less than the lovely POTUS. I shouldn't grow attached.

And so, just in time for my tenth twitter anniversary, it's time for me to make some changes. At the very least, I'll be taking a long break.

The difficult middle

Monism gives life meaning through a single all-encompassing doctrine. Examples include some political ideologies, religions, and variants of rationality. History has not been kind to those that have fervently followed such doctrines. But once you see flaws in Monism, it can be tempting to decide that life has no meaning at all, falling into the trap of Nihilism.

Stuck

The choice between these two extremes is a false one. Rationalists know this. Buddhists know this. Philosophers know this too. David Chapman writes a whole blog devoted to exploring the space in between. But I have found Isaiah Berlin's synthesis to be the most compelling:

Sobered by the 20th century’s failed utopias, [Berlin] argued for a more modest liberal pluralism that makes room for multiple, genuinely conflicting goods. Family and work, solidarity and autonomy, tradition and innovation are really valuable, and really in tension. – Alison Gopnik

In this view, we are condemned to an eternal balancing act, sometimes peering too far into the meaningless abyss, and other times relaxing too deeply into meaningful certainty. On balance, I hope to end up in this difficult middle.

Required reading for VR enthusiasts

Several books, movies, and articles have helped to shape my opinions on Virtual Reality. I've was initially surprised by some former colleagues that it is possible to view these works as aspirational rather than cautionary. I generally prefer the dystopian interpretation.

Balancing technological pessimism

Pessimists archive is a podcast that chronicles pessimistic reactions to emerging technology as it was becoming mainstream. Technology here is defined broadly, covering a broad range of topics: bikes, coffee, pinball machines, vaccines, recorded music. The podcast is very accessible, focused more on social and psychological issues and less on the tech itself.

Continued →

How rationalists can win

The belief that "rationalists should win" is widely held in the rationalist community. So: does being a good rationalist actually help you win? Certainly in some domains, like engineering and science, which focus on quantification, systematization, and prediction. There, having a hyper-rational mindset is clearly an advantage. As for winning at life, which I will take that to mean leading to greater success in survival, evolution, and human flourishing, I don't think rationality helps very much.

Continued →

Web-based voice command recognition

Last time we converted audio buffers into images. This time we'll take these images and train a neural network using deeplearn.js. The result is a browser-based demo that lets you speak a command ("yes" or "no"), and see the output of the classifier in real-time, like this:

Curious to play with it, see whether or not it recognizes yay or nay in addition to yes and no? Try it out live. You will quickly see that the performance is far from perfect. But that's ok with me: this example is intended to be a reasonable starting point for doing all sorts of audio recognition on the web. Now, let's dive into how this works.

Continued →

Audio features for web-based ML

One of the first problems presented to students of deep learning is to classify handwritten digits in the MNIST dataset. This was recently ported to the web thanks to deeplearn.js. The web version has distinct educational advantages over the relatively dry TensorFlow tutorial. You can immediately get a feeling for the model, and start building intuition for what works and what doesn't. Let's preserve this interactivity, but change domains to audio. This post sets the scene for the auditory equivalent of MNIST. Rather than recognize handwritten digits, we will focus on recognizing spoken commands. We'll do this by converting sounds like this:

Into images like this, called log-mel spectrograms, and in the next post, feed these images into the same types of models that do handwriting recognition so well:

Final log-mel spectrogram.

The audio feature extraction technique I discuss here is generic enough to work for all sorts of audio, not just human speech. The rest of the post explains how. If you don't care and just want to see the code, or play with some live demos, be my guest!

Continued →