a log of thoughts, ideas, and positions. email me with comments. ╔╗╔╗╔╗╔╗ ╔╗╔╗╔╗╔╗ ╚╝╚╝╚╝╚╝ ╚╝╚╝╚╝╚╝ Sun May 7 15:14:41 EDT 2017 - brain injuries years ago my sister almost died from a fall where she hit her head. i believe she survived in part because the person she was with immediately got help, emergency personnel and doctors quickly realized how serious it was, and she was able to get to brain surgeons in minneapolis (an hour away) fast enough to stop the bleeding in her brain before it killed her or caused serious brain damage. hearing about the recent death of a 19 year-old pledge at a penn state fraternity fills me with rage. apparently members waited at least 12 hours to call 911, shouted down another pledge's suggestion that he be taken to a hospital, and allowed him to repeatedly re-injure himself. the original injury may not even have been what killed him. in the case of the fraternity, it is clear that they prioritized trying to cover up their own activities over the life and health of a vulnerable, injured person. head injuries and concussions can be very difficult to assess. it's not easy to decide whether or not someone will be ok, particularly since people who have concussions aren't thinking clearly, and may vigorously insist they are fine. the same goes for a friend who may be suffering from alcohol poisoning or a drug overdose. i think the one requirement is that when deciding what to do (or not do) we must have the best interests of the person (and not our own) in mind. i remember being told that the mortality rate for the kind of injury my sister had is 10% per hour before treatment. waiting until later in the day to take her to the hospital could easily have killed her. relatedly, a 12-hour wait for treatment would almost certainly be a death sentence. ╔╗╔╗╔╗╔╗ ╔╗╔╗╔╗╔╗ ╚╝╚╝╚╝╚╝ ╚╝╚╝╚╝╚╝ 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. ╔╗╔╗╔╗╔╗ ╔╗╔╗╔╗╔╗ ╚╝╚╝╚╝╚╝ ╚╝╚╝╚╝╚╝