forked from cadey/xesite
parent
c7b2db9d54
commit
b46138c03d
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "xesite"
|
||||
version = "2.3.0"
|
||||
authors = ["Christine Dodrill <me@christine.website>"]
|
||||
authors = ["Xe Iaso <me@christine.website>"]
|
||||
edition = "2018"
|
||||
build = "src/build.rs"
|
||||
repository = "https://github.com/Xe/site"
|
||||
|
|
|
@ -0,0 +1,105 @@
|
|||
---
|
||||
title: You Win, Broken Database Schemas
|
||||
date: 2022-01-10
|
||||
tags:
|
||||
- rant
|
||||
---
|
||||
|
||||
There is [no software that correctly handles
|
||||
names](https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/)
|
||||
that exists on this planet. One of the major things I have bashed my head into
|
||||
as of late is the assumption that people have a first and a last name. The first
|
||||
name is usually what identifies the person, and the last name usually identifies
|
||||
the family.
|
||||
|
||||
I have wanted to use `Xe` as my name places (no last name, like Socrates), but
|
||||
everyone has broken database schemas that make it impossible. These schemas
|
||||
usually look like this:
|
||||
|
||||
```sql
|
||||
CREATE TABLE IF NOT EXISTS people
|
||||
( id VARCHAR PRIMARY KEY DEFAULT (uuid4())
|
||||
, first_name VARCHAR NOT NULL
|
||||
, last_name VARCHAR NOT NULL
|
||||
-- draw the rest of the owl
|
||||
);
|
||||
```
|
||||
|
||||
And as a result things like `Xe` (no last name) cannot fit into this schema. I
|
||||
have found out the depth of this shitshow while trying to use my handle as my
|
||||
name on newly registered account things and the amount of stuff that breaks or
|
||||
works in weird ways is _staggering_. Email salutations look like this:
|
||||
|
||||
> Hello Xe ,
|
||||
|
||||
Forms will break if I don't put a last name in the field. The assumptions about
|
||||
names are _so deep_ that it's rapidly becoming not worth it to only have my name
|
||||
as `Xe`. Not to mention [overzealous journalists that will argue with you over
|
||||
what your name is due to name
|
||||
collisions](https://twitter.com/theprincessxena/status/1479197000667181061?s=20).
|
||||
|
||||
You win, broken database schemas. I give up trying to deal with you to encode my
|
||||
name correctly. You just don't let me and I am tired of fighting it, opening
|
||||
support tickets and arguing with people over what my name is. I give in. I'm
|
||||
going to use a last name for my handle, which is absolutely ridiculous, but here
|
||||
we are.
|
||||
|
||||
It took me a few hours to dig through ideas over the weekend and today, but I
|
||||
think I have found something satisfactory enough that I can keep it for the long
|
||||
haul: [Iaso](https://en.wikipedia.org/wiki/Iaso) (ai-uh-so, /aɪ.ə.soʊ/), the
|
||||
minor Greek goddess of recovering from illness.
|
||||
|
||||
Hopefully I don't have to deal with professional issues as a result of me trying
|
||||
to be more true to myself about my identity. At the very least I want very
|
||||
little to do with the last name that I was born into. Some day that name will be
|
||||
removed from the last database with it set, but today is not that day.
|
||||
|
||||
If you work on systems that handle names, please, please, please take the time
|
||||
to reconsider if you actually need to deal with a last name for more reason than
|
||||
it's the cultural standard. There are valid reasons to have a mononym, and by
|
||||
supporting mononyms you will make people's lives easier.
|
||||
|
||||
Until then, I am `Xe Iaso`. Let's see where this phase of the identity
|
||||
experiment goes. It's still really complicated. Anyone who claims to have their
|
||||
identity figured out is either in denial or stopped digging into it for the time
|
||||
being. The rabbit hole truly never ends.
|
||||
|
||||
The main thing I don't like about this name is how ambiguous it shows up in
|
||||
sans-serif fonts:
|
||||
|
||||
<div style="font-family:sans-serif">
|
||||
|
||||
Xe Iaso
|
||||
|
||||
</div>
|
||||
|
||||
It looks like `Xe laso`. I've edited my email signature to try and compensate
|
||||
for this:
|
||||
|
||||
```
|
||||
Xe Iaso (zi ai-uh-so)
|
||||
https://christine.website
|
||||
|
||||
.i la budza pu cusku lu
|
||||
<<.i ko snura .i ko kanro
|
||||
.i ko panpi .i ko gleki
|
||||
```
|
||||
|
||||
Let's see if that helps. It will probably look bad when things are put into
|
||||
sans-serif fonts, but what can you do lol.
|
||||
|
||||
---
|
||||
|
||||
Also I would _prefer_ you call me `Xe` from now on when possible. This conflicts
|
||||
with and supercedes suggestions I made in [this article](/blog/xe-2021-08-07). I
|
||||
consider most of that experiment to have worked out and I am going into the next
|
||||
phase, albeit less "pure" than I wanted.
|
||||
|
||||
Thank you for sticking with this blog. This started out as a place for me to get
|
||||
better at writing but has rapidly turned into something that has helped me
|
||||
explore my identity in ways that I never would have thought it would. Thanks for
|
||||
following the rabbit hole. Thank you for supporting me being more authentic to
|
||||
myself about who I am. Your support means more than you possibly will know.
|
||||
|
||||
I wonder if my SEO craft is strong enough to get me high on the list of google
|
||||
results for `Iaso`.
|
|
@ -3,6 +3,16 @@ title: "Xe"
|
|||
date: 2021-08-07
|
||||
---
|
||||
|
||||
EDIT(2022-01-10):
|
||||
|
||||
If you are a journalist and using this article as evidence for not calling me
|
||||
by the name I am asking you to, please reconsider your actions and strongly
|
||||
consider the idea that I am the expert and only person that can create true
|
||||
statements about what my name is and how I want my identity to be presented
|
||||
professionally. Also don't [compare it to Blackwater IN ANY
|
||||
WAY](https://twitter.com/theprincessxena/status/1479197000667181061). See [this
|
||||
article](/blog/broken-database-schemas-2022-01-10) for more information.
|
||||
|
||||
## Or: Identity is Complicated
|
||||
|
||||
You might have noticed that I have changed my listed name on this website to Xe.
|
||||
|
|
|
@ -45,7 +45,7 @@ let Config =
|
|||
{ signalboost = [] : List Person.Type
|
||||
, authors =
|
||||
[ Author::{
|
||||
, name = "Xe"
|
||||
, name = "Xe Iaso"
|
||||
, handle = "xe"
|
||||
, picUrl = Some "/static/img/avatar.png"
|
||||
, link = Some "https://christine.website"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "cfcache"
|
||||
version = "0.1.0"
|
||||
authors = ["Christine Dodrill <me@christine.website>"]
|
||||
authors = ["Xe Iaso <me@christine.website>"]
|
||||
edition = "2018"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "go_vanity"
|
||||
version = "0.2.0"
|
||||
authors = ["Christine Dodrill <me@christine.website>"]
|
||||
authors = ["Xe Iaso <me@christine.website>"]
|
||||
edition = "2018"
|
||||
build = "src/build.rs"
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[package]
|
||||
authors = ["Paul Woolcock <paul@woolcock.us>", "Christine Dodrill <me@christine.website>"]
|
||||
authors = ["Paul Woolcock <paul@woolcock.us>", "Xe Iaso <me@christine.website>"]
|
||||
description = "Parser for the JSONFeed (http://jsonfeed.org) specification\n"
|
||||
documentation = "https://docs.rs/jsonfeed"
|
||||
homepage = "https://github.com/pwoolcoc/jsonfeed"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "mi"
|
||||
version = "0.1.0"
|
||||
authors = ["Christine Dodrill <me@christine.website>"]
|
||||
authors = ["Xe Iaso <me@christine.website>"]
|
||||
edition = "2018"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "patreon"
|
||||
version = "0.1.0"
|
||||
authors = ["Christine Dodrill <me@christine.website>"]
|
||||
authors = ["Xe Iaso <me@christine.website>"]
|
||||
edition = "2018"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
|
|
@ -1 +1 @@
|
|||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPrz5T/RdragJF6StZm92JZKPMJinYdw5fYnV4osiY8Q Christine Dodrill <me@christine.website>
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPg9gYKVglnO2HQodSJt4z4mNrUSUiyJQ7b+J798bwD9 Xe Iaso <me@christine.website>
|
|
@ -6,7 +6,7 @@
|
|||
"display": "standalone",
|
||||
"scope": "/",
|
||||
"start_url": "/",
|
||||
"description": "Blog and Resume for Christine Xe",
|
||||
"description": "Blog and Resume for Xe Iaso",
|
||||
"orientation": "any",
|
||||
"icons": [
|
||||
{
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# Christine Dodrill
|
||||
# Xe Iaso
|
||||
|
||||
#### Full-stack Engineer
|
||||
|
||||
##### Montreal, QC   [christine.website][homepage]
|
||||
##### Ottawa, ON   [christine.website][homepage]
|
||||
|
||||
`Docker`, `Git`, `Go`, `Rust`, `C`, `Stenography`, `DevOps`, `Heroku`, `Continuous
|
||||
Integration/Delivery`, `WebAssembly`, `Lua`, `Mindfulness`, `HTTP/2`, `Alpine
|
||||
|
@ -22,6 +22,8 @@ Linux`, `Ubuntu`, `Linux`, `GraphViz`, `Progressive Web Apps`, `yaml`, `SQL`,
|
|||
|
||||
- Go programming
|
||||
- Nix and NixOS
|
||||
- SQL integrations
|
||||
- End-user facing blog content and customer support
|
||||
|
||||
### Lightspeed - Expert principal en fiabilité du site   <small>*2019 - 2020*</small>
|
||||
|
||||
|
@ -132,86 +134,26 @@ Linux`, `Ubuntu`, `Linux`, `GraphViz`, `Progressive Web Apps`, `yaml`, `SQL`,
|
|||
- Built new base image for Deis components
|
||||
- Research and development on a new builder component
|
||||
|
||||
## Portfolio Highlights
|
||||
|
||||
### [Olin](https://github.com/Xe/olin)
|
||||
|
||||
An embeddable userspace kernel for executing WebAssembly programs.
|
||||
The main goal of this is to allow for an easier migration to another CPU
|
||||
architecture (such as RISC-V, aarch64 or ppc64be) without having to recompile
|
||||
existing code.
|
||||
|
||||
I have written multiple blogposts on this project:
|
||||
|
||||
- https://christine.website/blog/olin-1-why-09-1-2018
|
||||
- https://christine.website/blog/olin-2-the-future-09-5-2018
|
||||
- https://christine.website/blog/olin-progress-2019-12-14
|
||||
|
||||
As of March 21, 2019, Olin is able to run binaries compiled with [Go 1.12.x
|
||||
WebAssembly support](https://github.com/golang/go/wiki/WebAssembly). Olin also
|
||||
is known to work on big-endian systems with no changes needed to source code or
|
||||
binaries.
|
||||
|
||||
It also supports security policies similar to a combination of the OSX sandbox
|
||||
profiles and OpenBSD's pledge() system call. This allows users to limit the
|
||||
scope of what resources an Olin program can access, including file URLs, the
|
||||
amount of ram that can be used or the number of WebAssembly instructions that
|
||||
can be executed.
|
||||
|
||||
### [Wasmcloud](https://tulpa.dev/within/wasmcloud)
|
||||
|
||||
Wasmcloud is a Heroku or AWS Lambda-like functions as a service backend and
|
||||
platform for event-driven architecture built on top of WebAssembly. It wraps
|
||||
[Olin](https://github.com/Xe/olin) and provides a lot of higher-level
|
||||
conveniences for users. I have written [a
|
||||
blogpost](https://christine.website/blog/wasmcloud-progress-2019-12-08) on my
|
||||
progress and where I'm wanting to go with this project.
|
||||
|
||||
### [ilo Kesi](https://github.com/Xe/x/tree/master/discord/ilo-kesi)
|
||||
|
||||
A chatbot that parses its commands through the grammar of the constructed
|
||||
language [Toki Pona](http://tokipona.org), then figures out what the user is
|
||||
asking for using a lookup table and executes that request.
|
||||
|
||||
### When Then Zen
|
||||
|
||||
[When Then Zen](https://when-then-zen.christine.website) is meditation instructions translated into Gherkin, a-la:
|
||||
|
||||
```
|
||||
Feature: Anapana (mindfulness via breathing) meditation
|
||||
Background:
|
||||
Given no assumption about meditation background
|
||||
And a willingness to learn
|
||||
And no significant problems with breathing through the body's nose
|
||||
And I am seated or laying down comfortably
|
||||
And no music is playing
|
||||
|
||||
Scenario Outline: mindfulness of breathing
|
||||
As a meditator
|
||||
In order to be mindful of the body's breath
|
||||
When I <verb> through the body's nose
|
||||
Then I focus on the sensations of breath
|
||||
Then I focus on the feelings of breath through the nasal cavity
|
||||
Then I focus on the feelings of breath interacting with the nostrils
|
||||
Then I repeat until done
|
||||
|
||||
Examples:
|
||||
| verb |
|
||||
| inhale |
|
||||
| exhale |
|
||||
```
|
||||
|
||||
This has been well-recieved by coworkers, friends and others. I have written more on the subject [here](https://christine.website/blog/when-then-zen-anapana-2018-08-15).
|
||||
|
||||
## Writing
|
||||
|
||||
> Articles listed below will be either personal or professional and do not reflect the views of any company or group I am affiliated with. The writing is my own, with the help of others to make things legible.
|
||||
> Articles listed below will be either personal or professional and do not
|
||||
> reflect the views of any company or group I am affiliated with. The writing is
|
||||
> my own, with the help of others to make things legible.
|
||||
|
||||
- [My Blog](https://christine.website/blog)
|
||||
- [I Put Words on This Webpage so You Have to Listen to Me Now](https://christine.website/blog/experimental-rilkef-2018-11-30)
|
||||
- [NAS 101: An intro chat about Network Attached
|
||||
Storage](https://tailscale.com/blog/nas-101/)
|
||||
- [The Sisyphean Task Of DNS Client Config on
|
||||
Linux](https://tailscale.com/blog/sisyphean-dns-client-linux/)
|
||||
|
||||
I have gotten to the front page of [Hacker News](https://news.ycombinator.com) several times. Here are a few of the comment threads:
|
||||
|
||||
- ["Open Source" is Broken](https://news.ycombinator.com/item?id=29522941)
|
||||
- [The Surreal Horror of PAM](https://news.ycombinator.com/item?id=29167560)
|
||||
- [Systemd: The Good Parts](https://news.ycombinator.com/item?id=27175960)
|
||||
- [I Implemented /dev/printerfact in
|
||||
Rust](https://news.ycombinator.com/item?id=26845355)
|
||||
- [A Model for Identity in Software](https://news.ycombinator.com/item?id=25978511)
|
||||
- [I Put Words on This Webpage so You Have to Listen to Me now](https://news.ycombinator.com/item?id=18577758)
|
||||
- [TempleOS: 1 - Installation](https://news.ycombinator.com/item?id=19961082)
|
||||
- [WebAssembly on the Server: How System Calls Work](https://news.ycombinator.com/item?id=20066204)
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<title>Xe's Blog</title>
|
||||
<updated>@Utc::now().to_rfc3339()</updated>
|
||||
<author>
|
||||
<name>Xe</name>
|
||||
<name>Xe Iaso</name>
|
||||
<email>me@@christine.website</email>
|
||||
</author>
|
||||
<link href="https://christine.website/blog.atom" rel="self"/>
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
<!-- Description -->
|
||||
<meta name="description" content="@post.front_matter.title - Xe's Blog" />
|
||||
<meta name="author" content="Xe">
|
||||
<meta name="author" content="Xe Iaso">
|
||||
|
||||
@if post.front_matter.redirect_to.is_none() {
|
||||
<link rel="canonical" href="https://christine.website/@post.link">
|
||||
|
@ -40,12 +40,12 @@
|
|||
@},
|
||||
"author": @{
|
||||
"@@type": "Person",
|
||||
"name": "Xe",
|
||||
"name": "Xe Iaso",
|
||||
"alternateName": "Christine Dodrill"
|
||||
@},
|
||||
"publisher": @{
|
||||
"@@type": "Person",
|
||||
"name": "Xe",
|
||||
"name": "Xe Iaso",
|
||||
"alternateName": "Christine Dodrill"
|
||||
@}
|
||||
@}
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
<li><a href="https://keybase.io/xena">Keybase</a></li>
|
||||
<li><a href="https://ko-fi.com/A265JE0">Ko-fi</a></li>
|
||||
<li><a href="https://www.patreon.com/cadey">Patreon</a></li>
|
||||
<li><a href="https://www.facebook.com/chrissycade1337">Facebook</a></li>
|
||||
<li><a href="https://twitch.tv/princessxen">Twitch</a></li>
|
||||
<li><a href="https://pony.social/@@cadey">@@cadey@@pony.social</a></li>
|
||||
<li>Fortnite: Within Reason</li>
|
||||
<li><a href="irc://irc.libera.chat/#xeserv">Liberachat: #xeserv</a></li>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
</div>
|
||||
<hr />
|
||||
<footer>
|
||||
<blockquote>Copyright 2022 Xe (Christine Dodrill). Any and all opinions listed here are my own and not representative of my employers; future, past and present.</blockquote>
|
||||
<blockquote>Copyright 2012-2022 Xe Iaso (Christine Dodrill). Any and all opinions listed here are my own and not representative of my employers; future, past and present.</blockquote>
|
||||
<p>Like what you see? Donate on <a href="https://www.patreon.com/cadey">Patreon</a> like <a href="/patrons">these awesome people</a>!</p>
|
||||
<p>Looking for someone for your team? Take a look <a href="/signalboost">here</a>.</p>
|
||||
<p>Served by @env!("out")/bin/xesite</a>, see <a href="https://github.com/Xe/site">source code here</a>.</p>
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
<!-- Description -->
|
||||
<meta name="description" content="@post.front_matter.title - Xe's Blog" />
|
||||
<meta name="author" content="Xe">
|
||||
<meta name="author" content="Xe Iaso">
|
||||
|
||||
<link rel="canonical" href="https://christine.website/@post.link">
|
||||
|
||||
|
@ -36,12 +36,12 @@
|
|||
@},
|
||||
"author": @{
|
||||
"@@type": "Person",
|
||||
"name": "Xe",
|
||||
"name": "Xe Iaso",
|
||||
"alternateName": "Christine Dodrill"
|
||||
@},
|
||||
"publisher": @{
|
||||
"@@type": "Person",
|
||||
"name": "Xe",
|
||||
"name": "Xe Iaso",
|
||||
"alternateName": "Christine Dodrill"
|
||||
@}
|
||||
@}
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
@{
|
||||
"@@context": "http://schema.org/",
|
||||
"@@type": "Person",
|
||||
"name": "Xe",
|
||||
"name": "Xe Iaso",
|
||||
"alternateName": "Cadey, Christine Dodrill, Xena",
|
||||
"url": "https://christine.website",
|
||||
"image": "https://christine.website/static/img/avatar_large.png",
|
||||
|
@ -29,17 +29,17 @@
|
|||
<!-- Twitter -->
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta name="twitter:site" content="@@theprincessxena" />
|
||||
<meta name="twitter:title" content="Xe" />
|
||||
<meta name="twitter:title" content="Xe Iaso" />
|
||||
<meta name="twitter:description" content="Full-stack Engineer" />
|
||||
|
||||
<!-- Facebook -->
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:title" content="Xe" />
|
||||
<meta property="og:title" content="Xe Iaso" />
|
||||
<meta property="og:site_name" content="Full-stack Engineer" />
|
||||
|
||||
<!-- Description -->
|
||||
<meta name="description" content="Full-stack Engineer" />
|
||||
<meta name="author" content="Xe, Christine Dodrill">
|
||||
<meta name="author" content="Xe Iaso, Christine Dodrill">
|
||||
|
||||
<div class="grid">
|
||||
<div class="cell -3of12 content">
|
||||
|
|
|
@ -17,8 +17,8 @@
|
|||
<meta property="og:site_name" content="Xe's Blog" />
|
||||
|
||||
<!-- Description -->
|
||||
<meta name="description" content="@post.front_matter.title - Christine Dodrill's Blog" />
|
||||
<meta name="author" content="Xe">
|
||||
<meta name="description" content="@post.front_matter.title - Xe's Blog" />
|
||||
<meta name="author" content="Xe Iaso">
|
||||
|
||||
<link rel="canonical" href="https://christine.website/@post.link">
|
||||
|
||||
|
@ -36,12 +36,12 @@
|
|||
@},
|
||||
"author": @{
|
||||
"@@type": "Person",
|
||||
"name": "Xe",
|
||||
"name": "Xe Iaso",
|
||||
"alternateName": "Christine Dodrill"
|
||||
@},
|
||||
"publisher": @{
|
||||
"@@type": "Person",
|
||||
"name": "Xe",
|
||||
"name": "Xe Iaso",
|
||||
"alternateName": "Christine Dodrill"
|
||||
@}
|
||||
@}
|
||||
|
|
Loading…
Reference in New Issue