a log of thoughts, ideas, and positions. email me with comments.

╔╗╔╗╔╗╔╗ ╔╗╔╗╔╗╔╗
╚╝╚╝╚╝╚╝ ╚╝╚╝╚╝╚╝

Thu Mar 24 16:36:48 EDT 2016 - solidarity forever

(this post refers to the lambdaconf debacle. i'm writing in my
personal capacity, although i have an obvious connection to the
boulder typelevel summit as well.)

speaking at conferences is one of the ways that our community confers
prestige. even though speakers are often unpaid, it's undoubtedly a
chance to make an impact, get your ideas out there, and put yourself
on the map.

like it or not, the decision to include a speaker at an event creates
an association. usually this is innocuous, but in some cases it isn't.
when a speaker has public celebrity and notoriety, that association is
quite clear. when that notoriety is around viewing other people as
subhuman or unworthy of basic human rights, it is impossible to ignore.

in solidarity with people of color (and others) who are boycotting
lambdaconf, i will not be attending if it continues to associate
itself with a speaker who is a well-known white supremacist.

╔╗╔╗╔╗╔╗ ╔╗╔╗╔╗╔╗
╚╝╚╝╚╝╚╝ ╚╝╚╝╚╝╚╝

Sun Aug 10 15:44:16 EDT 2014 - coming back from holiday

so i spent a week (more or less) away from twitter.

overall, i think i accompished what i wanted to. i missed talking to a
lot of folks on twitter, but i actually spent a lot more time doing
things in providence that i care about. here's a quick summary:

 * went to three shows
 * met a music promoter who invited me to submit a demo
 * found someone to share a practice space in providence with
 * finished aldous huxely's "heaven and hell"
 * repaired a pair of pants (and sewed on a patch)
 * climbed my first V2 bouldering problem
 * cleaned my bike's chain and gears

i feel especially good making progress on music stuff. i think taking
a break from putting energy into the online world helped me put more
of myself into the physical world. i need to start working on
furnishing (and sound-proofing) the practice space, move all my
equipment over there, start playing again, and possibly try to recruit
a band.

despite these accomplishments (and the welcome headspace my break
provided), i did miss twitter, and was relieved to come back. i was
really touched that folks said some nice things, or reached out to me
by email/irc. i really value these online relationships, and for now
it does seem like twitter is somewhat necessary to maintain them.

i think i am going to try to continue keeping twitter in the
background.  i will mostly use it to keep in touch with folks,
announce new projects or ideas, and maybe occasionally share some
observations. but i will probably check it periodically, and will
definitely respond to messages.

hopefully i'll be able to report back soon about music progress.

(p.s. worth noting that the format of writing small messages to myself
about my thoughts was compelling enough that i hacked together my own
twitter analogue.)

Wed Jul 30 20:43:36 EDT 2014 - how i use twitter, and how it makes me feel

yesterday there was an online Q&A with Dick Costolo, the CEO of
twitter. under the hashtag #askcostolo, people were encouraged to ask
questions about twitter. predictably, many of us who are dissatisfied
with twitter's lack of action or concern around abuse asked questions:

some stats

of course, there was no response, and the status quo still sucks.

twitter has actually had a pretty big impact on me, and i find that
it's one of the only "social networks" that i feel attached to. but
lately my feelings have become more complex. i'm going to share my
history with the platform and feelings about it here. this is mostly
to clarify my own thoughts, but may be useful to you as well.

(this also might get super long, so feel free to skip it if you are
understandably uninterested in the last ~6 years of my life.)

i created a twitter account relatively early (through my friend
thomas), and managed to create a "two-letter" name before proceeding
to ignore the service for awhile.

this was a point where i was not really active in the free software or
open-source worlds -- i was focused on music, and just hacked on
angband and other projects (like my ridiculous text editor) for fun.
i didn't (and still don't) have a constructed identify as a "geek", a
"nerd", or some kind of "computer person". i told people i was a
musician, that coding was a day job, and that i was most interested in
art.

(for example, at my programming job i had negotiated for the right to
take unpaid leave to go on tour.)

but i was writing a lot of code (perl) at work and also writing code
(c and python) at home, so eventually i realized that it would
probably be smart to actually try to connect with other folks and
contribute to the projects i was using. it seemed dumb to spend 40-55
hours a week doing a thing but not really taking it seriously.

part of this was making an effort to meet people, go to events,
etc. but my problem was that i didn't really know a lot of other
people doing this kind of thing.

twitter was something that helped. i had a facebook account which i
used to promote and find out about shows, but i never liked it.
facebook seems to be about keeping track of people you used to know
(in a cursory kind of way). facebook calcifies old identities (and
friendships), and doesn't help create new friends or personas.

but with twitter i started having conversations with people i only
knew (or knew of) online. also, the tendency there is to follow people
you are actually interested in reading (as opposed to "friends" you
feel obliged to link to), and vice-versa. (this tendency may be
changing.)  but at the time i found it really refreshing: sometimes it
felt bad not to be followed by someone you liked/admired, but overall
it meant you were seeing (and meeting) the people you were most
interested in.

the other advantage was that twitter was public, so people you didn't
already know could engage with you. we'll get more to this later. but
at the time it was quite nice.

then a weird thing happened. i moved away from all my friends and
started over in a new city (which i was only going to be in for one
year) where i didn't exactly fit in or speak the language (sometimes
literally). i was also working remotely. so twitter transitioned from
being some kind of vague way to make connections and have useful
conversations into my main social inlet/outlet.

i think some people get taken aback when they have to read more than a
few tweets, or follow more than a few people. for me, twitter became
more like a virtual café, where there was a constant buzz of
conversation. when i wanted to chat (or eavesdrop) i'd show up for
awhile, and then leave when i wanted to get back to work. the
conversations were both very personal but also totally public, meaning
you'd get strange and unexpected interruptions or interjections.

again, this was mostly good. i'd meet new people who happened to reply
to my tweets frequently. instead of feeling obligated to follow people
who followed me i mostly chose people who were interesting to talk to
(or said interesting things which i saw). i was still mostly talking
to a relatively homogenuous group of "tech folks" about "tech things",
with random asides to music, art, philosophy, culture, politics, etc.

then things started to change again.

the first part was cool. through ludum dare, i stumbled on various
independent game people on twitter. their games were often really
interesting, but so were they. i didn't know any of them (and still
don't in any deep way) but i started following them. it was a much
more diverse group of people: lots of women, queer people, trans
people, even some people of color (who were largely absent from the
tech circle i had been following).

this was refreshing. i am still really glad twitter gave me the
opportunity to find out about these folks and communities, and to try
to help promote and support them and their work.

the second thing was less cool. i was starting to feel lonely, like i
needed social interaction, and twitter was my main option. this meant
that i was spending a lot of time (especially in the evening) hanging
around, reading, and replying. in this mode, i definitely was hoping
people would reply to my tweets (or replies) since what i really
wanted was social conversation.

there are a lot of ways this can go wrong:

 * people with lots of followers get tired of "randos" replying to them
 * it's easy to end up unwelcomly butting into a personal conversation
 * the frequency of your replies can stress someone out
 * you can commit other social gaffes

i am sure i made a nuisance of myself, and definitely got told so at
least once. like many men, i don't always do a great job of being
thoughtful or considerate about this stuff (this is not an excuse just
an acknowledgement).

the more you invest in making friends on twitter, the more you need to
go to twitter to see your friends. so it's a bit of a vicious cycle.

another thing that seemed to happen was that the tone of twitter
conversation became less playful somehow. i'm not sure if this was
just in some of the communities i was following, or was a thing
overall, but it seemed to become more urgent, more strident, more
sharp. from afar i witnessed all kinds of strange personal animosities
develop, as well as (perfectly normal) break-ups, falling-outs, etc.

but from within my strange bubble mediated by twitter, the whole thing
was incredibly disconcerting. i had no idea what was happening, what
was "safe" to say (or not). i was not entitled to know, but i had a
feeling of social closeness (and empathy, and concern) anyway.

also, i seemed to be getting caught up more and more in various kinds
of activism on twitter. i think a lot of it was (and is) beneficial,
but it really took an emotional toll on me.

in "real-life" (concrete life? physical life?) we often have (or at
least, we want) the ability to avoid stressors while we recover. and
in fact, a lot of the worst kinds of stress come from situations that
are seemingly unavoidable (poverty, home life, work, etc). in my case,
twitter was my only path to the kinds of conversation and social
interaction i needed not to feel totally isolated, lonely, and crazy,
but was also the source of a lot of stress and anxiety.

i haven't even mentioned abuse yet, so let's start now.

for me, twitter was and is somewhat unavoidable. with the exceptions
of my partner (who has actually been gone for a lot of the summer) and
my coworkers i still have almost all my conversations there. the more
time i spend there, the harder it becomes to stay away. in addition to
friendship stuff, i do talk shop with other folks in my field there
too (although there are other venues for this).

but i had a lot of advantages. i have never faced any campaign of
sustained harassment. the worst thing that has ever happened to me on
twitter is getting made fun of, told off, or mischaracterized by
someone i respected. in the grand scheme, not a big deal, but due to
my emotional investment it still hurt.

lots of my friends (or at least, people i think of that way) have
faced (and still do face) horrible harassment and abuse
constantly. the sick part is that it can literally come from
nowhere. you can just be minding your own business, having normal
conversations with your friends, and then out of nowhere the attacks
start.

what has actually happened is that some site or other (reddit, 4chan,
hacker news, whatever) has, like the eye of sauron, turned a baleful
eye toward you. and now you are a target for attacks. it may come from
a few people or a lot, it may be short-term of longer-term, it may
involve insults, character assassination, mockery, rape threats, or
worse. it may generate a stalker, or continued attention, or
not. it's completely outside your control, and it is horrible.

there has been a lot of talk about this recently, so probably everyone
i know has heard of it and has an opinion about it. i hope you are
sympathetic to the targets of this abuse.

the point i have been trying to make is that i am emotionally- and
socially-invested in twitter. i need it to talk to my friends (and
colleagues) in the way i am used to. it freaks me out how dependent i
am on it, and i am not even getting any abuse. if i were to quit
twitter i'd be (de facto) quitting many friendships.

if someone (a woman, say, or a trans person) is a writer, blogger,
critic, programmer, or a whole host of other occupations, they need to
have an online identity. but (as lots of other people have said) this
identity makes them a target. they have no easy way to take a break
from this kind of stress when it is professionally-necessary. they
have to figure out ways of dealing with it, and it hurts way
more than anything i have experienced.

that's even more terrible.

i like a lot of the folks that work at twitter. i have friends and
acquaintances there, and the folks i know there are good people. but
it burns me up that with all the money, and resources, and ideas that
they have, twitter as a corporate entity haven't done anything
significant to try to cut down abuse. given all the other changes to
the site and platform we've seen, it's obvious that there is no will
to even experiment with features to tackle abuse.

preventing 100% of the current abuse is a very hard (possibly
unsolvable) problem. but preventing 95% of it would be a major
improvement. and it is attainable. i'm not the only one who thinks so:

five things twitter could do

whether or not you think that having intense arguments online is or is
not appropriate, i hope readers will all agree that creating shell
accounts to hurl abuse and rape threats at people anonymously is not
something that twitter is obliged to faciliate or ignore.

(i realize that transitioning from talking about abuse to something
less serious is weird, but i am doing it anyway, so i'll just
acknowledge that here.)

i have another source of unease. in some sense, those of us spending a
lot of time on twitter are playing a game. faves and retweets are the
reward, and we are training ourselves to figure out which tweets
"work". even if you aren't consciously doing this, i think it's likely
that some part of you is thinking about it.

this didn't really occur to me until i realized i started having
hunches about which kinds of tweets (or wordings) would probably be
most popular. it makes sense that anything we spend time doing we will
train to get better at.

anyway, the thing i have realized is that the kinds of conversations
that "work best" on twitter are not always the kind i want to be
having. i still love the weirdness, the non-sequitors, various strange
metaphors and analogies, the bots and the art. and i do enjoy the
camraderie.

but i am starting to hate the sarcasm, the mockery, the tone. i am
just as guilty of it as anyone, so i am not trying to point a
disapproving finger at you or anyone else. i just don't like the
person that twitter seems to be training me to become. at the same
time, it's true that without sarcasm, ire, or force, 140 character
statements seem to compete less well in the "marketplace of tweets".

anyway, the sum of all this is to say that i am going to take a break
from twitter. it will be hard, and i will miss a lot of the folks i
regularly talk to. but i am uncomfortable with how much emotional
control over my life i have ceded to twitter. it's strange how anxious
i feel just writing this. i don't know how short or long this vacation
will be (i might fall off the wagon). but i want to give it a shot.

hopefully if you are someone i talk to on twitter, and you miss our
conversations, you will send an email or text, or say hi in the
#spire-math IRC channel, or something else. and we can have a real
conversation.  this isn't something i am fishing for or expecting,
it's just an option you have.

in the meantime, i hope to make progress on things i care about, have
face-to-face interactions with people (especially new people in
providence), and recenter myself.

coming back to twitter-as-social-medium:

it should be possible to create some kind of federated protocol that
has many of the benefits we've seen with twitter, while still helping
people have (more) control over their social (and professional)
livelihoods. and not being so dependent on a (for-profit) company. but
i don't really know where to start.

maybe i can use some of my time away from twitter to find out.

╔╗╔╗╔╗╔╗ ╔╗╔╗╔╗╔╗
╚╝╚╝╚╝╚╝ ╚╝╚╝╚╝╚╝

Wed Jul  2 21:38:24 EDT 2014 - should versus can

so tonight one of my twitter friends was commenting on the
ineffectiveness of a certain kind of "code evanglism" and i
responded. i figured i'd take a moment to explain what i mean
in a bit more detail.

these days i write a lot of code in scala, both at work and outside of
it. ever since tom switzer and i started working on spire, i've been
slowly pulled toward the typelevel side of the scala world. it's a place
where folks are very interested in powerful static types, pure
functional programming, and being principled. i don't always feel like
i fit in, and the projects don't all subscribe to the same set of
principles, but overall i think it's a good place to be.

there's a real (and sometimes vitriolic) struggle in the scala
community between several different viewpoints/factions. this often
gets characterized as "pragmatism versus ivory tower." i would say
it's more complex than that: there are more than two sides.

the language's powerful type system and its strangely-unopinionated
semantics mean that a much wider variety of coding styles are possible
in scala than in, say, haskell or clojure or java. values can be lazy
or eager, data can be mutable or immutable, you can use subtyping or
composition, and so on. everything is possible, from pure functional
programming, to ruby-esque code with static types, to terser java, to
dependent-typing. for example, i would describe my own style as an
idiosyncratic mix of functional and imperative programming.

it's natural that different people, teams, and projects want to try to
subset the language and set up shared principles for writing what they
consider "good code".

the part of this process that i don't have time for (and which i am
actively trying to avoid) is arguing with people about what they
should do. this is not to say that i don't have opinions, just that i
don't find most of the public discussions around style or best
practices to be useful. for the most part, no one comes away
better-informed, or with a new perspective.

most online communities which i've seen trying to enforce rigid views
of style have ended up being at least somewhat toxic. it's hard not to
see these conversations as struggles for dominance. often, it's less
about person A explaining something for person B's benefit and more
about scoring points with persons C-F, possibly at B's expense (or
making an example of B to keep persons G-N in line).

my friends include game designers, web programmers, mathematicians,
engineers deep in the enterprise, system administrators, and other
hackers. many (most?) of them hold views on programming languages that
are completely different from mine. some of them would never even
consider writing code for the jvm. some don't have time for anything
less pure than haskell, others don't use anything more high-level than
C. some prefer not to write any code that won't run directly in a web
browser, others are skeptical of garbage collection.

i think it's natural that smart people come to different conclusions,
especially when they work with very different constraints and goals.
the diversity of viewpoints and of languages (the "ecosystem") is an
asset, not a problem. as i've said before, i don't like the idea of
"one language to rule them all" even if it's a good language.

on a more practical level, i don't think that browbeating people into
doing something different works. even if i am convinced that static
types make it easier to write good code (and they certainly do for me
these days), it's not clear to me that a seasoned lisp, js, or python
hacker would magically benefit from switching languages. getting real
benefits from any language/type system/framework/theory requires
embracing its principles, assumptions, and practices. when was the
last time you embraced new principles because someone screamed at you
about them?

my experience is that when people see code which amazes them, read
about exciting projects, or find useful libraries, they get interested
in what makes them tick and how they are built. the code, the people,
and the community end up being the draw. blog posts where people lay
out the strategies they use are much more persuasive than blog posts
which cast aspersions against other approaches.

in the slides for my talk at flatmap(oslo) i used the phrase "another
world is possible." this is a common slogan on the left, and using it
in a technical talk was somewhat playful. but this is exactly the kind
of optimism i want to inspire in folks. rather than talking about what
people "should" do (or why they can't be trusted, or why they or the
languages they use are "dumb" or "bad") let's imagine different ways
of writing code, of building libraries and communities. let's give
people an invitation to the party, an invitation to try something new.

the impulse to evangelism comes from an optimism that the listener can
be convinced (or converted). let's channel that optimism into trust
and respect: that people make good choices based on their situation
and the examples around them. rather than getting into the same old
fights, or making the same tedious arguments, let's channel that
energy into building great things (and great communities) using the
best tools, languages, and strategies we can.

╔╗╔╗╔╗╔╗ ╔╗╔╗╔╗╔╗
╚╝╚╝╚╝╚╝ ╚╝╚╝╚╝╚╝

Tue Jun  3 23:25:32 EDT 2014 - goals versus practices

as anyone who's known me for longer than two years knows, whenever
someone asks me how i'm doing i'll usually preface things by saying
that i'm not in a band right now and feel bummed about that. it's
something i've done for a long time and i don't feel remotely finished
with it. but i haven't had a lot of luck finding other musicians in
providence, and right now i am having a hard time getting back into
recording noise/electronic music solo.

i think part of the problem is that i've never been a good
goal-oriented person. i almost never meet goals when i set them out as
goals, and the existence of goals often distracts me from what i need
to be doing.

this is arguably just a character flaw, or a symptom of laziness. but
for whatever reason, i really rely on intrinsic motivation to get me
to "do" things in my life, and desired outcomes (or threats) don't
tend to be great motivators for me.

the flip side of this is that i've often "accidentally" gotten good at
things, or accomplished a lot without really meaning to. i drew a lot as
a kid and ended up getting good at it without having a specific plan
or goal. i went from mediocre to actually pretty good at playing bass
guitar just by being in a band and showing up to hang out and play
music 3 times a week for a few years.

i've also done things that would have seemed crazy to plan for. i
wrote an mp3 player for fun (over a couple of years), a bunch of other
random programs and games, and a text editor for fun (over about 5-7
years). this was just when i had free time and felt like doing it; i
didn't force myself to do it, i was just interested and excited.
eventually i got good at programming without really meaning to. i only
started programming in college, and got interested in doing it
professionally only as a "day job" rather than a "passion" or
whatever.

these days i am working on a lot of open-source libraries, mostly in
scala. i didn't really plan to do this, i just started working on
things as they caught my fancy. but i ended up with 5-6 distinct
projects that need new features, documentation, releases, bug fixes,
etc.

occasionally it feels overwhelming, and i feel guilty that i'm not
working on the projects that i *should* be. but like i've said, that
guilt is usually not a good motivator, so it doesn't get me working on
these things faster, and overall i think i'm actually doing a good job
publishing things and moving them along as needed.

to get back to music...

i think i need to translate my goals into activities i can just do on
a daily basis, without pressure or expectations about a result. i'm
not sure what that will look like in all cases (especially the
"meeting other musicians" part), but for me at least there isn't a
viable alternative.

╔╗╔╗╔╗╔╗ ╔╗╔╗╔╗╔╗
╚╝╚╝╚╝╚╝ ╚╝╚╝╚╝╚╝

Mon Apr  7 18:01:53 EDT 2014 - free speech

so, i've been having some recent conversations on twitter around
freedom of speech. this is related to the recent eich/mozilla
situation but i think it's worth talking about generally.

i'm just going to lay out my feelings about this, rather than trying
to argue that everyone who disagrees with me is wrong. there are a
number of things that make arguing about this sort of thing
complicated and fraught.

almost everyone claims to be in favor of freedom of speech. in cases
where a government wants to ban marginal political, religious, or
other kinds of speech things are relatively clear-cut. when we stop
talking about government and start talking about people (or "corporate
people") things usually get complicated fast.

in case you didn't figure it out: i am someone who imagines a future
society that is radically-inclusive, free of poverty, hunger, and
hierarchy. i hope to achieve this without recourse to authoritarian
governments, police states, or purges. the obvious question most
people probably have is: how do you "force" people to be inclusive,
tolerant, or non-violent without subscribing to intolerance and
violence yourself?

the only semi-coherent answer i have is that i hope to participate in
excellent societies which reward participation but simultaneously
encourage and enforce norms. rather than using laws, police, trials,
fines, and/or violence, i hope that these groups will naturally
welcome and nurture participants, while encouraging positive behavior.
people who advocate bigotry or persecution (i.e. prop 8) can be
excluded, and in cases where those folks dominate groups, i can
refuse to participate.

simultaneously, as i reserve my right to leave and to speak out
against communities that i consider broken, exclusionary, bigoted, or
violent, obviously other people are free to opt-out of communities
that enforce norms they disagree with. the only non-violent strategy
available to work out these differences is to let all people speak,
judge, and be judged. history will decide who was in the right and who
was not.

if freedom of speech means freedom from (social) consequences, what
tools are left to oppose any speech at all? and who would be the
arbiter of "appropriate" responses to speech?

if someone sees another good way for a small, scrappy, decentralized
group of people to challenge powerful, entrenched institutions, i am
all ears.

(made minor edits Tue Apr  8 00:26:22 EDT 2014)

╔╗╔╗╔╗╔╗ ╔╗╔╗╔╗╔╗
╚╝╚╝╚╝╚╝ ╚╝╚╝╚╝╚╝

Tue Apr  1 19:41:59 EDT 2014 - food

this post will probably be much less interesting than some of my
previous ones, but it's something i often have to explain to people.
i figured i'd write it up here so i can link back to it later when
necessary. if you're here for politics and programming feel free to
skip this one. also, despite the date, this isn't april fool's
related.

one thing that i often end up having to explain to people is what i
eat and why. a lot of people get the idea that i'm vegan (i'm not) or
just never really see me eat food. i tend to self-describe as a
"weirditarian" which is a good non-answer (sort of like "it's
complicated" as a relationship status).

as far as i can tell i am a "super-taster" [1]. i haven't been
diagnosed or anything, but i've read about it and done some tests with
food coloring. this means that my experience of food and flavor is
probably quite different from yours. from an early age i had a very
good idea that there was food that most people thought was delicious
but which i couldn't stand. i also learned to dread eating over at
other people's houses, or unknown restaurants.

(given that this has been with me my whole life, i have a hunch that
it has given me a certain appreciate for subjective aesthetics and
pluralism. i never had any illusion that my food preferences were
widely shared or "correct" in a global sense, and i was living proof
that "normal" people's preferences weren't universal either.)

i tend to go for very simple/bland foods, and i really value
predictable over new or exciting. once i find something i can handle i
tend to stick with it rather than exploring other options. foods with
strong or varied flavors, especially huge mixtures of ingredients,
tend to be non-starters (even if i like each ingredient individually).
over the last decade i've tried to become more flexible and "learn" to
eat things i don't already like, with limited results.

it's possible there's a psychological component to this too--i'm not
really sure. according to wikipedia 15% of men are super-tasters, so
that is probably not a complete description of my situation.

but the long-and-short of it is that eating with other people has
always been a huge source of stress and anxiety for me, and if i need
to eat with people i try to arrange it so that either i'm sure there
will be something i like, or i can bring my own food, or that i can
plausibly claim to have already eaten.

i think because most people are "picky" as children but grow out of it
there's an idea that i'm just being childish. which means i feel very
self-conscious when people notice this and ask questions, or when
i have to explain it.

this seems like the definition of a "first world" problem, and it's
true that if i was going to starve of course i'd eat whatever i had
to. but eating things with terrible flavors is something i really hate
doing, so skipping a meal is usually preferable. i guess a good
analogy would be walking for 30 minutes in the rain without an
umbrella (or rain gear). most people could do this if necessary, but
would strongly prefer not to and would probably be miserable
afterwards.

historically i have avoided talking about this and tried to fake my
way through meals i can't really eat. moving food around on the plate,
giving it to someone else, secretly throwing food away, acting like
i'm not hungry or feel sick, these are all strategies i've used
[2]. of course, there's a whole social/hospitality component of shared
food, or enjoying someone's home cooking, so this can be awkward or
impossible sometimes. i've definitely offended some people who were
sure that i would love something if i just tried it.

part of writing this is just for me: to allow myself to be a bit more
transparent about my relationship to food and my feelings about
it. also, since i know i've confused people in the past, i figure i
should try to document my situation a bit more clearly.

so if i've ever seemed stand-offish about an invitation to get food
with you, this is an explanation (and possibly a round-about apology).

[1] http://en.wikipedia.org/wiki/Supertaster

[2] i really try to avoid wasting food so i will opt-out ahead of
time if i can, but that's not always possible.
 
╔╗╔╗╔╗╔╗ ╔╗╔╗╔╗╔╗
╚╝╚╝╚╝╚╝ ╚╝╚╝╚╝╚╝

Fri Feb 21 20:29:59 EST 2014 - jim weirich's passing

jim weirich died two days ago [1]. despite never having met jim, and
despite not being part of the ruby community, i find that his death
has had a profound effect on me. there are a few obvious reactions
that i have:

the positive feelings jim inspired in ruby folks are something most of
us in open source hope to inspire. but it's worth looking at what it
was about jim that people remembered: his work, his kindness, his
patience, his generosity, and his humor. i haven't gone digging to
find evidence of secret flamewars and grudges (which i don't expect to
find) but the point is that these are the qualities people loved.

many people in open-source communities assume that code quality and
intelligence are the most important things. and certainly, no one
wants to use projects whose code is poor, or which are poorly-designed.
but this misses something.

there are always reasons (or excuses) that explain why we are stingy
with our time and attention. it can amount to brushing someone off at
a conference, failing to write good documentation, or choosing not to
respond to that email from a beginner who's asked a question. there
are also reasons why our opinions (and frustrations) find creative
outlet in rants, arguments, and flame wars. and certainly, most people
working on these projects aren't paid to be nice (or paid at all in
many cases).

but i think that jims (and anti-jims) are the real reason projects
succeed (and fail). i belive that any attempt to improve the state of
our communities, our ecosystems, and even our industry, will rely on
radical inclusivity, friendliness, humor, and compassion.

a despairing, pessimistic side of me thinks about my future death in
the context of software. i imagine a relatively small amount of code i
would have produced in (almost-certainly) outdated, legacy languages
which were later abandoned. to the degree that i write code as a job,
maybe this is ok. but i like to imagine a larger significance to my
(our) work.

i think the correct response is to say that the real impact we have is
not the lines of code we write, but the ideas and values that we share
and pass along. if a new generation of programmers is a bit better
than we are, then whether or not our work survives is less
important. the code is buggy and ephemeral, but the relationships and
memories will endure. values are eternal and immutable.

one of the things i take away from all this is a conviction that i
must do better.

[1] http://en.wikipedia.org/wiki/Jim_Weirich

╔╗╔╗╔╗╔╗ ╔╗╔╗╔╗╔╗
╚╝╚╝╚╝╚╝ ╚╝╚╝╚╝╚╝

Wed Jan 29 14:26:43 EST 2014 - programming language of thought

Between my politics, my interest in math, and my life as a programmer,
I have some pretty contradictory ideas of how programming languages
should work. I want to be radically-inclusive in terms of who can
participate in the practice of programming, but I also value certain
formalisms that may alienate or turn off other professional
programmers. I hate seeing people denigrate and shit on languages and
technologies they don't use, but I am also guilty of this myself. How
can I reconcile this?

I'm not sure, but here are some thoughts and questions I have that
might give you an idea of what I think the problems are:

0. The desire to "unify" programmers on a single language seems both
unrealistic and also sinister and authoritarian. Is there anyone who
wants to unify the community around something other than their own
preference? So should we embrace that programmers must be polyglots?

1. But if a programmer cannot be successful in language X, does that
make them a bad programmer? If Italo Calvino could only write his
novels in Italian, does this make him a bad author?

2. The "strong" version of the Sapir-Whorf hypothesis [1] (that spoken
language limits thought) is largely discredited by linguists, but many
of us are sympathetic to the the "weak" version (that it merely
influences thougth in some way). To what extent does this hypothesis
hold for programming langues?

3. If programmers do not (or should not) think in particular
programming languages, what is the programming language of thought?
Something like a Turing machine?  Mathematics? Lambda calculus?
Something else? Is there more than one?

4. Programmers frequently denigrate other langauges, and implicitly
pressure others to adopt their preferred language instead. How do
these efforts compare to historical battles over spoken and written
languages? To what degree are language communities colonized?

5. How can we accurately and adequately measure the costs and benefits
of programming language diversity (or monoculture)?

6. While commerce undoubtedly helped shape the development of spoken
language, most speakers do not learn and use language primarily for
commercial reasons. Is concern over industrial and commercial
applications stunting the development of programming languages?

7. To what degree should tools like logic or math be prerequisites for
fluency in a programming language? Is interest in diversity and
inclusivity inherently at odds with languages that require rigor and
structure? Or is it the case that these approaches are merely at-odds
with the industry's status quo?

I have some opinions about these things, but I think it's more
productive to ask these questions than to state the (presumed)
answers.

[1] http://en.wikipedia.org/wiki/Linguistic_relativity

╔╗╔╗╔╗╔╗ ╔╗╔╗╔╗╔╗
╚╝╚╝╚╝╚╝ ╚╝╚╝╚╝╚╝

Sun Dec 15 23:04:13 EST 2013 - dialog versus debate

i'm not sure if anyone else has noticed this, but i often see two
activities lumped together which i consider very different: dialog and
debate. i'm just going to take a minute here to explain what i think
they are, how they are different, and why the distinction matters.

(these ideas may be super obvious to you already.)

i consider dialog to be a conversation between two (or possibly more)
parties, with the goal being to understand each other, to communicate
ideas, and to try to find agreement where possible. crucially, in a
dialog you are trying to persuade the other participants of your
position (and they are presumably trying to persuade you of theirs);
the assumption is that speakers are being honest about their thoughts
and feelings. to the degree that parties are not open to hearing
another side, don't trust the other party, or are dishonest, dialog
can (and usually will) break down.

on the other side is debate, using rhetoric and other tools. a debate
may consist of the same active participants as a dialog (two or more
people) but the goals are very different: there is an audience (either
real or presumed) who the participants intend to sway. in a debate,
persuading the other parties is, at best, a secondary priority. very
often in a debate the participants have no intention of actually
considering challenging viewpoints (and in fact may not even believe
in the points they are stating).

tactics that work well in a debate will usually fail in a dialog, and
vice-versa. for instance, debaters might purposely mischaracerize an
opponent to make them seem stupid or evil. this is a terrible way to
persuade the opponent, but might be a great way to win over an
audience. on the flip side, trying to find common ground will aid in
dialog, but will probably hurt one's chances in a debate.

the reason i think this is important is that it affects when and how
to talk to people. anytime there is a large audience, conversations
will tend to become debates: the temptation will be to score points
with sympathetic or independent listeners, rather than the much more
difficult goal of finding consensus or common ground with the
"opposition".

thus, for friends or potential allies, it makes sense to try to have
private (or semi-private) conversations instead, where there is no
threat of public humiliation, point-scoring, or losing face. in
contrast, there are times when public debates are a better tool:
calling out bad behavior where private dialog is likely to fail,
polarizing a community to help "draw lines" around an issue, or when
dealing with someone who is unlikely to honestly enter into dialog.

i don't think these provide hard and fast rules: some folks may prefer
to have all their conversations occur in public, or may feel like
public debate (e.g. "calling out") is more likely to achieve their
goals. but i do think it's worth carefully considering when and how to
enter into dialog versus debate, and to be clear on what one's goals
are (to change someone's mind, to make an example of them, to frame a
larger issue, to understand their views, etc.).

╔╗╔╗╔╗╔╗ ╔╗╔╗╔╗╔╗
╚╝╚╝╚╝╚╝ ╚╝╚╝╚╝╚╝

Wed Dec 11 16:06:15 EST 2013 - intentions

whenever there's a discussion around something being -ist or -phobic
someone inevitably brings up intentions. the usual response is
"intentions don't matter". this is a good position: it's impossible to
determine someone's true feelings or intentions, so shifting the
conversation to intentions functions as a dodge, where the subject of
critique is the only authority.

(there is a really good video discussing this.)

so, if you accept the preceding, then is there even a role for
intention? i think so.

the closer you are to someone, or the more you trust them, the more
you may need to care about intention. i don't mean in terms of "taking
their side" and trying to minimize their actions (though
unfortunately, you may end up doing this anyway).

but after the dust settles, after the person accepts responsibility
(or tries to dodge), and after they apologize and make amends (or not,
or half-heartedly), you'll need to decide what you want to do (or not
do). it will probably be a hard decision, especially if there are
public calls to "shun" the person. there's no right answer either way,
but at this point i do think intention matters.

this idea (that intention matters personally, but has no place in a
debate around actions) has been on my mind for awhile. it ties into
some larger views i have around dialog versus rhetoric, and on the
ways that we handle (or fail to handle) conflict in radical
communities. the tendencies to dodge accountability, conduct witch
hunts, and derail honest reflection and critique all hurt our ability
to form genuine, honest, and trusting relationships.

maybe i'll try to write more of that up later.

╔╗╔╗╔╗╔╗ ╔╗╔╗╔╗╔╗
╚╝╚╝╚╝╚╝ ╚╝╚╝╚╝╚╝

Sun Oct 27 19:47:51 EDT 2013 - inaugural post

i think the blog format is kind of a disaster, but i wish i spent more
time writing down my thoughts and ideas. so this is an old-school
"web log" with no comments or anything fancy.

i'm terrible at these things so we'll see how it goes.

╔╗╔╗╔╗╔╗ ╔╗╔╗╔╗╔╗
╚╝╚╝╚╝╚╝ ╚╝╚╝╚╝╚╝