Designing for Developers

A perennial problem in philosophy of art is that explanations of beauty too easily devolve into poetry. An ambitious thinker sets out to explain beauty, and ends up writing words that are beautiful but do not explain beauty. The reader is complicit, accepting the feeling of beauty instead of its explanation.

Einstein

When I did a report on Albert Einstein in 3rd grade, I cherished him as a grandfatherly eccentric, whose portrait hung with uncharacteristic solemnity in my dad’s study. I watched Young Einstein and learned the tall tales of his youth (I suspected he didn’t actually diffuse an A-bomb by shredding on an electric guitar). I read the word “pacifist” for the first time.

Doing Good Better

The Individual Scenario: You have $100 to donate to charity, how do you spend it? Please write where you might donate before reading further:

The Bulk Scenario: Oprah has given you $100 million and asked you to donate it to charity. What a huge responsibility! How do you spend it?

A Trello Monad in the Dark

We are ceaselessly reminded of life’s fragility as we watch every cell, body, and star expire, disintegrate, and fade. An unending confusion attends our senses as they helplessly seek agency in a senseless void. And the brevity of this nasty brutishness is its cruelest irony. We must conclude that life is a fragile, confusing, and brief glimpse of an incomprehensibly beautiful yet ultimately indifferent universe.

The universe contains one countervailing force, however, that can fortify fragility, blow back the fog of confusion, and buy us at least one more sunset with a lover, one more bedtime story with our children, one more proud moment with a venerated elder.

Superintelligence: Paths, Dangers, Strategies

Can we create an intelligence that outclasses human intelligence as much as human intelligence outclasses a worm’s? Could we enhance the human brain, through augmentation or selective breeding, to achieve this? Or would creating a machine-based general artificial intelligence that can recursively improve itself be a better approach?

How do we reason about the motivations and behavior of a superintelligence? What unforeseen consequences could spell devastation for humanity if a superintelligence doesn’t share our values? Could we conduct a ‘controlled detonation’, powering on a potential superintelligence in a guarded environment so we can test it safely?

Designing Stacktraces for Xamarin Insights

Xamarin Insights is an app monitoring service that reports crashes and analyzes user behavior for apps built with Xamarin Platform. When we designed Insights, we wanted to render the most useful and beautiful stacktraces of any similar service. I’d like to explain the surprisingly sophisticated technology we deployed to render deceptively simple stacktraces.

Dennis the Menace

The most poignant moment of my year occurred tonight in the Orlando airport as I slurped boxed wine from a pint glass while waiting for a delayed flight.

Dennis (“the Menace”, he humblebragged)–a drunken, bearded, thoroughly unmanicured tugboat deckhand from Kentucky (even I feel like I must be making this up), materialized near me and my colleague, Serena, as we stood quietly absorbing airport merlot during a thunderstorm.

Ridiculous Boyish Joy

Two and a half years ago, an old photo reminded me of a hike I’d taken outside Seattle with my family when I was 12.

From the first steps down the trail, I was determined to find a lake, river, creek, pothole, or watery hollow by any other name to jump into.

Monads explained (sort of) to a C# developer

A monad is a fancy word for a generic type of the form MyMonad<T> (a generic type of arity 1).

A monad is special because it adds ‘special powers’ to the T that it wraps. These ‘special powers’ won’t sound very special to an imperative programmer, so you have to squint to see them but bear with me.

Shallow: Cloning a Hook-up App in F#


If you’re looking to pass superficial judgement on hot nerds in F# t-shirts,
you’ve come to the right place.

F# is a functional programming language designed with an emphasis on data science, that can also be used to build native iOS and Android apps with Xamarin. In my experience, when people discuss F#, someone inevitably asks “F# is great for analysis, but is it good for creating user interfaces?” I created a simple Tinder clone for iOS to show that F# is actually awesome for creating UIs, and for building apps in general.

Dear Madame

Found my first, absurdly awkward attempt at an online dating profile, written in the form of a Nigerian scam email. My account was reported as hacked.

The Shallows: What the Internet is Doing to Our Brains

Nicholas Carr, a widely regarded journalist and author, experienced a rude awakening when he realized that he could no longer drum up the concentration required to read a book. He soon discovered that many of his friends and colleagues reported being similarly unable to calm their minds and read at length anymore, preferring the rapid pace of the Internet to the quiet solitude of the book. In The Shallows: What the Internet is Doing to Our Brains, Carr synthesizes the history of intellectual technology with today’s burgeoning understanding of brain plasticity, in an attempt to allay his fear that “the tumultuous advance of [the Internet] could…drown out the refined perceptions, thoughts, and emotions that arise only through contemplation and reflection” (222).

You Are Not a Gadget: A Manifesto

Jaron Lanier is a preeminent technologist and Silicon Valley pioneer. In You Are Not a Gadget, Lanier artfully and even-handedly argues that today’s prevailing Internet ethos undervalues the individual, and instead places emphasis on the misguided notion of the “hive mind”–the powerful crowd dynamic that breathes life into sites such as Facebook, Twitter, and Wikipedia.

Introducing Futureproof

Six months ago, I was working as a user experience designer in London. After a particularly frustrating day, in an attempt to put my mind as far away from designing software as possible, I picked a book of poems by Pablo Neruda from my shelf and decided that I would memorize them while soaking in the tub. As I started to read the first poem, I immediately sensed that the part of my mind that memorizes poetry was not as I had left it. It seemed severely impaired. What has happened to my mind? Why didn’t I notice this earlier? What else is different? Is anything missing? Who am I now?, I questioned.

Undergraduate Papers

A chronological list of the papers I wrote as an undergraduate.

Computationalism and the Extended Mind

In The Extended Mind, Andy Clark and David Chalmers discuss the possibility of extended minds; coupled systems in which a human organism produces cognition, beliefs, and thoughts with the aid of external entities. Clark and Chalmers give the example of Otto, a man suffering from Alzheimer’s who uses a notebook to record his thoughts and beliefs. The authors argue that our notion of belief ought to be adjusted so that Otto and his notebook constitute a cognitive system possessing beliefs that are similar in all important ways to normal beliefs. In Why There Still Has to Be a Language of Thought, Jerry Fodor argues that our thoughts have a constitutive, evaluable structure analogous to the structure of language and to the relations among entities in the world. I offer three objections to Clark and Chalmers’s concept of the extended mind, ultimately arguing that extended mind semantics allows us to make counterproductive and counterintuitive claims about minds, beliefs, and more. I will show the similarities between Clark and Chalmers’s claims about language’s role of relating the mind to entities in the world, and Fodor’s ideas of mental representations and computationalism. Although I find important differences between Clark, Chalmers, and Fodor, I will offer a plausible account of extended minds that is friendly to the representational and evaluational aspects of Fodor’s computationalism. I ultimately conclude that although extended mind semantics is sometimes useful, the line between the mind and the rest of the world should remain in the skull for the time being.

A Case for Open Voting Systems

Introduction

Elections in the United States have a surprisingly sordid past; vote buying, ballot fraud, voter intimidation, and bald-faced cheating appear to be the rule rather than exception to anyone acquainted with the history of American elections. If anything has changed about US elections in recent times, it is that elections have become more complicated. Electronic voting systems are being introduced to address many election difficulties, most notably in response to the millions of ballots disqualified in the 2000 presidential election due in large part to voter error. Unfortunately, at this moment, electronic voting systems present numerous challenges—in fact, electronic voting systems sometimes introduce more difficulties and offer less control than the systems they replace. The aspect of electronic voting I will focus on is whether electronic voting systems should be open or closed; whether scholars, experts, and your average voter should be allowed to scrutinize the underlying details of the systems being used, or whether these details should be kept secret by the companies that build, own, and operate these systems. I will begin by discussing the 2000 presidential election and the flaws in traditional voting systems uncovered by that election. I will go on to discuss Congress’s response to the 2000 election debacle—a bill funding the nation-wide implementation of electronic voting systems. I will provide details about two electronic voting systems, one which is open and one which is closed. After that, I will discuss Lawrence Lessig’s distinction between open and closed code, and his argument for why code should be open in certain, critical contexts. Finally, I will touch upon the issues of commerce and intellectual property that cause some to be concerned about the idea of open voting systems. My conclusion is that our societal interests of democratic government, fairness, honesty, and transparent regulation overwhelmingly favor open voting systems.

Computing Machinery and Creativity

In an article entitled Computing Machinery and Intelligence, Alan Turing describes the Turing test, his famous criterion for machine intelligence: a computer can be considered a thinking machine if a human interlocutor, after asking the computer a series of questions, cannot tell whether he is conversing with a machine or with another human. After describing the details of this test, Turing discusses a handful of arguments that deny the possibility of thinking machines. Turing gives special treatment to “Lady Lovelace’s Objection” (450), an argument formed around a declaration that computers cannot be creative. I will explain Lovelace’s objection, offer an interpretation of what Lovelace means by “creativity,” and argue that computers are not creative in this sense. For another perspective on the possibility of creative machines, I will frame Tom Mueller’s article, How computer chess programs are changing the game, as an argument for why some computers ought to be considered creative. I will go on to argue that notwithstanding Lovelace’s objection, Mueller’s examples amount to “Turing tests” for creativity in which the chess programs pass. Finally, I will argue that these “Turing tests” for creativity are crucially different from Turing tests simpliciter, and therefore we cannot conclude from Mueller’s article that chess-playing programs think.

Santayana's Response to the Metaphysical Excesses in Schopenhaur's Account of Aesthetic Experience

In The World as Will and Representation, Arthur Schopenhauer offers an encyclopedic vision of a dichotomized world; half of the world is mere appearance or representation, while the other half consists of things-in-themselves, inner natures, Will. Schopenhauer borrows the language and concepts from his general system of metaphysical duality, most notably the concept of the Platonic Idea, and applies them in an account of aesthetic experience. In The Sense of Beauty, George Santayana takes a decidedly non-metaphysical approach to explaining aesthetic experience, as Santayana thinks that philosophers of art before him “have generally been audacious metaphysicians…[who] have represented general and obscure principles, suggested by other parts of their philosophy, as the conditions of artistic excellence and the essence of beauty” (6). Santayana argues that these obscure metaphysical principles are “vague [expressions] of [our] highly complex emotions” (8), which nonetheless excite our aesthetic susceptibility, but fail to tell us what is beautiful and why. I will frame Santayana’s critical response to Schopenhauer’s metaphysical excesses by first discussing Santayana’s general criticism of the metaphysical or “Platonist” approach to aesthetics. After that, I will summarize Schopenhauer’s general theory and the role Platonic Ideas play in his account of aesthetic experience. Then, I will consider Santayana’s psychological explanations of the origin of Platonic Ideas and their aesthetic function as a response to Schopenhauer’s use of the same. Finally, drawing on these discrepancies, I will argue that Santayana’s concept of Expression provides a better explanation of the immediate and intrinsic quality of aesthetic value, which Schopenhauer only expresses metaphorically in terms of “pure contemplation, absorption in perception, being lost in the object, forgetting all individuality,” etc. (197).

Locke and Jefferson on the Dissolution of Political Society

In The Second Treatise of Government, John Locke enumerates circumstances under which a ruler violates the trust of his people. Under those circumstances, it is the responsibility of the people to judge whether their trust has been violated, and, if they judge it has been, it is the people’s right to dissolve and reform the government. Unable to convince the British people that the “repeated injuries and usurpations” of King George III merit a drastic upheaval, Thomas Jefferson implies in The Declaration of Independence that it was necessary to circumvent the dissolution of the government of George III by instead dissolving the underlying bonds of political society, bifurcating the British commonwealth into two separate political societies: the people of the United States of America; and the loyalists and people of Britain. In order to make The Declaration of Independence more consistent with The Second Treatise, Jefferson must explain how it could be “necessary for one people to dissolve the political bands which have connected them with another” while Locke holds that “[the] world is too well instructed in, and too forward to allow of, this way of dissolving of governments.” Alternatively, Jefferson could argue, as I will, that as of the drafting of The Declaration, political society had already been dissolved by the actions of George III and the British people.

Anselm's Ontological Argument

Can we conceive of a being so great that to disbelieve its existence only leads to absurdity? St. Anselm thinks that we understand “something greater than which nothing can be thought,” and he argues that our understanding of this being is such that we contradict ourselves upon thinking that such a being does not exist. Anselm arrives at his conclusion only by befuddling object language and metalanguage, blurring the distinction between “a being that exists” (meta) and a being that exists (object). Regardless, we see that if we take care in our interpretation of his argument, Anselm delivers sound reasoning for the possibility of such a being and a reaffirming argument for those who already believe in such a being.