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

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

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

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]),
    #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

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]

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.

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

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])
    return A

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.

    #This undoes the inclusions and uses, except when it doesn't

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.

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.

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.

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.

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.

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

A Second Set of Very Short Reviews With No Particular Purpose

Too Like the Lightning
It’s the philosophical parts of Sid Meier’s Alpha Centauri, but as a book! Awesome! But it’s presented in the most insufferable writing style: needless archaicism. And its philosophy-behind-the-philosophy agrees with my mother, which doesn’t win it any favors.

Ergo Proxy
It’s also kind of like SMAC, but with masses of eye-shadow. If you can disregard the unlikable cast and cliché aesthetics, it actually has some fairly interesting things to say about creating sentient servants. But it kind of mumbles them under its breath with frequent non-sequiturs. Overall, overrated.

Good fun in the vein of SpaceChem etc. Difficulty curve is a bit patchy to nonexistent at times. Looks kind of ugly but not in an offensive way. If you like build-a-machine games, this is one of the greats.

Making Money
I’m honestly not sure about this one. Nowhere near the greatness of Reaper Man, Hogfather, Night Watch, Small Gods etc, but still one of the better ones? Yeah, that’ll do. Kind of bothers me how all of Moist’s opposition just self-destructs without any real sense of him having to fight for it. Maybe that’s just his style.

DotA 7.00

The Slow Regard of Silent Things
Someone told Rothfuss they liked his, shall we say, open-minded attitude towards the categorization of words into nouns, adjectives etc, and he got a bit carried away with the heady feeling of praise. And a thesaurus. Also reduced Auri from a perfectly good side-character to “the yandere harem girl.” Still a pretty good read.

Flip Flappers
You deserve to watch this.

Path of Exile: Atlas of Worlds
Fantastic expansion. Can anyone stop this game from getting better before it’s too late? Find out in Act V, coming some time eventually.

Black Mirror S3
Not as ludicrously good as the first or second season, but still very good for TV. People are right to hype San Junipero. Pretty much every episode had enjoyable parts and made me think about something even if not always what I think I was supposed to be thinking about.

Legend of Heroes: Trails in the Sky FC
“Charming” is the word that springs immediately to mind. You can do a lot with characters that you introduce as flat archetypes and build on a little more with each scene they’re in, and the setting is well-realised enough. I lack the tactical-RPG experience against which to compare it, but the gameplay is usually pretty engaging, so can’t be that bad.

Hello Internet Podcast
Oh, okay, turns out CGPGrey is only a nice voice and somehow manages to have Wrong Opinions on every single other aspect of existence. Impressive, really, as it implies that there’s a Right Opinion Generator which he’s inexplicably inverting the outputs of. Would be much less terrible if Brady, who has quite a broad spectrum of partial knowledge, weren’t played as the Dumb Guy of the two. In essence, I don’t like thing.

Rick & Morty S1
Wow that got unfunny quickly. Brilliant ideas, but firmly lashed to the anchor of “status-quo-preserving sitcom.”

Perdido Street Station
Reminds me strongly of an acquaintance at university whose drawings of unsettling creatures would consistently feature leaking, oozing, etc. Imaginative, but deeply unpleasant to look at for too long. When most people want to say summer days are long, they don’t use implements of torture in their simile. On the whole: a great book.

A Second Set of Very Short Reviews With No Particular Purpose

Degeneracy Pressure

A while ago, the heretical false caliph wrote about The Constant Decline of Civilization.

Now, I don’t think it can be argued that any of Scott’s points are exactly wrong. But that said, I don’t think they’re strikingly right, either.

Foremost: I don’t think the “litany of historical complaints about degeneracy” are meant to be that kind of argument – that is, “everyone in history thought X, therefore not-X.” I think the intended message is largely “oh, and where is your plan to reverse it all going to stop at?” A mixture of asking how we can know that the complainer’s preferred historical era is the right one when the people in that era complained as well, with a suggestion that the complainer would never have been happy no matter when they’d been around.

Very few such complainers want to go all the way back to before history. Some do, but not many.

But okay, let’s take it head-on. Some things have been getting worse forever.

Have they? Well, I’m not really sure. Scott compares an office worker to a frontiersman to a crusader to a Spartan. Is that really fair? Why not a computer-based office worker to a paper-based office worker to a clerk to a scribe? Why not a fighter pilot to a cavalryman to a crusader to a Spartan? Well, because those would be harder to judge, wouldn’t they? It’s not really obvious that a fighter pilot is less of a Cool Warrior Archetype: sure he’s raining down metallic judgment from on high rather than getting up-close-and-personal, but his training is more extensive, his conditions more extreme. What Spartan warrior ever fought at 8G?

And if we do want the former aspect and the former aspect only, why is the crusader lacking it? Are we falling for the old “well our stories of Spartans have them as super-noble oiled near-naked men of pure courage, and our stories of crusaders have them as fully-armored rape-and-pillage God-botherers, so obviously Spartans are better” lark? Those are just stories. Perhaps based on facts at first, but given that time twists all such retellings more and more as they go on, aren’t they a terrible basis for comparison?

I can kind of see the point being outlined, though: as time has gone on, technology has replaced humans in many roles (doctors’ diagnoses vs machines, hand-to-hand combat vs drones, etc). The result of this is a constant loss of the requirement of being amazing at those roles. So people today are “worse people” because they can’t do what the people of old could, because the people of old had to.

But wait! This was supposed to be about virtue! Since when is it virtuous to be able to diagnose a disease by sight/smell/pure force of doctorliness alone, when that’s the only option you have? Virtue, if it means anything, means choosing a harder path out of personal commitment to being the best possible person. Having no better options does not make you more virtuous: it makes you unfortunate! It’s not like people have lost the capacity to be able to be superb diagnosticians or warriors or mnemnists, and if a day should come when such skills are required, then they will be restored. The fact that such days have been receding ever further into the past is a huge success.

And on the point of modern art… This argument annoys me! Firstly, great art of any type you care to name is still being produced, often in greater quantity, to a greater degree of skill, whatever metric you like. Secondly, it’s a pure example of “stop liking things I don’t like” – even if art you like weren’t being produced any more, art is made to satisfy more urges than merely yours. You cannot escape this by calling certain preferences wrong (e.g. “modern art is just edginess-signalling”): doing so is just asserting that your preferences are objectively correct, which is laughable. And lastly, modern art works as art. I’ve had countless conversations about modern art, usually starting with someone saying “urgh it’s not art,” and cannot remember even one conversation in my life about Renaissance art, probably because the latter is pretty boring to anyone who’s not part of the fanclub.

So no, take your Argmentum ad Entartetekunst and hang it on the wall in a modern art display. It’ll be appreciated there.

Degeneracy Pressure

2016 Review

How much ink has been spilled to complain that 2016 has been a terrible year?2016was
Yeah, quite a lot.

This is the part where I say something like “But! My powers of contrarianism let me see the truth hidden from the vision of mere normies!” But the truth is, I’m just not feeling it. The consensus is allowed to be right, and on this occasion, I agree. 2016 was a disaster. This was the year of Meme Magic, where it finally became clear that we’re just playthings of vast impersonal forces that inexplicably decide what will happen in our lives. For those who haven’t already gone completely insane – apparently a minority – this is a bad thing. Really bad. The worst thing that has ever happened? Perhaps not that far,  but we shall see. But if you think rule-by-egregore will stop at the return of ethnonationalism and the death of journalism, keep thinking. And maybe one day you’ll look back as the metaphorical equivalent of black writhing tentacles rise from the metaphorical sea, and realize that joining the metaphorical XD Kool Kek Kult XD might not have been the brightest metaphorical idea. Just because no one worshipper can be pinned as the one tipping point that paves the way for the rule of the Old Ones, doesn’t mean no one is responsible. And no one really gets to be eaten first. That was always just a… a silly idea that people repeat because it’s funny.

Nonetheless, let’s move on to my summary. 2016 was super boring in my own life! Nothing accomplished, nothing lost. But I consistently felt like I was having a pretty good time, so I’m not complaining.

Well that was brief! Let’s get on with the forecast. Next year? Next year will be beyond imagining.

2016 Review

Adblock Can (Not) Save Us

It is now generally agreed that “clickbait culture” is destroying any hope of productive discourse that does not immediately disintegrate into bickering, flame-wars and grandstanding. However, the incentive structure as it stands simply does not allow anyone to stop doing it: the first media outlet to take a stand for calmness and sanity will be the first to bleed to death from lacking advertising revenue as its viewers click more provocative lines in their feeds. Despite cautions regarding structures that enable vertical transit, everything just keeps tumbling down. It doesn’t stop from keep happening.

But what if we could stop letting that happen? Adblockers, which modify a browser to not display advertisements from websites the user visits but does not explicitly whitelist, could decouple “maximizing viewership” from “maximizing revenue,” and whatever digital economy follows might require producers to create content of genuinely high value.

I don’t think it will work out so pleasantly. Here are my reasons, laid out as straightforwardly as possible:

  • Adblockers are permeable: most adblockers serve the purpose of blocking obnoxious ads, not preventing civilizational collapse. They often have provisions to allow non-intrusive ads, and unethical adblockers effectively operate as a protection racket, accepting payment from advertisement agencies to not include their material in the default blacklists. Adblockers that are not complete do not remove the incentive to produce clickbait.
  • Adblockers are detectable: in order to save bandwidth, most adblockers work by modifying requests to the web server so that returned pages do not include known advertisement content. Increasing numbers of websites detect this happening and lock content unless the user whitelists their site. While it’s possible to instead download the ads and not display them, this uses significant bandwidth – and more importantly, if adblock-users are indistinguishable from non-users, there’s no loss of incentive to be clickbaity from a viewer changing category.
  • Anti-adblockism is already a thing: a lot of content creators are not happy with their ability to earn a living being destroyed in the hopes that something better will emerge from the rubble, and argue that using adblockers is morally wrong. A lot of people agree with them, and would be especially unhappy with the kind of adblockers that would be required to repair online discourse (see above).
  • Content creators doubling down: to keep revenue up as numbers of “paying” viewers falls, even more outrageous clickbait will have to be used. This may sound impossible, but I’m quite sure it’s not. “Things can’t possibly get worse” has never been correct, and arguably the rise of adblockers is what precipitated this race-to-the-bottom to begin with.
  • The replacement digital economy will also be awful: it doesn’t seem especially likely that non-ad-based revenue streams will necessarily protect against clickbait. Remember that the Daily Mail existed long before the modern internet did. If people are more willing to click on bait-links, they’ll probably be more willing to fork over a seamless microtransaction to see them; or to subscribe to their service; or whatever payment model is hoped will take the place of ads. Short of a centralized body funding content-creation on merit rather than populism, the incentive to acquire more viewers at the cost of calmness and sanity will always be there, and you can bet the libertarian brigade would be up in arms if we tried to nationalize the media – somewhat rightly so, I imagine, since it introduces different perverse incentives.
  • The replacement digital economy will be less equitable: yes, clickbait is destroying the world, but it’s fair – anyone can write what they want and get paid exactly what they deserve (i.e. proportionally to viewership).

Some of these issues can be circumvented, others mitigated. And on the whole, I’m hopeful that adblocking can at least slow the decline – after all, back when all media was pay-per-view, high quality content was mostly the norm.

Oh, and everyone needs to stop using Twitter immediately – that stuff is memetic poison and “but muh coordination problem” or “but muh best social media platform” is not a good enough reason to put it anywhere close to your mind. Do not drink the radioactive acid.

Adblock Can (Not) Save Us