Some of my earliest blog posts were about Mesmer theory-crafting in Guild Wars 2. Seeing as how I’m both playing again and blogging again, I figured it might be a fun time to write a guide.

The build that follows is what I’d describe as a “Flex Support Rifle Virtuoso” designed for Structured Player vs Player. This is a build that I’ve found enjoyable because reminds me of how playing a “Rainbow-spike Mesmer” feels in the original Guild Wars. My goal with this guide is to offer both an detailed breakdown of the loadout and provide strategies for how to play it, in the hopes that doing so might help advance the state of the metagame.

Just want the spec? Click here for the build template on GW2Skills.net.

Concept: Why “Rifle Virt”?

Historically, Mesmer didn’t really have many healing oriented specs prior to the introduction of the Rifle in Secrets of the Obscure. Sure, you could run a Mantra healing build, but the long cast times become impractical in a fast paced PVP setting and the choice of Chronomancer in PvE seems almost “too good” for the easy access to Quickness or Alacrity. However, playing a support in sPVP requires a different approach that requires you to survive in adverse conditions. By choosing the Virtuoso specialization, you lose out on the party-buffing capacity of Chrono but gain drastically improved self-defense and resource generation.

It’s my personal opinion that the Virtuoso specialization fixed several inherent problems with the Mesmer class from a PvP healer standpoint. The most important benefit for this specific build is that it makes your shatter resource is no longer killable by the opponent (as clones normally are), allowing you to ensure that your shatters are available when you need them. Since this build uses Aegis as a primary mitigation tool, it can more effectively hold a node while dueling against other builds that depend on Stealth or Distortion for survivability. The other important change is that it allows you to use the Sword’s leap ability without a target, providing you with the ability to swiftly rotate around the map.

The Visions of Eternity has since added the Troubadour specialization as a support option also, but I find myself still falling back to this instead. Troubadour has some awesome utilities skills while still addressing the clone and leap issues, but the addition of a cast time to Distortion means that I can’t use it in quite the same ways. Furthermore, the Troubadour area of effect distortions have inadvertently cost me control of a point more than once. While I think Troubadour may offer superior healing in a coordinated team, the build I’m about to present is more solo-queue friendly.

Equipment: How to gear and why?

Avatar Amulet (1000 Power, 1000 Precision, 500 Healing, 500 Vitality): As one of the limited options with healing, this seems like the obvious choice for Rifle which doesn’t have any inherent condition damage on it. The additional precision helps you add additional vulnerability stacks with Blade skills and complements the projectile reflection skills. It’s possible to run variations of this build with a Heretic Amulet, but I wouldn’t really recommend it.

Relic of the Defender (Heal 5%~1% max health on block): This build survives through spamming Aegis, and this relic turns those blocks into an additional source of self-healing. While other healing alternatives might work in an organized group, I would definitely recommend this option for solo-queuing or while learning the build.

Rune of the Flock (175 Healing Power, 225 Vitality): The Rune slot in this build is extremely flexible, and it’s quite common for me to change up this slot based on the match-up. I’m including this as the default choice in the build because I think it provides a nice balance of support and survivability.

Rifle (Sigil of Transference, Sigil of Cleansing): As your primary healing weapon, the Sigil of Transference makes for a solid choice for the Rifle here. The Sigil of Cleansing is to hopefully remove any Poison that would reduce your healing.

Sword / Focus (Sigil of Energy, Sigil of Escape): This set is intended as a defensive swap, using Blurred Frenzy for the invulnerability and a target-less Blade Leap to get out of trouble. I’m a big fan of the improved Focus trait to mitigate ranged DPS, but you could also use variety of other weapons in this slot with some minor adjustments.

Traits and Skills: What’s the build?

Virtuoso (Bladeturn Refrain, Duelist Reversal, Psychic Riposte): These three traits all synergize nicely. Casting a Bladesong grants Aegis, then blocking an attack grants boons and more blades. You need to be conscious of the 3 second internal cooldown, but the Virtuoso specialization offers great sustain once you get the rhythm down. One of the added benefits is that your Bladesongs become unblockable, so you can ensure that Bladesong Dissonance interrupts when you need it to. If you don’t have End of Dragons, you can potentially run a core version of this build by substituting Dueling instead, but you lose a lot of other benefits in the process.

Inspiration (Medic’s Feedback, Warden’s Feedback, Restorative Illusions): Restorative Illusions is a core component of the build and a major source of healing and condition removal. The Feedback traits are mostly a personal preference, but the ability to mitigate ranged damage with reflects allows you to focus on mitigating melee damage through positioning. The ability to pull someone down is priceless on certain maps. If you choose not to use the Focus, then Ego Restoration is an obvious choice. Sympathetic Visage could theoretically provide more personal survivability over Medic’s Feedback, but I find the added ability to resurrect allies under pressure to be far more impactful. Keep in mind that sometimes it’s better to just tap them for the bubble and look for a quick kill.

Chaos (Master of Manipulation, Auspicious Anguish, Bountiful Disillusionment): Master of Manipulation adds even more sources of Aegis to complement the Virtuoso traits, just remember to wait 3 seconds between blocks for maximum benefit. Bountiful Disillusionment is one of Mesmer’s few potential sources of Stability and the additional Vigor helps to generate additional blades on evade. I recommend Auspicious Anguish for help not being stun-locked to death, but Chaotic Transference has some nice synergies also.

Utility Skills (Mimic, Arcane Thievery, Blink): The choice of taking 3 Manipulations is based on capitalizing from the blocks and our associated trait. Arcane Thievery is your primary means of assisting with spikes. As needed, Mimic the Arcane Thievery to rapidly remove 6 boons from a called target under pressure to help your team secure the kill. Blink is your only stun-break, so don’t use it for mobility unless you’re confident you’ll be safe for a while and pro-actively Mimic it against CC-heavy teams. In a pinch, you can cast Mimic without using the Echo for an emergency Aegis.

Elite Skill (Signet of Humility): True to its name, you need to be humble with this skill. This build primarily uses Signet of Humility for the passive survivability, so don’t Moa someone unless the fight depends on it. That said, there will be cases where some people will be un-killable without it. You need to decide which direction the fight is going early, then play around denying a key target their skills at the precise moment they need them while also ensuring an escape route for yourself.

Heal Skill (Mirror): As much as I love Mirror in WvW, it’s use in sPVP is pretty rare because it doesn’t really heal all that well. The only reason it works in this build is that it counts as a “Manipulation” and provides you with another source of Aegis. Typically, your regular use of shatters is going to provide you with consistent self-healing. This frees you to use Mirror to support teammates by positioning yourself between them and ranged enemy to prevent them from being damaged, removing conditions and granting regeneration, while also recovering blades for yourself. This complements the Sword/Focus setup, as the leap helps gets you into position and your Focus skills provide additional reflects.

Strategy: How to play?

Generally speaking, most of my losing matches in PVP can be attributed to four root causes:

  • Toxic players that grief or AFK.
  • Teams that can’t stay alive.
  • Teams that can’t secure kills.
  • Teams that aren’t where they need to be.

The first of these is largely out of your control. Just block the toxic player, report them if appropriate, and move on with your life. Turn chat completely off if you need to. No video game is worth sacrificing your mental health over. Be positive, and try to set an example for the kind of sportsmanship you’d like to see from others.

The three combat related concerns are what you’ll need to learn how to gauge from the team composition. If your team looks “squishy”, you’ll need to play more of a support role. If your team looks “tanky”, you’ll need to play more of a damage role. If your team looks “slow”, you’ll need to play more of a roamer role. This build has the tools to play all three roles over the course of a match, but you’ll have to choose which strategy to play depending what your team needs at the time.

The first rule to playing this build is simple: stay alive. You do no good to your team if you’re dying. Each death is 5 points on the enemy team’s scoreboard, so successfully fleeing a lost fight can mean the difference between winning and losing the match. Very few classes are capable of matching the mobility of this build, so use the geometry of the map to your advantage. Pay attention to your sight-lines, hug corners to mitigate damage, and use your Blinks and pulls to assert control over the high ground. If you are going to die, try die on the point so the other team is forced to stomp you quickly. The worst case scenario is to bleed out off point.

Once you’ve become comfortable keeping yourself alive, start thinking about how to keep your allies alive through a combination of crowd control and healing. To borrow a WvW metaphor from my old guild-master (sup Indo?), you can think of your team as being a composed of a “hammer” and “anvil”. Your goal is use the AOEs from Rifle to keep the melee DPS in your “anvil” alive while simultaneously using your shatters to support the nearby ranged DPS in your “hammer”. You’re not going to keep either group alive indefinitely by yourself, but you can win engagements by ensuring your team secures kills in a timely manner each time the hammer meets the anvil. Ideally you should fall into a rhythm where you call a target, CC and boon strip them while your teammates get in position, then spike them down together.

This build has two basic spike patterns, one for each weapon set. For the Rifle, I set-up my spike with Phantasmal Sharpshooter. Give the phantasm a second to set up while you watch for a last second dodge from your target. Once you have a rough idea of where they’re going to be, drop Inspiring Imagery there and start casting Bladesong Harmony. As your Bladesong completes, detonate Abstraction and quickly follow with Journey. If done correctly, all four skills hit within a short period of time. My Sword/Focus spike typically begins with pre-casting Temporal Curtain and Phantasmal Warden, followed by a rapid sequence of Into the Void, Blade Leap, Bladeturn Requiem, and Blurred Frenzy. In either of these cases, your target will likely try to use their healing skill afterwards, so try to be prepared with Bladesong Dissonance to interrupt it.

Depending on how many supports your team has, you’ll need to make an early call whether to cap home or head straight to mid and decide how many cooldowns you’re willing to risk getting there early. You can reach a node extremely fast with a Mimic-ed Blink, Leap, Dodge combo, but resist the urge to double-Blink. It’s far too dangerous if the point is going to be contested. Remember that your first responsibility to your team is to stay alive to build a lead. Bunkering up on home might not be that exciting of a job, but holding it consistently puts points on the scoreboard and that’s how you win games.

In a team fight situation, like rushing mid, you’ll need to be very proactive with your positioning and target calling. You need to be close enough that you can strip boons and interrupt the main target, but far enough back that the enemy team needs to commit heavily in order to reach you. If you see someone gunning for you, use your mobility to force them into over-extending then call them out for a quick spike. Keep in mind that your Restorative Illusions healing is proximity based, so try to be not more than a Blade Leap away from any allies you might need to save. Shatter, dodge, and shatter again for quick burst of healing. Being close to the action also enables you to occasionally step into AOE damage to trigger your on-block effects and make every Aegis count.

Much of the flexibility in this build comes from the combination of Mimic and Arcane Thievery. The current metagame tends to favor boon stacking for defense and condition stacking for offense, but Arcane Thievery can effectively turn both of these weapons against one target at the same time. This is one of the few mass boon strips and cleanses left in the Mesmer toolkit. I find that a lot of players will instinctively rebuff themselves after the first strip, enabling you to often steal some nice boons with the Echo strip. If possible, I try to prioritize stealing Protection, Stability and Alacrity, but more often than not I’ll be forced to use Arcane Thievery for the condition cleansing instead. The dual nature of this skill makes target calling even more important because you need someone targeted to cleanse yourself.

This build occupies sort of gray area between being a “healer” and being an “anti-healer”. At the lower ranks teams with any support tend to beat teams without supports, but at higher ranks teams with multiple supports will often end up being stalemated. Fighting a stalemate on a node you own is okay, but fighting a stalemate on a node owned by the enemy is recipe for a loss. You need to either get the node first or be able to kill whoever got there. While this build is relatively low on the damage side, the boon strips and stuns can allow you to effectively mitigate a support from the other team while providing support of your own. A well-timed Signet of Humility can deprive an enemy healer of their defensive skills at the precise time they need them, allowing your team to take down certain classes who might otherwise be un-killable.

With that being said, it’s also important to recognize when not to play this build. If you’re at the ready-up screen looking at team composed of a Core Guardian, Scourge, Weaver, and Druid, it’s a probably good idea to take this as a hint to at least switch to something more aggressive. This build is flexible enough to play with other supports on the team, but you’ll want at least one solid damage dealer to assist with spiking down your target while you CC them or it can end up going to waste. If you can’t tell at a glance who the “DPS” on your team is, then it probably means they need you bringing the damage. Knowing when to build swap and how can help you win matches more consistently in the long run.

Match-ups: What to watch for?

This is a build that’s designed around minimizing bad match-ups rather than maximizing winning match-ups. You should be focused on taking map objectives over taking duels, but you need to be able to hold your ground against common meta builds when needed.

This build is weak against builds with boon strips and unblockable attacks — which includes its own mirror match. A Mesmer vs Mesmer match-up is going to be one of the difficult fights you’ll face, but there’s enough room for you to counter-play most builds if you know how they work. These 1v1s will often come down to who ever makes better use out of their cooldowns. Use target calling to mark the real Mesmer when facing Chronos or Mirages, and remember to dodge before key shatters for the unblockable effect against other Virtuosos.

Familiarize yourself with the list of “unblockable” attacks from the Wiki. I don’t plan on going through all of them, but would briefly divide them into 3 groups. The first group includes ground based AOEs, that can really only be avoided by Blinking out of the effected area. The second group includes projectiles, which can’t be reflected so you’ll have to play line of sight or use distortion needed. The third group is the remaining melee attacks, which I try to mitigate by kiting and distortion.

One of the drawbacks of being a Virtuoso is that you give up clones completely. This makes “trap” classes particular more dangerous for you than other Mesmers who can simply send a clone in to pop them, and you’ll probably face a lot of them in the current meta. Be cautious about your position when facing off against Rangers, Necros, and Demonhunters. Proactively Mimic Blink to keep a back-up escape on hand and try to force them to come to you. Usually they will run a projectile weapon for back-up damage, so drop a Temporal Curtain when they try to do their spike and pull them out of position while they’re low health.

Focus reflects also help against Thieves and Engineers also, but usually their crowd control effects are more threatening than the damage. Try not to use Signet of Humility in those situations unless you’re absolutely sure you can secure the kill with it because that passive bonus can be the difference between life and death. Don’t be afraid to retreat and reset if you need to; you can rest assured they’ll try to the do the same. Deadeyes in particular shouldn’t be underestimated, and will quickly drop your allies if left unchecked. Position yourself between the ranged threat and an ally so you can protect them with Mirror, or consider setting your Phantasmal Warden on an off-target just to give your teammates breathing room.

Variations

The Rune is the most flexible slot and I generally change it up depending on the match-up. Chronomancer is my favorite DPS option because the added boon duration complements the build well, I tend to often run this on Forest to help kill the creatures slightly faster. Resistance is notable if you’re going up against a condition heavy team and likewise Guardian can work well against direct damage.

The Sword/Focus set has some leeway also. Switching from Focus to Shield can help if you expect to face a melee-heavy team, and synergizes extremely well with the recommended relic. Spear can make a nice offensive swap when needed and offers decent mobility also. Staff be a decent defensive option if you take Illusionary Membrane and are can get used to the 180 degree blinks for mobility.

The other potential healing relics include Flock, Dwayna, and Castora. Flock is nice because it stacks well with multiple healers, while Dwayna works best if you’re the only one using it and are explicitly gearing for boon duration. Castora could interesting if you have a more reactive healing playstyle, but I try to lean towards being pro-active with Aegis and Regeneration instead. Zakiros and Mist Stranger make honorable mentions if you’re looking for an offensive swap that doesn’t compromise survivability.

Once you’ve gotten used to the playstyle of the Aegis/Defender gimmick, it’s also possible to drop the Inspiration line entirely for a more offensive trait line. My personal favorite is Domination for the boon strips, but Dueling and Illusion both offer nice options too. Running a Heretic amulet with such a spec can be very effective at lower ranks where people don’t understand the gimmick.

Conclusion

Guild Wars 2 is at an interesting stage in it’s product lifecycle. It reminds me very much of late stage fighting games like “Guilty Gear XX Accent Core +R” where the number of expansions to the game has reached a critical mass where every character has an absurd gimmick that can kill you in seconds. Every class in Guild Wars 2 has a number of gimmicks, and the more of them that you recognize the more successful you’ll be in your matches. Hopefully you’ll find my gimmick fun and maybe it’ll inspire you to find one of your own.

Today’s post is about something a little taboo: self-diagnosed mental illness. I distinctly remember my Abnormal Psychology professor prefacing the course with the warning we’d see aspects of each diagnosis in ourselves, but they are not classified as disorders until they interfere with our daily lives. Let’s be clear that my goal here is not to make claims about having any particular condition(s). Instead, what I’d like to argue instead is that self-diagnosis is a financial necessity in a for-profit healthcare system. I won’t argue that self-diagnosing oneself for mental illness presents problems, but it seems the only logical long-term solution is a combination of universal healthcare and universal basic income.

Several years ago, I came across this TED Talk from Ethan Lisi about “What it’s really like to have autism”. This got me thinking a lot about the role of trauma in mathematics education. During my time teaching, I worked with a number of autistic students and noticed aspects of myself reflected in their behavior. I’ve started wondering if the reason I was “good at math” was likely a side-effect of having an undiagnosed social communication disorder as a child. I might have been physically present in a social situation, but quite often I was mentally off somewhere else – completely enthralled by the math problems in my head. The reason this wasn’t caught was that the diagnostic criteria for the “Autism Spectrum Disorder” simply didn’t exist at the time. Such labels were only recently introduced in an effort to disentangle “Asperger’s Syndrome” from “Autism” in the DSM-V-TR. Cases of late diagnosis for autism are difficult, but can you honestly look at this blog and not describe me as being pedantic, having a narrow range of interests, and oblivious to social cues?

The reason my symptoms went untreated likely came from an interaction of power and privilege dynamics. As a white male showing promise in mathematics, I was placed in “gifted classes” rather than “special education classes”. No one cared about the negative symptoms correlated with my social isolation because I always came in the 99th percentile for math on all their standardized tests. My condition was treated as something to cultivate rather than fix. This attitude of exploiting children on the autism spectrum for social progress reflects the fact that “Asperger’s Syndrome” was literally named after a Nazi researcher engaged in applied eugenics. Identifying individuals with this condition was never about helping them, but rather part of a deliberate effort to exploit them in the advancement of white supremacist ideology.

The irony in all this is that Asberger’s ideas about appropriate treatments for autism were actually highly progressive for the time. He didn’t treat his patients’ as having an illness to be cured, but as people who could flourish in the right environment. Well, I suppose it is more accurate to say he treated young Aryan autistic males as people who could flourish in the right environment. See if you can spot the moment in this TED Talk from Steve Silberman where he deliberately avoids using the word “Nazi”. The level of care with which he treated autistic children reflects the type of humanizing support that those children need, but we also need to acknowledge the fact that this care was not distributed equally to all.

It’s very unfortunate, but the unequal distribution of resources still haunts the education system to this day. Providing accommodations costs money, so schools put the accommodations behind a “paywall” through the form of a formal diagnosis. Families that can afford to dedicate the necessary time and money to receive a diagnosis can use that to obtain special treatment. Families for whom regular behavior therapy sessions would present a financial burden are not so lucky. The result is a special education system that benefits the rich and stifles the poor.

The case of autism is a unique problem because it doesn’t necessarily imply an impairment in itself. Many autistic people are highly functional, and it’s only when there is a mismatch between their needs and the environment that it becomes a problem. When one has money, they can afford to control their environment to ensure those needs are met. It’s only when those environmental factors are out of the person’s control that they become obstacles. Having defined mental illness by an interference with daily life, autism might be a boon or a bane depending on one’s socioeconomic status.

If it sounds like I’m engaging in some verbal gymnastics to avoid referring to myself as autistic, that’s because a real diagnosis is complicated. In order to narrow down the root cause, it’s necessary to rule out the many possible alternatives. Maybe I have some kind of attention disorder that’s interfering with my ability to follow conversations. Maybe I’m depressed and don’t have enough cognitive resources to keep up with the energy levels other people seem to have. Maybe I enjoy those craft beers a little too much. Any combination of those factors could explain my behavioral patterns, but the fact remains that I’m not an objective observer in this situation. There’s a distinct difference between self-diagnosing mental illnesses and physical ones.

I suffer from a chronic case of allergies. Everytime the pollen level rises, so do my respiratory symptoms. Over the course of my life, I’ve learned how to adapt. I pop my generic-brand Zyrtec in the morning if I expect it to be an issue, or a generic-brand Benadryl in the evening if symptoms catch me by surprise. I’m able to self-medicate for my allergies because I’ve learned how my body reacts through years of experience with expensive medical bills. There’s nothing like spending $600 at a doctor’s office only to learn that your congestion and nasty cough is really just an adverse reaction to the change of seasons and solved by common over-the-counter medicine.

In America, there’s this philosophy that one should take personal responsibility for one’s healthcare. If I know I need regular medication on hand to keep my healthcare costs low, it’s up to me to shop around for the best bargain. This is suboptimal as far as I’m concerned, but it’s something I’ve learned to manage. It’s possible because I can act as an objective observer of my own physical symptoms. If it feels like allergies are acting up, it’s probably because they are and I should take some meds. If I cut myself while cooking, I can still make a rational judgement about whether the wound requires a trip to the emergency room or a Bandaid and some Neosporin will suffice. One of those courses of action is substantially more expensive than the other, even with insurance, so self-diagnosis can be a very practical skill to have.

In contrast, I’m not an objective observer with regards to my own social behavior. I have no way of knowing if I’m weird or if everyone else is. What I observe is a pattern in which the topics which seem to excite me make other people roll their eyes, and what passes for polite conversation to others bores the hell out of me. It’s not my fault that other people don’t want to talk about math; nor is it my fault for not caring about who won the sportsball game. I can clearly see the difference in norms, but at what point is this difference sufficient to call it a disorder? How socially awkward do I need to be to have a social communication disorder? It’s impossible for me to self-diagnose myself relative to social norms that I don’t understand to begin with.

Let’s consider a hypothetical situation where two people are suffering from depression, but one of them has a high-paying job and the other does not. The person with the job can afford to spend time in counseling and pay for prescription antidepressants as necessary. For the other, this becomes a very difficult financial decision. Is it worth it to spend $45 and an afternoon each week covering a “copay” for therapy when you’re not sure about paying your bills? If you get prescribed medication, how will you pay for it? At the same time, how do you expect to find a job when the mere act of getting out of bed presents a struggle? This person is trapped in a situation where they have to make an impossible decision about whether or not to seek help. They are forced into a position of self-diagnosis through material necessity.

I don’t know about you, but the mere thought of that situation makes me anxious. What’s even stranger to me is the way I label this feeling “anxiety” rather than attaching an emotion like “fear”. In place of “feeling sad”, I notice myself experiencing “symptoms of depression”. I think this emotional detachment is closely related to the social construction of gender. The prevailing system of patriarchy discourages boys from discussing their feelings, so boys fall into patterns of behavior where they detach themselves from those feelings – sometimes maladaptively. In my case, I don’t think I had a working vocabulary for my feelings until I started studying Psychology so the line between the subjective experience of “feelings” and the objective experience of “symptoms” is inherently blurred once I start talking about myself. An external evaluator is necessary for accuracy and that inherently costs money.

By attaching a cost to mental healthcare, you place a financial burden of diagnosis on the people that need the assistance the most. Even most state agencies require you to submit documentation of a disability before they will provide accommodations during the hiring process, but having a job is a prerequisite to getting mental healthcare in a capitalist society. Once mental illness interferes with your employment, it can initiate a vicious cycle which the lack of employment makes the symptoms even worse and compounds the problem further. Let’s acknowledge the reality:most hiring managers will “weed out” applicants that sound even remotely depressed.

I think this is where many “Diversity, Equity and Inclusion” efforts are falling short. The prevailing attitude that the burden of proving a disability should be placed on the person with the disability is inherently unequitable – especially when it comes to mental illness. In order for an organization to truly be inclusive, they need to take a proactive role in making sure that their hiring process is accessible to a diverse audience. People shouldn’t need to ask for accessibility; it should just be there. It’s not.

Even accurate representations of neurodiversity can be difficult to come by. I think the reason I’ve been drawn to playing Testament in Guilty Gear: Strive recently is that they share some of the same symptoms I do, but they seem to have adjusted in a way that seems healthier. It makes me wonder how my childhood would have been different if I had a role model that was more like me to observe. At least times are changing though. It’s definitely a little heartwarming to watch modern children’s shows and be easily able to identify the token autistic character that was absent from mine.

While each individual diagnosis only affects a small percentage of the population, the collective combination of all these diagnoses represent a significant proportion of the population. Estimates suggest that roughly one in five people could be classified as neurodivergent. These individuals are 3-4 times more likely to be unemployed as a result. It’s time that we level the playing field so that everyone can play on equal footing. The only way that happens is by removing the existing financial barriers to mental healthcare.

Moving to a system of universal healthcare might make it easier for neurodivergent people to access care, but that alone won’t address the problem. Like Asperger’s role in the Third Reich, companies seeking a quick buck will still look at neurodivergent people as a potential resource to be exploited. We don’t just need to make it easier for people to get help, but also need to simultaneously eliminate the class of predators that currently feed upon their vulnerability for personal gain. Those in power will not cede that power willingly. I think we need to accept the reality that mental illness and poverty are closely intertwined. Any attempt to address one without the other would likely be futile.

A publication from the American Psychological Association titled “Stress in America 2023” examined the impact of the COVID pandemic on mental health. For people in my age bracket, diagnoses for mental illnesses increased from 31% to 45% and approximately 3 out of 4 identify financial stress as one of the key factors. The survey also showed 39% of Americans identifying discrimination as a significant stressor, typically attributing it to their age (36%), their race (28%), or their gender (22%). The effects of stressors are compounded for people in historically underprivileged communities who are neurodivergent, with LBGTQIA+ individuals being nearly twice as likely to report stress due to discrimination.

Lately I’ve been working my way through an introductory mathematics text on category theory and have been struggling with a set of problems related to gender. Without digging too much into personal trauma, I self-identify as “male” but this particular problem has defined gender in a very specific way that I feel excludes me from the set of all “people”. For the first time in my life, I felt othered by mathematics and the experience is quite infuriating. This anger has interfered with my ability to think logically about this particular problem, thereby preventing me from solving it, which in turn made me even more frustrated with it. If a simple problem can have this large of an impact on a (mostly) cis-het white male such as myself, I can’t even begin to imagine how awful it might be for others.

Out of curiosity, I started to do some research on the relation between mental illnesses and gender nonconformity. I dug out that old Abnormal Psychology textbook to see what it had to say about “Gender Dysphoria”. What I found was outright appalling. This text had essentially classified gender nonconformity as a sexual fetish and was pretty much still treating homosexuality as a disease. I didn’t even think it was that old at the time. Did I really read this book ~25 years ago and not notice how biased it was? The reality of our present situation is that Psychology is a young science and many early studies have since been shown to have significant cultural biases behind them. Human behavior is complicated.

To make matters worse, the rise of generative AI chat bots as “online therapists” is only going to exacerbate these problems. Unlike deterministic systems like ELIZA, these Large Language Models are built upon a gigantic corpus of text and will inherit any biases contained within it. These models are more likely to induce psychosis than provide any real help for the people that turn to them out of desperation. As more and more AI slop invades our Google searches, getting reliable information about mental health is becoming increasingly difficult. The sad reality of our present moment in time is that self-diagnosis may in fact be the only viable option for many people right now.

If you are one of those people and are turning to this random person’s blog for help, I should advise you that I’m not a medical professional but perhaps I can point you towards people that are:

  • If you or someone you know is suicidal or in emotional distress, please contact the 988 Suicide & Crisis Lifeline immediately. They’re trained to help in times of crisis.
  • If you are looking for resources on self-diagnosis, I would consider starting with the American Psychiatric Association’s Assessment Measures. Select the appropriately age-targeted “Level 1 Cross Cutting Symptom Measure” and follow the evaluation instructions contained within. Depending on the results, consult the appropriate “Level 2” instrument and go from there.
  • If you’ve already self-diagnosed and are looking for self-help resources, the American Psychological Association might be a good place to start. Research moves quickly in Psychology, so be mindful of publication dates as you review the literature.

Hello! Welcome to another installment of “How to get math software working in the Windows Subsystem for Linux”. Last time I set up Lean4 in Emacs using Debian, but this time we’re branching off into using a project called PreTeXt.

PreTeXt is basically a system designed explicitly for authoring math papers and textbooks using a formatting language called “LaTeX”. The official documentation for PreTeXt recommends that you use the GitHub Workspace instead of WSL for new projects, but I already have an existing such repository where I had been working the exercises in Lawvere and Schanuel which you can find here: https://rruff82.github.io/LS-Categories/

The reason I’ve chosen to go with a WSL installation of PreTeXt is that it enables me to work locally and avoid hitting my compute-hour quota on GitHub. The downside is that there are a lot of prerequisite components that need to be installed for PreTeXt to work properly and the error messages aren’t necessarily that informative. Through trial and error, I determined I had to install the following packages on my Debian installation:

sudo apt install git
sudo apt install curl
sudo apt install texlive
sudo apt install texlive-xetex
sudo apt install xsltproc
sudo apt install pkg-config
sudo apt install cmake
sudo apt install libcairo2-dev
sudo apt install poppler-utils
sudo apt install python3
sudo apt install python3-pip
sudo apt install python3-venv
sudo apt install python3-cairo

Next, I set up a Python “Virtual Environment” to house subsequent packages in. This lets me to install packages locally without messing with the system-wide configuration:

python3 -m venv .venv

To activate our new virtual environment:
source .venv/bin/activate

The bash prompt should now have a “(.venv)” at the start and we safely can install PreText:

pip3 install pretext[all]

You can check the installation with “pretext –version”. Mine responds with 2.39.0.

Unfortunately, we’re not quite done yet. It’ll run, but errors out for… ::gestures wildly:: “reasons”. It turns out that we also needed to install “node.js” and the “npm” package manager. I chose to to install these using the “nvm” method by following the instructions found at https://nodejs.org/en/download

# Download and install nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash
# in lieu of restarting the shell
\. "$HOME/.nvm/nvm.sh"
# Download and install Node.js:
nvm install 24
# Verify the Node.js version:
node -v # Should print "v24.15.0".
# Verify npm version:
npm -v # Should print "11.12.1".

I used my own existing “code-space” repository as a test:

git clone https://github.com/rruff82/LS-Categories.git
cd LS-Categories/
pretext build web
pretext view web

If everything has gone well, this should give you a local mirror of my GitHub page in your web browser! Please excuse the warnings indicating that my stuff is wildly out of date. You should be able to use CTRL-c to terminate the server from the console when you’re done using it. In the long term, I’d like to be able to replicate the VSCode workflow in Emacs but that’s a problem for another day.

Anyway… hope this helps someone else out there! Good luck!

It’s been a while since I’ve blogged, and today seemed like a good day to plant some new seeds.  Recently, I’ve been trying to move away from VS Code and decided to go back to an old Linux staple: Emacs. 

It’s a relatively new machine, so I took notes along the way in hopes it might be helpful to someone else.  Most of this is based off the official installation instructions available here: https://github.com/leanprover-community/lean4-mode

I originally tried to use the Emacs for Windows installation, but I found it hard to configure that way and ended up using the Windows Subsystem for Linux instead.  I choose to go with a Debian install because that’s what I’m familiar with.  To start, you need to enable Windows Subsystem for Linux.

Open start menu, and search for “features”.  Click on “Turn Windows features on or off”.  Scroll down until you find the folder for “Windows Subsystem for Linux” and click the check box, followed by the “OK” button.  You should then be able to install Debian through WSL via the official Windows Store.

I also recommend pinning it to the taskbar.  Click the start button, type “debian” in the search bar, right click, “Pin to Taskbar”.  

You’ll also need to create a user account. Record your password in a safe location as you will need it for the following “sudo” commands to install the prerequisite software.

Install git:

sudo apt install git

Install curl:

sudo apt install curl

Install emacs:

sudo apt install emacs

Finally, we install “elan”,  our Lean 4 engine.  From your Debian console:

curl https://elan.lean-lang.org/elan-init.sh -sSf | sh

Type 1[Enter] to proceed

Source ~/.elan/env

Run “lake –version” to check that it installed correctly.

Launch emacs

emacs

Within Emacs, use the following to open your initialization file:

C-x C-f ~/.emacs.d/init.el

Copy (from whatever you’re reading this with) and Paste (C-y) in the following:

(require 'package)

(add-to-list 'package-archives

             '("melpa" . "https://melpa.org/packages/"))

(add-to-list 'package-selected-packages 'dash)

(add-to-list 'package-selected-packages 'lsp-mode)

(add-to-list 'package-selected-packages 'magit-section)

(package-refresh-contents)

(package-install-selected-packages 'no-confirm)

Save with C-x C-s, then exit with C-x C-c, then run emacs again to update.  I recommend you read through the tutorials if it’s your first time, then exit once you’re done.

Clone the lean4 mode from github

git clone https://github.com/leanprover-community/lean4-mode.git ~/lean4-mode

emacs ~/.emacs.d/init.el

At the bottom add:

(add-to-list 'load-path "~/lean4-mode")

Save with C-x C-s

Add emacs to taskbar:

At this point “Emacs (Client) (Debian)” showed up in my start menu.  Right click and “Pin to Taskbar”

The LEAN4 engine doesn’t load properly this way,  so Shift-Right click and select “Properties”. 

Change “emacsclient” to “emacs” and delete the “–alternate-editor=   –create-frame” part and so the semicolon directly follows “emacs”.

Click the new shortcut to test it out.  Now’s also a pretty good time to check out the tutorial if you’re a new Emacs user.  I still need to work out the double icons, so I’ll keep you posted…

My next step was to create a test Lean 4 Project. From your home in Debian (~/):

lake new Lean4TestProject

cd Lean4TestProject

lake build

Hopefully this should complete successfully! Now we double check:

emacs Main.lean

The first time I ran this, I get a whole bunch of warnings . They looked something like this:

⛔ Warning (lsp-mode): Unknown request method: workspace/inlayHint/refresh

Click one, and select “Yes, ignore `lsp-mode` warnings completely.”  If I find a better option, I’ll let you know.

Add a line with the text “#check id” between “import Lean4TestProject” and “def main : IO Unit :=”.

Click “Lean 4” in the menu and then “Execute Lean”.  It will prompt for an argument, so just hit Enter.  If everything so far has gone well, you’ll see something like the following:

-*- mode: compilation; default-directory: "~/Lean4TestProject/" -*-

Compilation started at Tue Apr 14 20:00:02

/home/ryan/.elan/bin/lake env /home/ryan/.elan/bin/lean  /home/ryan/Lean4TestProject/Main.lean

id.{u} {α : Sort u} (a : α) : α

Compilation finished at Tue Apr 14 20:00:02, duration 0.22 s

Close emacs to get back to the console. Change back to your home directory as needed.

cd ~

Download “Mathematics in Lean 4”:

git clone https://github.com/leanprover-community/mathematics_in_lean.git

cd mathematics_in_lean

emacs .

Opens emacs with a directory listing. Navigate to the MIL folder. You may want to read through the files in the C01_Introduction subdirectory, but the fun stuff really starts in C02_Basics with “S01_Calculating.lean”.  The first example is as follows:

example (a b c : ℝ) : a * b * c = b * (a * c) := by

  rw [mul_comm a b]

  rw [mul_assoc b a c]

This example provides a simple multiplication proof.  It applies the commutative property on “a” to get “b * a * c”, and the associative property

Turn on the Lean4 display with C-c TAB.  You should get a new pane with the following text:

Messages below:

9:0:

declaration uses ‘sorry’

12:0:

declaration uses ‘sorry’

22:0:

declaration uses ‘sorry’

Our first error is the ‘sorry’ declaration on line 9.  Notice how “example” is underlined in the other pane.  Left click it and watch the other pane update. 

The error should read as follows:

Expected type:

⊢ ∀ (a b c : ℝ), c * b * a = b * (a * c)

This is our first puzzle to solve!  How to we get from “c * b * a” to “b * (a * c)”?  

Scroll further for spoilers…

I’d start with the commutative property.  Replace the “sorry” with “rw [mul_comm c b]” and see what happens.  Note that this command is order sensitive!

Notice that the pane above now reads as follows:

Messages here:

9:49:

unsolved goals

a b c : ℝ

⊢ b * c * a = b * (a * c)

Well, how do we get from “b * c * a” to “b * (a * c)”? 

The associative property again!

Try adding a new line below with “rw [mul_assoc b c a]”.  Our unsolved goals should update again to the following:

a b c : ℝ

⊢ b * (c * a) = b * (a * c)

There’s one last step.  Can you figure it out on your own?  

Scroll down for the solution.


The last step is to apply the commutative property again, but this time between “c” and “a”.  Add the following to complete the proof: “rw [mul_comm c a]”.

If you’ve done this correctly, you should see a “goals accomplished” when selecting the last line of the proof.  The next error should be line ~14 with the next “sorry”.  See how far you can get from there!

I regret to inform you that, as of this post, Ryan Ruff’s Freelance Mathematics and Tutoring Service is effectively closed.

I had high hopes that something like this could work, but it’s time for me to except the financial realities of the market. I’ve tentatively accepted an alternative employment opportunity and, contingent on that offer, feel obliged to close my existing business services to avoid any perceived conflict of interest.

Please don’t despair! The Twitch streaming will survive in some form or another! SuburbanLion will still be live on Twitch tonight from 6:30pm-10 ET playing Guilty Gear or/and talking about math, but my schedule thereafter might vary. I can’t make any promises, but follow me on Twitch to be notified when I go live!

I’ll start tagging new streams with #TTVTutor in the hopes that maybe the tag will catch on and someone else will find success where I could not. If any teachers out there have been enjoying my “problem of the week”, I’ve started assembling a list of them here to make it easier for you to find things that might be useful in your classes.

The past year has been quite an amazing journey and I met a number of awesome people along the way! I even managed to accomplish my goal of beating the Celestial Challenge with Testament on a PS Access Controller! Some special shout outs to follow…

To Nailz: Thanks for believing in me and moderating chat every week! None of this would have been possible without you!

To Enstucky: Thanks for showing up week after week! It gave me courage to keep going in the beginning!

To Maylius: Thanks for all the coaching! I’m pretty sure you helped me break that Celestial ceiling!

To Daisuke Ishiwatari and ArcSys: Thanks for making an amazing game! You’ve permanently raised my expectations for inclusive representation in video games!

To all the GGST players: Thanks for making this one of the most welcoming fighting game communities I’ve seen since the days of physical arcades!

To Sony: Thanks for caring enough about accessibility to make a customizable controller! What’s good for accessibility is good for everyone!

Finally, thank you to everyone that tuned in on Twitch or interacted with my posts on social media! Being able to share math is a joy in itself, so thanks for being a part of it!

Lately I’ve started listing my preferred pronouns as “he/they” instead of “he/him” in situations where I have the freedom to do so. I figured that since it’s only a matter of time before people notice, I might as well just be open and forward about what’s going on. Recently I’ve been entertaining the hypothesis that my gender is non-binary. Until such time as I figure that out, I want people to know they can refer to me with either masculine or gender-neutral pronouns, but should not use feminine ones.

I feel like some people are going to inevitably want ask “why?” and I thought real hard about how I’d answer. Reasons certainly exist, but after repeatedly struggling to adequately articulate them I came to the realization that you’re not entitled to those reasons. I don’t owe you an explanation for being who I am; I’m just me. As far as I’m concerned, I’ve always been gender-nonconforming and now I’m simply updating my pronouns to match.

I do, however, think I have an obligation to explain “how?”. This is why the discussion here is focused on pronouns rather than gender. Most people closely associate pronouns with respective genders, but I don’t think I perceive gender quite like other people do to begin with. As such, I think it’s both appropriate and necessary for me to explain how I personally would like to be addressed.

In listing both “he” and “they” pronouns, I am inviting you to choose which pronoun seems appropriate in a given context. Part of this is to solicit feedback on my gender presentation. Since I don’t perceive gender the same way as others, I need more explicit data about how others perceive my gender. This is where I want your help. By using “he” or “they” as you perceive my behavior to be in a given situation, you can help me to disentangle my gender from my gender-image.

You’re also welcome to refer to me with neutral pronouns just for the sake of practice. I get that sometimes people have good intentions, but the muscle memory for those neutral pronouns isn’t quite there. Even I’m still getting used to it, so I’m here for you if you need a safe place to learn. We all need space to grow.

At the same time, I’d like you to be cautious about describing my gender neutral traits with feminine language. If you ask me “why are you dressed like a girl?”, don’t be surprised if I get upset because I don’t view myself that way. It’s not my fault that you’ve internalized these stereotypes, but that doesn’t excuse perpetuating them and my anger is an appropriate emotional response to that prejudice. Instead, please attempt describe my behaviors objectively for what they are (i.e. “wearing a skirt”) rather than through your subjective perception of gender.

There’s one more relevant detail that I should warn you about, and it’s that I hate crosses with a passion. My gender is not “X”, and even seeing “X” listed as a gender is absurd to me. Other non-binary people might choose to use “Mx” as a gender neutral title, but that isn’t going to work for me personally. If you really want to give me a gender neutral title, I’m currently leaning towards the use of “M*” (read like M-star) with bonus points for typesetting with Unicode 26E7 as “M⛧”.

My aversion to the letter “x” also extends to other languages as well. If you’re talking about me in a language other than English, please try to use the respective third-person plural or a modification thereof that at least sounds more natural than ending words with “-x”. For example, in Spanish you might use the suffix “-e” in place of “-o” in “amigo”. Would my friends agree that “amige” communicates the same intention as “amigx” while being substantially easier to read? We need to accept that languages aren’t fixed constructs and can evolve over time to better suit our needs.

I hope I’ve made it clear that I’m not adopting dual pronouns to make things more difficult, but in an attempt to them easier. I’m concerned that by listing only “he/him” as my pronouns I might give the false impression that using “they/them” would somehow be offensive to me when it’s really not. In fact, I think I would prefer it if more people used gender neutral terms when they’re unsure so I’m starting that practice with myself. Perhaps there will come a time when I’m ready to abandon my old pronouns entirely, but for now I’m quite content with the act of trying out new ones in parallel.

In 2008, I made a major life decision to shift my career path from software development to teaching.  After leaving my teaching position in 2022, I’ve been actively searching for a new job that combines these two passions as an “instructional technologist” without much success. Part of the problem is the difficulty of communicating how I view my experiences as a teacher and programmer as two sides of the same coin – being a mathematician. As a potential method of resolving this problem, I thought I might be able to construct a “Mathematics Portfolio” that demonstrated how the skills I acquired as an educator are relevant to my qualifications as a software engineer.

There was only one problem with my plan: I’d never seen a “Mathematics Portfolio” before.  I’d seen portfolios in other disciplines related to math, including both “Teaching Portfolios” and “Programming Portfolios”, but I’d never seen a portfolio I would specifically identify as being created by a mathematician.  It’s common for mathematicians to provide a list of publications in a “Curricula Vitae”, but my working definition of “Portfolio” requires a purposeful act of curation on behalf of its creator. There’s a distinction to be made between a mathematician’s collected works and their self-evaluation of those works. A “Mathematics Portfolio” should necessarily include both the mathematics itself and a reflection on behalf of the mathematician producing it about why it is important to them.

If the word “mathematician” is defined as a “person who does mathematics”, it becomes a logical necessity to define what is meant by the word “mathematics”. This is not a trivial matter to unravel. Our definition of “mathematics” is based on a shared social understanding of what it means to “think mathematically”. Understanding the need to avoid circularities in our definitions of terms like this is one of the core components of mathematical thinking.  However, it’s very rare to actually see mathematics as an active process.  Usually this process takes place inside the mathematician’s mind and what we see is what they publish.

Perhaps it might be easier to define “mathematics” if we first define “physics”.  Human beings coexist is a shared reality that operates by a set of rules we call “physics”. We don’t get to observe those rules directly, but discover them through the scientific process. In order for us to learn how our universe works, we must first develop a model and method for testing it experimentally. We have a shared world we all interact with so our internal models are inherently similar.

In contrast, I would define mathematics as a universe-agnostic model of truth. Whereas “physics” is the study of the real universe that we collectively live in, “mathematics” is the study of all possible universes. This distinction is often described as “a priori” and “a posteriori” forms of knowledge.  However, where knowledge of physics is constructed through a separate process called science, the process of discovering mathematical knowledge is itself called mathematics.  Our definition of mathematics is inherently circular because there’s no common external model for us to compare against. Truth in mathematics is established by convincing other mathematicians that something couldn’t possibly be false.

To resolve this dilemma, I thought it might be useful to decompose mathematical thinking into a set of characteristic thought processes. While this is a topic of much debate, allow me to propose the following definitions for discussion purposes:

Mathematical thinking is a formalized thought process for arriving at truth characterized by defining terms, stating assumptions, reasoning logically, creating useful abstractions, decomposing problems, and communicating information. A person who routinely engages in mathematical thinking is referred to as a mathematician, and the collective social behavior of mathematicians is referred to as mathematics.

I’ll address each of these components in turn and discuss why I think they are important.  The goal here is simply to identify the skills that I would want my “mathematics portfolio” to demonstrate so that I can begin to organize a suitable collection of artifacts. I’ll conclude with a brief reflection about how this definition has impacted my portfolio development. 

Defining Terms

I hope that the care taken in defining “mathematics” demonstrated above provides evidence of this skill. Attempting to define mathematics alone is not sufficient to make one a mathematician, but I’d argue that not including a definition of mathematics in a mathematics portfolio would arguably disqualify one as a mathematician.  The effectiveness of mathematical thinking depends on a foundation of precise definitions. When I’m “doing math”, I mean what I say and I say what I mean.

Being a teacher has taught me that this type of formal communication is not the primary mode of thinking for most people. It’s far more practical for human beings to “code-switch” in and out of this state. After all, natural communication often involves words with double meanings that we must interpret based on the context. A word like “neighborhood” will have dramatically different meanings depending on whether I’m discussing “my house” or “a point”.  Understanding where and when precise definitions are appropriate is a quality that makes for a good mathematician.

Stating Assumptions

One of the reasons I’ve defined mathematical thinking the way I have is that it allows me to distinguish between the thought process of an individual mathematician and the collective social efforts of many. What constitutes a good definition is how well it enables further communication between two parties and coming to an agreement on the definition of terms often includes implicit assumptions about what is true in the shared reality of the communicators.  Once two people have agreed on a set of definitions it enables them to ask “what if?” questions using those terms.  

Mathematics is built on a foundation of mutually agreed upon hypothetical statements within a given society. The presently accepted de facto standard in mathematics is a specific collection of assumptions colloquially known as “ZFC” – an abbreviation for “Zermelo–Fraenkel set theory with the axiom of Choice”.  However, it’s important to note that mathematics as a whole is not limited to this specific set of rules and some interesting things happen when we choose different ones. What’s important for mathematical thinking is that we actively reflect on the assumptions we’re making and why we’re making them.

Reasoning Logically

Once we’ve established a set of well defined terms and agreed on a set of rules by which they are bound, we can start sorting out the true statements from the false ones   Given our stated assumptions and definitions, what new information can we deduce from that knowledge? This logical reasoning is arguably one of my favorite parts of math because I tend to view it like a game. Like the classic puzzle game “Pipe Dream”, mathematics is often about building a path from a starting point to the goal with a limited collection of possible moves at your disposal.

In mathematical terms, I tend to associate logical reasoning with the properties attributable to a generative grammar. Much like natural language has rules of grammar that determine what may or may not constitute a sentence, logic has an alphabet and rules of grammar that determine what may or may not constitute a proof.  What makes this game so fun, is that you may or may not be able to prove a given statement from within the system!  Mathematics can sometimes require you to step out of a system and look at the bigger picture. 

Creating Useful Abstractions

One of the most powerful aspects of mathematics lies in the way its tools effectively transfer between seemingly disconnected domains of study.  As a teacher, I often heard students often ask “when am I ever going to use this?”.  The truth of the matter is “I don’t know” and this is precisely why learning math is so exciting to me. I never know where a mathematical concept will show up, but I also wouldn’t recognize them in their natural environment if I hadn’t played with them in a “toy problem” first.  

A good example of this in action is The Matrix. In mathematics, one is generally introduced to the notion through a study of linear systems of equations.  However, the applications of matrices extend so far beyond this initial example that they are almost unrecognizable. From modeling rigid transformations in physics to modeling key changes in music, matrices provide a useful model for “connecting things” in general. In order to answer the question “What is the matrix?” one needs to both understand the properties of the mathematical object and connect them with the properties of the situation in which it is applied. Doing so essentially defines a matrix, thus giving us an abstraction for the very process by which we “step out” of a system.

Decomposing Problems

I’d like to believe that one of my strengths as a mathematician is my ability to take a seemingly intractable problem and decompose it into a collection of individually solvable subproblems. As a kid, deciding that I wanted to be a mathematician was accompanied by the simultaneous acknowledgement that I could potentially devote my entire life to working on a particular math problem and still not solve it. Learning to accept that some problems in mathematics would be forever outside my grasp allowed me to focus on learning how to break down these problems into components which I might reasonably be able to solve one at a time. Rather than immediately classifying something as impossible, I reframed the problem probabilistically over time. Given some arbitrary problem in mathematics, what is the chance I will solve it in my lifetime?

Mathematics itself is a version of the “Many-Armed Bandit” problem.  Each branch of mathematics is its own little slot-machine full of interesting problems and you have to pay-to-play this game through hours of effort.  A mathematician goes around from discipline to discipline looking for that one “jackpot theorem” – a problem that is both important and within reach. Recognizing this situation as a probability problem allows you to start to separate the problem into known strategies of “playing the machine you’ve had the best luck with” and “exploring new machines”.  This, in turn, gives you new information to work with and helps you to develop more efficient methods of addressing the overall problem. 

Communicating Information 

One of the ways my philosophy towards mathematics has been changed by teaching is through recognizing the importance of the communication process in the construction of mathematical knowledge. There’s a distinction to be drawn between “knowing something is true” and “being able to convince people something is true”. Mathematics needs to do both.  I think this distinction often gets lost while doing mathematics because the vast majority of the time the person I’m trying to convince of the truth is myself.  We all think mathematics is objective because we all want to think we’re objective self-critics.  It’s effectively a self-fulfilling prophecy.

The nature of mathematical communication is probably most salient in Analytic Geometry, where there are clearly defined and connected “symbolic” and “graphical” representations. We can correlate equations like “y=ax+b” with the shape given by “a line” as determined by plotting the points which satisfy it.  They say a picture is worth a thousand words, so it should be no surprise that a good data visualization can explain a phenomena more effectively than the numbers or narrative alone. Mathematics provides me with a vocabulary to connect the representations of thoughts between “words” and “pictures” inside my head, which is a necessary prerequisite for me to explain them to another person.

Self-Reflection

Having established a set of skills I want to showcase, I’m starting to see the difficulty in using this approach to organizing my work as intended.  More often than not, these skills have such considerable overlap that the differences between them are almost invisible.  Even this document itself, which began with explicit focus on “Defining Terms”, could equally be viewed as an act of “Decomposing Problems” when looked at in the larger context of my portfolio development.  This isn’t necessarily a problem per se, but rather indicates that the terms were chosen exceedingly well.  

My original idea was to pick out portfolio artifacts that “show off” each of these skills, but I’m now beginning to wonder if I should focus on selecting artifacts that “demonstrate growth” in each skill instead.  In my attempted definition of “mathematician”, the phrase “routinely engages in mathematical thinking” is doing a lot of heavy lifting.  People don’t develop routines without repetition, and it’s normal to stumble the first few times when learning something new. In contrast, when we see “published mathematics” most of the failures have been omitted in favor of presenting the final results in the most concise form possible.

I realized that not only have I never seen a “mathematics portfolio”, it was exceptionally rare to see a professional mathematician actually “doing mathematics”. I had a guitar instructor once tell me that when people see you play on stage they don’t see the thousands of hours you spent practicing, they only see the end result of those efforts.  Likewise, a mathematician needs to project an air of confidence in their work and showing the mistakes one made along the way might be interpreted as a sign of weakness.  However, I don’t think people learn much of anything without making mistakes and mathematics is no exception.

I concluded that in order to create a mathematics portfolio I would need to start by allowing myself space to make mistakes. It’s for this reason that I resolved to publicly work my way through a text on category theory. This may seem counter-intuitive for a portfolio, but I think that categorizing my works by the areas where I had difficulties will more effectively communicate how much I’ve grown in each of these areas. The first step to making a successful portfolio is for me to make an unsuccessful one and learn where it went wrong. It’s so logical it just might work!

At the start of the year, I decided I wanted go into business for myself as a “Freelance Mathematician” and begin offering tutoring services to the general public. I’ve been tutoring off and on for decades, but usually it was done pro bono for close friends or students enrolled in a class I was teaching. I always just did it because I enjoyed it, and anyone who knows me knows how I “light up” for a tricky math problem.

Now that I’m attempting to turn the activity into a for-profit service, I figured I would need a method of advertising to reach potential clients. It’s with that in mind that I decided to revive my Twitch Channel and put it to work. “Free Tutoring Tuesdays on Twitch” is my way of balancing my philosophy of always helping others in need with the necessity of finding some stable source of income for myself.

During one of my early streams, one of my first viewers asked if I had a specific goal in Guilty Gear: Strive (GGST). While I remarked on stream that I’ve been trying to beat the “Celestial Challenge”, I’ve been thinking that it’s something deeper than that. I’m trying to beat the Celestial Challenge with a non-binary character and on a controller specifically designed for accessibility. The reason I’m streaming this game at this time is to show how efforts by game developers to create a more inclusive environment can ultimately benefit the community at large.

The unfortunately reality is that both math classes and video game communities have historically been a hostile environment for people who are not white, male, straight, and abled. These problems are often exacerbated when competition is involved. If there’s one thing I learned while teaching, it’s that feeling safe is a necessary prerequisite for learning to take place. I want to make a place where people can come to ask questions about math or fighting games without being judged for who they are or where they are in the learning process.

I made a decision to stream GGST based on a number of factors. Some of these reasons are practical, like having a Teen rating and the ability to easily stop and start as needed, but others are more personal. I could probably do a whole post on why I’m playing Testament, but one the important points is that this is probably the first time I’ve seen a non-binary character in pop-culture that felt like a full person and not just a walking cliché. Representation matters. The steps GGST has taken to simultaneously diversify the cast, desexualize the costumes, and simplify the game mechanics, have all worked together to make it one of the most enjoyable fighting games I’ve played in years.

At the same time, becoming an “older gamer” has added a new set of obstacles to my favorite pastime. My hands just don’t work like they used to, so I was really excited when Sony unveiled their new PS Access controller:

This controller has been a game-changer for me because I can layout the buttons precisely how I want them. I wanted to be able to have a button for each finger in a position that is gentle on my wrists and shoulders. I needed to buy two Access Controllers to do this, but the important point is that I could.

Two PS Access Controllers with buttons assigned in a "hit box" configuration.
The left controller has been rotated 180°, with the following button assignments: 1: up, 2: right, 3: down, 4: left, 5: L1 (dash), Center:L2, 7:L3.
The right controller is in the default orientation with the following button assignments: 1: R1 (dust), 2: touchpad (reset), 3: R3 (faultless defense), Center: R2 (roman cancel), 5: Circle (heavy slash), 6: Triangle (slash), 7: Square (kick), 8: Cross (punch)

Sony designed originally designed this controller for people with disabilities, but those same design choices have benefits for the population at large. As a math teacher, I saw a similar effect in the classroom will specifically designed instruction. By making modifications to a lesson that address the special needs of a few, you often end up with a lesson that works better for everyone. We all benefit from improved accessibility.

In summary, my goal behind streaming GGST is to encourage the recent cultural shift towards making the fighting game community more inclusive because I think a similar shift needs to take place in education as well. I think there’s many parallels between learning how to “do math” and “play fighting games”. I was inspired in part by “educational” GGST streamers, like Hotashi, Romolla, Diaphone, and Daru I-No, who are able to look at each match as an opportunity for learning. The ability to objectively examine one’s performance is as applicable to learning math as it is to learning fighting games.

I don’t expect to be winning tournaments anytime soon. My official EVO record to date is 0-2. I might not be the best player out there, but I’ve been playing games like this for a long time and have a strong background in the mathematical principles behind them. So come watch my stream, bring your math homework, and maybe we can do some learning together!

There’s no ignoring the recent wave of advancement in artificial intelligence or AI. From the near photo-realistic outputs of Stable Diffusion to the pseudo-coherent text produced by ChatGPT, generative machine learning algorithms have taken the world by storm. As someone with a background in mathematics and statistics, these are without doubt fascinating advancements that I’m interested in from a technical perspective. At the same time, I have numerous concerns about these algorithms from an ethical perspective that I don’t think I’m alone in holding. That cheesy line from Spiderman about power and responsibility rings truer now than ever. To assume that we can reap the rewards of AI without accepting any risk would be a fallacy of apocalyptic proportions.

If you’re looking for a review of the literature on the hidden risks of AI, there are more intelligent people than myself that you should probably be looking for in a peer-reviewed journal. There is very little I can say about ChatGPT that hasn’t already been better articulated in Stochastic Parrots. Instead, what I’d like to offer you today is a story of a stupid teenager and his chat bot. I don’t expect it to alter the course of history or anything, but maybe it’ll provide some insights into why you should care how these technologies are being used.

I started programming in my early teens and AI was always something of a holy grail. I was especially partial to the Turing Test as an indicator of consciousness. In this test, a computer program is tasked with deceiving a human into false believing that they are engaged in a text-only conversation with another human. Turing argued that if human experimenters couldn’t distinguish between programs and people then we’d have to consider the hypothesis that machines could effectively “think”. There are arguments to be made about whether or not the Turing Test measures what it intended to, but advances in Large-Language Models have made it clear that this standard is now just a matter of time.  In fact, I’d argue that the Turing Test was “effectively passed” in the early 1980’s by a program called ELIZA developed by Joseph Weizenbaum. 

ELIZA was designed to be a sort of “virtual therapist”. A human user could talk to the computer about things that were on their mind, and ELIZA would turn their statements around to form new questions. For example, if you told ELIZA “I had a rough day at work” it might acknowledge that you’re feeling upset and inquire about it: “I’m sorry to hear that. What about your day made it rough?”. ELIZA didn’t actually know very much about the world, but it could engage a human in a fluid and convincing conversation that led the user towards self-reflection. Some users walked away from ELIZA feeling like they were engaged in dialog with a real therapist. A recent preprint from UCSD researchers indicates that ELIZA’s performance on the Turing Test is between that of GPT-3.5 and GPT-4.0.  Not too bad for a program from the 80s. 

Of course, any deep interaction would reveal the lack of “intelligence” on the other side. ELIZA couldn’t answer questions about the world. All it could do is to classify different sentences into schema and then transform them into canned responses using key tokens from the input text. Simple rules like “I feel <sad>” would get matched and transformed into “Why do you feel <sad>?”, which gave ELIZA the illusion of being a good active listener. This might sound kind of sad, but ELIZA was probably better at active listening than I am – and I knew it all too well.

As a teenager in the late 90s, we didn’t have the pervasive social media outlets we have today. There was no Facebook or Twitter for you to doom-scroll. Maybe you had a public facing Geocities or MySpace page, but that was only if you were a nerd like myself. The de facto standard for internet communication was AOL Instant Messenger (or AIM) .  Even if you weren’t subscribed to AOL’s internet access, you probably still used the stand-alone AIM application for direct messages because it was literally the only service with enough members using it to be useful. You can’t have real-time communication without a shared protocol shared by people.

The application wasn’t even that great by today’s standards. It was full of what would now be considered negligent security vulnerabilities. In early versions, you could easily kick someone offline by sending them an instant message with some malformed HTML. If someone saved their password for easy login, it was literally stored in a file as plain text and could be subsequently looked up by anyone who knew where to check. It was the wild west era of the internet.

Around the same time, I discovered a project called ALICE.  Richard Wallace had taken ELIZA’s token handling foundation and generalized it into an Artificial Intelligence Mark-up Language (or AIML).  This separated out the “code” and “persona” of the chatbot into two separate data sources.  The HTML-like syntax made it easy to customize the bot’s responses into whatever you wanted.  The application would read these source templates in and use them to craft a response to any message you gave it. 

While I’m reading article after article online trying to figure out how this stuff works, I keep getting instant messages from people. These messages are not malicious in any way, but receiving them has a tendency to “pull me out” of whatever I’m doing at the time. Sometimes I’m pulled into fun stuff through these messages, but often than not they were just an annoyance. As a teenage boy in the 90s, the vast majority of these interactions went down like this:  

sup?

WHASSSUP?

not much, u?

just chillin’

cool deal. me too.

anyways.. I got some homework to do. I’ll catch ya later!

aight. peace out!

That’s when I got the brilliant idea to fake my own AIM account.

While exploring the flaws in the AIM application, I discovered I could hijack the message queue that distributed incoming messages to the appropriate chat window.  This allowed me to parse the incoming message text and send fake keystrokes back to that window to produce a response. All I really needed to do was to invoke the chatbot as an external process to generate something to say.

I took an open source implementation of ALICE and started modifying the AIML code.  I removed any instance where the bot acknowledges itself as an artificial intelligence and instead taught it to lie that it was me. I added custom responses for the greeting I customarily used and gave it some basic knowledge about my areas of interest.  The only difficult part of this was getting the bot to handle multiple conversations at the same time, which I managed to accomplish by running separate instances of the bot for each person to message me.

I think I let the bot run for most of the week without anyone really noticing, until this one day where I got an instant message– from a girl.  Not just any girl either, but one I totally had a crush on at the time. My heart sank as I read the messages interspersed between the AI dribble.

Ryan, are you okay?

This isn’t like you.

No really, I’m worried about you.

If there’s something wrong, we can talk about it.

Please tell me what’s going on. I’m really concerned about you.

I felt sick. I immediately killed the process running the bot and seized control of AIM again. I don’t even remember what kind of bullshit excuse I made before abruptly going offline, but I’m pretty sure I didn’t have the courage to own up to the truth.  I had been “seen” through the eyes of another person in a way I hadn’t experienced before, and the worst part about it was that I didn’t like what I saw. I saw a person who lied to their closest friends in the name of science. 

I know this won’t make up for what I did, but I’m sorry.

I’ve since then learned a lot about research ethics in psychological studies.  Sometimes having deception is a necessary component to studying phenomena you’re interested in, but that is not sufficient reason to forgo the acquisition of “informed consent” from the people involved in the study.  

I think this is the reason why I’m frustrated with the current zeitgeist regarding AI. It seems like we’re rapidly falling into the trap outlined by Ian Malcom in Jurassic Park.  Some people are so preoccupied with what they could do with AI that they don’t stop to think about whether or not they should.  As a result, we’ve all become unknowing participants in an unethical research study.  While this behavior might be excusable coming from a punk teen who doesn’t know any better, this should be considered completely unacceptable coming from multi-billion dollar companies claiming to be advancing the forefront of intelligence. It’s not that “I’m scared of AI”, it’s that “I’m scared of what people will do with AI” when they acquire that power without putting in the effort to truly understand it. 

The wave of AI images coming from DALL-E and Midjourney on all my social media don’t self-identify themselves as being artificially produced. The burden of identifying them has been left to unwitting viewers and it will only become more difficult over time. While this makes for entertaining stories on Last Week Tonight, there’s a big difference between using AI to make funny pictures to share with your friends and using it to develop sophisticated social engineering methods to separate users from their passwords.  

The reality of our time is that many AI offerings are being falsely advertised as a solution for intractable problems. No image generator could possibly produce pictures of John Oliver marrying a cabbage without first being trained on a set of labeled images including the likeness of John Oliver.  Any AI image generator trained solely on ethically produced data sets, like the one from Getty, will inherently lack the capacity to reproduce the likeness of pop-culture celebrities. Either the generative AI will fail to produce the likeness of John Oliver or it was trained on a data set including his likeness without seeking prior permission.  You can’t have it both ways.  

In much the same vein, it would be impossible to ask ChatGPT to produce writing “in the style of Ryan Ruff” without it first being trained on a data set that includes extensive samples of my writing. Obviously, such samples exist because you’re reading one right now. However, the act of you reading it doesn’t change my rights as the “copyright holder”. The “Creative Commons” licenses I typically release my work under (either CC-BY or CC-BY-NC-SA depending on context) require that derivative works provide “attribution”.  Either AI will fail to reproduce my writing style or it illegally scraped my work without adhering to the preconditions.  In the event my work is stolen, I’m in no financial position to take a megacorp to court for compensation.

In discussions about AI we often neglect the fact that deception is an inherent component of how they are constructed. How effective we measure AI to be is directly linked to how effectively it deceives us. As poor of an intelligence measure as the Turing Test is, it’s still the best metric we have to evaluate these programs. When the measure of “intelligence quotient” (IQ) in humans is a well-established “pseudoscientific swindle”, how could we possibly measure intelligence in machines? If you want a computer program that separates true statements from false ones, you don’t want an “artificial intelligence” but rather an “automated theorem prover” like Lean 4. The math doesn’t lie.

I think one of the big lessons here is that the Turing Test wasn’t originally designed with machines in mind.  I still remember discovering this when I looked up the original paper in Doheny Library. The “imitation game” as originally described by Turing was primarily about gender.  It wasn’t about a machine pretending to be a human, but rather a man pretending to be a woman.  

Personally, my present hypothesis is that Turing was actively trying to appeal to “the straights” with how he described the imitation game. My incident with my AIM chatbot had taught me that there were large differences between how I interacted with “boy” and “girls”.  Conversations with “boys” were shallow and unfeeling – easily replicated by my script. Conversations with “girls”, however, were more about getting to know the other person’s perspective to determine if we’re a potentially compatible couple.  Casual conversation and romantic courtship require two entirely different strategies. Maybe the Turing Test was less about determining if machines could think and more about determining if machines could love.

Every now and then I feel overwhelmed by the flood of interaction that is constantly and perpetually produced by social media. Sometimes I wonder if my presence could be automated so that I never miss a “Happy Birthday!” or “Congratulations!” message ever again, but then I remember this story and remember that’s not really what I want.  I don’t care about “likes”. I care about building “friendships” and there’s no possible way a bot can do that on my behalf.  

Maybe I could be a better friend if I collected data on my social interactions.  At the same time, I don’t need any sophisticated statistics to tell me that I’m kind of an asshole. I’d like to think that the people I call my friends are the same people that would call bullshit on me when necessary, so I trust in them to do so. This is the difference between real human relationships and fleeting conversations with a chatbot. 

There’s nothing inherently wrong with the class of algorithms that have fallen under the “AI” umbrella, but how we use these tools matters.  Presently these bots are being marketed as a substitute for human labor but the reality of our legal system dictates that there still needs to be a human accountable for their actions.  The only viable path to survival for AI focused companies is to become “too big to fail” before they get caught for using pirated data.

I’m not going to sit here and pretend that AI won’t have its uses. Maybe AI will come up with solutions to important problems that humans would never have thought up. If every other technique for solving a problem is unreliable, there’s less harm to be caused by attempting to solve that problem through massive amounts of data. It makes sense that such statistical tools might come in handy in fields like marketing or cybersecurity where the rules of the system are ambiguously defined.  

What is clear to me is that there exist problems for which AI will never be a viable solution. GitHub’s Copilot won’t ever magically solve Turing’s Halting Problem. It’s called “undecidable” for a reason. Using ChatGPT won’t make me a better writer, nor will using DALL-E make me a better artist. There is no substitute for the process of turning my thoughts into a concrete form, and the only way to get better at those skills is to engage in them myself. Learning the internals of how AI works may have helped make me a better mathematician, but I wouldn’t expect it to solve P = NP anytime soon. 

Given my background in teaching, I was recently asked what I thought about applications of AI in education and I think it’s incredibly important that we take an abundance of precaution with its integration. This is something I’ve written about before, but I think it merits repeating that “AI needs to build a relationship of trust with all of the stakeholders in the environment”.  In our society, we depend on teachers to be “mandated reporters” for child abuse and I don’t think AI can responsibly fill this role. Without having the lived experiences of a human being, how could such an AI possibly know what symptoms are out of the ordinary?  What if it’s wrong?

Our very notion of “intelligence” is arguably shaped by the common human experience of schooling.  In my time teaching, I learned that the profession depended as much on “empathy” as it did “knowledge”.  Most of the people I’ve met who “hate math” developed this mindset in response to abusive teaching practices.  In order for AI to ever succeed in replicating good teaching, it needs to learn “how to love” in addition to “how to think” and I don’t think it ever can.  

Even my use of the word “learn” here seems inappropriate. AI doesn’t technically “learn” anything in a conventional sense, it just “statistically minimizes an objective cost function”.  Seeing as “love” doesn’t have an objectively quantified function, it therefore it’s impossible to replicate using the existing methods of machine learning.  Even if a machine were capable of expressing love, the act of replacing a human being’s job with such an AI would go against the very definition of what it means to love.

As with any new technology, AI can be used to make our lives better or worse depending on how it’s used. Let’s not lose sight of “why” we’re constructed these systems in the first place: to improve the quality of human life. Building these programs comes with a very real energy cost in a world where humans are already consuming natural resources at an unsustainable rate. If the expected pay-off for these AI systems is less than the expected environmental costs then the only responsible course of action is to not build it.  Anyone who fails to mention these costs when it comes to their AI product should be treated as nothing short of a charlatan.

I can’t shake the feeling that we’re in the midst of an “AI hype bubble” and it’s only a matter of time before it bursts. I can’t tell you not to use AI, especially if your job depends on it, but as your friend, I feel it’s important for me to speak up about the risks associated with it. 

True friends know when to call bullshit.

TL;DR? Pick a server to join. Follow me. Share cat pics.

I’ve learned to accept that my blog posts tend to come in waves, but just because I haven’t been blogging recently doesn’t mean I haven’t been writing. In fact, I’ve been actually posting rather consistently for the past couple months over on Mathstodon. More specifically, I’ve been engaging in “Category Theory Caturday” where I share cat pics and math on a weekly basis. If you follow me on other platforms, you may have been missing some quality cat content such as this:

A meme-like format pairing photos of a large brown tabby with text. The first picture depicts the cat staring forward solemnly with the text "When the math book includes exercises.". The second picture depicts the cat staring up and off camera with motion blur around the head aside text that reads "When the math book includes parenthetical side questions.
Sample “Category Theory Caturday” photo

Now, I hate to disappoint you if you’re following me on other platforms but “Category Theory Caturday” will most likely stay exclusive to Mathstodon for the time being. I don’t want you to think you’re missing out on it, but I also want you to have a reason to join the Fediverse.

The Fediverse is not really about an app, but an idea. It’s the idea that the value of social media lies in developing a relationship of trust between participants. It’s the idea that the people who produce the content should control that content. It’s the idea that the people or hash tags you explicitly choose to follow should determine the content that appears on your feed.

The Fediverse is not Facebook or Twitter and this is simultaneously both a blessing and a curse. Social media didn’t have to be about selling your eye-time to advertisers in a never-ending quest for more click-throughs, but that is ultimately what these giant websites have sculpted it into in an effort to keep the business model sustainable. In contrast, the Fediverse solves this problem through decentralizing the social network using a common standard called ActivityPub. It’s like having a bunch of mini-Facebooks and mini-Twitters that have all mutually agreed to cross-share content between their communities. The “app” I use to connect to the Fediverse is called an open source web application called Mastodon which enables anyone to easily host their own server. However, the downside of being in a system of inter-connected communities is that you need a community to start with that can absorb the operational costs that hosting a server necessitates.

This is the hardest part about asking you to join me in the Fediverse is that in order to “join me using Mastodon”, you must first choose a home server. This is difficult because you don’t really know how this will impact your experience until you do it. Each server has its own vibe. You’re just going to have to go with your gut feeling and take comfort in knowing that you can always migrate later. Today I’d like to share my experience so that you might have a better idea of what to look for when making that decision.

I was fortunate to be part of a existing community of math teachers that migrated from (the site formerly known as) Twitter to Mastodon en masse. I’ve been on Twitter for years, so as people started posting their new handles in my feed I started adding them. It’s not even an understatement when I say that the methods of that migration were actively hindered by Twitter. The decision to join the server I did was made easy when I saw that the admin, Christian Lawson-Perfect, had added support for mathematical expressions through LaTeX. If that that doesn’t mean anything to you, that’s okay; it’s just a very specific technology that enables mathematicians to better communicate with one another. That’s the power that a properly selected home server can have on your experience. Once I chose a server, it was a fairly easy process to log in to it through the official Mastodon app on my phone. The only downside to the official app is that it doesn’t have LaTeX support (yet).

After joining a server, there were some settings that I changed that greatly improved my experience. The first was to enable dark mode, which makes it way easier on my eyes. The second was to “Enable Advanced Web Interface”, which allows you to set up a multi-column view of incoming “toots” in real time. These two changes make the Mastodon interface look and feel more like the “Tweetdeck” view I had grow accustomed to over the years. I also turned on the “Always show media” option but choose not to “expand posts content warnings”. The people in my network have been generally good about using content warnings where appropriate.

One of the advantages to being having my home server being “Mathstodon.xzy” is that I get to see my server’s “local timeline”. Each time someone from the server posts something, it shows up here. It’s really fun to see the juxtaposition of posts containing complex mathematic research with deeply personal glimpses into the lives behind it. There’s also a “federated timeline” that combines my server’s feed with a combination of every connected server, but that feed is way too fast and chaotic even for me.

One of the downsides of the platform is that the user base hasn’t quite reached critical mass yet and it can feel a bit lonely when you only have a limited number of people you’re following. I found that one of the easiest solutions was to “follow hashtags” in addition to people. This takes that federated timeline and filters it down to search terms you’ve explicitly added. I might regret following #CatsOfMastodon at a later point in time, but right now there are so few posts in general that I get an acceptable quantity of cat pics in my feed. The community driven nature of the moderation system seems to be keeping the majority of spammers away for now.

It’s important to understand that the Fediverse has something of a “do it yourself” culture behind it. I’m not going to lie to you and say that it didn’t take effort to construct a feed of interesting content, but only that what I produced was worth the effort. When I log into other platforms now, I find myself scrolling through an endless stream of the content “they want me to see”. Being able to choose the content that “I want to see” and get it is so empowering that I don’t think I can go back.

That’s not to say the platform doesn’t have problems. It does. There are going to be problems with any sufficiently large social media app. The code needs to run on a physical server somewhere in the world and is subject to laws thereof. There is a risk that the government will seize your host’s server if they suspect illegal activity. Your messages in Mastodon are not end-to-end encrypted and could theoretically be read by a server administrator. For these reasons, it’s popular for Americans like me to choose a server in the European Union where there’s better data privacy laws. You’ll also need to mitigate your own risks by not posting any sensitive information to begin with.

With that being said, if you’re looking for a social media outlet for a larger organization, you also have the power to start your own server! Perhaps your email server is a good analogy for a Mastodon instance. Sure, you can get free email from a search engine giant like Google or Yahoo, but there are hidden costs associated with it because the organization needs to “keep the lights on” somehow. Many servers, like mine, are supported through donations. Consider helping your local admin out if you’re able to.

If you’re running your own business, you can probably afford to buy a domain “YourCompany.com” so you can have a branded email address like “you@YourCompany.com” that you have complete control over. Rather than having to rely on brand recognition of an icon that could on changed spontaneously on the whims of an idiot, you can post your updates to a Mastodon instance that you control down to the bare-metal. If you don’t feel a need to go quite that far, you can still use your control of “YourCompany.com” to verify your identity on whatever server you do decide to grace with your presence. Nobody can threaten take your verified checkmark from you either!

Anyway, I hope that this post has been informative and gives you the courage to try it out if you were on the fence about it. Here’s that link to join again if you need it. I look forward to seeing you when you get there and will try to continue keeping a steady supply of math and cat pics!