Category Archives: Uncategorized

A Conference Survival Kit

(Advance warning: Yes, these are all affiliate links, but I’m writing this post because I think this stuff is genuinely life improving and not just to make a quick buck)

I’ve been to a lot of conferences over over the last year. Conferences are great, but they’re also really hard work and I often end up feeling quite broken by the end of them.

I’ve learned a few things to bring that help me to survive the various trials and tribulations of conferences and emerge feeling somewhat less broken.

Hydration

The number one thing I recommend everyone bring to a conference is a refillable water bottle. There will generally be lots of sources of water throughout the conference, and you will almost always get teeny tiny plastic cups to drink it from. As well as making it very hard to get enough water, this is also not great for the environment. Bringing a water bottle you can refill helps you get enough water whenever you want it, and helps the environment too.

I use this Siggs classic traveller bottle. It’s extremely basic, but I’m a big fan. That said, you don’t really need a water bottle to be fancy and almost anything works.

Hint to conference organisers: Water bottles make great swag. I’ve seen them given out at Europython and I’ve seen a few DjangoCon Europe ones floating around, and they’ll be well received and will make your conference attendees healthier and happier.

Food

Whenever you are on someone else’s meal schedule it’s basically a recipe for getting hangry. A meal will be too late, or too early and thus leave too long before the next meal, etc. The breaks might have snacks in them, but they’ll be something that’s basically white flour and sugar and so they’ll perk you up a bit and then half an hour later you’ll sugar crash and be back to where you started.

I really like these Cliff Bars (note: Contains mostly peanuts. Avoid if you have a peanut allergy, and be considerate of the people around you. There are also non-nut protein bars that should work well. I’ve used these chocolate protein bars before and they’re… OK). They contain sugar for the immediate pick me up and fat and protein for the long-term stability. They’re also reasonably tasty.

Occasionally if I’m too exhausted at the end of the day to deal properly I will retreat to my hotel room and a protein bar becomes dinner. It’s not the healthiest of dinners, but it works.

Handling Crowds

Conferences are noisy places. Not so much in the talks, but in the social and the hallway tracks you’ll be surrounded by an onslaught of background noise. The amount of socialization going on around you makes it really hard to hear and talk to the people you’re actually trying to socialize with! Fortunately there’s a solution to this: Musicians’ Earplugs. They will cut out the background noise much more than the conversational noise and you’ll be able to hear again. It’s amazing. I use these ACS hearing protectors.

More speculatively: I’ve been trying taking theanine during the latest PyCon UK. It’s supposed to have a non-sedative calming effect, which should help with social anxiety and generally being able to deal with a large number of people. It seems to help? It’s hard to do a subjective evaluation of this. I’ve definitely felt calmer and more able to deal with people this conference, and I’ve not been socially exhausted to even close to the degree I would expect to be, but there are a whole bunch of reasons that could be. It might be worth trying though. I’ve been taking the Solgar ones here at PyCon UK because they were the only ones I could buy locally, but they’re outrageously overpriced and I recommend finding a cheaper brand. e.g. these ones are almost certainly absolutely fine.

Theanine is also a good idea if you’re taking a lot of caffeine at the conference. Theanine + caffeine is a known very beneficial combination, it’s just theanine without caffeine that is a bit more speculative.

Sleep

Conferences will drain your energy. This makes sleep even more important than it usually is. Unfortunately, you’re also in an unknown and possibly quite poor sleeping situation: Hotel rooms are often noisy, and they’re almost always full of annoying bright LEDs.

It’s important to bring tools to counteract that: A sleep mask and ear plugs. I use this sleep mask and these ear plugs. They’re both great and I can recommend them.

Note: Try sleeping with these at home for a few days before going to the conference. I found it took 3 or 4 days of sleeping with the mask before I stopped waking up to find I’d taken it off during the night (which isn’t the worst thing in the world as it’s mainly important while trying to fall asleep, but it helps if you’re prone to waking up in the night).

Caffeine

If you don’t use caffeine you can ignore this one. But most people who go to conferences are addicted to caffeine (this isn’t just a developer stereotype – a significant majority of the west are, and probably outside the west too), and given how tired you’re going to be during the conference you may want caffeine anyway.

Bring caffeine pills. Seriously.

Conference coffee is almost never good. At best it might be mediocre, more often it’s awful. This isn’t anyone’s fault it’s just logistically rather challenging (and consequently expensive) to produce good coffee at conference scale. I recommend you just don’t bother with the coffee and stick to water and caffeine pills.

I use these caffeine pills. They’re quite strong though, so you might want to take 50mg ones instead. I’ve used Pro Plus for that, but honestly caffeine is caffeine and whatever you take is fine.

Your Phone

You’re going to be using your phone a lot. It probably won’t last the day. Bring an external battery pack. I use this one currently but honestly can’t strongly recommend it.

Additionally, WiFi is going to be unreliable. Your life will be better if you have a phone SIM that works where you are. If you’re in your home country, that’s not a problem, but abroad you want to avoid roaming charges. You can probably easily buy a local pay as you go SIM, or you can use Three who have a lot of different countries that it will just work automatically in. Otherwise, this wiki will tell you what you need to do to get a local SIM.

Attitude

You’re there for your benefit. Take things at your own pace. Relax. It’s better to have a great experience attending half the conference than to burn yourself out trying to attend all of it. You don’t have to attend every talk, you don’t have to meet every person. If you need a time out, go for a walk or retreat to the quiet room if there is one. It’s OK.

This entry was posted in Uncategorized on by .

Against Dutch Book Arguments

Among my general family of weird niche opinions is that I don’t believe that the common assumption made in decision theory that preferences should be transitive is a valid one. This isn’t a post arguing in favour of my opinion. This is instead a post arguing against one of the most common arguments that preferences should be transitive: The dutch book/money pump argument. As such I think this post should be valid regardless of whether transitive preferences are good or bad.

Transitivity of preference is this: Suppose you prefer A over B and B over C, then you should also prefer A over C.

What “Prefer” mostly means in this context is “If I were to give you a choice between two options, which would you pick?”

(if you disagree with my above definitions, do say. In general please nitpick this post as much as you like. I really do want to understand people’s beliefs on this subject)

The argument goes like this:

Suppose you prefer A to B, B to C and C to A.

Given that these preferences are strict, there must be some (possibly very small) amount of money \(\epsilon\) such that you prefer A to B + \(\epsilon\), B to C + \(\epsilon\) and C to A + \(\epsilon\) (aside: I don’t entirely buy this but don’t have any strong objections to it and will leave it as mostly unquestioned).

Now suppose you have C. I offer you B in exchange for you giving me C + \(\epsilon\). Now you have B. I offer you A in exchange for B + \(\epsilon\). Now you have A. I offer you C in exchange for  A + \(\epsilon\). Now you’re back where you started with C but you’ve paid me \(3 \epsilon\) for the privilege.

(Again, if you feel like I have oversimplified this argument or expressed it badly, please say).

I don’t think this argument holds water, for a number of reasons.

The first is that it does not actually model the sort of preference we started with: The question “Given A or B, neither of which you currently have, which would you prefer to acquire?” is fundamentally a different question to “If you already have one of A or B, would you swap it for the other?”.

In particular, you should expect the latter to exhibit a status quo bias: A greater reluctance to switch from B to A than to pick A over B when presented with both options.

And a sufficiently large status quo bias could potentially wipe out intransitivities found in the original preference relation, so it may be that the original preference relation is intransitive while this new sort of “Would you switch?” relation is not.

You can argue that these two relations should be the same, and that a status quo bias is intrinsically irrational, but I’m not sure that’s valid. A status quo has a lot going for it: You know how things work, you’re experienced with working within it, etc. Things can and should be improved, but in general the burden of proof is higher for comparing something with the status quo than when comparing two new things, and I think that’s quite reasonable.

Lets assume for the sake of the argument that we replace our notion of preference with this new one: I prefer A to B if when I have B and someone offers me A for it I will choose to switch.

The next question is then: How is this preference actually being elicited? I think when people talk about this sort of preference process they imagine some sort of perfect copy of you is asked for its preferences and then wiped out of existence, so you are left with no memory of the question. This might be thought of as a “static preference”: It is your preference as captured at some snapshot point in time.

But that’s not what’s happening in the dutch book scenario: In this scenario you do have memory. This is a set of dynamic preferences being elicited by a series of questions where you know what has happened before. So it could be that your static preferences are intransitive but you will never exhibit intransitive dynamic preferences because you have a rule that if you notice you’re being dutch booked you stop trading in the resource.

This can be quite rational. I’ve previously argued that any agent for whom solving NP hard problems isn’t free will engage in this sort of path dependence where the exhibited set of preferences depends on the order in which you ask the questions (not even which questions you ask! Just the order).

Finally, supposing that for whatever reason we’ve decided to actually exhibit intransitivity even in this dynamic preferences case. Then, yes, we do get dutch booked and can be used as a money pump.

This is an argument against intransitive preferences in the same way that the possibility of being attacked is an argument for never going outside.

When you argue for something, you have to argue not only that it has benefits but also that the costs outweigh the benefits, and it’s not clear to me that they do.

This is both because insisting on transitive preferences in the first place is potentially very high cost (it requires essentially global knowledge and solving NP hard problems), and also because it’s unclear what the real cost of money pumps is to an agent: Money pumps are a problem if the agent eliciting your opinions is intrinsically adversarial, but most cases for preference elicitation are going to be neutral or cooperative. The universe doesn’t hate you, and your fellow agents are probably more or less out to cooperate (life is an iterated prisoners dilemma, not a one-shot one), so the actual instances of deliberate money pumping in the wild are relatively low. If you’re playing the investment markets you should probably remove your intransitive dynamic preferences as you notice them, but it’s not really clear that they cause much harm in broader contexts and I don’t think the argument that they do has been convincingly made (I’m not sure I’ve even seen it made unconvincingly).

In conclusion, I think dutch book arguments prove much less than they are usually claimed to, and I don’t think they should be taken as having much significance for how actual agents should reason.

 

This entry was posted in Uncategorized on by .

Ain’t nobody here but us survivors

I think people aren’t aware enough of survivorship bias. Or, at least, even amongst people who are aware of it, I think it is hard to notice.

It comes up a lot in group situations: Companies, communities, cultures, any other assemblage of people. This is because any group of people is composed solely of the ones who did not leave the group, so any observation you make about the group is only made about the survivors.

This is particularly important when people tell you that you’ll just get used to something.

There’s a great explanation from Julia Evans (via Dan Luu) of normalization of deviance:

new person joins
new person: WTF WTF WTF WTF WTF
old hands: yeah we know we’re concerned about it
new person: WTF WTF wTF wtf wtf w…
new person gets used to it
new person #2 joins
new person #2: WTF WTF WTF WTF
new person: yeah we know. we’re concerned about it.

This is absolutely a thing that happens, but I think there’s another form:

new person joins
new person: WTF WTF WTF WTF WTF
old hands: yeah we know we’re concerned about it
new person: WTF WTF WTF WT- actually bugger this for a game of soldiers
new person leaves
new person #2 joins
new person #2: WTF WTF WTF WTF
old hands: yeah we know. we’re concerned about it.

A big problem is that if you are new person #2 you cannot tell which scenario you are in, because of survivorship bias: Either way you are going to be surrounded by people who got used to it.

It’s hard to know what to do about this, but I offer two small pieces of advice:

If you’re the new person: It’s OK to leave. The fact that however many people seem to have got used to it doesn’t mean that it’s actually sensible to try to get used to it.

If you’re the old hands: Consider what aspects of your culture arise this way. Are most people really getting used to it, or is it just that the people who didn’t get used to it left?

This entry was posted in Uncategorized on by .

Making taxes progressive through redistribution

There are a whole bunch of cases where as a society we decide we want to reduce consumption of something, but it’s difficult to do so through individual choices. This might because of the non-obvious bad effects of something (sugar, alcohol, smoking) or because of negative externalities (atmospheric carbon leading to climate change, water use leading to aquifer depletion, overfishing).

In general I am a big fan of doing this through taxation: Want people to use less of a resource? Make it more expensive. It’s got a pretty good track record of working, even in the face of convincing arguments that it shouldn’t work in this case.

But there’s a pretty bad problem with this approach: It’s deeply regressive. If you raise the price of a luxury then poor people are much more likely to have their life negatively affected by taking that luxury away from them because it represents a much more significant percentage of their budget. Rich people will either slightly adjust their usage down or simply not notice because it’s such a small percentage of their budget.

This sucks for a variety of reasons. As well as generally disliking things that increase inequality, the poor are rarely the biggest consumers (this is particularly important in the case where we’re doing this because of externalities)!

I’ve been prepared to bite that philosophical bullet for sufficiently important things (carbon tax) but not ones that are just speculative health interventions (e.g. sugar) and been on the fence for major public health interventions (e.g. alcohol).

But it turns out there’s a really simple solution to this which significantly reduces the number of bullets in my diet. It’s not original to me, but I’ve clearly not been paying to the right circles because neither I nor the couple of friends I’ve asked have heard of it before. I only heard of it because I independently thought of it and then did the research for prior art rather than assuming nobody else had.

The solution is this: You impose the tax, you collect all the revenue from it, and then you distribute all or some of that revenue equally amongst every resident of your country (or whatever area you’re taxing over).

The result suddenly becomes massively progressive, because anyone who is using a less than average amount of the resource is actually in net profit. Note that because of the power law nature of wealth, a significant majority of the population have a less than average amount of income.

This has been talked about in the context of carbon tax, with e.g. the citizens’ climate lobby lobbying in favour of it in the US, but I think it’s a more general solution which could be applied to a number of problems. This is particularly true because there’s a one-time infrastructure setup cost (how do we send money to every resident of the country every month/year/whatever?) after which adding other redistributive taxes into the system becomes easier.

This infrastructure is actually a big feature of the scheme for me. As well as the intrinsic benefits of it, it becomes a nice transitional step to a universal basic income because they require the same infrastructure. It would be easy to e.g. add a small additional income tax that went straight into the redistribution pot.

All in all, I think this is a great idea. I’m going to be thinking about it a lot more, and I’d like to see more discussion of it.

This entry was posted in Uncategorized on by .

Windows Progress Report

Well it’s been about a month since I switched to Windows, so I thought I’d mention how it’s going.

Advance warning: This is just a braindump of some thoughts and is not particularly coherent.

It’s going… OK. One of the interesting things about switching from a niche to a mainstream implementation of the same thing is that you find out that a lot of the things that you thought didn’t work correctly because of your weird life choices actually just don’t work correctly. In particular, the following work less well now that I’ve switched to Windows:

  1. WiFi
  2. Suspend
  3. Copy and Paste

As you can imagine, I have been somewhat frustrated to discover this.

My original plan of trying to use Windows purely as a host and running a desktop environment on a VM didn’t work very well, for a variety of reasons. I’m tempted to start trying it again, as the alternatives are also annoying me and it might be worth trying. Instead I’ve been running local VMs using Vagrant setups for each project.

To be honest, I’ve had a long-standing prejudice against the local use of VMs and this has mostly reinforced it. They work pretty well on the server where someone has already done the hard work of management and you don’t have to care about the interaction with the host OS at all, but locally they’re just pissing me off. In particular:

  1. Hyper-V looks nice but doesn’t support shared folders
  2. Virtualbox alleges to support shared folders but the reality is that it doesn’t even slightly work when trying to share between a Linux guest and a Windows host unless you have a definition of “work” that involves routine data corruption.
  3. Virtualbox also has completely unusable graphics performance
  4. VMWare… mostly works. Though you will have to fork out a significant amount of money for this option (both for VMware itself and Vagrant if you end up wanting to use it on VMWare).
  5. About the only way to actually get a stable way of SSHing into a local VM is to use Vagrant. Installing iTunes so that Windows understands zeroconf might work, but I didn’t really feel like trying it.

My current development environment involves vagranting all the things, using the windows command prompt (it’s surprisingly OK in Windows 10) and gvim. I was trying to use IntelliJ for a while, but I found it pissed me off too much in too many different ways.

One of the most annoying things in general so far has been getting tools to understand that yes I really do want Unix line endings. No I do not want any of this carriage return nonsense in my files. Even tools that should know better seem determines to try to guess and do the wrong thing as a result.

One of the most pleasant surprises is that actually Windows 10 window management is very good. It’s more or less a tiling window manager with good keyboard controls.

Overall: I hope I can install Linux in a working manner on this laptop again in the near future. It’s been nice to have the non-development stuff Just Work to a slightly higher degree, but to be honest I’ve had more random breakage on Windows than I did running Linux on a well supported set of hardware. That being said, this hasn’t been awful and has merely been slightly annoying. It’s certainly a viable way of working.

This entry was posted in Uncategorized on by .