How Better Debates Would Improve the World | Philosophy Podcast

This is a companion discussion topic for the original entry at

This is a good podcast.

I like the debate table idea (starting at 15:15 for others who want to jump to it), it’s interesting and I will try to stay aware for a good opportunity to use it. I’m calling it a debate table for now, are you happy with that name for your idea?

As practise (and because I think it’s humorously meta) I made a debate table about debate methods with goals and ideas.

I’ve included some ideas that are considered conventionally good, as well as bad ideas, for the sake of experimenting with the idea in more depth. I could probably add more if I spent more time thinking about it, but I’m not trying to be exhaustive for the sake of this practise.

Referring to the table in my previous message.

I think debate tables could actually end debates quickly and clarify complex issues well within two people who understand the concept already.

The reason I put “FALSE” is that it’s an unconventional idea and most people would need to be convinced of it’s worth and the decisive decision making method first which could make it take a long time as a method.

I guess a way of handling that in the table is to have two separate goals, one for people who know the method and agree with it and one for people who don’t.

I introduced the charts in 2017 in

Here’s the very first one:

It’s no big deal to refer to them as debate tables but that doesn’t work well as an official name because they also work for problem solving in general. Rational decision making, debate and problem solving have large overlap in their methods and concepts.

I’ve mentioned the charts occasionally in free stuff and plan to explain them on the CF site in the future. In 2020 I talked about them in my CF course: Critical Fallibilism Course Videos

Here’s a CF course slide:

I think IGC chart (or IGC table) works best as the official name. It’s more unique and specific. A downside is it’s really long without the acronym.

IGC stands for “idea, goal, context”. An important idea of CF is to evaluate IGC triples rather than to give an idea a single evaluation that’s supposed to apply for all goals and contexts.

We can get complexity and nuance through multiple simple (binary) evaluations rather than through one complex evaluation (a real number like 88.31 out of 100, which besides the problems with combining weighted factors is also not enough complexity and nuance – many binary evaluations is more powerful than one real number (using it as intended and ignoring the technical possibility of encoding unlimited data in a real number with a huge number of decimal digits)).

Commonly we only have to deal with one context at a time. If you have to deal with multiple contexts, the first option to consider is making one chart per context. But usually we’re looking at a bunch of different IG pairs with only one C that isn’t varying.

I’m contemplating IGC charts in the context of a current game programming mini project.

So I look back at the decisions I made while working on it today and have a sense they would fit well into an IGC chart approach. But I can’t remember it well enough to recreate them now though.

Next time I come to a difficult decision I’m going to try to remember to use it as an opportunity to do a more serious IGC chart than the one in my original comment.

I have a hunch that practising this will help make difficult decisions more quickly/clearly and maybe even help with brainstorming solutions by thinking more purposefully about the goals.

I did some experimentation with IGC charts.

I was trying to identify if an open path exists for each node in a short list of nodes in a large node network, using the A* algorithm.

I was getting a stack overflow bug, this had never happened with my pathfinding code before and I couldn’t think of any reason that it would happen in this situation.

I was making this for a games jam, so I had a week to finish everything and couldn’t afford to spend long on this problem.

It was helpful to clarify the problems and solutions explicitly. The first solutions I through of were bad choices, or choices that I put “MAYBE” by because I wasn’t sure. I tried the third idea because I thought it might work but it still failed.

So the last resort that could work in the time frame was just going through the code in much more depth trying to work out what was different. I think the clarity of the IGC chart helped accept that realisation more quickly, that there was just something going on that I didn’t understand and needed to check my premises.

It turns out I was trying to pathfind from a node to itself, and my code didn’t check for that. Normally when I do pathfinding it’s worked out from a node to what must implicitly be another node, this time I’d told it to pathfind to all nodes in an area around the origin node and forgotten to exclude the origin node.

I had another problem with the pathfinding system later. On the player’s turn I wanted to show all nodes that the player can potentially move to, so was pathfinding to all of them. This was causing a signficant delay between game frames at the start of ever turn.

The player’s turn is split into two parts: movement, and action. If they don’t want to take an action they can instead choose to move a second time. I wanted to show at the start of the turn how far the player could move if they chose to double move. This was the cause of the delay, as it resulted in many more nodes to check.

I thought a factor in the hang could be that, before each pathfinding check, it was clearing pathfinding data from all nodes in the network (over 4000) rather than only the ones that had been accessed. So I tried this for solution (5), and it improved the frame delay but did not reduce it to a level where it wasn’t obvious.

I couldn’t think of a viable way of solving the problems after this (I know that solutions (2) and (3) would work but would be time consuming). (4) is way worse than not showing any movement information at all, as it gives misleading information. So I took option (1), as this is only a helper utility that’s nice to have rather than something vital to the game, the player can easily count the spaces even without it, but reducing it to only show a single movement distance solved the frame delay.

I guess that counts as a context change. I changed what my goals were as I couldn’t see a possible solution to meeting all of them, so I dropped the least important goal.