Category Archives: Uncategorized

Dis-Integrating the (Public) Self

Have you noticed that at some point in the last decade “personal brand” became one of those terms that we pretend we’re using ironically in order to hide the fact that we more or less mean it for real?

Recently I’ve been feeling a bit… the term I’ve been using for this in my head is “global and integrated”. There is one version of me, globally accessible, with all of the parts fitting together as part of a coherent whole.

My personal brand as DRMacIver is a pretty broad one, and deliberately so. I write about tech, cooking, sexuality, stargate, voting systems, fanfic… whatever is on my mind really, but there’s still a certain… gravity well of self-image that things naturally orbit within. Because everything is integrated, it must fit in with everything else. Extremes are damped out, and there’s a constant question of “Should I say this?”.

There isn’t really much that I feel like I can’t say, but there is a difference in how much effort it takes to say them – the recent sexuality post is not something I would normally write, not because I don’t want to talk about it but because I set much higher standards for myself when writing that sort of thing than I do when just bashing out a data structures post or writing some nonsense about Stargate or complaining about how everything is terrible.

Maybe none of that sounds too bad to you, but it’s been feeling pretty constraining to me for a while, and I’ve been thinking of creating a writing pseudonym. The difficult I’ve been having there is essentially how to do opsec and promotion at the same time – it’s easy for me in my public persona to get an audience (and I’m both vain enough to want one and self-aware enough to know that. I do plenty of writing in private, but if I’m going to write in public then I damn well want it to be somewhere that people actually read), so it’s never got off the ground.

The obvious solution to this was to just create writing pseudonyms that aren’t actually a secret but are still lightly separated – I link to them, but they never link back to me. It’s not hard to find out that they are me, but it’s also not immediately apparent and it helps me keep some emotional distance from them.

This solution is so obvious that it took me over a year to notice that it existed.

Anyway, without further ado, I would like you to introduce you to my two new writing personae: This Continuity of Self and Not A Teapot (TC and nat for short).

I originally had a particular theme in mind for TC, but it rapidly went out the window, so instead they have personalities and writing styles and talk about whatever they feel like. TC also acts as a normal-ish tumblr, while the other personae will be closer to straight up blogs.

In one of those things where the joke is much cleverer than I realised at the time, TC wrote the following description of their style:

mebbe that’s because we need to come up with a good creole so we can form a common syncretic framework in which the paradigms of boring nerd-speak and funny shit can socially construct a good shitpost

In fact, a syncretic framework of boring nerd-speak and funny shit-posting is exactly what TC does.

Generally the joke with TC is that it writes simultaneously really well and really badly. It’s happy to use $100 words and it uses them correctly. It could use correct grammar, but it has absolutely no interest in doing so, but if it wants you to understand its point it will write it in a way that is actually much clearer than more coherent attempts would often achieve. Most of the time though, TC is just fucking with you in a way that it hopes will leave you thinking interesting ways. Or just because it’s funny.

(Each of the personae have their own pronouns. TC is either it or they/them pronouns, nat is she/her. There isn’t any particularly good reason for this except “Why should he/him pronouns be the default for fictional characters?”)

In contrast, nat is slightly stuffy and precise, but mostly very earnest. She is routinely exasperated by her sibling, TC, but they actually work quite well together. Where nat takes everything too seriously, TC takes nothing seriously, and the combination of the two perspectives is useful for sandwiching a point. I really enjoyed writing them arguing and will probably do so more.

The joke with nat is that she is constantly on the cusp of degenerating into pure academic-ese, but actually uses fewer big words than TC because she genuinely wants you to understand, while TC just wants you to think. Where nat introduces academic words, she does so in a pedagogical style that is designed to teach you how to use them.

This doesn’t always work, mostly because of the difficulty with roleplaying someone who is smarter than you – where nat fails at pedagogy, it’s because I’m failing at it.

It’s not a deliberate part of the joke that the ridiculous character has a pretentious name and the pretentious character has a ridiculous name, but I like it enough that the next time I create one it probably will be part of the joke.

The advantage of these personae is that they let me change what is difficult for me to write. TC allows me to lift the constraints of dignity and gives me permission to not make sense, while nat allows me to go into full hyper-focused nerd mode and explain some aspect of a problem in extreme detail. Both of these are things that I feel somewhat reluctant to do as DRMacIver (which isn’t to say that I don’t do them, I just feel like I have a budget for how much I allow myself to).

Those are the three personae I have so far, and I think they’re sufficient for the area of persona-space they explore together. Their interests and values are pretty much like the more intellectual side of mine, they just have different focuses and preferences around them. Between the three of us I think we’ve got that covered.

Once they’ve settled own a bit more and I’ve got a better handle on them I’ll likely add some more. I’m idly thinking of some of the following:

  • a persona that is much more embedded in the world and mostly posts detailed descriptions of things that ignore their context and implications
  • a persona explores things from a more mystical perspective (this will be extremely difficult for me)
  • personae to explore more varied writing styles (“writing badly” and “writing more academically” are not exactly stretching my repertoire)

In the meantime though, nat and TC are a lot of fun to write, and I definitely plan to continue doing so.

This entry was posted in Uncategorized 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 .

Block First, Ask Questions Later

I’ve been doing something for the last six months or so that has greatly improved my experience of Twitter.

The short version is that I’ve been blocking much more often than I historically have, and it’s great.

The slightly longer version is that I ask myself the question “Would continuing interacting with this person be a net positive or a net negative for me?” and if the answer is that it’s a negative, I block them.

This still feels quite emotionally difficult. Blocking feels like a judgement on them as a human being, like I’m declaring them to be a terrible person. It’s not. All blocking means is “I do not want to interact with this person any more”, and that is 100% a right everyone has to assert for any reason. Interactions should be consensual (wherever possible – some interactions are e.g. legally necessary. Thankfully that doesn’t apply on Twitter), and you have the right to withdraw consent at any time.

It’s still hard. Sometimes I spend a couple seconds agonising over the block button, but then I press it anyway and feel an instant relief.

I think part of why this is such a big improvement on Twitter in particular is that Twitter is public, which means that there is an almost unbounded supply of people who might end up interacting with you. If a tweet gets popular, you might get hundreds (or more!) replies to it, and there’s only one of you available to deal with those replies. This makes it important to manage your time on those correctly, and blocking people is about the most efficient way of doing that (other than “Mute this conversation”, which I also can highly recommend).

It’s hard to tell whether someone is going to be a net positive or negative of course, but there are a couple of rules of thumb I apply:

  1. People I actually know almost never get blocked this way. I think I have applied this rule to exactly one mutual, and they were someone who I kinda-sorta knew and occasionally interacted with rather than a friend. I occasionally mute friends, but I try to remember to turn it off later (it would be nice if there were a timed mute button, but I think you can only do that for keywords).
  2.  The easiest way to trigger this is on a first interaction. If someone’s first interaction with me is rude and wrong, I will just block them and I won’t even feel bad about it. This is a little bit of a judgement on them as a person – this is the sort of behaviour that makes Twitter a tire fire, and participating in it is a jerk move.
  3. If someone’s first interaction with me is rude but right (in an interesting rather than trivial way) I might block them, or I might give them a chance. Depends how important I think the point they’re making is. If someone’s first interaction with me is polite but wrong then I’m unlikely to block them for it.
  4. The other thing that I occasionally block people for is when they repeatedly interact with me in some way that I find tedious. I do think I’m being rude by doing this, but the block button is way less socially painful for me to deploy than an actual conversation where I have to say “Sorry I just don’t find you very interesting”. I’d say apologies to anyone who has been on the receiving end of this, but honestly I plan to keep doing it so apologising would be a bit hypocritical.

That’s not an exhaustive list, but I think it covers most of the recurring patterns I see when doing this, and the important thing is the general principle: It’s OK to block people, and if interacting with them is going to make life worse, then blocking them will probably make your life better.



This entry was posted in Uncategorized on by .

An algorithmic puzzle

I posted the following problem on Twitter yesterday: I have intervals \(L_1, \ldots, L_m\) which are represented as half-open intervals \(L_k = [u_k, v_k)\). I know that the intervals are all distinct and that for any two intervals \(L_i, L_j\) with \(i \neq j\) either one is contained in the other or two are disjoint.

I want to sample uniformly from all pairs \(\{(i, j) : L_i \cap L_j = \emptyset \}\), or determine that there are no such pairs. How?

A solution now follows. It might not be the optimal solution, but it’s pretty close.

The two observations that make the solution work are:

  1. If every interval is disjoint from at least one other interval, then rejection sampling runs in expected time at most \(O(m)\), because the probability of accepting a random pair is at least the lowest probability of selecting \(j\) disjoint from \(i\) over all \(i\).
  2. A root interval (one containing everything else) is contained in no disjoint pair and thus can be removed from the list without changing the distribution. If there is no root interval then every interval is disjoint from at least one other.

To unpack the second observation: If there is no root interval, take some \(L_i\). Then \(L_i\) is contained in some maximal length interval. This is not a root interval, so there is some \(L_j\) that is not contained in it (and thus is disjoint from it). Such an \(L_j\) is necessarily disjoint from \(L_i\).

It’s easy to find a root interval in \(O(m)\), but removing it might introduce a new root-interval (in the degenerate case the whole list could be a chain of the form \(L_i = [i, m)\)).

Here’s how to simultaneously remove all root intervals in \(O(m \log(m))\):

First note that a root interval is necessarily of maximum length. Thus if we sort the intervals in order of decreasing length (that’s the \(O(m \log(m) \) bit. You can do it in \(O(m)\) if the interval boundaries are not-too-large intervals using bucket sort), the root intervals must form some initial prefix of the list. By renumbering where necessary lets assume that the \(L_i\) are sorted in that order.

Now calculate the intervals \(B_i = [\min\limits_{k \geq i} u_i, \max\limits_{k \geq i} v_i) \). These are the bounding intervals of the tail sets and can easily be worked out in \(O(m)\) by just iterating backwards over the list.

\(L_i\) contains all \(k \geq i\) if and only if it contains \(U_i\). So now we find the first index \(k\) that is not a root index just by iterating forward through the \(L_i\) until \(U_i\) is not contained in \(L_i\).

We now take all intervals from that point and discard everything earlier. If the set is now empty, we raise an error because there are no disjoint pairs. If it’s not empty, we can now run the rejection sampling algorithm on it as desired and have it terminate in \(O(m)\).

think there’s another solution that may sometimes be better involving explicitly tracking the tree structure and counting the number of disjoint pairs that live in each sub-interval, but the solution fell apart the more I looked at it and I wasn’t convinced it was ever actually better.

This entry was posted in Uncategorized on by .