On Not Quite Fitting

Epistemic Status: I believe this to be an accurate description of how I experience the world. I am reasonably confident that it generalises based on what I know about peoples’ experiences, but I may be overstating how widespread it is a bit.

PSA: Please for the love of all the gods do not use this post to pick fights with me about bisexual vs pansexual. Not the time, not the place.

Credit: Thank you to various beta readers for this post. It’s always a bit stressful writing about this sort of thing.


If you talk to be people who fall under the LGBTIAQ* umbrella, one sense you will frequently get is something akin to the idea of “born this way” even if it’s not quite phrased as that – that their gender or sexuality is in some sense a deep seated part of their core identity and that trying to suppress it would be unbearably awful for them.

I have absolutely no doubt that the people saying this are telling the truth, but I think an underappreciated point is that this is still what you would see even if that were not the majority experience.

In particular, my personal experience is quite different.

I am bisexual. I tend not to make a big deal out of this, mostly because I do not date that much, but it turns out that your sexuality doesn’t magically go away just because you’re not doing anything with it.

I chose to be bisexual. At some point I decided that I was bored of describing my sexuality as “It’s complicated and not that interesting but I can give you the decision tree if you really want to spend the next fifteen minutes talking about it…” and that I should just use the commonly accepted word that was least inaccurate for my situation.

In a different life where I had had different experiences I probably would still consider myself to be heterosexual. I mean sure my brain would still occasionally go “hello, boys”, but it’s remarkably easy to ignore what your brain is telling you and just write it off as “brains do weird things sometimes” when it’s something that doesn’t fit your self-image.

Even if I had realised that this was genuinely a thing, there are definitely different circumstances under which I would absolutely not fess up to it in public. I decided to just be out about this in large part because I have social capital to burn and I thought it would be useful to people from a visibility point of view, and because secrets stress me out, but I had less of the former and the costs of my being out were substantially greater then I’d probably shove myself pretty thoroughly into that closet. “Hello fellow hets. Just call me Straightvid McHetero. Yup yup. This here David is all about the ladies” (that’s how straight men talk, right?).

Honestly, that would probably have been OK for me. Especially with how little I date, my sexuality isn’t a huge part of my life. I wouldn’t be happy about it, but I could deal with it.

Before I go any further I want to emphasise that this is not universally true. There are many bisexuals for whom their bisexuality really is a deeply felt part of their identity and for whom passing as straight (or as gay) would be unbearable. The situation is even worse if you are gay and forced to present as heterosexual.

My suspicion is that this, and variations on it, are actually quite a widely shared experience.

The whole reason we have this notion of being in the closet is because society imposes a high cost to breaking its rules. Even the most liberal of societies are still very heteronormative, and even more strongly cisnormative. If you go against these norms, you will be punished. It might be in big ways, it might be in little ways, and it’s certainly better than it was 50 years ago, but there absolutely is going to be a cost.

And what happens as a result is that people do a cost-benefit analysis (usually implicitly. Actually sitting down and going “Is the cost of publicly self-identifying as bisexual worth the benefit to me?” like I did is weird, but I’m like that). The people who are publicly out or otherwise visible as non-conforming are the people for whom the benefit of doing so is greater than the cost.

What this means is that for things where the cost is very high, the overwhelming majority of people you see who do not conform to some norm are people for whom the non-conformance is of sufficient importance to them that it’s worth the cost, or the cost of conformance is too high.

You can see this as more and more people feel comfortable coming out of the closet as things get gradually better – as the level of policing of people’s sexuality gradually goes down, the number of people for whom it is worth it to explore their sexuality goes up. This isn’t what a binary “you’re either LGBT or you’re not” split looks like, it’s exactly what happens when you have a continuous spectrum and everyone below some threshold is quietly pretending that there’s nothing to see here.

Centering gender and sexual politics and discussion on the people most strongly affected is absolutely the right thing to do, but I think it’s still useful to be aware that this spectrum exists and literally everybody is somewhere on it (that’s why it’s a spectrum).

This is important for a number of different reasons.

The first is simply that I’m pretty sure that it’s true. It’s good to believe true things. The world makes more sense that way. This model of how people are behaving is (as far as I can tell) extremely consistent with both the data and many many quiet conversations I’ve had with friends about their experiences.

The second is that I think it is extremely helpful to people to understand this about themselves, especially if they are in a  boundary area. Stressing about the question “Am I bisexual or am I just faking it?” seems to be an almost universal bisexual experience, and that’s not surprising given this dynamic! When most of what you hear is from people whose sexual identity is burned into their very soul, “I don’t know what’s going on but sometimes I feel like it might be nice to be able to kiss boys??” feels fake in comparison.

It’s also useful from a political point of view. There is strength in numbers, and understanding that the range of experiences includes a much more broad base of people who would experiment if given the option significantly increases our numbers. I’d much rather describe my sexuality as “Look over there!” followed by dropping a smoke bomb and escaping in the confusion, and my decision to identify as bisexual instead is in no small part a political one. I suspect there are quite a lot of others out there who could usefully do the same.

(Please note: If you actually feel you’re genuinely 100% straight don’t just call yourself bisexual for political reasons. I think the label becomes significantly less personally and politically useful if people start doing that).

Finally, the biggest reason I think that this is important to talk about is because that’s how we beat pluralistic ignorance – the phenomenon that people can widely share an experience without knowing that the experience is widely shared.

Imagine an extremely oppressive society in which presenting as anything but straight is completely not an option (sadly this probably does not require much imagination). Now wave a magic wand and everyone wakes up one morning as a 50/50 split bisexual. What happens?

Well, almost nothing. Possibly enforcement of the rules gets even stricter, because now people are terrified of being found out as bisexual themselves. Although everyone is bisexual, they each think everyone else is straight.

I think it is extremely likely that we are in a less extreme version of this scenario, with almost everyone failing to quite fit the mould that society wants them to but still being complicit in enforcing the accompanying social rules on others.

(Some people benefit enormously from the current state of society, but both things can be true at the same time).

I really do mean almost everyone, because this isn’t a problem confined to sexuality (although I do think that for a sufficiently broad definition of bisexual there are a hell of a lot more of us out there than is commonly supposed, so maybe it’s even a majority if you just stick to sexuality). The human experience is full of spectra – gender is probably one or more spectra, there are a whole variety of neurodivergences which certainly are, and a whole variety of less obvious preferences and traits that society forces us to fit into.

As a result, I believe most people are spending their lives being made vaguely miserable by an attempt to conform to rules that describe an ideal that almost nobody actually wants to conform to. If we could all take a step back and just decide not to enforce some of those rules, we would be more able to express ourselves in ways that make us more comfortable.

Talking about this problem won’t make it go away on its own – some of these rules are due to genuine value differences, and some of the people being made miserable would actively choose to enforce the rules even if given the option not to – but I think it’s a good first step.

By acknowledging that we all experience these degrees of variation, and that nobody quite fits in, maybe we can start to broaden the range of behaviours that society accepts and make it easier for people to experiment and find out what actually works for them.


If you would like to read and learn more about this, I can highly recommend “Queer: A Graphic History” by  Meg-John Barker and Julia Scheele. Foolishly I read it right after rather than right before writing this post, so it did not directly inform it, but I think there’s a lot of overlap nevertheless.

This entry was posted in Feminism, Performing philosophy without a license on by .

Doing the Two-Step for Efficient Reversible Deletes

Attention conservation notice: I’m back to blogging about tech again. Sorry.

Credit: Thanks to Suzy Hamilton for useful information about dance types.


I recently read Donald Knuth’s dancing links paper. It was sent to me as an example of good writing, which I don’t entirely agree with (it’s locally good writing, but I didn’t really understand it until I rewrote the first couple of pages in my own words and notation and then it was fine), but regardless of whether it’s good writing it’s definitely an interesting technique that I was previously vaguely aware of but didn’t appreciate.

Roughly the idea of dancing links is this:

  1. For efficiently implementing depth first search for solving some hard combinatorial problem (e.g. SAT solving, but also others. The main example of the paper is the exact cover problem) it is very useful to be able to have mutable data structures with undoable operations. In your recursive call you make a bunch of changes, and you undo them all before returning.
  2. A particularly useful category of undoable change is to be able to maintain a list of elements that you can delete individual elements from, then undo those deletes.
  3. A doubly-linked list allows you to efficiently implement that by removing a node from the list and just keeping it around (with its pointers still intact) and then just reinserting it when you undo. Apparently this is like the links in the doubly-linked list “dancing”, hence the name.

1 and 2 are interesting points that I think will have a significant impact on how I design things. I am very glad to have read the paper for that.

Point 3, eh. No thanks.

There are two problems with it:

  1. Doubly-linked lists are a bullshit data structure
  2. Point 1 of this list is in large part responsible for one of my main problems with wrapping my head around the paper: If you give me an interesting algorithmic approach then I’m going to want to wrap it up as an ADT so I can treat it in terms of an abstract set of operations it implements and reason about that separately from the algorithm. Doing this as a doubly linked list makes that hard because of what the deletion operation ends up looking like.

It turns out that it’s actually really easy to fix both these problems if you are willing to relax one of the constraints very slightly: The desire to keep all of the elements in a particular order.

There is a data structure that supports the following operations:

  • Initialise with N elements in O(N).
  • Get the current number of elements in O(1)
  • Get the element at index i in O(1)
  • Delete the element at index i, putting the element that was previously at index length – 1 in its place (or just delete it if i = length – 1) in O(1).
  • Undo a single delete O(1)

So if you perform k deletes and then call undo k times, the list is back in the state it was before the deletes.

Moreover there is very little indirection involved (everything is just stored in an array) so algorithms using this involve almost no pointer-chasing, unlike a doubly linked list, and is likely substantially more efficient as a result (but I have done literally zero benchmarking to demonstrate this). It also uses less memory per item.

One important thing to note is that although the order of the elements changes, it does so in a sufficiently predictable way that forward iteration over the list is easy: You just iterate as normal, and if you want to delete the current element you just skip incrementing the loop index.

How does this data structure work?

  1. Put all the desired elements in an array of length N. Store a length field and an undo stack. The length field keeps track of the end of the currently present elements – everything that has been deleted is kept in the array but stored starting from index length.
  2. When you delete the element at index i, push i onto the undo stack, decrement the length by 1, and swap the elements at position i and position length.
  3. When you undo, pop i from the undo stack, swap positions i and length, and then increment length.

That’s it. We’re done.

This is probably a known technique – it only took me about an hour of thinking about the problem to come up with it, so it would be frankly bizarre if nobody had noticed this since the dancing links technique was invented in 1979 – but some cursory googling didn’t find anything, so if nothing else this post will hopefully make the idea more visible and maybe someone who knows of it can send me a link (dancing or otherwise).

In general this technique of “You can remove an element from an array in O(1) if you don’t mind losing the order” is surprisingly powerful and I think underappreciated. It’s pretty straightforward once you see it, but allows for some pleasingly elegant data structure designs.

This entry was posted in programming on by .

Cooking on Easy Mode

Attention conservation notice: this is a food post. If you’re not here for the food posts, maybe go reread Stargate Physics 101 instead or something.

Content note: Aggressively non-vegan food.


The other evening I had zero energy but felt like I should at least make some token effort at real cooking so I just flipped all the dials to easy mode:

  • lots of salt
  • more butter than you are willing to admit to
  • caramelised onions
  • a single strong spice or herb (e.g. chilli, black pepper, rosemary)
  • meat
  • a pressure cooker

Pretty much all of these dial up the tasty to effort ratio of everything you cook. None of them are essential (I want to emphasise that it is possible to make extremely tasty vegan food. Meat and butter are just easy mode).

Here’s the specific combination I deployed:

  1. Slice a lot of red onions. Put them in the pressure cooker with lots of butter, lots of salt, and a dollop of smoked chilli paste.
  2. Cook on high heat until the pressure cooker whistles, then low heat for another 20 minutes. The onions should be slightly caramelised and very juicy when you take the lid off.
  3. Add shredded chicken (about 3 times by volume of what I used for the red onions. I had a bunch in the freezer that I’d made previously).
  4. Stir it all up until well mixed. Same drill as before with the pressure cooker.
  5. Serve on corn talcos

I don’t know if I get to count this as properly Mexican food. I tend to get in trouble with my sister-in-law when I do that. But it was tasty and definitely in that direction.

The result was frankly almost offensively tasty. I had a sore throat which made eating painful and I still ate way too much of this.

This entry was posted in Food on by .

Statistical vs actual lives and ethical intuitions

Memetic Hazard Warning: Philosophy of Ethics


I remain skeptical of trolley problems as a useful proving ground for ethical theories, but one popped into my head earlier in the context of some other things that I am sufficiently annoyed at my inability to resolve that I’m thinking about it anyway.

Your classic trolley problem, a runaway trolley will kill five people if it continues on its current path, but you can divert it onto another path where it will kill a different person. The question posed is whether you pull the lever?

I believe that I would pull the lever, although I do not necessarily believe my ability to predict my actual actions in these circumstances (especially given how weird they are), but I also think that I would be doing something bad by doing so. It may be the most ethical action available to me, but it still is one that causes significant harm.

I’ve previously proposed that the correct solution to the trolley problem is that you should pull the lever and then turn yourself in for murder (modulo the obvious problems with the police as an institution). I still think this is probably true. I’m still thinking through the details, but I do think the idea of there being an obligation to provide reparations of some sort when you have harmed someone is an important one.

But consider the trolley problem with a twist. Instead of the system as posed above, six people stand before you. If you do not pull the lever, five randomly selected (and unknown in advance) of these six people will die. If you do, one randomly selected (similarly unknown) person will die. Do you pull the lever?

Unlike the classic trolley problem, I do not believe there is any possible ethical justification for not pulling the lever. I am prepared to entertain arguments to the contrary, but my current belief is that the only possible reasons for not pulling the lever (assuming ability to do so) are confusion about the nature of the problem or being a bad person.

But… why are these intuitions so different? Especially considering that the random choices may have been chosen in advance and simply be unknown to you, at which point it is in some sense identical to the trolley problem.

Additionally, if we accept that you have done harm and have an obligation in the case of the trolley problem, why is that not true here? Reflective equilibrium is an untrustworthy guiding principle, but I simply cannot come up with an intuition that allows me to believe that by pulling the lever in the randomized case you have done something wrong, so where does the obligation come from?

think there are two things going on here, one interesting and one not:

  • Trolley problems are idealised away from real world ethical decision making in a way that breaks our intuition here – we’ve essentially walled off the decisions leading up to this point, which hides any possible source of obligation – so the differences in this example while an interesting test of ethical intuition are not actually a good ethical guiding principle (maybe more on this in a future post).
  • At an intuitive level we treat statistical lives and actual lives as distinct things. I am not sure we are wrong to do so. Statistical lives (as in the random example) are hidden behind a Rawlsian veil of ignorance which allows them to be interchangeable in a way that individual lives are not.

I’m not sure how I feel about this and I suspect that the intuitvie difference between statistical and actual lives might not just be wrong but actively dangerous – treating people as numbers is a great first step towards treating them as things, so if anything our sense of obligation should increase when we do so in order to counterbalance that.

I do not yet have a conclusion, but I’m going to be thinking about this further.

This entry was posted in Uncategorized on by .

Taking (Part Of) My Self Offline

Context: I’m working through some things at the moment. As I do I will try to share parts of it that I think will be useful to other people, but these will still be somewhat personal and will be heavily redacted.

Epistemic status: My understanding of both addiction and the mind are at best simplified, at worst may be very flawed without my realising it, but the conclusions still seem to be useful for me.

Attention conservation notice: 90% problem framing, 10% solution. Skip to the end if you just want the idea.


Hi, my name is @DRMacIver, and I’m addicted to Twitter.

I know there’s a lot of moralising panic around internet addiction, and I don’t want to feed that, so let me just state outright: I’m not here to judge your Twitter usage. Mine is on the high side, and when I try to correct that it tends to revert to its previously high state after a short while, and I don’t like that. Your Twitter usage may be fine for you.

I don’t think the comparison is unwarranted though. Twitter is basically a Skinner box.

The only other addiction I have struggled with is caffeine (my flatmate jokes about my struggles with the mildest addiction in the world. Though I think this underestimates how bad caffeine addiction actually is, I’ll certainly grant that it’s not up there with a lot of the more serious ones).

These feel pretty similar from the inside – there is a gap between the state I want to be in and the state I am in, and closing that gap requires a state of constant willpower even after I’ve seemingly fixed the problem.

Addictions in general seem to have at least two parts: The inherent addiction, and the problem that you are using the addiction to solve. It’s not that the rats in the rat park don’t get addicted, but because they don’t have the problem of social isolation that the rats in the cage are solving with drugs, they are able to wean themselves off it.

This has been my experience with caffeine. Previously when I quit caffeine I would get through the initial awful couple of days, the merely crap week or two, and then I’d no longer be addicted to caffeine.

I’d also be exhausted all the time. As well as being an addiction, the caffeine was something I was using to self-medicate, and without it the problem that I was using it to solve came back. I didn’t like being exhausted all the time, so I inevitably started drinking caffeine again.

I don’t have a caffeine addiction these days. Sometimes I drink caffeine. Occasionally I do so often enough in a row that I accidentally re-addict myself, and then get mild headaches when I stop. It’s mostly fine.

Once I mostly sorted out my sleep (thanks, nose surgery) and found some medication that worked better for me than caffeine (sorry, this is one of the redacted bits. Talk to your GP and/or dodgy grey-market internet pharmacy, but obviously I cannot condone the latter option), I managed to get my baseline up to “kinda tired but mostly functional”, which seems to be good enough that I don’t automatically fall off the caffeine wagon.

So what’s the equivalent for Twitter? What need is the addiction fulfilling?

Well, uh, I made a list. It has eight items on it, in roughly three different categories. Turns out that it may be a tire fire hellsite hot take machine, but it does seem to fulfil some genuine needs in my life.

Most of that list is on the redacted pile (I may write about some of it later), and some of them are probably unsolvable without solving massive coordination problems, but one thing stood out as worth sharing and actually solvable. It’s also a problem that is worth solving in and of its own right, even if it doesn’t make a dent in the addiction: Twitter has become a place where part of my extended mind lives, and that’s not a great idea.

I don’t know if you’ve noticed, but trying to think things through bare-brained is terrible. Try just sitting there, closing your eyes, and thinking through a problem. Even if you’re one of those weirdos who can paint imaginary pictures on the back of your eyelids, there’s a really hard limit to how much you can handle on one brain alone. Even if you have a much better focus than I do and can actually keep yourself on track, your working memory is only so large. Mine is pretty good I think, but I still very rapidly hit my limits when solving complex problems.

The solution of course is to stop trying to think with just your brain. Maybe this is more obvious if you’ve trained as a mathematician, I don’t know – certainly a lot of why this is obvious to me is that the idea of trying to prove a theorem without writing it down as you go is basically laughable for most of us. A mathematician with a pen and paper is an infinitely more capable creature than a bare-brained mathematician, because their working memory has expanded enormously.

It goes beyond that of course. We think of language as the tool to explain our thoughts, but that’s mostly nonsense. Language is as much a tool for thinking as it is a tool for communication – there’s a reason why explaining yourself to a rubber duck is such a powerful technique for understanding things.

So how do you expand your intelligence? Using a tried and true method: You write it down. Suppose you have a thought and you go “Hmm there’s something there”. Even if you don’t care about capturing it, writing it down will significantly help you expand on and flesh out the thought.

So, as my mind buzzes away throughout the day (honestly, damn thing won’t shut up. I’m working on it), a thought surfaces, I want to expand on it, so I write it down.

Well, Twitter, obviously. It’s the most readily available medium for short ephemeral pieces of text that I want to think through. I’m already using it, and there’s a little text box I can just write stuff down in right there.

This seems like a bad life choice, even independently of the general desire to reduce Twitter usage.

As well as resulting in a rather noisy timeline (I have several friends who have unfollowed me because they couldn’t deal with the volume. Sorry), it also has an unpleasant shaping effect – I don’t want to be a person who is only able to think properly about things that are expressible in publicly visible 280 character chunks. A lot of things I think about do not fit into that category, either because size, personal nature, or any one of a number of other things that would make just really not want to share them on Twitter.

Anyway, i don’t know how to solve the Twitter problem more broadly, but this one I can solve.

Like I said, I’m working through some things at the moment. One way I’m doing that is by making use of that extended intelligence I talked about above by writing about the problems that I am trying to solve, by hand, in a physical journal. This has proven pretty helpful in an occasionally-terrifying sort of way.

I would like to keep doing this, but my track record with keeping journals is pretty poor, as is my track record with forming a habit of doing difficult things.

So, to recap, I have:

  • A compulsive habit of writing down my thoughts in a place that I would like to stop using for that.
  • A place for writing down my thoughts that I’m worried that I’m not going to use enough.

Yeah I don’t see the connection either. Maybe if I stare at it a bit longer.

Anyway, so that’s what I’ve been doing over the last couple of days. When I feel the desire to tweet to think through something, I (usually) write it down in the journal first. If I still feel the need to tweet something about it, I can, but the journal is the place where thoughts go to form, and Twitter is where I share them.

We’ll see if I keep this up. It’s looking pretty good so far, but things usually do for the first week or so.

Anyway, that’s it. No snappy conclusion to tie all this up, sorry. Just a thing I’m trying – It might work, it might not, but I thought I’d write it up now while I was getting started and the idea was reasonably fresh.

This entry was posted in Uncategorized on by .