Boris Smus

interaction engineering

Filter playground

"You don't understand anything until you learn it more than one way." – Marvin Minsky

In my short Web Audio book, I covered the BiquadFilterNode, but didn't have any sense for how it worked. As I sat down to read Human and Machine Hearing, it became clear that I needed to catch up on some digital filtering fundamentals.

What follows is an introduction to digital filters via explorable explanation I built to help myself better understand some DSP concepts. The approach I took was to try to present the concept as visually and aurally as possible, maximizing opportunities to build intuition. I learned a lot in the process. Read on for a introduction, jump ahead to the Filter Playground, or check out this video:

Continued →

Climate metaquiz results

Last week I ran a Climate metaquiz, and 123 people responded. The point of a metaquiz is to test how well political groups know the other side, while questions on personal beliefs and knowledge about the climate are secondary. Both the small sample size and potential sampling biases are important caveats to keep in mind here. All that said, Republicans outperformed Democrats on the factual part of the quiz, despite their low self-reported self-confidence. However, Democrats outperformed Republicans on the metaquiz part, with Republicans tending to exaggerate levels of climate change-related handwringing amongst Democrats, as well as their eagerness to exaggerate the facts in the name of behavior change.

Continued →

Viewpoint tolerance through curiosity

Polarization isn't necessarily problematic. Strictly defined, it refers to the divergence of political extremes. In fact, a wider variety of opinions may actually be a good situation. Things start to go south when a tribal us-verus-them mentality takes over, giving rise to an uncharitable view of the other side. This thinking is especially common among the shouting classes:

Those that disagree with me must be stupid, evil, or both.

Not only is this incorrect, but adhering to this position is actively bad for society. It prevents finding common ground and encourages wild policy swings as power is transfered from one uncompromising faction to the next. The same facts can generate different viewpoints, each deserving of a spot in the marketplace of ideas, even if we personally disagree with them.

With Debaters, Antonio and I tried to bring people that disagree together. Sadly most people don't want to converse with the other side whom they perceive to be their mortal enemies. The problem must be approached more obliquely, taking into account human nature. This post is about using quizzes like this one to lure people into learning more about the other side by appealing to a powerful emotion: curiosity.

Continued →

Debaters: friendly disagreement

We have a choice. We have two options as human beings. We have a choice between conversation and violence. That's it.

– Sam Harris

As technological progress plows forward, human nature is unchanged. We each look at the world through our own lens. In a previous post, I found that translating a query between English and Russian greatly determines search results. In the same way that language matters, so do religious views, culture, political leanings, and much more. Here's a recent example highlighting a news source-based lens on the same topic (Nancy Pelosi and Russia):

Nancy pelosi russia on nytimes vs. breitbart

Humanity has always been divided, and in hindsight, the unifying promise of the internet was a techno-utopian dream. By shrinking the world into a "global village" (famously coined by communication theorist Marshall McLuhan) we have balkanized into increasingly specialized sub-cultures and increased cross-cultural conflicts. More recently, personalized search results, curated social network feeds only serve to deepen the divide.

Debaters is a new side project which aims to bring you and someone with an opposing view into a private, friendly, anonymous conversation. It's still in development, but I want to share it with you both as a milestone and to get early feedback.

Continued →

Headlines, meet sparklines: news in context

News reporting suffers from two major issues I'd like to tackle. The first is a bias towards negative, emotionally laden events. The second is the difficulty of capturing information about gradual changes.

These two deficiencies distort our perception. They make it easy for demagogues to claim that the world has gone to shit. The data tells a different story, as the late Hans Rosling was fond of reminding us. My hypothesis is that if base rates were provided in a compelling way alongside news stories (or even headlines), the public would be better informed. The challenges are many: first, getting and analyzing the data, but even more important, presenting it in a reasonable way.

In this post, let's explore what that would entail, from data collection, to analysis, to visualization. We'll go through a couple of examples.

Continued →

Tools for making better decisions

In a famous letter dating back to 1772, Benjamin Franklin described how he made decisions to a friend who was facing a dilemma. Franklin's method involved enumerating pros and cons of an argument, and then attempting to weigh one against the other to ultimately decide which of the two possibilities to pursue. Franklin wrote:

My way is to divide half a sheet of paper by a line into two columns; writing over the one Pro, and over the other Con. Then, during three or four days consideration, I put down under the different heads short hints of the different motives, ... I endeavor to estimate their respective weights.

This post attempts to modernize Franklin's method to attempt to overcome some of its shortcomings. Once we have gathered our thoughts in one place using this spreadsheet format, we can, with the help of others or using (aspirational) AI, assist the decision maker to help them combat common mistakes.

Continued →

Front page blues

According to the American Press Institute,

News is that part of communication that keeps us informed of the changing events, issues, and characters in the world outside.

There are many ways for news to be uninformative or even outright misleading. Two trends in particular have received a lot of attention recently. The first is social recommendation systems and selective unfollowing, which creates a reality-distorting echo chamber. The second is fake news, which sure is in vogue these days, and is obviously a problem that we should tackle.

This post is about a different trend: real news presented with misleading frequency. The issue at stake is the media's ability to inform its readers and serve the public interest.

Continued →

VR View 2.0: JavaScript API

VR View was just updated to version 2! This release includes some nice new features, the main one of which is a JavaScript API. This allows VR Views to be much more interactive. You can now load new content dynamically, play and pause videos, and add hotspots that link from one piece of 360 imagery to another. Here's a simple auto-advancing 360 slideshow showing some of my recent escapes around Seattle...

Continued →

Election 2016

Back in June, I gave Trump a coldhearted 55% chance of winning the 2016 US election. You don't have to believe me, since I recorded it in my Predictions.md file, and never on gjopen.com, where it belongs. My assessment was mostly based on anecdotal observations that recent, related polls have been terribly wrong. Brexit and then Trump's surprise Republican nomination both came as a complete surprise to experts from all sides.

But, despite my dire predictions, it somehow didn't feel that I could be right on the eve of the election. When the final result was revealed, I was just as disturbed as everyone else. In retrospect, I attribute my "successful" prediction mostly to luck combined with my apparently contrarian tendencies, rather than to skill. Nearly a week after the announcement of President Trump, I'm still processing the verdict. Two big questions loom: 1) Why did he win?, and 2) Why didn't we see it coming?

Continued →

Ray Input: WebVR interaction patterns

What would the web look like if there were no scrollbars, no mouse cursors, and no clickable links? That's what VR is like today. On one hand, this is great! Developers are completely free to build however they want, leading to a lot of interesting experiments. On the other hand, it takes a lot of engineering effort to just get basic interactions up and running. Furthermore, it lacks consistency. The alluring promise of being able to navigate from world to world may be diluted by the frustration of having to rediscover new interaction paradigms every time.

While sane interaction defaults are badly needed, baking them into the platform violates principles of the Extensible Web. With that in mind, I implemented a basic Ray-based interaction library called RayInput, which provides reasonable defaults for interacting with 3D objects in and outside of VR. Here's what the interaction looks like on various platforms:

Continued →