Disyllabic roots in greyfolk language, 2: creating the database

In my end of February report, I mentioned that I was able to create a database to help me create disyllabic roots while preserving Hamming distance. One big part of that was devising a macro for Excel that would do the following:

  • Range A is a bank of possible (according to the rules of my language) disyllabic roots. I generated this using Zompist’s Gen.
  • Range B is where I input the roots I have chosen.
  • Range C is a bank of roots that conflict with the roots in Range B. I also generated this using Gen with some really roundabout tricks.
  • Rule 1: If a cell appears in Range A and Range C, it is highlighted yellow.
  • Rule 2: If a cell appears in Range A and Range B, it is highlighted green.
  • Rule 3: If a cell appears in Range B more than twice, it is highlighted red.
  • Rule 4: If I a cell appears in Range B and Range C, it is highlighted red.
  • Rule 5: Otherwise, a cell should not be highlighted.

Thus, any white cells in Range A were roots that could still be used because they didn’t conflict with anything else. Even though the highlighting was all done by a macro, there was still a significant portion of manual work that took a few hours. Much more time went into figuring out how to get the most efficient set of disyllabic roots. By that, I mean that I had to figure out how to get as many roots as possible that didn’t conflict with each other from the total bank of possible roots. It always comes back to Hamming distance!

Macro for disyllabic roots database
Sub HighlightDuplicates()

    'Keyboard Shortcut: Ctrl+Shift+D

    Application.ScreenUpdating = False

    Dim ws As Worksheet, t0 As Single, t1 As Single
    Set ws = ThisWorkbook.Sheets("Database")
    t0 = Timer

    'Rule 5: Otherwise, a cell should not be highlighted.
    ws.cells.Interior.Color = xlNone

    Const RANGE_A As String = "B1:E2300"
    Const RANGE_B As String = "G1:G2300"
    Const RANGE_C As String = "I1:AH2300"

    Dim dictA As Object, dictB As Object, dictC As Object
    Set dictA = CreateObject("Scripting.Dictionary")
    Set dictB = CreateObject("Scripting.Dictionary")
    Set dictC = CreateObject("Scripting.Dictionary")

    Call buildDict(dictA, ws.range(RANGE_A))
    Call buildDict(dictB, ws.range(RANGE_B))
    Call buildDict(dictC, ws.range(RANGE_C))

    'Rule 1: If a cell appears in Range A and Range C,
    'I want them highlighted yellow.
    'Rule 2: Then, if a cell appears in Range A and Range B,
    'I want them highlighted green.
    
    Dim cell As range, key As String
    For Each cell In ws.range(RANGE_A)
        If Len(cell.Value) > 0 Then
            key = CStr(cell.Value)
            If dictC.exists(key) Then cell.Interior.Color = vbYellow
            If dictB.exists(key) Then cell.Interior.Color = vbGreen
        End If
    Next

    For Each cell In ws.range(RANGE_C)
        If Len(cell.Value) > 0 Then
            key = CStr(cell.Value)
            If dictA.exists(key) Then cell.Interior.Color = vbYellow
        End If
    Next

    For Each cell In ws.range(RANGE_B)
        If Len(cell.Value) > 0 Then
            key = CStr(cell.Value)
            If dictA.exists(key) Then cell.Interior.Color = vbGreen
        End If
    Next

    'Rule 3: Then, if a cell appears in Range B more than twice,
    'I want them highlighted red.
    'Rule 4: Then, if a cell appears in Range B and Range C,
    'I want them highlighted red.

    For Each cell In ws.range(RANGE_B)
        If Len(cell.Value) > 0 Then
            key = CStr(cell.Value)
            If dictB.exists(key) Then
                If dictB.Item(key) > 1 Then
                    cell.Interior.Color = vbRed
                End If
            End If
        End If
    Next

    For Each cell In ws.range(RANGE_B)
        If Len(cell.Value) > 0 Then
            key = CStr(cell.Value)
            If dictC.exists(key) Then
                If dictC.Item(key) > 0 Then
                    cell.Interior.Color = vbRed
                End If
            End If
        End If
    Next

    For Each cell In ws.range(RANGE_C)
        If Len(cell.Value) > 0 Then
            key = CStr(cell.Value)
            If dictB.exists(key) Then
                If dictC.Item(key) > 0 Then
                    cell.Interior.Color = vbRed
                End If
            End If
        End If
    Next
    
    t1 = Timer
    
    'MsgBox "Completed in " & Int(t1 - t0) & " seconds"

    Application.ScreenUpdating = True

End Sub

You can click on the plus icon or the name to expand that section to see the macro. It’s a biggun, so I decided that it was better to default to it being collapsed and not immediately assaulting any eyeballs.

Now, to even generate Range A, as I said, I used Zompist’s Gen tool. Making rules to create all possible disyllabic roots in greyfolk language was easy.

Categories for all possible disyllabic roots
C=mnptksylh
S=yl
A=a
T=mnl

Rewrite rules for all possible disyllabic roots
hl|h
hy|h
lh|l
ll|l
yy|y
mh|m
mm|m
nh|n
nn|n

Syllable types for all possible disyllabic roots
CACA
CASA
SACA
SASA

CSACA
CSASA
CATCA
CATSA
SATCA
SATSA
CACSA
CACAT
CASAT
SACSA
SACAT
SASAT

CSATCA
CSATSA
CACSAT
SACSAT
CSACSA
CSACAT
CSASAT
CATCSA
CATCAT
CATSAT
SATCSA
SATCAT
SATSAT

CSACSAT
CATCSAT
SATCSAT
CSATCSA
CSATCAT
CSATSAT

Of course, the output type was for all possible syllables.

To generate Range C in Gen, I had to figure out some really roundabout tricks, and, even then, I still had to generate it one chunk at a time. Think of each disyllabic root as a STUVWXYZ map where each letter corresponds to a phoneme. S and W are the first position of their respective syllable and can be «m, n, p, t, k, s, y, l, h». T and X are the second position of their respective syllable and can be «y, l» or ‘-‘. U and Y are the third position of their respective syllable, but, when working with roots, both of them are always «a». Finally, V and Z are the fourth position of their respective syllable and can be «m, n, l» or ‘-‘. For example, the root «myaman» would be ‘mya-m-an’ because the fourth position of the first syllable and the second position of the second syllable are open. If you look at the above Gen rules, it should be clear that STUVWXYZ is essentially CSATCSAT.

Then, to figure out the roots that wouldn’t be compatible with other roots, which is what Range C is, I had to switch the process for ABCDEFGH. Each letter corresponds to the letter in the same position in STUVWXYZ, but each letter of ABCDEFGH take the values of phonemes that do not have enough Hamming distance from those in STUVWXYZ. So, if S=m, then A=mnp because «m, n, p» conflict with «m» according to my Hamming distance parameters. Oh, I also set a meaningless Q=xxxxxx so I could see the separation between ABCDEFGH and STUVWXYZ at a glance.

Categories for «myaman»
A=mnp
B=yl
C=a
D=mnl
E=mnp
F=yl
G=a
H=mnl
Q=xxxxxx
S=m
T=y
U=a
V=-
W=m
X=-
Y=a
Z=n

Syllable types for conflicting roots
ATUVWXYZ
SBUVWXYZ
STCVWXYZ
STUDWXYZ
STUVEXYZ
STUVWFYZ
STUVWXYH

Of course, the output type was for all possible syllables.

Output for «myaman»
mla-m-an
mya-m-al
mya-m-am
mya-m-an
mya-mlan
mya-myan
mya-n-an
mya-p-an
myalm-an
myamm-an
myanm-an
nya-m-an
pya-m-an

From there, it was a matter of removing the dashes. However, an interesting question popped back up. What is the Hamming distance between something like ‘mya-m-an’ and ‘myamm-an’? What about ‘myamh-an’? I went ahead and decided that they were all equivalent (which is actually why ‘myamh-an’ doesn’t generate as I had already taken that into consideration). Because it was a problem I had faced before, I knew how to deal with it. However, another question popped up. What is the Hamming distance between something like ‘myamy-a-‘ and ‘mya-mya-‘? Same thing, I ended up deciding that they were the same as well. Though, they do have enough Hamming distance between them. I just wanted to simplify things and continue to get rid of roots that sounded too alike.

However, I did get some conflicts that weren’t actually conflicts. On the surface, «katya» and «kalya» might seem like they conflict because «t» and «l» conflict in the same position. However, «katya» is «k-a-tya-» (pronounced /ka.tja/) and «kalya» is «k-aly-a-» (pronounced /kal.ja/). So, the «t» and the «l» aren’t actually in conflicting positions.

Anyway, I had to run every planned disyllabic root through Gen, put the output in the database, then format it and remove dashes. It took quite a bit of time to do that manually for over 166 roots—yes, it was more than 166 because I had to add other altered roots at the cost of others after having already processed roots that had to be removed. More than anything else, it was just really repetitive and boring, and I pushed myself so hard during this entire process that I ended up really fried, stressed, and anxious. Oops!

In the next part, I will finally reveal the disyllabic roots!

Disyllabic roots in greyfolk language, 1: planning the roots

In the process of creating the monosyllabic roots the first time (and, by extension, the second time), I had an idea of a few disyllabic roots that I wanted. As «me», «se», and «ke» are the singular personal pronouns, I wanted «mema», «sesa», and «keka» as the plural personal pronouns. That meant, for 4-phoneme disyllabic roots, there was an MM root (‘MaMa’), an SS root (‘SaSa’), and a KK root (‘KaKa’), so I figured that all phonemes would pair with themselves. Furthermore, «me», «se», and «ke» were chosen because MKS is one of the few trios of phonemes that doesn’t conflict with one another (in terms of my Hamming distance parameters). Extending that, I figured I could pair any phoneme with another non-conflicting phoneme and itself. There were a few options available, but the best one ended up being MS, NK, PL, TY with «h» left out. For example, MS worked as follows:

«m» «s»
«m» «mama» «masa»
«s» «sama» «sasa»

It’s basically a Punnett square. So, really, MS = MS, MM, SS, SM in terms of the roots that was created from the pair. There ended up being a few extra that worked, but most of them stopped working later one when I started creating the 5-phoneme disyllabic roots.

Actually making those 5-phoneme disyllabic roots was much trickier. A while back, I figured out that I had two special trios of initial consonants: MKS and NPY. Within each trio, the consonants do not conflict with one another. And no consonants are shared between the two trios. (However, «t» and «l» are left out, and I knew I would have to integrate them later somehow.) I couldn’t cross them with themselves because each phoneme was already paired with itself, and there was already MS, which would conflict in MKS. I figured that I could instead interpolate these special trios with each other to get a bunch of non-conflicting pairs to create 5-phoneme roots, and I was right!

  • MN, MP, MY, KN, KP, KY, SN, SP, SY
  • NM, NK, NS, PM, PK, PS, YM, YK, YS

So, that first set creates «m-a-n-a-», «m-a-p-a-», «m-a-y-a-», «k-a-n-a-», etc. Each root would need an extra phoneme in place of one of those dashes, obviously, to make it a 5-phoneme disyllabic root.

Right off the bat, I knew I couldn’t use KN and NK since I already had those for the 4-phoneme disyllabic roots. Furthermore, that list would create way too few options. Of course, that list also had plenty of holes in it that could be filled, and I spent such a long time trying to figure out what they were. I don’t even know how to explain that process, but I can happily share the results:

  • MN, MP, MY, NH, PH, TK, TL, KP, KS, KY, SN, SP, SY, YL, YH, LM, LS, HM, HT
  • ML, NM, NS, MH, PM, PK, PS, TH, KT, SK, SL, YM, YK, YS, LT, LY, HN, HP, HY

Then, I had to figure out the rest of the pattern to make as many 5-phoneme disyllabic roots as possible. It came to figuring out into which position each of the inserted fifth phoneme would go.

  • MN becomes «m-a-n-a», and one of those dashes has to be filled.
  • I focused on one syllable at a time.
  • For «m-a-», I chose «y» for the first dash, and both «m» and «l» for the second dash (because «m» and «l» don’t conflict).
    • That gives «mya», «mam», and «mal».
  • For «n-a-», I chose the opposite: «l» for the first dash and «n» for the second dash.
    • That gives «nla» and «nan».
  • Crossing those gives «myana», «mamna», «malna», «manla», and «manan».

Then, I did the opposite for NM since it is the inverse of MN. So, the syllables are just switched. «myana» becomes «namya», «mamna» becomes «namam», «malna» becomes «namal», etc. This creates a set of roots that do not conflict with one another. However, some issues did pop up later.

At the time of planning, it looked like I could have 166 disyllabic roots total compared to my expected minimum of 165. Unfortunately, that meager 166 shrunk to 162 when I had to rework the numerals—or, rather, rework the roots so the numerals could fit in the scheme I had created. However, I will share the roots a little bit further down the line.

In the next part, I will talk about the process of creating the root database!

From Orvis to Astra

After taking another look at my partner’s blog* earlier today, I decided that I wanted to redesign my site a bit. Really, since I helped her design her blog, I have wanted to do a redesign for mine. I like Orvis, but it still didn’t look like I wanted it to and it doesn’t have a lot of flexibility. Astra, on the other hand, has more flexibility, but the free version doesn’t include options that I want. With nothing but my bare hands and my proficiency in Google Fu, I cobbled together some CSS to achieve the effects that I wanted.

CSS that I cobbled together
.main-header-bar, .ast-header-break-point .main-header-menu, .ast-header-break-point .main-header-menu .sub-menu {
  background-color: #303030;
}
.main-header-menu .sub-menu, .entry-content pre {
  background-color: #404040;
}
.site-title a, .site-title a:focus, .site-title a:hover, .site-title a:visited, .ast-header-break-point .ast-mobile-menu-buttons, .menu-toggle-icon {
  color: #ffffff;
}
.widget .tagcloud a {
	font-size: 12px !important;
	border: none;
	margin: 8px 1px 0 0 !important;
	padding: 2px 4px 2px !important;
}

*Because I’m a bit vain, I’ll have you know that the clever name of InterLibrarian Loan was my idea.

Here’s the before and after:

I stole that yellow from my partner’s blog. Overall, the big changes are a slightly larger container for the text, some changes to font sizes and bolding, removing those awful lines in the Recent Posts and Categories section, and making the tags much smaller.

Reworked numerals for greyfolk language

As far as I can tell, I have fixed the numerals to work with my Hamming distance database (that I briefly mentioned in my end of February report), but I don’t want to say these are final. In order to get numerals to work in the way that I wanted them to work, I had to break some other patterns in my database, which is probably going to leave me with even fewer disyllabic roots in the future, but it felt like a necessary sacrifice. Numerals are important—having as many disyllabic roots as possible is also important, but it is less important*.

letter («syun-») number («hu-») name suffix
h 0 «-han»
m 1 «-mam»
n 2 «-nal»
p 3 «-pal»
t 4 «-tla»
k 5 «-kam»
s 6 «-sam»
y 7 «-yal»
l 8 «-lan»
9 «-mla»
A «-nya»
B «-pya»
C «-tyam»
D «-klan»
E «-syal»
F «-myan»
10 «-mamhan»
a «-ha»
e «-he»
i «-hi»
o «-ho»
u «-hu»

Greyfolk language usually uses a duodecimal system, which is 1–9, A–B, 10. However, the numbers are set up to also be compatible with a hexadecimal system, which is 1–9, A–F, 10. Of course, it can work with smaller systems like our typical decimal system, which is just 1–10. I may or may not later create specific words for ‘hundred’, ‘thousand’, ‘million’, etc.

*As I talked about before, what really matters is the number of phonemes in a given root/word in terms of how simple/quick it is to utter. (I still have not found or even looked for a source on that yet, and, even if that is somewhat true, it is obviously not the only factor.) This is a tangent, but I was previously very focused on using every disyllabic root I could, and that led me to using 7-phoneme disyllabic roots. However, if the number of phonemes is so important, then it would make just as much sense to start looking at trisyllabic roots. At a minimum, they will have six phonemes, which is still pretty low, which makes the roots «manasa» and «mansan» comparable thought the former is trisyllabic and the latter is disyllabic.

Reworked monosyllabic roots for greyfolk language

The monosyllabic roots have changed since when I first introduced them. After working on disyllabic roots, my feelings about my original monosyllabic roots changed a bit, and I wanted to make them fit my Hamming distance philosophy better. Previously, the words had the right distance from one another, but the roots didn’t always because I didn’t derive each possible word out of each root. However, when I got to the disyllabic roots, it was easier to focus solely on making sure the roots had the right distance from one another, and creating them that way made more sense because it left the language open for flexibility down the line.

All of the ideas and rules from the original post should still apply because I have gotten a bit more strict in how these were generated. Also, most of them are pretty similar. Now, the differences are quite different because I have allowed for monosyllabic roots with four phonemes/letters in them whereas I tried to keep the limit to three phonemes/letters originally. The more phonemes/letters in a syllable, the ‘heavier’ it feels (to me, at least). Take the word ‘strength’ in English. It is very heavy for just one syllable—there are seven phonemes in that single syllable: /stɹɛŋkθ/. I’m trying to avoid words like that. If I am remembering correctly, words with ‘simpler’ or ‘lighter’ syllables are easier to speak clearly and quickly, which would be why Spanish word equivalents might have more syllables but still be spoken as fast and as clearly as the equivalent word in English. Honestly, I could be talking out of my ass, but I’m pretty sure that’s right—it makes sense, doesn’t it?

Anyway, the reworked roots are «ma, sa, ka, tla, yal, klam, slal, myan, pam, pya, nam, kyan, pal, nal, yam, lan, mlam, nya, ha, syan, mlal, slam, nul* klal». Now, technically, «ha» isn’t far enough away from «ka» because the «h» in «ha» can be pronounced like a glottal stop, but I am fine with that as the derived words should never really end up getting mixed up.

*As I am about to explain, «nul» translates into English as ‘and’.

«ma» is the root for the first person singular. «me» is the pronoun form, and it translates into English as ‘I’ or ‘me’, depending on the whether it’s the subject or the object.

«sa» is the root for the second person singular. «se» is the pronoun form, and it translates into English as ‘you’.

«ka» is the root for the third person singular. «ke» is the pronoun form, and it translates into English as ‘it’, singular ‘they’, or singular ‘them’. Of course, it could also be ‘he’, ‘him’, ‘she’, or ‘her’, but gender and sex don’t matter as this pronoun is not gendered/sexed. Again, the translation may depend on whether it’s the subject or the object.

«tla» is the root for the mediopassive. «tle» is the pronoun form. As a subject, it is a passive or impersonal construction. As an object, it basically means ‘myself’, ‘yourself’, etc. For example, let’s say «lomtam» is a verb that translates into English as ‘to love’. «tle lomtam me» means ‘I am loved’. It can be thought of as ‘[blank] loves me’. It’s almost an even more abstract version of «ke» in this context, but it puts the focus on the object instead of the subject. «me lomtam tle» is a bit simpler, and it means ‘I love myself’.

«yal» is the root for the demonstrative. «yel» is the demonstrative pronoun form and «yil» is the demonstrative modifier form. They both translite into english as ‘this’, but they are used in slightly different ways. «yel» would just translate as ‘this’, but «ke yil» would translate as ‘this one’.

«klam» is the root for the past tense. «klem» is the noun form, and it translates into English as ‘past’ as in ‘the past’. «klim» is the modifier form that, as an adverb, functions as the past tense, and it can also be translated as ‘earlier’.

«slal» is the root for the present tense. «slel» is the noun form, and it translates into English as ‘present’ as in ‘the present’. «slil» is the modifier form that, as an adverb, functions as the past tense, and it can also be translated as ‘now’.

«myan» is the root for the future tense. «myen» is the noun form, and it translates into English as ‘future’. «myin» is the modifier form that, as an adverb, functions as the future tense, and it can be translated as ‘later’.

(As I’ve said before, these tenses are not obligatory—i.e., they are optional. Context clues can make up for a lack of tense. But what tense is an un-tensed sentence in? It’s not really a tense, it’s more of a grammatical mood. Specifically, I’d say this particular mood in my conlang is the indicative, declarative, or realis mood. More or less, it expresses something true. When people say something like ‘I love you’, it doesn’t necessarily express the present tense like ‘I love you right now’. It tends to be more of a declaration of the truth—the truth being that I love you.)

«pam» is the root for the interrogative. «pem» is the noun form, and it translates into English as ‘what’ or ‘whom’; «pim» is the modifier form, and translates into English as ‘which’; and «pum» is the particle form, and it translates into English as ‘?’. That last one is literal—in this greyfolk language, this root indicates a question. If «pem» or «pim» isn’t used, then the particle «pum» is used. For example, let’s say «lomtam» is a verb that translates into English as ‘to love’. «se lomtam pem» means ‘you love what?’ or ‘what do you love?’ «se lomtam ke pim» means ‘you love which one?’ or ‘which one do you love?’ «pum se lomtam ke» means ‘you love it?’ or ‘do you love it?’ In the case of «pum», it can kind of be stuck anywhere in a question, but it is usually the first word. If it follows a word, it puts emphasis on that word as what is being questioned. For example, «se lomtam pum ke» means ‘you love it?’

«pya» is the root for the affirmative and the presence preposition. «pyi» is the modifier form that works like the auxiliary verb ‘do’ as in ‘I do want to go’, and it also translates into English as ‘yes’. «pyo» is the verb form that translates into English as ‘to be’; without a subject, it can also translate as ‘there is/are’. «pyu» is the preposition form, and it translates into English as ‘with’. Furthermore, as I discussed in the previous post, they can also be used to say hi.

«nam» is the root for the negative and the absence preposition. «nim» is the modifier form that translates into English as ‘no’, ‘not’, or ‘don’t’. «nom» is the verb form that translates into English as ‘to not be’; without a subject, it can also translate as ‘there isn’t/aren’t’. «num» is the preposition form, and it translates into English as ‘without’.

«kyan» is the root for the complementizer or relativizer. «kyun» is the particle form that translates into English as ‘that’, ‘who’, or ‘which’ as in ‘people that like pie’ or ‘the pie that was eaten’. Furthermore, «kyen» is acceptable as a noun form that abbreviates the phrase «ke kyun», which would translate into English as ‘one that’ as in ‘one that likes pie’. Thus, «kyen» works similarly to an agentive affix, which, in English, is usually ‘-er’. For example, let’s say «lomtam» is a verb that translates into English as ‘to love’. «kyen lomtam» could translate as ‘one who loves’ or ‘lover’.

«pal» is the root for the possessive. «pul» is the particle form that indicates possession, and it would likely translate into English as ”s’; however, I would translate it as ‘of’ as in ‘he is the brother of my mother’.

«nal» is the root for the ‘and’ conjunction. «nul» is the conjunction form, and it translates into English as ‘and’.

«yam» is the root for the ‘but’ conjunction. «yum» is the conjunction form, and it translates into English as ‘but’.

«lan» is the root for the ‘or’ conjunction. «lun» is the conjunction form, and it translates into English as ‘or’.

«mlam» is the root for the origin preposition. «mlum» is the preposition form, and it translates into English as ‘from’.

«nya» is the root for the destination preposition. «nyu» is the preposition form, and it translates into English as ‘at’ or ‘to’, depending on the context.

«ha» is the root for the separating particle. «hu» is the particle form, and it doesn’t have a clear direct translation into Engligh. The quick-and-dirty explanation is that it’s like a comma. It is used to separate words that, if not separated, might sound ambiguous together. Of course, a pause in speech can also produce the same effect.

«syan» is the root for the terminating particle. «syun» is the particle form, and it also doesn’t have a clear direct translation into English. The quick-and-dirty explanation is that it’s like «hu», but, instead of separating words, it can separate phrases to get rid of ambiguity.

(These special particles—«hu» and «syun»—are not obligatory; i.e., they are optional. They can help reduce ambiguity, but they are not necessary.)

«mlal», «slam», and «klal» are currently unused. However, I want to use them as I lost a few disyllabic roots in the war to get everything to fit together. That war is worth its own post.

Finally, a way to say hello in greyfolk language!

I can finally address the first post I made on this site exactly a year later! It wasn’t planned to be like that, but I noticed that I had started this blog in March 2019, so I decided that it was time to finally address this. I’ve narrowed down the root that I would use to say something like ‘Hi!’ or ‘Hey!’ That root is «pya», and I can say that with relative confidence at this point.

Now, «pya» is replacing «pla» from my original set of monosyllabic roots, but I’ll get around to discussing the rest of those changes soon too. So, «pyo» is the verb ‘to be’, «pyi» is ‘yes’ or ‘do’ (in the sense of ‘I do want it’), and «pyu» is a conjunction that denotes presence (e.g., ‘with’). I don’t know what the meaning of «pye» would be, but it’s obviously part of the root too. Now, for saying ‘Hi!’ or ‘Hey!’, I think any derivation of «pya» works.

«pyo» works as ‘to be’. On its own, it could be ‘there is’. So, «pyo ke» would mean something like ‘there they.SG are’. Saying «pyo me» would be like saying ‘It is I!’, which is fun. Now, extending this to something like «pyo Greyson» is like saying ‘there is Greyson’, which makes sense for a greeting. Shorten it to «pyo» to be more informal and to make it sound more like an interjection.

«pyi» is ‘yes’ or the emphatic auxiliary ‘do’. To me, that feels fitting for an informal greeting as well, especially since ‘yo’ in English seems to have come from ‘yes’ (according to Wiktionary). It’s already an interjection and an exclamation, so why not make it work for a greeting? (Also, if you’re having trouble pronouncing «pyi», remember that «y» can be pronounced like English ‘y’ or ‘w’. So, saying something like ‘pwi’ is fine too!)

«pyu» is a conjunction that indicates presence. So, saying «pyu Greyson» means something like ‘at/with/by Greyson’, which also seems fitting for a greeting. If you’re greeting someone, you’re likely with them or by them.

At that point, I might as well say «pye» is fair game until it isn’t!

I like having multiple options saying ‘Hi!’ and ‘Hey!’ is just /h/ followed by differing vowel sounds. Plus, it’s too soon to settle if I want to. I’m just starting the process of really ironing out meanings, so I might as well keep it flexible.

End of February report

My arm has recovered quite a bit! It’s functional, but it’s not quite back to the pain-free strength that it had before. My infection (or, perhaps, the symptoms left behind by the infection) hasn’t quite resolved yet, however. I went through another round of antibiotics and painkillers, and I am waiting to see if the discomfort and pain continue to go away or… if they don’t.

Also, the GURPS stuff report has changed to RPG stuff report because I foresee talking about other RPGs as well. I have a couple in mind, but I don’t want to jump the gun.

Conlang stuff report

Even as my arm was still not doing so hot, I was still working hard on my conlang. With help from the internet in creating a macro for Excel, I got a nice database of disyllabic roots running.

  • Range A is a bank of possible (according to the rules of my language) disyllabic roots. I generated this using Zompist’s Gen.
  • Range B is where I input the roots I have chosen.
  • Range C is a bank of roots that conflict with the roots in Range B. I also generated this using Gen with some really roundabout tricks.
  • Rule 1: If a cell appears in Range A and Range C, it is highlighted yellow.
  • Rule 2: If a cell appears in Range A and Range B, it is highlighted green.
  • Rule 3: If a cell appears in Range B more than twice, it is highlighted red.
  • Rule 4: If I a cell appears in Range B and Range C, it is highlighted red.
  • Rule 5: Otherwise, a cell should not be highlighted.

Thus, any white cells in Range A were roots that could still be used because they didn’t conflict with anything else. Even though the highlighting was all done by a macro, there was still a significant portion of manual work that took a few hours. Much more time went into figuring out how to get the most efficient set of disyllabic roots. By that, I mean that I had to figure out how to get as many roots as possible that didn’t conflict with each other from the total bank of possible roots. It always comes back to Hamming Distance!

I’ll share much more about this soon.

RPG stuff report

Over the past couple of weeks, I have started to work on a very loose and flexible magic system that I think is good enough. Ritual Path Magic is loose and flexible, but it is slow and uses a whole new system. Divine Favor has flexibility built in with its prayer system, but it’s way too expensive and it doesn’t focus on flexibility. Sorcery has the same advantages and disadvantages of Divine Favor, though I do like it a bunch more. I based my system off of Wildcard Powers from GURPS Supers, but I’ll talk about it in much more detail soon.

Two more things. First, I just want to say that GURPS Transhuman Space is really cool. Second, I’m a bit late, but I just discovered The Path of Cunning, which is a new (and free!) fan-zine for GURPS content that is doing a good job at slowly filling the void left behind by the discontinuation of Pyramid #3. I’d love to hop on that in its infancy and review the zines as they come out. And—who knows—maybe even try to submit something one of these days. In fact, maybe that flexible magic system is just the thing.

Writing stuff report

I wrote a couple of short vignettes for fun. I dove into some stuff about Gnosticism for inspiration. I also toyed around with some new ideas for my main stories. That’s about it.

End of January report

Infection or no infection, injury or no injury, I can type out a short update and I did make some progress before I injured my arm. Also, I moved away from specifying my reports as for the greyfolk language or writing or GURPS because I will hopefully be talking a bit more about each of them in each report.

It took me a long time to write out this update. I’ve been working on it for two days because it’s hard, uncomfortable, and sometimes painful to type for long periods of time. Between my injury and really focusing on maintaining better posture, it just takes a lot out of me. I’ll probably be like this for the next couple of weeks, but here’s to hoping! 🍻

Conlang stuff report

If I am remembering correctly (and I’m a bit too lazy to check), when I last talked about what was next for greyfolk language, I’m pretty sure that I mentioned disyllabic roots and words were next but also that I wanted to find a way to organize them so I got good efficiency out of my choices while avoiding roots that were within Hamming Distance of each other. For example, I don’t want «meta» and «peta» because the only difference is «m» and «p», which do not have enough Hamming Distance between them (in terms of how they sound). The Hamming Distance between «m» and «p» is 1 (they are both labial sounds, which is an HD of 0, but «m» is a nasal and «p» is a plosive, which is an HD of 1), but I need a Hamming Distance that’s greater than 1 for the sounds in each word to be far enough apart to contrast. So, «mena» and «peta» would work because «n» and «t» also have a Hamming Distance of 1 (they are both coronal sounds, which is an HD of 0, but «n» is a nasal and «t» is a plosive, which is an HD of 1). That brings the total Hamming Distance between those two words to 2, which means they are far enough apart in sound (according to my parameters, of course) that I can use both words.

Of course, that means, if I want to have a lot of disyllabic roots and words, I have to be efficient like I was for the monosyllabic roots and words. Each extra syllable, however, seems to add that much more work. I talked to a friend of mine about creating a program to help me, but it seems that would be more trouble than it’s worth, but I think I found a way to do what I need in Microsoft Excel. I’ll hopefully come back to that sooner rather than later after my arm has healed and after I fully figure that system out.

Also, because Globasa does it (and I just went over how much I like Globasa in my previous post), I’ve been considering allowing «s» at the end of syllables. I need to be careful not to over-complicate my conlang, so I might just put syllable-final «s» in one of the dialects.

GURPS stuff report

As I looked back through my notes, I realized that most of my work in January (as well as December) was done on GURPS. After NaNoWriMo 2019, I was really inspired to work on GURPS again, and it was going quite well! I have a better way to merge Conditional Injury and Knowing Your Own Strength than I did before. I was still figuring out how to do weapons and armor in the least complicated way, and I was getting pretty close to something that I felt was acceptable. Instead of having a damage modifier, a weapon would have a ST modifier. That modifier would be added to the wielder’s Basic Lift, and the total Basic Lift would be the new ST of using that weapon. DR would work similarly with a tricky caveat. Yes, this requires table look-ups, but… Well, I don’t think it’s frequent enough to be awful. I’ve struggled so long with balancing realism, fairness, and ease of play.

Continuing down the path of combat while trying to balance realism, fairness, and easy of play, I have been trying to figure out how to speed up combat for a long time. There are many approaches, and I tried to define each approach by its complexity and its (level of) abstraction. One could resolve an entire combat with nothing more than a Quick Contest—that would be Complexity 1 but Abstraction 10. However, that curve is not smooth. Some methods are only a small step up on the scale of complexity while being a larger step down on the scale of abstraction, which is pretty ideal. For example, I’ve been getting really into Mass Combat and Tactical Mass Combat because the combat isn’t very complex and there are some neat ways to deal with the abstraction. However, the big problem is that PCs remain quite abstract unless you use Heroes on the Mass Scale, but that breaks down really quick for any unit that’s anything less than heroic in scale. So, I could try to rework the entirety of Heroes on the Mass Scale or just assign Troop Strength, Classes, etc. as best as possible to PCs (and any other unit, really). That idea got pretty close to one of my original ideas, which was to run combat like a D&D Skill Challenge where the PCs need x skill successes before getting y skill failures. That’s quite abstract in that it doesn’t take into account the power of the enemies! So, using Mass Combat with guesstimated stats (based on existing units, of course) seems rather balanced between complexity and abstraction, especially by allowing PCs (and enemy bosses) to perform significant actions, which is like a Skill-Challenge-esque factor in Mass Combat. Then, when I want to get a bit more tactical, there’s Tactical Mass Combat. For non-mass-scale scenarios, I’ve been working on a way to modify each for the 1:10 scale so each ‘unit’ is just a character, which is a bit trickier (but oh so satisfying) to do for Tactical Mass Combat.

Last but not least, I worked on some worldbuilding for my very own Project Sirocco, which is really going to end up extremely similar to or part of the setting from my NaNoWriMo 2019 story. I really took a dive into religion and mythology to start working on some cultures for that world. That led to a discussion about how ‘barbarians’ are the same Tech Level with different beliefs and ‘savages’ are lower Tech Level with different beliefs. I learned a lot about comparative theology and the Bronze Age and the Iron Age and Sub-Saharan African history. I spent a good amount of time trying to find places on Earth with very varied climatic zones, and I think I landed on Tierra del Fuego and the Big Island of Hawaii. There are a few places in the (contiguous) United States with very diverse climatic zones in a small area too.

Writing stuff report

I did more work in December than I did in January, but I was working on some background worldbuilding as well as figuring out how I want the story to end to myself me a clear(er) goal.

Shouting out Globasa and Pandunia

I’ve been wanting to write a long post about Globasa and Pandunia for quite some time, but I haven’t gotten around to it yet because I’ve been so focused on writing about my work, but, if you were to look at my personal notes document, you’d see that each language is mentioned many times. It isn’t a secret to those that know me that I love those languages for being well-crafted worldlangs—I talk about them offline quite a lot. Both have given me huge inspiration in how I’ve shaped greyfolk language.

I mentioned Globasa in my review of 2019. At the time of posting, I didn’t even mention it by name (though, I just edited it in). So, it was a surprise to see that post pop up on the Globasa channel of the Auxlangs Discord.

So, it seems right to shout them out for shouting out my shout out.

I also gave Pandunia a brief mention in an old post where I mentioned that I was looking to it (and Lojban) for some inspiration for greyfolk language.

When I have the time (and my injured arm isn’t telling me to stop typing), I’ll talk about them a little bit more. It seems like both worldlangs are slated for a decent-sized update soon (Globasa’s creator is seemingly finishing up phase 2, and Pandunia’s creator is working toward version 2.0 in two months), so that seems like it would be a fun time to talk about both of them!

Another year, another diagnosis (or two)

Last year (in March), it was cervical radiculopathy on my left side. This year, it is epididymitis and muscle strains.

About two and a half weeks ago, I was playing Ring Fit Adventure for some fun exercise at home stuff. However, I had some pain in my balls of all places, but it seemed to go away after 15 minutes or so. Okay, no big deal, I thought. I probably just jostled the boys around too much. It wasn’t so simple. The next day, the pain came and went a few times, and that’s when I started to worry. Was it a varicocele? I don’t know what that is, but I like to self-diagnose. Who doesn’t? Then, the abdominal and groin pain started to kick in. It felt like intense muscle soreness. So, then I was worried it was a hernia or a sports hernia. It wasn’t feeling better the next day, so I decided to go to the urgent care. That’s scary enough on its own because I don’t really have insurance coverage right now—it’s a tricky situation and I won’t bore with the details. But I did. And the doctor poked around my groin and my abdomen, then decided that, yeah, it was a hernia. So, that’s what I thought it was.

It wasn’t, but I didn’t know that later. The doctor told me that I could put off surgery and whatnot so long as it wasn’t getting worse. Well, that would be great, but it did start to feel much worse that night. I was shivering and in a lot of pain and oh so bloated, and it looked like there was a growing lump right next to my belly button. So, I started looking for an ER near me because it seemed like going to one was going to be a real possibility. Luckily, there’s one nearby that offers financial assistance, which I was sorely (pun definitely intended) going to need. I got there, got checked in, got poked three times before they finally got the IV in with the fourth, got a physical, got a CT scan, got an ultrasound done on my balls, and then I waited… for hours. Eventually, I figured that was a good thing. If I was in serious danger, they’d get to me right away, right? (Also, when I say eventually, I mean it. I was traumatized. Hospitals scare me. I hadn’t been in one in over a decade. I’ve never been stuck with an IV. I have bad experiences with needles. I was shaking and crying at various points.) Then, I started to chuckle to myself and wonder if this was some elaborate prank by the universe. Alas, the universe had some kind of sentience after all and was pranking me. The doctor would be back any minute to tell me that I just had some bad gas or something.

Well, yeah, my abdominal pain was random, they said. The doctor told me that, for every ten patients that come in with abdominal pain, nine leave with it. It can just kinda happen, I guess. Well, what about my balls? Just an infection—epididymitis. It can be caused by groin injuries (which may have happened during my intense Ring Fit Adventure workout—but really; I pushed myself) or it can be caused by urine going back down the urethra (yuck) or an STI. Given that my groin was still in a lot of pain, I figured it was due to a groin injury. So, I was prescribed antibiotics and painkillers. My aching balls got worse, but then they got much better, and I think I’m pretty good—though, the discomfort can last for weeks to months after the infection clears, which sucks.

But I wasn’t done. That wasn’t enough of a curveball. A week ago, while I was still recovering from the infection, I managed to injure myself. I was grumpy. I wanted some coffee. I went to boil some water. I stuck the thermometer in the boiling water. I wiped the thermometer on my shirt. Only to realize that the thermometer wasn’t clean—it had some taco sauce juice on it. I was beyond grumpy. But I decided to be productive about my grumpiness, and I gathered some other laundry so I could throw my shirt in (after spraying it with some anti-stain stuff). Now, picture in your mind’s eye a grumpy man with a testicular infection whose new favorite shirt just got dirty. Now, he’s pushing laundry down into the top-loading washing machine. Now, listen. His elbow just popped. Did you hear that?

I sure did. Then, slowly, I felt it. To be fair, the pop was most likely just a normal joint pop, but the following pain wasn’t normal. Straightening or bending my arm hurt. And it hurt more. And it hurt even more. So, I held my arm bent and still. Later, I tried to extend my arm again, slowly, to see if the pain had gone away. Oh, I got my arm about 90% straight before white-hot shooting pain manifested in my elbow. That was a bit worrying. The next day, it was back to urgent care; though, I went to a different urgent care that time. The good news was that my x-rays came back clean, so it wasn’t a problem with bones or the joint itself. I got a sling to keep it from moving in my sleep, and I was told to RICE. No problem. It wasn’t really feeling better. It was kind of feeling worse—my arm just felt more sore all around. Of course, I didn’t keep my arm in the sling all the time. I knew it would be good to give the joint some use as long as I didn’t enter the pain zone. At one point, I was massaging my triceps and— Ow! That pain in my elbow was there! It wasn’t nearly as bad, but it still sucked.

Well, today, I had a follow-up orthopedic appointment. The doctor diagnosed me with a severe sprain (but no tearing, I’m glad to say!) of my triceps and forearm muscles. I have to ween off of my sling, start using a compression brace for my elbow, then ween off of that, and I should hopefully be right as rain in two to three weeks.

Oh, and my comfy chair in the living room broke. Just so life could get another laugh, but, hey, that’s just victimization. Though, I did come up with a neat little metaphor for why I could handle the infection rather well, but, after my arm injury, I fell into another depressive episode. It’s like life throws a bowling ball at us. And we just manage to catch it. Then it throws another one. We’re already holding one bowling ball, so we can’t catch another, so it hits us. That hurts. It hurts so much that we drop the bowling ball we’re holding. Onto our toes. Which also hurts.

And then our comfy chair breaks.

Now, rationally, I think I got off easy. Two possible surgeries avoided. Nothing life-threatening. My world wasn’t ending. Though, my depression definitely told me that it was. I’m feeling much better now; though, now I have to figure out financial aid and insurance stuff, which isn’t fun, but I’ll manage.