Joey sang some more parody lyrics I wrote, and another Hallelujah


Joey Marianer (to whom, and I cannot stress this enough, I am 💖married❣️) was asked to sing some computer-related songs at a company all-hands meeting, and chose The Bad Coder’s Favourite Things (one of several parodies I’ve written of ‘My Favourite Things’) as one of them. It’s the third one, after Joey’s own ‘Inbox Zero’ (a new addition to our growing list of Hallelujah parodies) and Les Barker’s ‘Reinstalling Windows’ (a parody of ‘When I’m Cleaning Windows’.)

Enjoy!

In other news, we’ll be at MathsJam Annual Gathering in November, which will be a hybrid in-person (in the UK) and virtual event this year. If you like maths, or if you think you don’t like maths but want to find out why people do, or even if you just like parody songs about maths, and the time zone and/or location work for you, I highly recommend joining.

Also, surprise! I thought I’d uploaded all my JoCo Cruise 2022 footage, but I’d somehow missed the Monday concert, with Jim Boggia and Paul and Storm. You can watch it as a single video or a playlist of songs. This means I’ve uploaded more than 22 hours from that cruise, all-up.

And, double surprise (which I of course remembered a minute after publishing this post) Joseph Camann made a musical version of my performance of ‘The Duel‘ on JoCo (virtual) Cruise 2021. I love it!

, , , , , ,

Leave a comment

Linguistic Alternative Polka (“Weird Al” Yankovic parody lyrics)


Here are some linguistics-related parody lyrics I wrote to “Weird Al” Yankovic’s “Alternative Polka”. I’ve grouped them into numbered topics, with notes below explaining what each part is about. The topic switches don’t necessarily match the transitions between song snippets in the original.

  1. Soy un perdedor
    ‘I’m a loser’, baby,
    it means that in Spanish.
    Everybody!
    Soy un perdedor
    ‘I’m a loser’, baby,
    it means that in Spanish.
    Hey
  1. I am, I am, I am
    I said I wanna get copular
    I said I’m gonna be copular
    You said “Hi, copular, I’ll be your dad.
    Be your dad.”
  1. I know you know what’s on my mind
    I know the deixis in my mind
    You know the referent that’s inside
    I know you know, you know, you know
  1. Here’s a wug, a wug, a wug, a wug
    Here’s a wug, a wug, a wug
    A word I never knew, this should be fun!
    How do I deal when it’s not the only one?
    Now that there are two, it’s twice as fun!
    How do I deal when it’s not the only one?
    Don’t know what to do, there’s more than one!
    Until I pluralise with linguistic morphological smarts
  1. Help me, my Broca part is broken
    Help me, I’ve got no fluent speech
    Help me, I understand but hard write speak
    Help me, word brain frustrate myself
  1. Don’t wanna [animal noise]-talk like an animal
    I want a squeal with morphemes inside
    Don’t wanna [animal noise]-talk like an animal
  1. So here’s how this bit is fraught:
    This rhyme relies on caught-cot.
    Hey, hey, hey
  1. You slang slang slang slang slang
    shame shame shame
    But slang slang slang slang slang
    is everything so let it go.
    ‘Cause the standards you preach
    that that my speech doesn’t reach are so recent that they
    ignore etymology, yo!
    And every time I speak you chide;
    do you know when you scold me
    the old meanings did expand, also panned,
    yet we understand!
    And I’m here to remind you
    of the complex ways language got that way
    It’s not fair to deny me
    of the force of change that still acts today.
    You oughta know
    Hey
    Despite all your rage, language still has to constantly change.
    Despite all your rage, language still has to constantly change.
    And someone will say something “wrong” that’s right the next day.
    Despite all your rage, language still has to constantly change!
  1. I hate all the ‘u’s
    from lands of old.
    I hate -our language too
    when you write o-u-r.
    I don’t o-u anything!
    I don’t o-u anything!
    I don’t o-u anything!
    I don’t o-u anything!
  1. Language sounds, all around,
    watch how they compound!
    Language sounds, all around,
    they abound.
    Language sounds, language sounds
    they confound
    language sounds, language sounds
    so unsound!
    language sounds, language sounds
    Do you have the time to listen to my rhyme?
    Sounds similar and different all at once.
    That is one of those minimal pairs that show
    phonetic contrast also is phonemic.
    A dozen ways to say a /t/
    Sometimes my ears play tricks on me
    I’m stuck on this grey tape; I think I’m a great ape
    Are these distinct phonemes, or allophones?
    Are they allophones?
    Hey!

Here’s my explanation of the different parts. Please note that while I do have a Masters in Linguistics, I am in no way an expert on any of these things (though I’m pretty sure about the Spanish), so don’t take my word for it.

  1. Pretty self-explanatory, really. ‘Soy un perdedor’ is Spanish for ‘I’m a loser’. All I changed from the original was the punctuation and the explanation, ‘It means that in Spanish.’

  2. Copulas and copular verbs link the subject of a sentence to a complement, which can be all sorts of things, including both nouns and adjectives. So the copula ‘am’ in “I am hungry” is followed by an adjective, but it could just as well be followed by a noun. This gives rise to the popular ‘dad joke’ format:

    Kid: I’m hungry.
    Dad: Hi, Hungry; I’m Dad.

    I feel like the copular sense of the verbs ‘feel’ and ‘look’ also have a role in this format of dad joke, though I’m not sure how to properly describe it linguistically:

    Kid: I feel like an ice cream.
    Dad: Well, you don’t look like one!

    (You, as a dad: Well, you don’t look like the copular sense of the verbs ‘feel’ and ‘look’ also have a role in this format of dad joke, though I’m not sure how to properly describe it linguistically!)

    But I suppose that’s really just two distinct meanings of the phrasal verb ‘feel like‘, and an implicit ‘eating’ in the Kid’s sentence, which the Dad ignores. Still, you can see how ‘look’ is copular in sentences such as ‘I look weird’. For most verbs, e.g. ‘sing’, you’d have to say ‘I sing weirdly‘, but with ‘look’ it’s just a more specific way of saying ‘I am weird’. We can veer back into dad joke territory when we use a word such as ‘well’ that can be either an adverb or an adjective:

    Kid: You look well!
    Dad: That’s because I have good eyesight.

    Here, the Kid is using ‘look’ as a copula, and ‘well’ as an adjective meaning ‘healthy’, so the phrase means that the Dad appears to be healthy, but the Dad is interpreting ‘look’ as a regular verb and ‘well’ as an adverb, such that the phrase means he’s good at looking at things.

    This is more than I expected to say to complement this subject. See also the explanation of #9 for an example of the zero copula as used in African American Vernacular English.

  3. Deixis is when the same word can mean different things depending on context, such as who’s saying the word, when and where they’re saying it, where they’re pointing, and so on. Joey and I made a video demonstrating personal deixis. This lyric just expresses that we only tend to use deixis when we’re pretty sure whoever we are communicating with knows what the deictic words are referring to.

  4. This refers to the Wug Test — a test of how well a young child understands the rules of their language. The titular example is when a child is shown a picture of a cute little creature and told it is called a ‘wug’. The child is then shown two of them, and asked what they are called. If they understand how words are usually pluralised in English, they’ll answer ‘wugs’. Wugs are very popular with linguists. They are the reason that if I ever record a sequel to my album Wake Up Gasping, it will have to have the same acronym.

  5. Broca’s Area is a part of the brain involved in language production. A person whose Broca’s area is damaged may have Broca’s aphasia, where they can generally understand writing and speech or signing but have difficulty producing language themselves, usually missing out grammatical function words. I’ve tried to mimic this kind of language in the last two lines (to the extent that the song allows). I hope that this is a somewhat realistic example and not seen as making fun of people with any form of aphasia. I watched some videos by Sarah Scott and Mike Caputo to get an idea of how people with Broca’s aphasia speak and how hard they work to improve their communication.

  6. Morphemes are the smallest units of language that carry some kind of meaning. For instance, ‘mean’ and ‘ing’ are separate morphemes. A single morpheme can be made up of multiple sounds, but those sounds don’t mean anything by themselves. This is called ‘double articulation‘, and it’s one of the properties of human language that doesn’t tend to exist in animal communication. In fact, perhaps it would point out that difference better to say ‘I want a squeal with phonemes inside’. But we have phonemes in part #10.

  7. This is what started me writing this ridiculous thing, back in October 2020. The original lyrics are:

    My whole existence is flawed.
    You get me closer to God.

    which got me thinking about how that very couplet is flawed — it doesn’t rhyme in my accent. It relies on the cot-caught merger, where the vowels in the words ‘cot’ and ‘caught’ are pronounced the same. ‘Flawed’ has the same vowel as ‘caught’, and ‘God’ has the same vowel as ‘cot’. In accents with the cot-caught merger, those are both the same vowel, so ‘flawed’ rhymes with ‘God’ and ‘fraught’ rhymes with ‘cot’, but in accents without the merger, those are two different vowels, so the rhyme doesn’t work. You can explore other rhymes that depend on the cot-caught merger and other accent-specific features in Rhyme.Science, the rhyming dictionary I made.

  8. Some nice people like to ‘correct’ others for using words differently from how they do. Sometimes they take exception to usages they consider ‘new’, but don’t realise have been around for hundreds of years. Sometimes they happily use words and grammar that were considered incorrect much more recently. Sometimes they call things ungrammatical because they’re using the grammar of a different dialect. Sometimes they try to use the etymology of a word to dictate how it should be used today. In all of these cases, if they knew more etymology, they’d understand that everything we say comes to us via previously-pooh-poohed mistakes, mispronunciations, dialectal or regional variations, calques, borrowings, slang, analogies, generalisations, specialisations, misunderstandings, rebracketings, back-formations, metaphors, and so on. There’s not much point trying to stop these processes, though I’m sure somebody tried to stop the language you consider correct today from getting how it is.

    To learn more, I can recommend The History of English Podcast, etymonline, Grammar Girl, Lingthusiasm, The Unfolding of Language, and… wait, I should probably stop here before I list the entire contents of my podcast library and the bookcase to my right. Just… take your impulse to quash somebody else’s communication and redirect it towards learning more yourself.

  9. Where my Noah Webster stans at? Here’s an entire song parody I wrote about -or vs. -our spellings.

  10. Spoken languages have a lot of sounds in them! More sounds than the speakers realise. To figure out what the basic units of sound in a given language (called phonemes, and written between /slashes/) are, you need to find ‘minimal pairs’ — words that only differ by one sound. You can tell that /t/ and /r/ are different phonemes in English, because ‘time’ and ‘rhyme’ are different words. But there are actually many different ways of saying /t/, depending on context, and even though they are distinct sounds (called phones, and written in [square brackets]) they are all perceived as the same /t/ phoneme. This is the case for /r/ and other phonemes as well. The different sounds that are all perceived as the same phoneme in a given language are called allophones of that phoneme.

    Note that sounds that are allophones in one language can be separate phonemes in another — for instance, in Spanish, a single phoneme has allophones that English speakers would hear as the separate phonemes /b/ and /v/.

    Sometimes we actually can use allophones to distinguish between phrases, though! For instance, we can hear the difference between ‘gray tape’ and ‘great ape’. The difference is called a juncture, and I’ll be honest, I read about it last week on wikipedia and have not read the citation, so I’m really not sure whether this makes them distinct phonemes or still allophones. By the way, humans are in the Hominidae family commonly called the ‘great apes’ (though some uses of that term exclude humans), so if you think that you’re a great ape, you probably are.

    This part of the song has another kind of sound — sounding weird! The original song has ‘melodramatic fools’ where I put ‘minimal pairs that show’, and both lyrics have a stress on the second syllable, where it wouldn’t normally go. In this case, all that does is make it sound a bit wrong, but syllable stress can also be phonemic and can differentiate words. For instance, the minimal pair ‘abstract’ (the adjective or noun, with the stress on the first syllable) and ‘abstract’ (the verb, with the stress on the second syllable.) There are many English words which change stress depending on which part of speech they are (convict, record, laminate, attribute, etc…), but in a lot of cases the unstressed vowel also changes to a schwa, so the stress isn’t the only difference.

That’s all I have to say about that! Next, perhaps I’ll finish the entirely unnecessary parody lyrics about PSOLA that I started writing in 2016, so if you’re playing these on a string instrument, stay tuned!

, , , , ,

Leave a comment

We got married (to each other) and then did cute couple things on a boat!


Remember that time that Joey Marianer and I got engaged (to each other)? Well, a while after that, we also got married, as is typical for engaged couples. It was just a small ceremony in a courthouse, followed by a small gathering with two large cheesecakes. Here’s a very short video synopsis of the wedding:

I just edited the closed captions, and noticed that YouTube’s autocaptions thought the judge said, ‘congratulations youtube and you guys get a blog it’s okay’ when in fact he said, ‘Congratulations, you two. And you guys can applaud; it’s okay!’ Anyway, that video has been gathering congratulations on YouTube for a while, so now you guys get a blog about it.

Then we ate cheesecake with a few friends, and Joey did this:

If you don’t understand what just happened, here’s a video that will explain it.

A few days and two negative COVID tests later, we boarded the JoCo Cruise. On cosplay day we cosplayed each other:

Two photos side by side. The left one is labelled 'everyday' and shows me wearing a pink gingham skirt, a black T-shirt with a picture of Steve Wozniak in the rainbow Apple logo colours, an Apple logo necklace, and a blue custom mask, while Joey is wearing peach-coloured board shorts, a white T-shirt showing palm trees in a sunset, and a white mask. The right photo is labelled 'cosplay day' and has Joey wearing the pink skirt, the Steve Wozniak T-shirt in a larger size, the necklace, and the blue mask, and me wearing pink board shorts, the white palm tree shirt, and a white mask.
What we wore the day before cosplay day vs. what we wore on cosplay day. Joey didn’t wear a wig because the masks are uncomfortable enough. The long-time fans know that long hair and a tiara is canon for Joey cosplay.

This was mainly to facilitate changing into our pants for the Fancy Pants Parade. I haven’t found a video that shows us in the parade itself, but here’s one of us practising last year, when we thought the cruise might be virtual again so we’d need a video:

Then two days later, all decked out for formal night, we did a show, which was also quite geared towards things we could only do while physically together. I structured the setlist to tell the story of how our relationship developed through collaborating on songs.

If you prefer, there’s also a playlist of individual pieces. I even made a playlist of the videos mentioned in the show, complete with the comments in which I might have been flirting with Joey. Some of the poems and songs are on my album, one is on our album of SpinTunes entries, some are on the playlist of Hallelujahs, but three of them have never been published anywhere before.

I’ve wanted to do a poetry show on the cruise for a while, but was always afraid of having to miss out on other events that were scheduled at the same time as it. I did a show on the 2021 virtual cruise where that wasn’t so much of a concern, and people seemed to like it, so an in-person sequel seemed like a good idea. Only, with Joey’s help, it was not merely a poetry show, but also a musical show!

My fears were somewhat realised; this show was scheduled opposite the reception for frequent cruisers, which most of the people who know me well enough to attend my show were eligible to go to. But the other thing those people know is that I film every event I’m at (so far I’ve uploaded 12 hours, 48 minutes of video from the 2022 cruise, and I’m only up to Wednesday afternoon), so they could safely miss the show and watch it now! We got through the setlist with a little time to spare, so we even got to attend the reception briefly.

, , , , , , , , ,

Leave a comment

How I got to work at CERN (video) and some rambling about video (text)


Right before JoCo Cruise 2020, I bought a 256GB SD card, just as a treat, so I wouldn’t have to worry about switching between 64GB cards and offloading videos to my Mac when recording as many events as possible. I discovered too late that my camera (a Nikon P7700) was too old to support 256GB cards, and when I got home from the cruise we were in lockdown, so I couldn’t return the card. This ultimately led to my buying a new camera (a Sony ZV-1) in late 2021 which would support the card, and I am very happy with this application of the sunk cost fallacy.

I planned to test out the camera at a Burning Hell show in Vienna (which would have been my first in-person concert since the cruise), but Austria went back into lockdown, so instead, I recorded myself talking about how I got to work at CERN, as a sequel to That time Steve Wozniak bought me a laptop and That time Steve Wozniak taught me to Segway and then played Tetris and pranks through a concert. I recorded 36 minutes continuously, in 4K, and I ran out of things to say before the camera had to stop for any reason. My old camera would have to stop after less than 30 minutes recording in 1080p, due to the 4GB file size limit, so I’ll call that a success.

Whether my 36 minutes of talking about my route to CERN is worth watching is up to you to decide:

The video is fully closed-captioned by me, a human, so if you prefer skimming text to watching videos, click the symbol (at the end of the line below the title) and choose Open Transcript.

The Burning Hell are making another attempt at a Vienna show in September, so here’s hoping I can run that original experimental design.

I’ve since been on JoCo Cruise 2022, and found the camera much less stress than my old one for recording concerts. I not only don’t need to change the card as often, I’m also not limited to 4GB files, or by the battery capacity, since it can use an external battery pack. So I’ve recorded most events continuously. The new camera also shows me what it’s focussing on, and I can change that using the touch screen, so from what I’ve seen so far, I haven’t had any incidents of an entire video being out of focus.

The only issue I had with the new camera is that if I start recording video immediately after turning it on, it doesn’t show it’s recording for another second or so, so I’d often press the button again and inadvertently stop recording in my attempt to start recording. In most cases I realised what had happened immediately and start recording again, but in one case I didn’t notice for a while and missed the introduction of a performer.

I used to do most of my lightweight cruise video editing in QuickTime Player, but for whatever reason its ‘Split Clip’ option is disabled for the videos from my new camera, so I’m trying out LosslessCut. It has a few issues, but I’ve found workarounds for them. One great thing about it is when I cut a show into individual parts, it can not only export those parts as individual videos, but also give me a list of times for those parts. I can paste them into the YouTube description of the full video so that they show up as chapters.

With the help of to that feature, I’m uploading most of them as full shows with chapter markers, and putting them into a playlist of the whole cruise as I do so. I’m also splitting shows into individual songs/stories/questions when relevant, and uploading those as separate videos, so I can add the individual pieces to other relevant playlists. Look in the description of any of the full-show videos to find a link to a playlist of the individual parts of the show. It will take a while to get everything processed and uploaded, so subscribe or check back later to see more.

Another thing I did (and recorded some video of) during that trip was marry Joey Marianer, but that can have its own blog post later. If you’re impatient, you can check out the Joey-Angela Merger playlist.

, ,

Leave a comment

A successful ploy to increase engagement


Well, in 2021, among other things, I released an iOS app and a poetry album, wrote an article about accessibility, tech edited three articles about iOS development, won my second Fancy Pants Parade, did a poetry show, wrote a macOS app to find words that look or sound like they’re related but aren’t and a script to make etymological family trees, found a job, lost a job, found a job again, and finally buried a job in soft peat for three months and recycled it as firelighters (that last bit is an exaggeration. Burning jobs to keep warm is not advisable.)

Here’s another exciting thing that happened that I didn’t mention on this blog. During a brief lull in the apocalypse, Joey Marianer came to visit, and we got engaged… to each other! We had of course already discussed this previously, and I wasn’t expecting a song and dance to be made about it, but there was nevertheless a song, as follows:

It’s a parody of the “Weird Al” Yankovic original, “Good Enough for Now“. I find metal rings uncomfortable and a bit dangerous, so Joey got me a silicone engagement ring with a ring on it. This is a much cooler idea than the off-the-shelf ring I got Joey which has flowers on it and no explicit mathematical concepts.

The pretense for recording that was that immediately beforehand, we’d sung some words I’d written to a tune that came to Joey in a dream:

Joey happened to be here while my friend Phil got married (a year later than planned) and joined a group of Phil’s vaccinated and tested friends to celebrate in Tenerife. So here we are walking along the beach looking all couple-y.

Angela and Joey holding hands walking in wet sand along the edge of the waves on a beach in Tenerife. We're both wearing pink board shorts and light-coloured T-shirts. In the background are blue skies and apartment buildings.

I’ll eventually put up videos of some things we saw in Tenerife. After we got back from Tenerife but before Joey went home, we recorded a few short videos in which we are exceedingly cute at each other while demonstrating some linguistic concepts. Here we explore the differences in our accents:

And here we demonstrate how personal deixis can change the meaning of a sentence depending on context:

So, plague willing, we’ll get married in February, have multiple wedding-adjacent cake-eating parties in various real and virtual places over the next several years, and at some point during that time I’ll get the appropriate visa so we can move in together and hopefully only get on each other’s c-tactile nerves.

And now for some unrelated things to look forward to on my YouTube channel. The above videos were shot on my iPhone, which was my first experience with 4K HDR. I’m not sure if editing that on my mid-2014 MacBook Pro did the HDR justice.

However, I bought a new camera recently which can do 4K, and also has several other features which will make recording concerts (and indeed, entire cruises full of concerts) easier — no more stopping to get around a 4GB file size limit, or change batteries, or change SD cards. I won’t generally film entire concerts in 4K due to the space requirements and likelihood of the camera overheating and shutting down, but it’s a nice feature to have for other things. I’ve also ordered the new MacBook Pro, which will have a better display for viewing and editing such video.

I planned to film as much as possible of a concert here in Vienna in 4K, just to see how long I could film continuously in 4K if I took all the measures I knew about to prevent overheating. The concert had to be cancelled due to lockdown, so instead, I recorded myself talking about how I got to work at CERN, as a sequel to the video about getting a laptop from Woz and going to a concert with him. I recorded in 4K for 36 minutes nonstop (which is longer than my old camera can record nonstop even in 1080p) before I ran out of things to say, so I’d call that a successful test. When the new MacBook arrives, I’ll edit that video and hopefully put it online before flying away to get married and (insert SARS-CaVeat here) record an entire cruise full of concerts. I hope I remember how to record and process an entire cruise full of concerts after a year off, and don’t make too many mistakes with the new camera.

, , , , , , , , ,

Leave a comment

Etymological family trees


A while ago I found a post about Surprising shared word etymologies, where the author had found words with common origins (according to Etymological Wordnet) which had the most dissimilar meanings (according to GloVe: Global Vectors for Word Representation.) I loved the post, but my main takeaway from it was the The History of English Podcast, linked in the Further reading section. I immediately started listening to that, in reverse order (that’s just the easiest thing to do in the Apple Podcasts app. Back when podcasts were in iTunes, I used to listen to all my podcasts on shuffle, so if you like order, this is an improvement) starting from Episode 148. I’ve since finished it and started listening to something else before I go back for the newer episodes. I was in it for the English, but I also learnt lot more history than I expected to.

The diagrams

Back in October, hearing about how yet another absurd list of words all derived from the same root word (I think in this case it was bloom, flower, phallus, bollocks, belly, flatulence, bloat, fluid, bladder, blow, and blood from episode 62) I decided I couldn’t just listen to these ridiculous linguistic family trees any more; I had to see them. As you might have seen in previous posts, my go-to for creating that kind of diagram is using AppleScript to control OmniGraffle. So I wrote an AppleScript to make tree diagrams showing words that are all derived from the same root word(s) as a given word. Before I bore you with the details, I’ll show you a little example. This is what it gave when I asked for the English word ‘little’.

A tree diagram showing how ‘little’ is related to the following words: little, belittle, belittler, littleneck

The root word is in a blue oval, the words in the same language as the one I asked about (in this case, English) are in brown rounded rectangles, and the words in other languages are in black rectangles. I thought about having a different colour and shape for each language, and a legend, but decided to keep things simple for now.

Image descriptions

The script also generates a simple image description, which I’ve used in the caption. I intended it for use as alt text, but some of these diagrams are difficult to read at the size shown, so even people who don’t use screen readers can benefit from the description. You can also click on any diagram for a full-sized pdf version.

It doesn’t describe the entire structure of the tree (I’m trying not to get distracted researching nice ways to do that for arbitrary trees!) but it’s probably better than nothing. It only lists the words in the language you asked about (assuming that is English), since English screen readers likely wouldn’t read the other ones correctly anyway. It might be cool to autogenerate sound files using text-to-speech in voices made for the other languages and attach those to the nodes to enrich the experience when navigating through them in OmniGraffle or some other format it can export, but that’s a project for another day.

On the subject of accessibility, I’m happy that the History of English Podcast provides transcripts, so I can easily find the episodes relevant to some of these diagrams.

Simplifying the diagrams

Sometimes the diagrams get crowded when a lot of words are derived from another word in the same language, or a lot of other languages derived words from the same word. I wrote a second script to group words into a single node if they’re all derived from the same word, don’t have any words derived from them, and are all in the same kind of shape as the word they’re derived from. That last constraint means that if you searched for an English word, English words all derived from the same English word will be grouped together, and non-English words all derived from the same non-English word will be grouped together, but English words derived from a non-English word (or vice versa) are not, because I think they are more interesting and less obvious.

It’s actually quite satisfying to watch this script at work, as it deletes extra nodes and puts the text into a single node, so I made a screen recording of it doing this to the diagram of the English word ‘pianoforte’. I’m almost tempted to add pleasant whooshing sound effects as it sweeps through removing nodes.

The data

Words and their etymologies

The data from Etymological Wordnet comes as a tab-separated-values file. AppleScript is best at telling other applications what to do, not doing complicated things itself, so I left all the tsv parsing up to Numbers, and had my script communicate with Numbers to get the data. The full data has too many rows for Numbers to handle, but I only needed the rows with the type rel:etymology, so I created a file with just those rows using this command:

grep 'rel:etymology' etymwn.tsv > etymology.tsv

then opened the resulting etymology.tsv file in Numbers, and saved it as a numbers file. This means missing out of a few etymological links (some of which are mentioned below), but it’s good enough for most words.

The file simply relates words to the words in the first column to words they are derived from in the third column.

Languages

Each word is listed with a language abbreviation, a colon, then the word. The readme that comes with the Etymological Wordnet data says, ‘Words are given with ISO 639-3 codes (additionally, there are some ISO 639-2 codes prefixed with “p_” to indicate proto-languages).’ However, I found that not all of the protolanguage codes used were in ISO 639-2, so I ended up using ISO 639-5 data for protolanguages and ISO 639-3 data for the other languages, both converted to Numbers files and accessed the same way as the etymology data.

The algorithm

The script starts by finding the ultimate root word(s) of whatever word you entered. It finds the word each word is immediately derived from, then finds the word that was derived from, and so on, until it gets to a word that doesn’t have any further origin. Some words have multiple origins, either because they’re compound words, homographs, or just were influenced by multiple words, so sometimes the script ends up with several ultimate root words. This part of the script ignores origins that have hyphens in them, because they’re likely common prefixes or suffixes, and if you’re looking up ‘coagulate’, you’re unlikely to want every single word derived from a Latin word with a prefix ‘co-‘.

For each of the root words, the script finds all words derived from it, and all words derived from those, and so on, and adds them to the diagram.

The code

In case you want to try making your own trees, I’ve put the AppleScripts and the Numbers sheets used for this in a git repository. It turns out having the version history is not terribly useful without tools to diff AppleScript, which is not plain text. It is possible to save AppleScript as plain text, but I didn’t do that in the beginning, so the existing version history is not so useful. It looks like AS Source Diff could help.

There are a lot of frustrating things about AppleScript when you’re used to using more modern programming languages. Sometimes that’s part of the fun, and sometimes it’s part of the not-fun.

Trees from Surprising Shared Etymologies

I tried making diagrams of some of the interesting related words mentioned in The History of English Podcast, such as the one with flower, bollocks, phallus and blood mentioned earlier, but the data usually didn’t go back that far. So I tried the ones mentioned in the Surprising shared etymologies post, because I knew they were found in the same data. In several cases I found the links didn’t actually hold up, as the words were descended from unrelated homonyms. I’ve done my best to figure out which parts of these trees are correct, but can’t guarantee I got everything right, so take this information with a grain of research.

“piano” & “plainclothed”

This was a bit of a puzzle, because there is actually no origin given in the data for English word ‘piano’, although it is given as the origin of many words in other languages. But their example in the ‘datasets’ section shows English: pianoforte, so I used that instead.

I could have added a row to the spreadsheet linking English ‘pianoforte’ with English ‘piano’, and then the many words in other languages that derive from English ‘piano’ would have shown in the diagram as well. Click on the diagram for a pdf version.

A tree diagram showing how ‘pianoforte’ is related to the following words: pianoforte, pianist, nonpianist, plane, airplane, airplanelike, antiplane, aëroplane, backplane, bitplane, cargoplane, carplane, coplane, deplane, enplane, floatplane, foreplane, halfplane, interplane, mainplane, nonplane, planeful, planelike, planeside, planespotting, planetree, sesquiplane, snowplane, spyplane, subplane, superplane, tailplane, warplane, planum, plain, peneplain, plainchant, plainclothed, plainish, plainland, plainlike, plainly, plainness, plainspoken, plainwork, planar, biplanar, diplanar, extraplanar, multiplanar, planarly, uniplanar, llano

“potable” & “poison”

Also potion! According to the data, Latin potio is derived both from Latin poto, and from Latin potus, which is itself derived from Latin poto. The word is its own niece! I had to make a change to the script to ensure there wouldn’t be double connections in this case.

A tree diagram showing how ‘potion’ is related to the following words: potable, potableness, potion, poison, counterpoison, poisonable, unpoisonable, poisoner, poisonless, poisonlike, poisonmonger, poisonous, nonpoisonous, poisonousness, unpoisonous, poisonsome, poisonwood, unpoison

“actor” & “coagulate”

Agile and exiguous, too! It’s starting to get a bit complicated.

A tree diagram showing how ‘coagulate’ is related to the following words: actor, actoress, actorial, actorish, actorishly, actorishness, actorly, actress, blacktress, nonactor, overactor, action, actionee, actioner, actionfest, actionism, actionist, coaction, interaction, autointeraction, cyberinteraction, interactionism, interactionless, noninteraction, reinteraction, nonaction, overaction, preaction, subaction, underaction, reaction, bioreaction, counterreaction, gravireaction, interreaction, nonreaction, postreaction, reactionless, underreaction, agile, agilely, unagile, agility, coagulate, coagulable, hypercoagulable, incoagulable, coagulation, anticoagulation, coagulase, electrocoagulation, exiguous, exiguously

“estate” & “contrast”

This tree also includes ‘prostate’, but only ‘pro-state’ (meaning favouring the government) derives from English ‘state’ as shown here. Prostate the body part is actually related, but only if we go back to the Proto-Indo-European root *sta-, which is not in the Etymological Wordnet data. Since the data doesn’t distinguish between the two meanings of ‘prostate’, this tree erroneously includes prostatectomy and cryoprostatectomy, a procedure I was happier not knowing about.

If you think it’s surprising that ‘estate’ and ‘contrast’ are related, have a look at other words derived from *sta-. Understand, obstetrics, Taurus, Kazakhstan… if Etymological Wordnet had that data, this tree would resemble Pando.

A tree diagram showing how the following words are related: contrast, contrastable, contrasted, contrasting, contrastive, contrastiveness, noncontrastive, contrasty, radiocontrast, state, antistate, bistate, downstate, downstater, eigenstate, instate, reinstate, megastate, microstate, mindstate, ministate, narcostate, nonstate, overstate, petrostate, pro, state, prostate, prostatectomy, cryoprostatectomy, savestate, semistate, statable, statal, parastatal, statecraft, stateful, nonstateful, statefully, statefulness, statehood, stateless, statelessly, statelessness, statelet, statelike, stately, statelily, stateliness, statemate, statemonger, stateprison, statesperson, stateswoman, statewide, statism, antistatism, superstate, understate, unstate, upstate, upstater, status, antistatus, serostatus, statusless, statusy, etatism, etatisme, étatisme, estate, coestate, estated, reestate

“pay” & “peace”

This one comes up in episode 59 of the podcast — the word ‘pay’ literally meant ‘make peace’. It’s not too hard to imagine how paying someone would pacify them. The diagram is incorrect though. ‘Peace’ is shown as being derived from Middle English pece. This is actually the source of ‘piece’, but not ‘peace’. As far as I can tell, pece (and therefore also ‘piece’) shouldn’t even be in this tree. The word ‘peace’ is derived from Middle English pees, near the middle of the diagram, so it is still related to ‘pay’.

A tree diagram showing how the following words are related: peace, antipeace, makepeace, peaceful, nonpeaceful, peacefuller, peacefully, peacefulness, unpeaceful, unpeacefully, peaceless, peacenik, unpeace, piece, afterpiece, altarpiece, apiece, backpiece, bailpiece, broadpiece, chimneypiece, cornerpiece, crownpiece, depiece, eyepiece, facepiece, fieldpiece, handpiece, headpiece, heelpiece, kneepiece, mailpiece, masterpiece, multipiece, neckpiece, pieceless, piecen, piecer, piecewise, polepiece, seapiece, sidepiece, stringpiece, tailpiece, timepiece, toppiece, unpiece, pay, autopay, mispay, payee, nonpayee, payer, billpayer, feepayer, multipayer, nonpayer, ratepayer, payeth, paygrade, paying, billpaying, feepaying, ratepaying, payload, payscale, paysite, paytable, paythrough, paywall, payware, postpay, repaying, unpay, pacation

“cancer” & “cancel” & “chancellor”

As explained in episode 99 of The History of English Podcast, chancellor is just the Parisian French version of the Norman French canceler. The word ‘cancel’ didn’t come from ‘canceler’, though — ‘cancel’ and ‘chancellor’ both come from a word meaning lattice, whether the lattice a chancellor stands behind, or that of crossing something out to cancel it. The same word also give rise to ‘incarcerate’, but that link is not in the data.

As far as I can tell, these are not actually related to the English word ‘cancer’, though. There are two unrelated Latin words ‘cancer’, one meaning ‘lattice’, and the other meaning ‘crab’, and thus crab-like cancer tumours.

A tree diagram showing how ‘cancer’ is related to the following words: carcinoma, anticarcinoma, hepatocarcinoma, mastocarcinoma, Cancer, Cancerian, anticancer, cancericidal, cancerless, cancerlike, cancerogenesis, cancerous, anticancerous, cancerously, paracancerous, multicancer, noncancer, postcancer, precancer, chancre, cancel, autocancel, cancelbot, cancellable, uncancellable, cancellation, noncancellation, chancellor, archchancellor, chancellorship, vice, chancellor, chancery

“fantastic” & “phenotype”

This also shows that ‘craptastic’ is related to ‘phasor’. Sometimes the best things about these are the lists of derivative slang words.

A tree diagram showing how the following words are related: pheno, phenanthrene, diphenanthrene, phenanthrenequinone, phenanthrol, phenanthroline, phenocopy, phenomime, phenotype, endophenotype, endophenotypic, euphenics, phenotypic, phenotypical, phase, dephase, heterophase, macrophase, microphase, monophase, multiphase, nanophase, phaseless, phasor, polyphase, quarter, phase, rephase, rephasing, phantom, phantomlike, phantomwise, fantasy, cyberfantasy, docufantasy, fantastic, awesometastic, craptastic, craptastical, fantabulous, fantabulously, fantastical, fantastically, fantasticalness, fantasticism, fantasticness, funtastic, snazztastic, fantasylike, nonfantasy, paleofantasy, telefantasy

“college” & “legalize”

Also ‘cull’, ‘legend’, and ‘colleague’.

A tree diagram showing how ‘college’ is related to the following words: legific, legal, antilegal, dentolegal, lagger, legalese, legalise, legalism, legalize, legalizable, relegalize, legally, medicolegal, medicolegally, metalegal, postlegal, prelegal, preterlegal, semilegal, sociolegal, loyal, loyally, loyalness, nonloyal, unloyal, loyalty, disloyalty, legist, colleague, noncolleague, college, anticollege, collegebound, collegelike, collegemate, collegewide, collegey, intercollege, noncollege, postcollege, precollege, collegiate, collegiately, noncollegiate, postcollegiate, precollegiate, cull, recollect, misrecollect, lesson, e-lesson, legator, legend, legendary, legendarily, legendariness, nonlegendary

“lien” & “ligament”

‘Cull’ should not be in this diagram, as it’s related to a different homonym of Latin colligo. See the ‘Limitations‘ section below.

A tree diagram showing how ‘ligament’ is related to the following words: liable, liableness, nonliable, cull, recollect, misrecollect, lien, lienor, ligament, rely, relier, reliest, relieth

“journal” & “journey”

Surprising shared word etymologies says:

While it seems like “journal” and “journey” should be close cousins, their nearest common ancestor is in fact quite old – the Latin “diurnus”, meaning “daily”.

This seems about right from the data, and I’m surprised they didn’t both come from the Old French jor. My dictionary of French etymology doesn’t list the French versions of either word.

A tree diagram showing how ‘journal’ is related to the following words: diet, antidiet, dietic, dietless, misdiet, nondiet, superdiet, diurnal, diurnally, diurnalness, equidiurnal, nondiurnal, semidiurnal, journal, ejournal, journalese, journalist, churnalist, journo, nonjournalist, journalistic, journalistically, nonjournalistic, journey, journeylike, journeyman, journeymanship, journeyperson, journeywork, hodiern, hodiernal

This is the tree I get if I start from the word ‘journal’. If I start with ‘journey’, it shows that Latin diurnum is also given as an origin of Old French jor, but this adds a lot of complication to the tree and only one extra English word, ‘abatjour’.

“educate” & “subdue”

I’m not sure how they got these two, to be honest. They may indeed be related, if, as etymonline says, subdue came from the same root as subduce, and subduce and educate came from Proto-Indo-European *deuk- (or *dewk-, as wiktionary spells it). There’s a lot about other words from that root (not including ‘subdue’) in episode 85 of the podcast.

I don’t know how they got this from the Etymological Wordnet data, though. Etymological Wordnet was extracted from an older version of wiktionary, and it doesn’t have very many Proto-Indo-European roots. The post says that ‘subdue’ comes from the latin subduco, meaning ‘lead under’. But even looking at all the data (not just the rows with ‘rel:etymology‘), ‘subdue’ is only linked to other English words. Perhaps they were looking at ‘subduce’ instead.

The post also says they both come from Latin duco. If I look at all the data, I can get to Latin duco from ‘educate’ (via Latin educatio and educo.) But looking more closely at that link on wiktionary (the source of Etymological Wordnet’s data) it seems there are two meanings of Latin educo, one coming from Latin duco and one coming from Latin dux, and it’s the dux origin that seems more relevant to education. However Proto-Indo-European *deuk- is the hypothetical source of dux, so that’s how it relates to subdue.

I’m getting a bit lost following these words around wiktionary and etymonline. I believe they’re related, but I’m not sure if they’re related via Latin duco, and I haven’t a clue how the relationship was found in the Etymological Wordnet data (I should probably read and/or run their ruby code to find out), so I can’t generate even an erroneous family tree of it.

Limitations

Did you notice that the word ‘cull’ shows up in both the tree for ‘college’ and the one for ‘ligament’? Does that mean that ‘ligament’ is also related to ‘college’? Nope. The issue here is that the Latin colligo has two distinct meanings with different origins, one via Latin ligo, and one via Latin lego. ‘cull’ derives from the ‘bring together’ meaning of colligo, which derives from lego, so it’s actually not related to ‘ligament’. Only one origin for colligo is shown on each of these two trees, since neither ‘college’ nor ‘ligament’ are derived from colligo, so the script only got to colligo when coming down from one of the ultimate root words, rather than when going up from the search word. But if we create a tree starting with the word ‘cull’, it gets both origins and the resulting tree makes it look like ‘college’ and ‘ligament’ are related.

A tree diagram (erroneously) showing how ‘cull’ is related to the following words: legific, legal, antilegal, dentolegal, lagger, legalese, legalise, legalism, legalize, legalizable, relegalize, legally, medicolegal, medicolegally, metalegal, postlegal, prelegal, preterlegal, semilegal, sociolegal, loyal, loyally, loyalness, nonloyal, unloyal, loyalty, disloyalty, legist, colleague, noncolleague, college, anticollege, collegebound, collegelike, collegemate, collegewide, collegey, intercollege, noncollege, postcollege, precollege, collegiate, collegiately, noncollegiate, postcollegiate, precollegiate, cull, recollect, misrecollect, lesson, elesson, legator, legend, legendary, legendarily, legendariness, nonlegendary, liable, liableness, nonliable, lien, lienor, ligament, rely, relier, reliest, relieth

Since the data only has plain text for each word, there’s no way for the script to know for sure that colligo isn’t one word with multiple origins (like ‘fireside’ is), but actually two separate words with different origins. And there’s no way for it to know which origin for colligo happens to be the one that ultimately gave rise to ‘cull’.

A trivial example

I’ll leave you with a tree I found while looking for a trivial example to show at the beginning. Here’s the tree for ‘trivial’. There are many more related words given in episode 37 of The History of English Podcast.

A tree diagram showing how trivial is related to the following words: via, viâ, convey, conveyest, conveyeth, reconvey, trivial, isotrivial, nontrivial, trivialism, trivially, trivialness, untrivial, viaticum, voyage, viatic

, , , , ,

Leave a comment

Disinflections


I enjoy taking words that have irregular inflections, and inflecting other words the same way — for instance, saying *squoke as the past tense of squeak, analogous with speak and spoke, or even *squought, analogous with seek and sought. Sometimes those disinflections, as I’ve decided to call them, look or sound like other words… for instance, analogous with fly, flew, and flown, I could use crew and crown as past tenses of cry, or boo and bone as past tenses of buy. Indeed, analogous with buy and bought, the past tense of fly could be *flought, but then again, perhaps the present tense of bought could be ‘batch’ or ‘beak’, or ‘bite’, analogous with caught and catch, or sought and seek, or fought and fight.

The Disinflectant app

For a while now, I’ve wanted to make an app to find these automatically, and now that I have a bit of free time, I’ve made a prototype, mostly reusing code I wrote to generate the rhyme database for Rhyme Science. I’m calling the app Disinflectant for now. Here’s what it does:

  1. Read words from a file and group them by lemma.
    Words with the same lemma are usually related, though since this part is using text only, if two distinct lemmas are homographs (words with the same spelling but different meanings) such as bow🎀, bow🏹, bow🚢, and bow🙇🏻‍♀️, then they’re indistinguishable. This part is done using the Natural Language framework (henceforth referred to as ‘the lemmatiser’), so I didn’t write any complicated rules to do this.
  2. Find out the pronunciation of the word, as text representing phonemes.
    This is done using the text-to-speech framework, so again, nothing specific to Disinflectant. The pronunciation is given in phoneme symbols defined by the API, not IPA.
  3. Find all the different ways that words with the same lemma can be transformed into another by switching a prefix or suffix for another. For instance:
Transform typeTransformby analogy with
Spelling suffixy→ownfly→flown
Pronunciation suffixIYk→AOtseek→sought
Spelling prefixe→oeldest→oldest
Pronunciation prefix1AW→w1IYour→we’re

Most prefixes in English result in words with different lemmas, so Disinflectant didn’t find many prefix transforms, and the ones it found didn’t really correspond to any actual grammatical inflection. I had it prefer suffixes over prefixes, and only add a prefix transform if there is no suffix found, so that bus→buses would result in the spelling suffix transform ∅→es and not the prefix transform bu→buse.

Each transform can apply to multiple pairs of real words. I included a way to label each transform with something like ‘past tense’, so the app could ask, ‘why isn’t crew the past tense of cry?’ but didn’t end up filling in any of them, so it just calls them all inflections.

  1. Apply each transform individually to each word, and see whether the transformed version matches another word with a different lemma.
    It could just make up words such as ‘squoke’, but then there would be hundreds of millions of possibilities and they wouldn’t be very interesting to sift through, so it’s better to look for real words that match.

That’s it. Really just four steps of collecting and comparing data, with all the linguistic heavy lifting done by existing frameworks.

The limitations

Before I show you some of the results, here are some limitations:

  • So far I’ve only given it a word list, and not a text corpus. This means that any words which have different lemmas or different pronunciations depending on context (such as ‘moped’ in ‘she moped around’, with the lemma ‘mope’, vs. ‘she rode around on her moped’, with the lemma ‘moped’.) I have code to work with corpora to add homographs to rhyme.science, but I haven’t tried it in this app yet.
  • It’s only working with prefixes and suffixes. So it might think ‘woke’ should be the past tense of ‘weak’ (by analogy with ‘speak’ and ‘spoke’) but won’t generalise that to, say, ‘slope’ as the past tense of ‘sleep’ unless there is another word ending in a p sound to model it on. I could fairly easily have it look for infix transforms as well, but haven’t done so yet.
  • It doesn’t distinguish between lemmas which are spelled the same, as mentioned above.

The results

For my first full test run, I gave it the SCOWL 40 list, with 60523 words, and (after about a day and a half of processing on my mid-2014 MacBook Pro — it’s not particularly optimised yet) it found 157687 disinflections. The transform that applied to the most pairs of actually-related words was adding a ‘z’ sound to the end of a word, as for a plural or possessive noun or second-person present-tense verb ending in a voiced sound. This applies to 7471 pairs of examples. The SCOWL list I used includes possessives of a lot of words, so that probably inflates the count for this particular transform. It might be interesting to limit it to transforms with many real examples, or perhaps even more interesting to limit it to transforms with only one example.

I just had it log what it found, and when a transform applied to multiple pairs of words, pick a random pair to show for the ‘by analogy with’ part in parentheses. Here are some types of disinflections it found, roughly in order from least interesting to most interesting:

Words that actually are related, just not so much that they have the same lemma:

Some words are clearly derived from each other and maybe should have the same lemma; others just have related meanings and etymology.

  • Why isn’t shoppers (S1AApIXrz) with lemma shopper the inflection of shops (S1AAps) with lemma shop? (by analogy with lighter’s → light’s)
  • Why isn’t constraint (kIXnstr1EYnt) with constraint same the inflection of constrain (kIXnstr1EYn) with lemma constrain? (by analogy with shopped → shop)
  • Why isn’t diagnose (d1AYIXgn1OWs) with lemma diagnose the inflection of diagnosis (d1AYIXgn1OWsIXs) with lemma diagnosis? (by analogy with he → his)
  • Why isn’t sieves (s1IHvz) with lemma sieve the inflection of sift (s1IHft) with lemma sift? (by analogy with knives → knifed)
  • Why isn’t snort (sn1AOrt) with lemma snort the inflection of snored (sn1AOrd) with lemma snore? (by analogy with leapt → leaped)

Words that definitely should have had the same lemma, for the same reason the words in the analogy do:

These represent bugs in the lemmatiser.

  • Why isn’t patrolwoman’s (pIXtr1OWlwUHmIXnz) with lemma patrolwoman’s the inflection of patrolwomen (pIXtr1OWlwIHmIXn) with lemma patrolwomen? (by analogy with patrolman’s → patrolmen)
  • Why isn’t blacker (bl1AEkIXr) with lemma black the inflection of blacken (bl1AEkIXn) with lemma blacken? (by analogy with whiter → whiten)

Transforms formed from words which have the same lemma, but probably shouldn’t:

These also probably represent bugs in the lemmatiser.

  • Why isn’t car (k1AAr) with lemma car the inflection of air (1EHr) with lemma air? (by analogy with can’t → ain’t)
    Both ‘can’t’ and ‘ain’t’ are given the lemma ‘not’. I don’t think this is correct, but it’s possible I’m using the API incorrectly or I don’t understand lemmatisation.

Words that are related, but the lemmatiser was considering an unrelated homograph of one of the words, and the actual related word was not picked up because of the first limitation above:

  • Why isn’t skier’s (sk1IYIXrz) with lemma skier the inflection of skied (sk1IYd) with lemma sky? (by analogy with downer’s → downed)
    In this case, the text-to-speech read ‘skied’ as the past tense of ‘ski’, but the lemmatiser read it as the past participle of ‘sky’, as in, ‘blue-skied’, which I think is a slightly obscure choice, and might be considered a bug in the lemmatiser.
  • Why isn’t ground (gr1AWnd) with lemma ground the inflection of grinding (gr1AYndIHN) with lemma grind? (by analogy with rewound → rewinding)
    Here the lemmatiser is presumedly reading it as the noun or verb ‘ground’ rather than the past and past participle of ‘grind’.

Pronunciation transforms finding homophones of actual related words:

  • Why isn’t sheikhs (S1EYks) with lemma sheikh the inflection of shaking (S1EYkIHN) with lemma shake? (by analogy with outstrips → outstripping)
    ‘Sheikhs’ sounds just like ‘shakes’, which is indeed the present tense or plural of ‘shake’.
  • Why isn’t soled (s1OWld) with lemma sole the inflection of selling (s1EHlIHN) with lemma sell? (by analogy with sold → selling)
    ‘Soled’ sounds just like ‘sold’, which is indeed the past tense of ‘sell’.

Pronunciation transforms based on an incorrect pronunciation:

These represent bugs in the text-to-speech. Try them yourself on a Mac by setting the system voice to an older American English one such as Victoria, selecting the word, and choosing Speech→Start Speaking from the Edit menu or the contextual menu.

  • Why isn’t nape’s (n1AEpIYz) with lemma nape the inflection of nappy (n1AEpIY) with lemma nappy? (by analogy with suffocation’s → suffocation)
    The text-to-speech pronounces ‘nape’ correctly, but pronounces ‘napes’ like ‘naps’ and ‘nape’s’ like ‘nappies’.
  • Why isn’t mice (m1AYs) with lemma mouse the inflection of me (m1IY) with lemma I? (by analogy with modernity’s → modernity)
    The text-to-speech pronounces ‘modernity’ correctly, but pronounces ‘modernity’s’ like ‘modernitice’.
  • Why isn’t queue’s (ky1UWz) with lemma queue the inflection of cubing (ky1UWbIHN) with lemma cubing? (by analogy with lambs → lambing)
    The text-to-speech pronounces the ‘b’ in ‘lambing’. I’m not sure if there is an accent where this is the correct pronunciation, but it isn’t in the dictionaries I’ve checked.

Small transforms that can be applied to many other words:

Sometimes it will find that a word with the same lemma can have one letter or phonemes changed or added, and then there are a huge number of words that the transform can apply to. I wonder if you could almost change any final letter or phoneme to any other.

  • Why isn’t mine (m1AYn) with lemma I the inflection of mind (m1AYnd) with lemma mind? (by analogy with shoe → shod)
  • Why isn’t ham (h1AEm) with lemma ham the inflection of hay (h1EY) with lemma hay? (by analogy with them → they)
    This one could also be extended to hair (from them → their) to get a full set of weird pronouns.
  • Why isn’t hearth (h1AArT) with lemma hearth the inflection of heart (h1AArt) with lemma heart? (by analogy with sheikh → sheik)
  • Why isn’t captor (k1AEptIXr) with lemma captor the inflection of captain (k1AEptIXn) with lemma same? (by analogy with whiter → whiten)
  • Why isn’t colt (k1OWlt) with lemma colt the inflection of coal (k1OWl) with lemma coal? (by analogy with shopped → shop)

Spelling prefixes and suffixes that don’t quite correspond to how the inflections are formed:

Sometimes changes such as doubling the final consonant are made when an -ing or -ed is added. Since Disinflectant only sees this as a suffix being added, it thinks that specific consonant can also be added to words that end in other consonants.

  • Why isn’t braking (br1EYkIHN) with lemma brake the inflection of bra (br1AA) with lemma bra? (by analogy with picnicking → picnic)
  • Why isn’t garbs (g1AArbz) with lemma garbs the inflection of garbling (g1AArblIHN) with lemma garble? (by analogy with corrals → corralling)
  • Why isn’t badgering (b1AEJIXrIHN) with lemma badger the inflection of badge (b1AEJ) with lemma badge? (by analogy with transferring → transfer)
  • Why isn’t bobsled (b1AAbslEHd) with lemma bobsled the inflection of bobs (b1AAbz) with lemma bob? (by analogy with patrolled → patrol)

Disinflection I might have come up with myself:

  • Why isn’t hay (h1EY) with lemma hay the inflection of highs (h1AYz) with lemma high? (by analogy with lay → lies)
  • Why isn’t bowled (b1OWld) with lemma bowl the inflection of belling (b1EHlIHN) with lemma bell? (by analogy with sold → selling)
  • Why isn’t bodies (b1AAdIYz) with lemma body the inflection of bodice (b1AAdIXs) with lemma bodice? (by analogy with emphases → emphasis)
  • Why isn’t lease (l1IYs) with lemma lease the inflection of loosed (l1UWst) with lemma loose? (by analogy with geese → goosed)
  • Why isn’t wield (w1IYld) with lemma wield the inflection of welt (w1EHlt) with lemma welt? (by analogy with kneeled → knelt)
  • Why isn’t gauze (g1AOz) with lemma gauze the inflection of goo (g1UW) with lemma goo? (by analogy with draws → drew)
  • Why isn’t cheese (C1IYz) with lemma cheese the inflection of chosen (C1OWzIXn) with lemma choose? (by analogy with freeze → frozen)

Transforms based on abbreviations:

  • Why isn’t chuckle (C1UXkIXl) with lemma chuckle the inflection of chuck’s (C1UXks) with lemma chuck? (by analogy with mile → mi’s)
  • Why isn’t cooperative’s (kOW1AApIXrrIXtIHvz) with lemma cooperative the inflection of cooper (k1UWpIXr) with lemma cooper? (by analogy with negative’s → neg)
  • Why isn’t someday (s1UXmdEY) with lemma someday the inflection of some (s1UXm) with lemma some? (by analogy with Friday → Fri)

Other really weird stuff I’d never think of:

  • Why isn’t comedy (k1AAmIXdIY) with lemma comedy the inflection of comedown (k1UXmdAWn) with lemma comedown? (by analogy with fly → flown)
  • Why isn’t aisle (1AYl) with lemma aisle the inflection of meal (m1IYl) with lemma meal? (by analogy with I → me)
  • Why isn’t hand (h1AEnd) with lemma hand the inflection of hens (h1EHnz) with lemma hen? (by analogy with manned → men’s)
  • Why isn’t out (1AWt) with lemma same the inflection of wheat (w1IYt) with lemma same? (by analogy with our → we’re)

If people are interested, once I’ve fixed it up a bit I could either release the app, or import a bigger word list and some corpora, and then publish the whole output as a CSV file. Meanwhile, I’ll probably just tweet or blog about the disinflections I find interesting.

, , , , , ,

Leave a comment

Every iOS developer take-home coding challenge


I can load and parse your JSON.
I can download icons async.
I can show it in a TableView
just to show you that I’m able to.
I’ll go old school if you like it;
I can code it in UIKit.
I can code Objective-C,
if that’s what you expect of me.
You can catch { me } if you try;
I can code it SwiftUI.
I can code it with Combine:
receive(on: .main) and then assign.
I can read it with a Codable,
Local resource or downloadable.
I can code a search bar filter
or reload; I have the skill to!

I can code it every way
to go from model into view
But I have loads to do today
Can we just code things in an interview?

I’ve been looking for a new job lately, and I’ve found that about 80% of the take-home coding challenges I’ve been given amount to ‘Write an iOS app that reads the JSON from this URL or file, and displays it in a list, including the icons from the URLs in the JSON. There should be [some additional controls on the list and/or a detail screen shown when a list item is selected]. You may use [specific language and/or UI framework] but not [some other technology, and/or any external libraries].’

It’s time-consuming, and gets a bit boring after a while, especially when the requirements are just different enough that you can’t reuse much code from the previous challenges, but not different enough that you can learn something new. One company even had me do the whole thing twice, because they’d neglected to mention which UI technology they preferred the first time. Luckily, by then I had existing code for almost every combination, so I didn’t have to waste too much time on it.

This poem is meant to have a ‘Green Eggs and Ham‘ vibe, though I couldn’t come up with a good ‘Sam-I-Am’ part. The best I can do is:

I do not like this soul destroyer;
I do not like it, Sawyer-the-Employer!

or:

I do not like this coding prob’,
I do not like it, Bob-the-Job!

I did have a few take-home coding tests that were more interesting. One company had me implement a data structure I was not familiar with, so I got to learn about that. Another asked me to make specific changes (and any others that seemed necessary) in an existing codebase — a task much closer to what I’d likely be doing in an actual job.

Having also been on the hiring end of a JSON-to-TableView experience (it was not my choice of challenge, but I had no objection to it as I didn’t know how common it was at the time), I know how difficult it is to come up with ideas for such challenges, and I’m not sure what the solution is. I most enjoyed talking through problems in an interview, in pseudocode so there’s no pressure to remember the exact syntax without an IDE or documentation to help. This takes a clearly-defined amount of time, gives the interviewer a better idea of how I think, and gives me an idea of what it would be like to work with them. There’s also more immediate feedback, so I don’t waste time working on a detail they don’t care about, or just trying to convince myself that it’s good enough to submit. I realise that some people might find this more stressful than the take-home test, so ideally the companies would give the choice.

I am now at the point of my job search where I don’t think I’ll need to write any more JSON-to-TableView apps🤞🏻which is just as well, as I wouldn’t be inspired to do a great job of one.

, , , , ,

Leave a comment

My Poetry Show on JoCo Cruise 2021


I’ve been going on the JoCo Cruise since the ‘shadow cruise‘ was just an iPhone handbell choir. As it developed into something people could book spaces and times for, and have on a schedule that packed 26 days of events into a week, I participated in a few friendsshadow events, but hesitated to run my own in case it conflicted with something else I really wanted to do, or had me nervous or practising instead of enjoying other events.

This year, the cruise went virtual, and my excuses went out the window. I registered to do a poetry show, promising that I would ‘recite some poems that rhyme, some that don’t, and maybe even sing a few things. Topics may include science, love, poop, and life.’ I came to realise I could not only read my poems from my screen to avoid any nervousness about remembering them, but I could also share my screen. There are projectors on the cruise, but they are in short supply, so I wouldn’t request one for just one or two poems in a shadow event. On the virtual cruise, I could share whatever I wanted, including things from the internet, which wouldn’t be reliably available on a ship. And I could use props that I wouldn’t bother to bring on a cruise. So I did! I made slides for poems that worked best with visual aids, I showed off my rhyming dictionary, and I closed with a cover song that requires a video. And of course, I recorded everything. Here’s my show!

I also performed a few poems at the open mic — hastily-adapted versions of a poem I wrote for the Vienna open mic Open Phil, and the one I opened my show with about the differences between the real cruise and the virtual one. Joey Marianer and Phil Conrad (who also hosts Open Phil) hosted the open mic, so the open mic videos are on Joey’s channel.

It sure was weird watching Joey upload videos, when usually I’m spending most of my free time from March to May processing videos from the cruise. On the subject of cruise videos, the videos of the official events will allegedly only be up until May 1, so watch them while you can!

, , , , , , ,

Leave a comment

My Fancy Pants on JoCo Cruise 2021


I had some plans for my entry into the JoCo Cruise 2021 Fancy Pants Parade, but they involved being on an actual cruise ship. When it went virtual, I assumed there would be no parade. When the call for video submissions came on 16 March, with the deadline on 31 March, I was unprepared. I’m not shopping in-person, and I didn’t think I’d be able to order materials and make anything in time.

But as much as the virtual cruise makes it impossible to do some things we would do on the real cruise, it also makes it possible to do things we couldn’t do on the real cruise. In one in-person Fancy Pants Parade, there was a person in a motion capture suit holding a sign saying ‘we’ll fix it in post’, and also a person in a green screen suit (who was controlling the tentacles of their partner’s pants.) In a virtual Fancy Pants Parade, we really can fix it in post. So I decided to try using my pants as a green screen — for what, I wasn’t sure.

At first I thought I’d try with some black jeans and hope I could tune the green screen effect for them, but then I realised I actually had blue-green jeans (purchased purely because I was excited to find jeans that were the right length for me.) I paraded ridiculously across the room in them, and Final Cut Pro immediately recognised them as the colour to apply the green screen effect to.

I settled on showing footage from previous Fancy Pants Parades on my pants. At first I thought I’d use my own pants, to not steal anyone else’s glory, but I didn’t have footage of all my own pants. I went with the winning pants from each parade, making this sort of a restrospective — a celebration of the whole tradition of Fancy Pants Parades. As the live version of Mr. Fancy Pants often says, chances are you’re best in everybody’s pants.

After submitting my entry, I duplicated the footage, enabling different settings in each copy, to make this short step-by-step. I’ve never used a green screen effect before, so this was me learning as I went along.

I submitted my video on 21 March. On 30 March, the JoCo Cruise Home Office sent out an email saying they’d only received one submission so far, and Jonathan was “nigh-inconsolable” about it. So I encouraged some friends to submit some — as I mentioned in my last post, winning by default is not as much fun as winning by crushing the hopes and dreams of your friends. So here’s how the Fancy Pants Parade went. Watch it before reading the rest of the post if you don’t want the result spoiled:

There was a lively exploration of the problem space of pants. What is fancy? Does it modify ‘pants’, or ‘parade’? What are the most important components of being ‘best in terms of pants’: physical pants-crafting, presentation, or spirit? And is that fancy pants spirit, or we’ve-been-home-for-a-year spirit? Still, it seemed that at least the chat comments were mostly in my favour, until, in a shocking twist, they found Gina’s video, which had been accidentally left out of the parade. And hers, too, used some movie magic! More debate: Culture and history? Conception, or construction? All pants, no dance? If you are silent, the pants will speak. I put my pants on one leg at a time, but in four dimensions, somehow.

It came down to a vote, and… I won! But all the particiPANTS were winners.

This is my second win… as you might guess from this year’s video, I also won in 2014. I am not the first person to win twice — the 2016 winner had also won previously, I think in 2013.

, , , , , , , ,

Leave a comment

%d bloggers like this: