A series of somewhat-negative thoughts not individually deserving blog posts of their own

It annoys me when people come up with evolutionary psychology “Just-So stories” to justify their politics. Well, obviously. Because it’s really annoying. But there’s a smaller mistake hiding inside the larger one, which is that when they start talking about the Ancestral Environment, it’s always the same sort of Tribal Savannah thing. Or if they’re big into HBD, a very similar Tribal Deciduous Forest kind of thing. But actually, we should expect most evolution-shaped psychological features to pre-date humans entirely, in much the same way pretty much every other biological thing did. Parental instincts, group dynamics, even apparently cognitive biases (so cool). It all came before humans, and if your Just-So story begins “hunter-gatherers would have…” you can know immediately that it’s probably not how things actually happened, just because of that.

(If your story would have begun “tribes in Africa would have…”, it is beyond saving).

((The whole subject area is thronging with transparent attempts to revive teleological arguments for why Liking Things I Don’t Like is objectively wrong, but now with a scientific rather than religious gloss. Sigh.))


There is fundamentally no way to reconcile collectivism and individualism. It’s the simplest possible clash of terminal values. This is what some people are grasping towards when they advocate that we “bash the fash” – that fundamentally it’s impossible for collectivists to be happy in an individualist society and vice-versa. The increasing popularity of collectivist ideologies leaves individualists with the choice of being miserable or making others miserable. Or dead. Everyone (well, everyone as smart or smarter than me that I’ve discussed this with or seen writing about it – sample size ~5) invents Archipelago as an attempt to solve this, but notice how even Scott, possibly the smartest of the sample, has to sneak “but fundamentally individualist” in at the lowest level. Individuals can choose to join collectivist groups or leave them – not a solution that is acceptable to collectivists!

This is a facet of the fundamental difficulty of creating a Good World. I do not think it can be resolved for humans as they currently are, let alone by them.


Doki Doki Literature Club would be decent if it didn’t warn you so strenuously about being Spooky. As-is, it just comes across as trying too hard. It’s quite unfortunate, because some decent ideas are buried in there among with the gimmicks and the necessities of playing along with the conventions of a terrible genre. For instance, the antagonist(?)’s total lack of personality beyond “totally loves the player character” is definitely making a point about dating sims in general (the fact that people like her says much the same thing and to much the same effect as people liking Asuka and Rei). But ultimately, it spends too much time knocking on your skull and asking if you’re scared yet, putting up flashing neon signs around all the foreshadowing, and sort of nudging the audience in an expectant way like “hey that was a cool trick I just pulled, right?” While I continue to strongly support the idea of content warnings, this really highlighted that they need to be “need-to-know” information, something you wouldn’t see if you’re not looking actively.


Keats wrote about “Negative Capability.” Normally I hate this kind of thing – logical consistency is very important to me in fiction and ‘just turn your brain off’ is not an acceptable answer to such criticism, mysterious answers are a contradiction in terms, handwaving can’t save metarationality, that kind of thing. But when it comes to them chinese cartoons for girls, a small handful put me into this state so effortlessly and unobjectionably I didn’t even notice until now – “Girls’ Last Tour” was what made me notice the experience, but looking back it’s a common factor between a lot of things I’ve loved, like Mushishi, Kino’s Journey, and all-time favourite Haibane Renmei. The defining emotional feature of such works is usually “mono no aware,” though, another kind of mystery-feeling that’s very hard to describe. It’s a little hard to say whether these are attempts to grasp after the same concept, since mental states are so horribly non-transferable, but they might be. The upshot being that a tranquil awareness of mystery: actually quite pleasant if you can achieve it.


What would a philosophical Experience Machine that provides the experience of “exiting the experience-machine that is our reality” (as in the films) be like? People want to have an effect on “actual reality,” which is why they reject EMs, but what makes reality, reality? If you’re too desperate to avoid being caught in simulation, do you end up too easily tricked into entering Matrices that are labelled “Matrix Exit”?

I feel like there’s an important principle here. Natalie Ferno’s Reality Is Where You’re Standing Principle. Something like that.


From my perspective, the America I see in things like Stranger Things (or Life is Strange, or etc etc) exists only in that context. As far as I’m concerned, it’s not depicting a Normal Small Town with weird stuff happening – it’s depicting that bizarre almost-modern fantasy world where weird stuff happens all the time. This rather dampens the effect, I think?

Or maybe it’s the other way around, and actually it seems that way to most people in the USA too. And it’s the Normal Small Town people who have the weird experience of perceiving the fundamental wrongness of what’s happening. That would seem unlikely, though. Surely that’s the feeling you want most of the audience to have?

Figure/Ground effects.


I’m honestly pretty proud of the discussion around the Lootbox Issue. I was expecting a lot of “nuh uh, it’s not gambling because you always get something,” and while I’ve seen that a great many times in the context of “legally it’s not considered gambling because…,” mostly people seem to have a good grasp of what the central aspects of each are and how they’re the same. Maybe people are finally developing cognitive tools against the noncentral fallacy and relatives?


People almost all have a sense of the Zeitgeist, a Zeitgeistbewusstsein perhaps (I do not speak German). A feel that “these days everything’s so PC” or “the far-right is becoming normalised” or “NASA and the CIA are tricking everyone into thinking the world is round” (explaining how this third belief is of the same type as the first two might be a bit tricky, so I’ll elide doing so). These are, I am more and more convinced, almost universally wrong. The whole notion of a Zeitgeist increasingly strikes me as purely a reification of the availability heuristic. Good for spinning stories out of, but not a useful factor in any real, predictive explanation of anything.

Advertisements
A series of somewhat-negative thoughts not individually deserving blog posts of their own

Trails in the Sky

Minor spoilers only.

It has become common, even cliche, to say that games should be about the mechanical element, the “gameplay aspect.” For instance:

Well then, dear game creators: Play to your strengths! You can do much more than merely aping movies. Maybe concentrate on your gameplay for example. Trust in your audience being intelligent enough to transfer abstract outcomes into emergent stories and learn from those. You might hand them a few incentives in the form of dynamically integrated narrative legos on the way. And even if you want to present a self-contained narrative, always incorporate your players. Take them seriously and do not be afraid of challenging them. Don’t just use your engine as a meaningless mediator, but as a tool of collaborative storytelling between author and recipient. After all, that is what makes your medium special and grants it its unique potential.

You’d get the impression that nothing is worse than a game that is a ‘film with playable parts,’ so to speak. That telling a simple-ish story in the obvious way is doing something wrong, is aping another medium rather than developing a true “video game style” of storytelling.

(Alright, let’s be clear that this a big old debate with a lot of arguments on both sides. I’m cherry-picking one person making an actually quite reasonable and balanced point, as a framing device. But also because I can’t remember the last time I heard someone ask for more narrative-driven games. Saying gameplay is more important just seems like the cooler position for smart media critics)

On an intellectual level, I agree with all this. It’s hard to argue that games should be something other than games, after all. But fundamentally, my heart belongs to narrative. Some games weave their story into the game itself in rich and compelling ways, and those are wonderful, but a lot of games – particularly JRPGs – go more for “series of plot-advancing cutscenes mixed up with plot-irrelevant gameplay.” The Legend of Heroes: Trails in the Sky is one of this category, mixing a turn-and-grid-based RPG (one can hardly call it a tactical RPG with a party size of 4, but that would be the right way to think about it) with a narrative that ranks among the best in games. And I loved it. Here are some reasons that you could use to judge whether you ought to give it a try.

Slow start: In my opinion, the best fantasy fiction isn’t terribly grim and dark. The Lord of the Rings is one of my absolute favourites, and fans agree that it’s not so much an epic story about kings and battles (such as shown in the films), as a story about wholesome hobbits doing comfy things, occasionally interrupted by a quest to save the world. Trails in the Sky takes this to an extreme degree: the first half of the first game could easily be from the iyashikei genre. Sure, there are events going on, but they fit the scope of “wandering do-gooder private police trainees doing good deeds of minor consequence.” You help with a school play, for crying out loud. It’s just a really pleasant intro to the series that makes it easy to get invested in the characters since they’re not angsting or struggling in some cosmic battle or anything. By drawing it out longer than normal, the game is able to have a larger main cast, a more endearing world, and a stronger central relationship than is common.

Admittedly, this comes at the cost of discouraging people who will be waiting impatiently for the plot to get going. Therefore my advice is: play this if you want a fluffier kind of game – think along the lines of, say, Stardew Valley, but as an RPG.

EstelleDescribesTheGameAgain

Smart characters: There are at least two ways characters can be smart – well, two that I like to see; “his IQ is 400!” and the such are not actually a kind of smartness. The first is to be smartly chosen; Doylian smartness. This is the kind of smartness that made Estelle rather than Joshua the point-of-view character of Trails in the Sky. He’s the more typical JRPG protagonist, but just less fun to spend time with – it’d be harder to maintain the story’s key mysterious elements, and harder to appreciate the optimistic tone, if the protagonist weren’t the character who’d be “the energetic sidekick girl” in any other game. The choice to switch the two feels like a touch of genius, an apparently-small change that cascades to alter the entire game in a positive way.

The second is to have characters that make intelligent decisions. An important part of this is that non-central characters make plans and develop actions off-screen, but the central aspect is not doing stupid things. There are one or two cases where they do, but for the most part, the characters in Trails in the Sky make sensible decisions, are able to make deductions as successfully as the player does, and so forth. They’re also clear on the fact that the in-combat magic is an actually real thing used in pretty much the same way the game presents it, which is nice. Admittedly you do sometimes beat giant robots to death with knives, but hey, JRPG.

Free will ain’t all that: My position on choices in games is that if you can’t offer meaningful choices, you shouldn’t offer meaningless ones. Trails in the Sky doesn’t screw around with any pick-your-hair-style character design, pick-your-waifu romance, or pick-your-palette-swap endings. This doesn’t mean you have no choices. You still have choices to make in the actual gameplay, choices about who to talk to and what sidequests to undertake, that kind of thing. If “meaningful” means “altering the story,” then no, nothing you do matters. But that’s not really the kind of meaning that makes good narrative or good gameplay – a choose-your-own-adventure book lets you determine the ending, but the gameplay is awful. And if you have to make every NPC only connect in any depth to the main character – because they need to be available as a romantic path, or because you don’t know which NPCs the player will interact with, that kind of thing – you miss out on a massive amount of potential interactions that deepen the game world and strengthen immersion.

This is to say, I’m perfectly happy to have a linear story. Multiple paths tend to lack depth for any one path.

Liber’l conspiracy: I’ve said before that I’m not above admitting when I like or dislike the political aspect of a work. And these games were out to pander to me from the very start. Not only that, but it seriously discusses some of the difficulties of such a political position, look:
IWasNotExpectingSODAMNMANYRelevantPoliticalDiscussionsFromThisGame.png
Sure, it could go further, but it’s a game, not a debate. And Estelle can hardly be expected to have as well-developed a political philosophy as a queen, after all.

This is a stark distinction from the typical prelapsarian narrative of fantasy fiction in general. Liberl is a constitutional monarchy, sure, but it actually explains how it’s functionally different from just a monarchy. Compare, say, Final Fantasy XII, where it’s not really clear why the monarchy you’re in is really any better than the monarchy you’re being invaded by. I suppose the reactionary argument would be that you don’t need a reason to love your country except that it’s yours, but tough luck, I do actually.

This isn’t even to say it’s completely unfair to the Empire or the Parliamentary Democracy that comprise the other major political factions involved in the story, though. All the nations’ governance systems seem to have some merits and some drawbacks, and if the game is including some distortion in favour of the point-of-view state, well, that’s only to be expected. Can one have an “unreliable cultural narrator”? In short, the story’s ideas are thought through in a way that’s not all that common, and that I don’t think you could do with sprawling multi-narratives or subtle emergent narratives.

Worldbuilder: This is the really big one, the thing everyone praises the broader Trails series for in general. The world is vivid beyond the scope of most video games to attempt. NPCs that wouldn’t even merit a name in a lot of games have complicated on-going stories; historical events are explained in depth; there are some surprisingly lengthy stories found in books in libraries that are relevant not in some abstract literary sense but in the everyday sense of “people in the world reference having read the books, or having written them.” There are port towns being hollowed out by increasing air trade, side-quests that introduce you to important metaphysical concepts, even more NPC stories to follow. The whole world feels alive and dynamic, as opposed to the “timeless” atmosphere that a lot of fantasy RPGs aim for even when they’re in the middle of similar magi-industrial revolutions.

It’s really hard to describe the sheer scope of it – it’s something that games can do better, even linear narrative-driven games, because you can freely include irrelevant details and side-stories without alienating the audience so much, when people can just ignore it if they prefer. That said, your enjoyment of the game is going to be much higher if you do prefer to explore the world to the fullest – the game isn’t pretending like it’s just as good if you don’t.

ThisGameThoughForReal

Not even a bad game: And you know what? It’s not even like it’s a bad game held up by good writing, for all that the writing is stellar. It’s a good game! The combat mechanics are easy to grasp but allow a lot of depth. Figuring out different magitek configurations to access different spells is surprisingly fun, if somewhat annoying to interface with at times. Party members have substantial mechanical differences, while still giving you plenty of freedom to arrange your strategy as you like. The soundtrack – is that part of the game, or part of the narrative? Either way, it is amazing. The aesthetic style as well works amazingly well for capturing the cosy and the epic alike while keeping it clear what’s going on.

All that said, none of this is unique to this game at all. You can find comparable gameplay elsewhere. But are games about gameplay? Yes, in some sense that’s true. But they have a lot of other stuff going on as well, and it’s important not to get so caught up in horticultural analysis that you forget to smell the roses. Trails in the Sky is without doubt one of my favorite games of all time not because of the okay gameplay, but because of the everything else. Recommended without reservation.

Trails in the Sky

Why’reheading

Why’re we teaching teenagers about safe sexual practice, when we could just try to treat the underlying psychological issues that make them want to have sex?

Wait, no, that’s stupid [1]. Why’re we allowing people to buy make-up or cosmetic surgery, when we could just try to treat the underlying psychological issues that make people unhappy with their appearance?

Wait, that’s stupid [2]. Why’re we supporting people transitioning to the appropriate gender when we could just try to treat the underlying psychological issues that cause dysphoria?

Wait, that’s also stupid [3]. Why’re we using exercise regimes and gastric bands when the solution to obesity is to treat the underlying psychological issues that make people want to be thin?

Wait, still stupid [4]. Why’re we suggesting improvements to societal structure when clearly we could just treat the underlying psychological issues that make people in modern societies unhappy?

That’s probably stupid.

I’ve seen all of those five arguments made in varying contexts. The point of this selection was to maximise the number of people who have at least one issue on each side, so as to frame the discussion more neutrally. But if you’d have guessed that the origin of the discussion was the highly-contentious third, well, I wouldn’t call your guess wrong. But equally, the aim is to skirt around the highly-abstract last one, which is by far the most important.

Seeing these five side-by-side makes it prudent to start by examining the most common argument that’s made in favour of each of them – a slippery slope argument of the form “but if we accept people getting their noses shrunk, how can we say it’s wrong for them to turn themselves into freakish monstrosities of chitin and tentacles that should be cleansed from the world with fire?” Well, we can’t, same as there’s nothing wrong with people removing their limbs if it’ll make them more comfortable with their body, or people trying to find fulfillment in life rather than altering themselves to find their current circumstances fulfilling. Sure, maybe they’d be better off following Buddha’s advice and trying to become perfectly phlegmatic about things, but that’s ultimately a demand for people to change in an unlikely way.

Now, perhaps with sufficient enlightenment or technological advancement, we could make it less unlikely. We could find drugs that treat gender dysphoria or autism or being unhappy about being overweight. That’d certainly be a start. Why not go further? We could have a pill to cure ennui, a surgical procedure to make Mondays seem less horrible, or a vaccine to prevent liking Nickelback! Wait, is this starting to sound familiar?

The well-read will recognize this as an argument fundamentally about wireheading. Well, perhaps it is not such a good mark of entry into the elite once it has a wiki page. The foresighted will note that I am also constructing a slippery slope argument in the opposite direction: if the answer to the question “how much wireheading do we support” is not “none,” or “only as much as people want to do to themselves,” then how much? If people want to be thin, rather than accept being fat and become happy with it, why should we tell them that correcting their psyche is the better option?

This isn’t exactly the same thing as wireheading on every level, of course. But it certainly seems like any argument that proves that it’s right to alter people’s minds in the listed ways ought to be strong enough to also prove that it’s more generally right to alter minds in any number of unlisted ways. And if we take it as given that we don’t want to just alter ourselves to be permanently blissed out by everything, it follows that any particular argument for why certain people should alter themselves to be happy with any particular thing is in need of justification beyond “it would make them happier.”

There are a handful of such justifications that get seen fairly often. Appeals to Nature or God are of little interest to me; if you wish to make such an appeal, I suppose that’s your prerogative. Sometimes people make appeals to unfair competition – “some people are more attractive, and given the demands of competition, this amounts to a kind of tax on unattractiveness, which would be better off removed.” While I kind of agree, pushing back against the existence of options to alter the environment in favour of altering the individual just seems like a poor way to resolve this. If there are any good ways, I don’t know of them, though.

To go back to an earlier point – in Buddhism, there is a story of a farmer with 83 problems [5]. The story goes that the farmer went to see Buddha, who was known to be wise beyond wisdom, to seek counsel on how to rein in his errant son. Buddha said he could not help with that. Well, said the farmer, maybe you could advise me on how to mend my leaky roof. Buddha said he could not help with that. Okay, said the farmer, maybe you could teach me how to mend shoes. Buddha said he could not help with that. And so on through the farmer’s entire list of problems. At the end of the list, the farmer scowled and said “is there anything you can do?” And Buddha said he could solve the farmer’s 84th problem: that the farmer wanted to not have problems.

This must have made Buddha feel extremely clever, except that I’m pretty sure he was above that. But the farmer’s son was still errant; his roof still leaked; his shoes still tattered. One might even argue – given that Buddha could not wirehead anyone, and could only suggest decades of meditation and self-doubt – that he gave the farmer the 84th problem of feeling like caring about all those other problems was his fault for not being phlegmatic enough. Now, maybe the farmer attained enlightenment and was happy – or whatever positive-affect adjective you use to describe enlightened beings, anyway – and if so, good, but did Buddha really do all that he should in this story? Was it okay for him to sit back, content with having provided only the option to remove the perception of there being any problems?

As with the list of examples above, there’s one simple answer: that if someone prefers not to alter their preferences, then we should not say that having provided the option of doing so fulfills all moral obligations to alleviate their suffering. There are lines to be drawn on how far it is acceptable to go in pursuit of such, but the line is not here unless we want to say that in every case listed so far and many others besides the correct approach is “just don’t care about it.”

Well, I hope I’ve explained a bit about why I think wireheading is the wrong sort of approach to the, hah, problem of having an imperfect world. If people want to alter themselves, sure, but the mere existence of that as an option would not be enough to dismiss unhappiness.


[1] – Because that sounds completely impossible.
[2] – Because self-esteem can only get you so far; attractiveness isn’t going to be purely socio-cultural.
[3] – Again, that also sounds pretty much impossible.
[4] – Again, social norms aren’t so loose that people can expect to do equally well by following or by defying them.

The important note here at the foot is this: these arguments are constructed without reference to what the patient wants, i.e. no “but they probably don’t want to be cured of that desire.” And if you’re asking some of the questions but in other cases using answers similar to the footnotes, note that these are pretty interchangeable. For instance, obesity kills as surely as cancer does – and so does gender dysphoria, if you accept that “just have them not commit suicide after we insist they live a life that will make them want to” is not a valid method of engineering solutions, in the same way that “adopt the NAP” is not a useful solution to propose for gun violence.

[5] – It’s not clear why that number in particular, but I did remember the number perfectly despite having heard the story only once. Maybe there’s someting to it!

Why’reheading

Why can’t we skip all these tedious intermediate steps and just succeed already?

Suppose you had a discussion like this:

A: Choristers are terrible! They keep singing things all the time, and it gets on my nerves!
B: Have you tried earplugs?
A: Of course! They’re worthless! Uncomfortable, constantly in need of replacement, hardly block the awful singing but do somehow always make me miss important phone calls…
B: Okay, not that then. Have you tried asking them to stop?
A: Only every day for the last eternity. Why won’t they stop? Argh.
B: Maybe try asking them to sing something different, that you’ll like?
A: I don’t want them to sing something else, I want them to stop.
B: Or maybe you could offer to help them find a more soundproof room somewhere?
A: Why should I help them?! They’re torturing me! Why can’t they just stop doing it?
B: Perhaps some kind of rotating schedule, so you can be elsewhere when they sing…
A: Argh! No! They need to just not do it!

We could definitely accuse B of being unsympathetic. But A is also being unsympathetic, and so are the choristers, and it doesn’t really matter anyway. The point is that B is trying to be pragmatic – find a workable solution that makes A less unhappy. But A doesn’t seem all that interested in the workarounds – their only plan is to hope for the simpler solution of everyone abiding by A’s own preferences.

Let’s briefly consider some real-world examples:

And so on through a hundred other tedious culture-wars-by-proxy, “why can’t people just diet and stick to it,” “why can’t people just have more feminist sexual preferences,” “why can’t people just get jobs,”… All different in their exact causes but all containing a trace of the same error. Now that everyone is at least a little bit angry and considering leaving a comment about how their pet issue is totally different (hey! Just like mine!), we can move on.

Hopefully the idea is now clear. Someone has some extremely precious value like pro-choice, free speech, having guns, etc. That value gets questioned by other people who have different values. The person wishes other people would stop doing that. The problem is that, no matter how important it is (to the requester) that the value be respected, it’s not enough to make people actually do it. And emphasising that importance by repeated injunction does nothing.

Which is to say, there’s a tendency to try to object to a proposed solution by saying “but the real problem is that people are causing a problem. People just need to stop doing that.” Essentially, asking for people to change in an unlikely way as a substitute for discussing the proposed solution on a deeper level and gaining understanding of why it’s not satisfactory that can be used to refine the solution and so on.

I’ve made this mistake over and over again, on issues from environmentalism to electoral reform to foreign policy. It’s ludicrously hard to debate ideas without ever asking for the impossible. It could be seen as a kind of fallacy of perfectionism, but I prefer to think of it as its own thing, a kind of cognitive failure mode based around the fear that one’s values won’t be respected and the tendency to stop looking for a solution once someone else can be blamed.

The objection is obvious: but isn’t asking for less “asking for other people to change in unlikely ways” asking for people to change in an unlikely way? Yes, it kind of is. Therefore, here are some proposed practical workarounds:

  • Express the sentiment as “just to check, we agree that it would be best if … ?” – The aim here is to placate the part of the mind that is worried that the other participants won’t respect your highly regarded value.
  • Emphasize not wanting to be dragged off-topic when mentioning that it would be nice if whatever optimal path could be taken instead of compromising. This seems prone to failure. No amount of “let’s not get off topic, but…” has ever prevented discussions getting off-topic.
  • Resist the temptation to respond to “why can’t X just V?” with disagreement about whether it would be good if X just V. It is sometimes possible to find a way to express the idea that the principle is sound but an unhelpful way of looking at the original question; but if not, you’re usually allowed to just drop the line of discussion.
  • Ignore the discussions themselves. Then, write a long meta-level rant on your blog about it. This solves the problem forever.
Why can’t we skip all these tedious intermediate steps and just succeed already?

Celandine part 1 – Basics and Basis

Current code base available here

“I’d quite like to write a very simple computational chemistry program in Julia,” thought lots of people all the time, “I wonder how I’d go about that.”

Step one is to find out if the problem has been solved before. Not quite, but there is an open-source computational chemistry program in Python. So I’m not so much re-inventing the wheel as re-branding the Rotating Axle-Based Object Transport Circle. Still, it might be fun to try, and more importantly, we can follow the existing methodology as a guide.

It would make sense for step two to be “look up a bunch of sources on how to do computational chemistry,” and indeed this is what I did first. But vague memories of university would have been sufficient to provide the answer: there are a whole bunch of different approaches, and each will need its own algorithmic implementation (you could probably get that much just by guessing, even). However, they will share common features: input format, possible outputs, basis sets, and the such. Therefore this first post will, very conveniently for a lazy blogger with a day job and other hobbies, not in fact contain any computational chemistry. Step two, then, is to implement a basic structure that can read and display molecular geometries.

moleculeReader.jl: module for reading molecular structures from files into arrays
A molecular structure is, fundamentally, a 4-column 2D array, the first column containing atomic number and the other three giving (x,y,z) coordinates

function convertTextBlockToArray(text::Array)
    #Given the subset of text in the file which constructs molecules,
    #convert to an array of integers
    #This creates a 1D array of vectors
    A = [lineConvert(l) for l in text]
    #This converts it to a 2D array
    A2 = permutedims(hcat(A...), [2,1])
    #Obviously there are other ways to reach this result
    return A2
end

To explain how this works: the line creating A uses a comprehension to create a vector of whatever lineconvert is returning. The structure “hcat(A…)” concatenates all the contents of A together into a single 2D array instead. permutedims is Julia’s generalisation of transposition; permutedims(Array, [2,1]) is equivalent to transpose(Array). The result is a 2D array of converted lines from the text. We could also obtain this result by iterating over the array, converting and concatenating each line. But this would look a lot uglier, and since pretty much all reasonable molecules have less than 100 atoms, this slower method is fine.

function lineConvert(line)
    #Converts a single line from string to numerics
    a = split(line, ',')
    b = map(strip, a)
    c = map(x->parse(Float64, x), b)
    return c
end

This can be done in one line of stacked maps, but there’s not really any reason to and it’s very hard to read it that way. We have to use the somewhat ugly lambda expression “x->parse(Float64,x)” rather than just “parse” in order to force parse to treat all numbers as Float64. This is still somewhat annoying since we’d ideally like to treat the atomic numbers as integers, but that would mean using a mixed array. It seems acceptable to use floating-point for atomic numbers here, since they’re not actually used for any arithmetic until much later.

This function could still stand to be improved. Ideally it ought to be possible to freely switch between writing the atomic numbers in the input file, and writing the symbols (H, He, C, Br, etc). And a proper version of this would probably find some way to use integers for atomic numbers.

function readFileToUniversalInformation(filepath)
    #Read the file in the given location
    #Return an object containing the information set in the header
end

This is the other big TODO in moleculeReader. The top paragraph of an input file will be used to specify how the program should execute. It ought to be able to contain information like calculation type (RHF, UHF, DFT…), basis set to use (sto3G, p321, etc), specify the unit of measurement being used in input/output (angstroms, nanometers, bohr radii) (though note that internal calculations will all be done in nm. No sense making things needlessly hard), and probably other things I haven’t thought of yet. A custom type will be used to store this information accessibly.

moleculeDrawer.jl: module for creating 3D graphs of molecular structure
Sadly, Gadfly does not support 3D graphs yet. Since there’s not really any good way to visualise a molecular structure using only 2D graphs, we’ll just have to deal with using Plotly.

function plotMolecule(atomArray::Array)
    #create a graph displaying the atoms in the positions given by the array
    trc = scatter3d(
                    ;x=atomArray[:, 2], y=atomArray[:, 3], z=atomArray[:, 4],
                    mode="markers+text", opacity=0.5, marker_size=12,
                    text=map(x->getElementSymbol(x), atomArray[:, 1]),
                    textposition="center")
    #TODO make some of these things into inputs to this fn
    #TODO make different elements different colours :3yes
    layout = Layout(margin=attr(l=0, r=0, t=0, b=0))
    p = plot(trc, layout)
    return p
end

This is how you plot a 3D graph using Plotly. Important parts: x=atomArray[:, 2], y=atomArray[:, 3], z=atomArray[:, 4] gets the x, y and z columns of the array of atom positions. text=map(x->getElementSymbol(x), atomArray[:, 1]) creates the 4th column, the text of each atom. The text is just a label giving the elemental symbol.

function getElementSymbol(atomicNumber::Int32)
    #Retrieve the symbol for a given atomic number

    #The file is properly ordered, so the nth element is the nth line #EZPZ
    l = open(readlines, eledata)[atomicNumber]
    #Note that this loads the entire file into an array. May result in large
    #memory usage if the number of chemical elements increases,
    #or if using a table with very large amounts of info for each element
    elemInf = map(strip, split(l, ','))
    return elemInf[2]
end

Next TODO: create a better importer for the pt-data csv files. It should create a dictionary of Symbol:Number, and a simple list of symbols. That will make accessing symbols as we need them easier, and make it possible for moleculeReader to read symbols. Also find some similar files with a proper source, the source on these ones has vanished.

PlottingCodeTest
Fig. 1: Incredibly hard-to-make-out plot of atoms in non-meaningful positions. TODO: learn how to make this less awful to look at (in Atom? Which has a dark background? Or, learn how to make it display outside Atom, on a pale background? Or, make it export images without including the background?)

basis.jl: module for importing basis sets.
For the conversion from the PyQuante Python basis sets to the simpler, if more in need of interpretation, csv basis sets, see the python script basisReformatter.py. The reason for the conversion is to have a more language-neutral, but still somewhat readable version of the basis sets to hand.

function addLine!(b::BasisSet, line::String)
    l = map(strip, split(line, ','))
    linenum = parse(l[1])
    linearr = formArray(l[2:end])
    b.basis[linenum] = linearr
end

Note that the function!() format indicates a function that alters its arguments in-place rather than returning a new variable (though it is not a required syntax of doing so). This is the typical behaviour in Julia, so I’m not sure why it merits being highlighted. Opinions are divided over whether this is a good way of doing things; personally I quite like it.

function formArray(line::Vector)
    #In the input list, elements alternate between letters and strings of
    #numbers separated by spaces
    A = Array{Any}(2,0)
    for i = 1:2:length(line)
        #i indexes letters, i+1 indexes blocks of numbers
        a = line[i]
        b = listPairedNumbers(line[i+1])
        A = hcat(A, [a,b])
    end
    return A
end

The array we end up forming is not particularly easy to visualise – overall the structure is a hashmap relating numbers to (lists of (pairs of letters and (lists of pairs of numbers))). Uhh… Yeah. Think that’s right.

So far basis.jl is the part that probably needs least work. It does a single job quite effectively, and probably/hopefully doesn’t need any massive extension.

tester.jl: file for testing other modules.
Python is uncommon in having the wonderful if __name__ == "__main__": structure for testing modules by simply running them as main. In Julia, a more dedicated approach is required. So this file simply contains a set of functions for testing each other module.

try
    testBasis()
finally
    #This undoes the inclusions and uses, except when it doesn't
    workspace()
end

Annoyingly, the workspace() command doesn’t seem to do what it’s supposed to. To explain, consider the following development workflow in the Julia add-in for Atom, Juno:

  • Write a function in a module.
  • Add some code to the tester script’s function for the changed module to check the new function, execute the tester script.
  • Either part of the new code fails in some way.
  • Make further changes, run the tester code again.
  • Best case scenario: output overwhelmed by hundreds of warnings
  • Worst case scenario: console errors

Wait, what?

As I understand it, you’re Not Supposed to import things into the same workspace twice in Julia. In the good case (only overwriting my own code), the warnings just make things really hard to work with. In the bad case (Plotly), the workspace just dies. What the workspace() command should be doing is refreshing the workspace, replacing the main module with a new, empty one. In practice it doesn’t seem to prevent these problems. The only thing to do is to stop the Julia REPL and restart it.

JuliaWhy
Fig. 2: Second-run output interrupted by dozens of warnings. I have no idea how to prevent this “properly.” There doesn’t seem to be any way to suppress warnings.

Major improvements to make: Have input file set program behaviour. Allow element symbols in input file. Make graph output readable.

Next step: Add restricted Hartree-Fock algorithm. Add some test cases. Create some documentation on usage.

Celandine part 1 – Basics and Basis

Utter Seriousness

Epistemic status: trying to talk about things that actively defy being talked about. Largely pointless. Occasionally descends into nonsensical prose for no reason.

1.
A basilisk is a fearsome serpent hatched from a toad’s egg, praise Kek, incubated by a cockerel. It possesses potent venom and, critically, the ability to kill those who look at it. The idea was brilliantly used in the famous short story BLIT for a deadly fractal image. A basilisk, then, refers to a particular type of antimeme: the kind that kills those who perceive it, thereby preventing its own perpetuation. There are others.

Post-Truth and Fake News have become the defining political issue on my mind lately, which is either pretty impressive given the circumstances or completely predictable given the zeitgeist. And indeed the world is noting the significance of the crumbling of the possibility of genuine discussion as right and left retreat into worlds not merely of separate ideals but separate facts. TUOC writes:

I bet there are a lot of people who read r/the_donald and have a vague impression that refugees committed six murders in Canada last night, a vague impression which will stack with other similarly unverified vague impressions and leave them convinced there’s an epidemic of refugee violence. I have no idea what to do about that, and it terrifies me.

As it turns out, there was a popular thread there about the true identity of the shooter. But note how none of the details are in the thread title – the memorable point will still be “uhh, terrorism’s sure rampant with all these refugees, isn’t it?” And also note this story in which the Orange Man himself joins in on the action. Now, it certainly seems like he was talking about some kind of event in Sweden on Friday 17th. But his fans quickly accepted the alternative interpretation he gave, that he was talking about a Fox News report about Sweden. And then proceeded to claim that it’s everyone else who’s just buying into a narrative. And kept the vague impression that there’s terror and crime in Sweden beyond all proportion to what was actually the case at the time of the statement (retrocausality being almost certainly impossible). Or consider this discussion which takes a look at exactly the same thing from the other political side.

James Hitchcock also weighs in:

A less-discussed innovation of modern politics is the collapse of earnestness in public discourse. Sarcastic and ironic modes of conversation have sprouted like fungi wherever political discussion occurs –in political speech, formal journalism, social media formats, and on online content aggregators such as Reddit and Tumblr. This mode of discourse provides lazy, comfortable white noise as a backdrop to political discussion, a rhetorical style that can be genuinely funny but that masks a lack of faith in one’s words. Moreover, it deprecates sincerity as a value worth striving for while engaging others.

Anderson and Horvath discuss one of the purveyors of antifactualism in depth here, saying:

In the past, political messaging and propaganda battles were arms races to weaponize narrative through new mediums — waged in print, on the radio, and on TV. This new wave has brought the world something exponentially more insidious — personalized, adaptive, and ultimately addictive propaganda. Silicon Valley spent the last ten years building platforms whose natural end state is digital addiction. In 2016, Trump and his allies hijacked them.

This widely-circulated post gives another good breakdown of the phenomenon, although I don’t know if it needs to be attributed to enemy action. This article discusses the notion under the name “the big joke.”

This is simply how modern ‘media’ works. People can’t maintain a cognitive network in which they keep track of what each source is saying, which people in their less immediate social-media circles can be expected to pursue true beliefs, which of the myriad links they need to follow to learn more and when they can safely trust someone’s summary. So people end up with vague impressions, ghosts of maps.

2.
Yudkowsky wrote on thought-terminating clichés in straightforward terms. Alexander wrote about the “bingo card” as part of a larger-scale discussion. The former is the negative-sense, “thing that you stop thinking when you encounter,” the latter the positive-sense “thing to which other ideas are drawn and approximated,” but in both paradigms, a mind adds on a structure that automatically resists attempts to modify that structure.

Consider, then, this comment suggesting that commentators who “will always wrap up their counterpoints in lengthy and citation-heavy word salads designed to give an impression of intellectual honesty” are malevolent, or this alt-right meme creating the impression that arguers who acknowledge complexities of positions are laughable. If you’re imagining a bingo card with squares like “But I Have Evidence” and *Is Polite and Acts Reasonably*, well. Bingo. With such a mentality becoming commonplace, discussion can become utterly impossible rather than merely “urgh talking to $OUTGROUP is impossible“-impossible.

But then consider in juxtaposition the notion of the thought-terminating cliché. What if you put up stop-signs around the action of thinking about things in the evidence-based, polite-and-reasonable fashion? What if noticing yourself taking any foreign idea seriously were cause to shut down inquiry along the lines of noticing that you’re questioning the sacred/taboo?

The idea of doublethink goes back at least as far as the 4th century BCE, when the tenets of Buddhism were first laid down. In typical meditative procedure, the practitioner attempts to dismiss their distracting thoughts as they form, eventually becoming proficient enough to be free from onerous mental diversion, which, it is held, is the root of all dhukka (like ‘suffering,’ but much less so). The goal is noble enough, and the technique actually quite useful, but it reveals an important secret of the human mind: it is possible, with training and practice, to go from avoiding pursuing thoughts, to avoiding thinking them at all. This has some implications for the nature of the conscious mind which I feel have not been fully explored by the non-reductionist crowd, but that is a different discussion entirely.

(my apologies for brutally over-simplifying this practice. It is meant to be illustrative of an idea, not dismissive of a religion)

Of course, when people hear “doublethink” they don’t think of ancient religious practice, but rather the comparatively very recent 1984. Wikipedia quotes Orwell describing it as:

To know and not to know, to be conscious of complete truthfulness while telling carefully constructed lies, to hold simultaneously two opinions which cancelled out, knowing them to be contradictory and believing in both of them, to use logic against logic, to repudiate morality while laying claim to it, to believe that democracy was impossible and that the Party was the guardian of democracy, to forget whatever it was necessary to forget, then to draw it back into memory again at the moment when it was needed, and then promptly to forget it again, and above all, to apply the same process to the process itself – that was the ultimate subtlety: consciously to induce unconsciousness, and then, once again, to become unconscious of the act of hypnosis you had just performed. Even to understand the word ‘doublethink’ involved the use of doublethink.

In Orwell’s fiction, when The Party demands doublethink, it is supposed to be demanding the impossible – an illustration of how the state is all too happy to make everyone a criminal and then selectively enforce the law against those it dislikes, as well as the particular anti-truth brand of impossible to which the Party adheres. However, the real doublethink is a simpler thing, something the brain is perfectly capable of doing – as has been known since antiquity. It is merely one more stone in a bridge to post-truth.

3.
Edit: This is by far the most contentious section, perhaps unsurprisingly. However, it’s also quite tangential – skipping ahead to the end is entirely reasonable. There’s also a rather more productive discussion in the comments!
So let’s talk about “postmodernism,” by which I mean “the thing referred to commonly as postmodernism” rather than postmodernism itself (for a good discussion of the distinction, see this thread. OP is a bit smug and wrong, but the overall discussion is good). But surely no one takes it truly seriously any more? Isn’t it just a funny game that humanities sophists use to amuse themselves? Didn’t Sokal prove that or something?

I used to joke about Virtue Mathematics, by analogy to and as a criticism of Virtue Ethics. “Mathematics is simple!,” I would say, “Just stop dragging up all these crazy notions of ‘proof’ and ‘axioms’ and ‘formalism’ and simply accept the conjectures that the Clever Mathematician would accept! True understanding, the kind that actually matters in day-to-day life, has nothing to do with carefully-constructed theoretical quandaries, and mostly comes down to intuition, so obviously intuition is the true root of all mathematics!” This struck me as quite funny, though it’s more mockery than real criticism. But are there really people who take this attitude and who can be taken seriously?

Jordan Peterson talks about “Maps of Meaning.” David Chapman talks about “Meaningness.” I am almost convinced that they are talking about the same hard-to-grasp thing. But I am also almost convinced that the thing they’re talking about is simply their own confusion.

In Peterson’s case it’s hard to directly quote him, as he has a habit of wandering off on huge tangents that will provide context for important statements – talking about zero to talk about trading to talk about Monopoly to talk about Pareto distributions to talk about Communism to talk about the USSR to talk about growing up in the 80s, in order to give the life-story context to a discussion of… well, I’m not sure, he didn’t really specify. Nonetheless we will make an effort.

He will say things like “I realised that a belief system is a set of moral guidelines; guidelines of how you should behave and how you should perceive.” This seems like word salad on the face of it, but maybe we can drain off some of the overabundant dressing and fish some tasty radish or cucumber out of the mass of soggy lettuce and bewildered mushrooms.

Well, undeniably some belief systems include moral guidelines on how you should act. That much seems, well, trivial? That is, that can’t possibly be a realisation. No, the position being sought here is that all belief systems are, contain, or break down to rules about how you should perceive the world. The fallacy of grey leaps to mind. Even if this were true, it would not be even slightly useful for helping determine which among the many belief systems is the most appropriate to adopt in consideration of the goals you wish to achieve. It indistinguishes belief systems, claiming that since scientific belief systems also guide how you should perceive, they’re not any better than any old random belief system you found in your grandfather’s attic.

In fact, his whole style is described as “immunising [the audience] from a totalitarian mindset.” Sounds lovely? Think back to the cognitive lobster-pot of previous paragraphs, the bingo-card thought-replacement. What is a totalitarian mindset, according to Peterson? Well, one example would be supporting laws against hate speech, of any form. Now, we can disagree about where exactly is the best place to put the boundaries of free speech. That can be a productive discussion. But when one side is screaming that anything less than total adherence to their absolutist position makes you the same as Stalin, that discussion evaporates.

He will also say things like “[…] so when everyone believes this , it becomes true in a sense.” This is referring to things like contracts, where indeed the truth is (at least partly) determined by what people’s beliefs are. But in that case, he’s not really saying anything. Money only has value insofar as we agree it does? Well, yes. I thought this was supposed to be important new information?

One notes a similarity to Dennett’s notion of the “deepity” – a statement that can be read as either true, but trivial; or deep, but false. “Reality is nebulous” – true if we’re talking about lack of sharp category distinctions, but then hardly a great insight, nor one that requires you to go beyond rationality. Deep if used to mean “there is no universal lawfulness,” but then entirely false. If there is one habit of the metamodernist that gets to me, it is the insistence that rationality can’t explain everything, so it must be incomplete/wrong/broken.

Chapman writes:

The exaggerated claims of ideological rationality are obviously and undeniably false, and are predictably harmful—just as with all eternalism. Yet they are so attractive—to a certain sort of person—that they are also irresistible.

Really? Because I’ve never met such a person or seen him present any examples, and yet his general tone seems to indicate that he thinks the reader is such a person. Yes, calling your readers’ approaches to cognition obviously, undeniably wrong and predictably harmful sounds like a great way to get them on your side. A++ implementation of meta-systemic pseudo-reasoning. But regardless, the reason such claims are exaggerated, obviously false etc is that no one is making them.

Essentially the problem with the meta-rationality, post-truth, prefix-word memeplex is that it explicitly demands non-thinking. Thinking is part of the wrong system, the dreaded Eternalist Ideological Rationality. Scott Alexander has discussed this kind of trap twice to my knowledge, once in a review, once in fiction – both theologically rather than meta-epistemologically, but the mechanism of the trap is the same regardless of the substance of which the teeth are made. The variant here is that whenever you think about metarationality using regular rationality, you’re already wrong by virtue even of trying – the same as trying to repent for the sake of avoiding Hell. You’re expected to already be on the “right” level, in order to understand the thoughts that justify why it’s the right level. Hence “presuppositionalism.”

Chapman does us the favour of writing directly:

Meta-systematic cognition is reasoning about, and acting on, systems from outside them, without using a system to do so.

Once you accept that something can’t be attacked by reason, or meta-reason, or anything anywhere up the chain (systems), it becomes completely immune to all criticism forever. You might say that it’s still vulnerable to criticisms made in the right way – on the right non-systematizing level – but the fact is you will very conveniently never come across any criticisms on that level. You will, weirdly, only ever encounter people trying to critique from “within the system.” Poor dears! They don’t know how helplessly stuck they are, how deeply mired in the Ideology of Rationality!

This essay isn’t meant to persuade people to come down from the tower of counterthought, of course: they are beyond the power of articulate reason to reach. They have rejected the implications of incompleteness proofs, preferring the idea that they are somehow above the chain of total regression, the Abyss of accepting that not being an anti-inductionist is okay, really, reasoning about your reasonability using your reason is the only option and that’s fine. Arguing with postmodernists is for giving yourself a headache, not for having fun or seeking truth. Likewise, the relation is mirrored: someone genuinely convinced of the merit of the object level (rather than merely operating there by default) will not be seduced by the appeal of meta-level 2deep4u-ing.

The emergence of post-rationality/post-truth/post-systemism/etc is the final triumph of what we might call Irony. The iron-clad position of ultimate immunity to everything, the ferrous dark tower against which pin the world must be turned aside, the point of nuclear stability from which no further action can be extracted. Not merely to unthink your thoughts, not merely to meet a stop-sign and turn back, but to unthink the thoughts about unthinking, and the thoughts about that, quine the whole thing and be done with discourse forever. Ironic detachment beyond merely a new level, but taken to a whole new realm of smug disengagement, an Alcubierre drive running on exotic logic, causally disconnected from the rest of reason and already accelerating away to some absurd infinity.

0.
This, then, is the antimemetic meme. Don’t take things too seriously. If someone tries to engage in a serious discussion, post a frog picture and move on. Don’t think too hard about it, don’t believe anything you read, don’t try to understand why other people disagree. They’re probably just signalling anyway. Definitely don’t do anything as uncool as caring. Why you mad though? Truth isn’t subjective, of course, we’re not peddling woo here, but don’t waste your time on a mere system. Your impression of reality is supposed to be a big blurry mass, isotropic and incoherent. And so on.

Douglas Adams wrote about a spaceship suffering a meteorite strike that conveniently knocked out the ship’s ability to detect that it had been hit by a meteorite. Thus the beauty of antimemetic warfare: the first and only thing that needs to be removed is the knowledge that you’re not fighting. Make the thought of not fighting unthinkable, and everything else follows. Can one fight a war with no enemy? Under such circumstances, I don’t see why not. Sam Hughes wrote that “every antimemetics war is the First Antimemetics War.” That a capable response to true antimemetic forces – even those arising purely through natural means – must require respondents who are as good on their first day as they’ll ever be. For the weaker antimemes of the real world, we have perhaps a little leeway, a little ability to learn counter-techniques.

Thus my conclusion. If we cannot re-learn honesty, earnestness, dialogue on the direct object level, then we will lose a war we can’t see being fought to an enemy that doesn’t even exist. I say this with utter seriousness.

Utter Seriousness