I used to spend a lot of time on r/linguisticshumor, doing what every grown-up on Reddit inevitably does. (That is, disagreeing with everything, but smugly.) Recently I got it into my head that shouting at the never-ebbing tide of first-year linguistics students was a waste of my life, so rather than continue piling bricks in an ever-eroding wall, I'll just post them here, and you can throw them through your own window (or your enemies' windows) at your leisure. […]
Lately I've been on a retro-computing binge, revisiting some past nostalgias (and borrowed nostalgias) with fresh eyes. I don't usually think highly of nostalgics in the purest sense—I've always thought of rose-tinted glasses as an obstacle to true appreciation of history rather than a justification for it—but this time I took a long, hard look at the technology of my own childhood for once, particularly the quirks of 90s Windows, from 3.0 through 2000, and in the midst of this I've come to realise that the standard terminology we use to describe the experience of using old computers is missing an axis, one that's worth defining. […]
Chlorine, Chlorine, Chlorine, Chlorine
Please purify every single last dram
Fluorine, Fluorine, Fluorine, Fluorine
I'm begging of you, bind to all that you can […]
Please purify every single last dram
Fluorine, Fluorine, Fluorine, Fluorine
I'm begging of you, bind to all that you can […]
Last time, we looked at arm biomechanics and how physiology affects the ability of humans to produce shapes, especially straight lines, consistently. The prognostication was not exactly uplifting: we established that human muscles are naturally disposed to draw wobbly lines, and that extensive practice is required to draw a simple, straight horizontal line consistently without slowing down. But before we get into the marvels of how cursive writing avoids these problems, we ought to look at some of the strategies that various scripts developed to mitigate them prior to the invention of connected writing, as these approaches are still very much evident in all real-world continuous scripts. (And considering how bad the average person's handwriting is these days, you might even improve your natural-language legibility along the way...) […]
There is a unique delight to be had in looking at lines of inscrutable, confident cursive prose in a language you cannot begin to grasp. Cursive scripts present an allure of cohesion and sophistication, asserting that the writer is comfortable with the language and is going through the motions of using it to communicate ideas; conversely, block lettering suggests the written text itself is a challenge or accomplishment to put forth. So it goes with the evolution of real scripts, and so it goes with our fantasy languages.
The transition—from etched and scribbled runes to coiled and snaking paragraphs—presents some new obstacles to refined and consistent production, and makes urgent certain deficiencies that went hitherto unnoticed. So, in this very special follow-up to Your Writing System Sucks, we shall discuss the nuts and bolts of how to keep your conlanging pen flowing with the wind. […]
The transition—from etched and scribbled runes to coiled and snaking paragraphs—presents some new obstacles to refined and consistent production, and makes urgent certain deficiencies that went hitherto unnoticed. So, in this very special follow-up to Your Writing System Sucks, we shall discuss the nuts and bolts of how to keep your conlanging pen flowing with the wind. […]
When I wrote this, back in the before times (when graduate school seemed more like the Elysian Fields than it did a ravine full of a pile of dead Sisyphus impersonators), I honestly thought it was a somewhat strained analogy. Bacterial genomes were, I knew, somewhat prone to self-stabilizing. That seemed sort of like the right thing to map onto a matrix, with the eigenvectors being forces that act on it. But there's no really snappy way to refer to, specifically, a matrix that is part of a system with a set of eigenvectors and eigenvalues, so I twisted the metaphor, slapped the nice eigenvector label on it, and sort of let it go, like the shower thought it was.
But now, having long-since fled the ravine and all its boulders, I'm not so sure I was wrong. […]
But now, having long-since fled the ravine and all its boulders, I'm not so sure I was wrong. […]
Consider:
const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];
console.log(animals);
delete animals[2];
console.log(animals);
console.log(animals.filter((x) => { return x !== undefined; }));
This produces the output:
> Array ["ant", "bison", "camel", "duck", "elephant"]
> Array ["ant", "bison", undefined, "duck", "elephant"]
> Array ["ant", "bison", "duck", "elephant"]
Sometimes you just need to iterate over a non-iterable collection and delete things as you go. Now you can clean up after and not feel bad about it.
This question has been asked quite a lot by newbies, and they are invariably told to just use Array.prototype.splice(), but that has the annoying habit of immediately re-indexing the array.
I should probably mention that using delete on Array elements is slightly undefined behaviour; at least one checker (JSlint) apparently dislikes it. But the MDN page for Array is almost weirdly glib about casually discussing implementation details, so we'll just say YMMV.
const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];
console.log(animals);
delete animals[2];
console.log(animals);
console.log(animals.filter((x) => { return x !== undefined; }));
This produces the output:
> Array ["ant", "bison", "camel", "duck", "elephant"]
> Array ["ant", "bison", undefined, "duck", "elephant"]
> Array ["ant", "bison", "duck", "elephant"]
Sometimes you just need to iterate over a non-iterable collection and delete things as you go. Now you can clean up after and not feel bad about it.
This question has been asked quite a lot by newbies, and they are invariably told to just use Array.prototype.splice(), but that has the annoying habit of immediately re-indexing the array.
I should probably mention that using delete on Array elements is slightly undefined behaviour; at least one checker (JSlint) apparently dislikes it. But the MDN page for Array is almost weirdly glib about casually discussing implementation details, so we'll just say YMMV.
I've come to believe that my approach to constructed languages is a little different from most conlangers. It seems to me that most people first fall in love with the phonology or diachronics of a natural language (or a family of natural languages), and spend as much time as possible fixating on sounds: for the unadventurous, 'build-your-own-Romance-language' is an entire genre, and will probably be the only way they'll arrive at something that can be used to write more than a few words. Beyond that, xenophilia is an overriding obsession: for phonologies that aren't nearly identical to English, [ɕ] is more common than [ɹ]. Maybe this is all just an artefact of how linguistics is taught in the average university curriculum, but it's always struck me as odd that so many conlangers immediately make a bee-line for the parts of the art that are the least creative. (And if a conlang does make it past the first post and get into some vocabulary, there's a good chance it'll have triconsonantal verb roots, which have become, for lack of a better term, a meme.) To avoid drawing out this too much, my favourite topics are more in the areas of glyphs and words. I'd rather see a dictionary with a nice alphabet chart than a complete set of sound changes and grammar. (Although grammar is, I suppose, neutral ground. It's pretty cool too.)
Anyway. With that venting done, let's talk about your conscript and why it's probably garbage. […]
Anyway. With that venting done, let's talk about your conscript and why it's probably garbage. […]
University politics. Woo.
1 2 3 4 5 6