Lizzy Fleckenstein
aka Charlotte Pabst

disclaimer: this page is mothra(1) compatible.

pages: lizzy • valhalla • file dump • short stories • onlyfangs • twinkedin • french départements game • lagrange interpolation • aschaffenburg history game • dragonblocks • bobux generator

people: navi himbeer luatic byte chjara

Table of contents

  1. Table of contents
  2. Introduction
  3. Notable work
  4. My links
  5. Stuff I recommend
  6. Opinions

Introduction

Hi, I'm Lizzy/Charlotte. I'm a programmer, computer scientist and mathematician in my early 20s. I work for Codeweavers as a wine/proton developer, and I'm studying computer science at TU Darmstadt.

I'm an advocate for copyleft and free (libre) software. I've spent most of my teenage years hacking on various pieces of free software as well as publishing and maintaining my own projects, at times receiving a good amount of attention and contributions. Nowadays, most of my time/energy goes towards my job; and I consider myself very fortunate to be able to work on libre software professionally, at a worker-owned company with hacker culture in its DNA.

I'm primarily a systems programmer. I tend to hack on things like game/render engines, network protocols, compilers, operating systems and emulators. I prefer writing in C or Rust and I also work with C++ and various assembler languages at times. I like unix-style systems and I aim to adhere to the unix philosophy where possible. I'm a decent reverse engineer and I specialize in using decompilation (ghidra) as well as live debugging (gdb) to diagnose elusive bugs in wine (esp. pertaining to video games) where logging doesn't help.

Academically, I am interested in programming language design & implementation & semantics, compiler optimization and abstract machines, safe concurrency, functional programming, type theory (esp. dependent typing), interactive theorem proving & formal verification, especially focusing on constructive proofs (I am an intuitionist). I'm additionally interested in formal languages & complexity theory. I especially like working with the Rocq proof assistant and I also have experience with Lean and Haskell.

I have a broad range of interests besides computing & mathematics, including evolutionary & cell biology, pharmacology, linguistics, human-centric geography, vegan & vegetarian cooking, society and revolutionary/socialist/indigenous history (I am a marxist-leninist and anti-imperialist).

I'm a feminist lesbian. I tend to fluctuate a lot between butch and femme and both identities are important to me, tho lately I've been butch more often. I'm married to and living with my unix witch navi 🧭. I'm also so in love with my cyber puppy june 🌸.

I live in Germany in the Frankfurt metropolitan area, tho I've also lived in Spain in the Valencia region for a year. I'm fluent in English and German and trying to pick up Brasilian Portuguese and Spanish. I can passively understand a bit of French too.

Notable work

As part of my job, I've contributed to wine, proton, dxvk and mesa. Personal projects and activities are listed here.

Most of my projects are hosted on my github. I make heavy use of github's organizations feature, so much of my important work isn't hosted at my account directly (check out the organizations I'm in). I only list my most used/interesting work here.

Stuff I recommend

My tech stack

I use Gentoo Linux while pulling packages from its binhost where possible.

My minecraft setup

FYI: I play modern vanilla minecraft with friends on a small whitelist-enabled SMP that I run, and I am a technical player. This guide is mostly focused on my needs.

Microsoft/Mojang is becoming increasingly hostile towards its own community: requiring a microsoft account & permanently deleting accounts that didn't migrate; abuse-ridden centralized chat reporting; upcoming age verification; hostility towards anarchy-style servers; even going so far as claiming that community run servers are illegal.

As such, despite owning a Minecraft account, I do not want to log into it (or subject my friends to this) and I do not want my minecraft server to rely on Mojang for authentication. Now, cracked servers have been around for a while - disabling authentication and usually using a plugin that provides a password login via chat commands, not unlike NickServ on IRC. However this sucks. It sucks having to type your password every time and the attack surface created by bad plugin implementation or weak passwords is also a problem. Additionally, players don't have access to skins unless you install another plugin to handle that. It's a pile of hacks.

A good solution for authentication is drasl, a self-hostable auth backend for minecraft. It implements most of the same APIs that Mojang's servers offer (like for skins, chat signing etc.) and servers can be instructed to use a drasl instance for authentication using environment variables, without requiring additional modification. Drasl gives players a web interface and easy access to skins, capes and username changes. For client authentication, the Yggdrasil API is used, which is what Minecraft used to use before the Microsoft takeover/migration, but most of the other APIs are again the same. This requires authlib-injector, the easiest way to install that is using FjordLauncher. FjordLauncher is a fork of PrismLauncher, which is the gold standard for Minecraft launchers, it makes managing mods and resource packs and multiple instances of the game very easy. FjordLauncher still requires you to sign into an official Minecraft account once before giving you access to the game, this is likely to avoid breaking the Minecraft EULA. A fork called FnordLauncher lets you bypass this. This is what I use in practice.

There's a bug where the /whitelist command doesn't work correctly when using Drasl for authentication, instead you'll have to edit whitelist.json to add players in the format of [{"name":"Friend A", "uuid": "uuid with dashes"}, {"name": "Friend B", "uuid": "..."}] and then use /whitelist reload. Players can find their UUID on the Drasl web interface. Careful, if you put a syntax error in the JSON it will fail to load the whitelist and kick current players out of the game.

I like to run headless bots on my Minecraft servers when AFKing farms. It saves energy compared to running the full game, and I don't like using OP-only commands like /player from carpet mod, this crosses the line for cheating for me. To this end I've modified the azalea library to support authenticating against a Drasl backend. I also made draslbot based on it, which can do simple things like join a game and autoclick if wanted.

For server software, I strongly recommend using Fabric instead of using Paper/plugin based servers. PaperMC breaks and disables many mechanics of the game, and the plugin ecosystem is straight up far worse than the modding ecosystem. A video by cubicmetre explains why PaperMC is bad especially for technical players and sums up a lot of my frustrations with Paper. For server performance, I recommend the Lithium mod - it outperforms PaperMC's optimizations easily. Carpet mod is also helpful for monitoring performance and technical debugging tools for server operators you want them.

I use the squaremap mod on my server, it gives you a web view of the world, and it's quite useful to keep an overview of the map and important locations, and to check what's happening while not ingame. It uses an external website to get images of player heads, which assumes players use Mojang accounts. To fix this I made a CGI script that queries a Drasl backend (same API as for the Mojang backend, really) to generate a head image for the requested player using imagemagick. The heads-url parameter in squaremap's config.yml has to be changed to the endpoint, in my case https://vlhl.dev/minecraft/head/{uuid}/16. I also installed squaremarker on my server which lets players add their own markers on the web map. I use the LuckPerms mod to grant every player permission to set and modify markers.

On the client side, I also use FabricMC, and I can recommend Sodium, Iris and Lithium (+ Sodium Extra, + Reese's Sodium Options) for performance and shaders. Litematica and MiniHUD help a lot with building farms. Carpet, ChunkDebug and WorldEdit (+ WorldEditCUI) are useful design tools in singleplayer. Sound Controller helps with fine-grained disabling or lowering the volume of some peaceful mobs like villagers or cows that I tend to keep in large quantities. Finally, I use ModMenu to configure everything.

I can recommend the Enchant Order tool that helps you calculate the optimal order to apply enchantments and easily lets you max out your gear with the minimum amount of levels.

TODO: I eventually want to run an IRC chat bridge on my server. I have not found a good mod for this yet. Feel free to reach out to me if you find something that works well.

Interesting websites

Programming

Humor

Note: most of these are old, some have a bunch of unfunny boomer humor (i.e. the "joke" is sexism), but still ultimately have some gems as well.

Other

Video Games

Anime/Manga/Cartoons

Opinions

Socialism

Socialism is a complex political theory, but I'll do my best to explain the very basics here.

What is up with capitalism?

In our current capitalism system, there are, for the most part, two classes:

Sidenote: Not everyone fits into this categorization neatly. Some people are disabled and cannot work (more on that later), some people work in their own small business or work for a union or worker's collective, some are government employees. What matters tho is that the majority of the economy is dominated by employer/employee relationships like the ones I've described. Children/students and retired people are still workers/working class, because they will spend/have spent the majority of their lifetime working.

There are two major conclusions from this.

  1. This system is fundamentally unfair. Workers generate all the value, all the profit that companies make. Without the workers there is no product, no service, nothing to make money from. But they have no control over the fate of their company, and often the vast amount of the profit they generate is owned and taken away by someone else. This is known as wage theft.
  2. There is an inherent conflict between the economic interests of the capitalist class and the working class:

    The workers want better working conditions; they want higher pay, and they want more say in how the company is run.

    The capitalists, generally, benefit from the opposite. The less money workers make, the less breaks they get, the harder they have to work, the more profit the capitalist makes - at least in the short term. Additionally, the capitalists benefit from making workers scared to lose their job, so that workers will tolerate more for less compensation. This means that they will lobby against things like unemployment safety nets, labor laws, unions, heathcare and housing for all.

    All of this is known as class contradiction.

    Sidenote: Does this mean all business founders are evil? No, of course not, and growing a business from scratch is a difficult task that should be valued in society. It just means that when a business gets too big, the economic interests of its owners start working against the economic interests of its workers. There are ways to avoid becoming evil. For one, you can transition your company to an employee owned one and still end up as a multi-millionaire living a comfortable and good life. (By the way - I work for such a company. It's genuinely awesome.)
    But all of this is besides the fact that most businesses are sold off to investors anyway, so the people who own it contributed nothing but, at some point, money. Having rich people participate in stock market gambling to make a profit off other people's work is not valuable for society. This is not something we need. It's just the way that our economy is currently organized.

What does all of this lead to?

Capitalism is inherently contradictory, it consists of two forces with opposing interests. Such systems have never lasted in the past; they have always been overthrown by violent revolutions that have improved the conditions for the oppressed majority: slave economies, feudalism, absolutism, colonialism. This struggle is known as class conflict, and it naturally arises from class contradictions.

What could a better alternative look like?

First of all, workers should own the businesses they work in and reap the very profits that they generate. They should democratically elect their own bosses, and decide what amount of the profits stay on company accounts for future investments and expansion, and what amount is paid out to employees on top of their salary. Essentially the same thing we already do under capitalism, except that instead of shareholders and investors, it's the workers themselves that run everything and reap the benefits. A labor-based economy like this is known as socialism.

Of course, this still leaves many issues unaddressed. Ultimately, the most just system would be a needs-based economy: An economy in which everyone has to work according to their ability, and each is allocated resources according to their needs. This is known as communism, and it is, of course, an utopia for now. Still, it is something that we can and should work towards in a socialist, or even a capitalist system:

Why haven't we achieved it yet? Why are socialism and communism portrayed as evil and/or a failed system?

Well, in short, because it goes against the interests of the rich capitalists. Controlling money means controlling resources, and controlling resources means power - that's how it has always been in history.

Elections are largely decided by billions of dollars from corporate sponsors. Elected officials are corrupt and the course of politics is decided by lobbying. This is pretty well-documented - there is a Princeton Study on the matter that concluded that the USA is not a democracy, because whether a certain bill passes or not has basically no correlation at all with what the bottom 90% of society prefer, and a lot of correlation with what the top 10% of society prefer.

On top of that, capitalists own most of the media. They produce mountains of red-scare propaganda to make people believe that socialism is when you share your toothbrush with your neighbor.

And for decades the CIA has murdered countless democratically elected socialists in Latin America and Africa, and the USA has sabotaged and waged wars both military and economic on any socialist or communist country, and has done absolutely everything to make it seem like socialism always fails without exception.

It's because the capitalists make it fail.

So what can we do to better the situation?

The biggest advantage that we have over the capitalists is that there is significantly more of us than of them. But to harness this advantage, as many people as possible need to understand the situation that we are in (class consciousness), and workers need to stick together and see each other not as economic enemies but as comrades in a struggle against a common enemy (class solidarity).

There are many things we can do. Organize. Have solidarity with our fellow workers. Talk to them about (dis-)satisfaction with company policy or pay. Join a union or socialist organization. Read socialist theory. Educate others. Go on strikes and demonstrations. Understand that immigrants and minorities are not your enemy, but capitalists are. Have solidarity with people who are homeless and/or jobless. It could happen to you, too.

Labor organization has achieved so much. Without it, we wouldn't have the weekend, minimum wage or the 40-hour workweek. While the only way to truly resolve class contradiction is an inevitable revolution and reorganization of society, we can improve working conditions under capitalism - not via electoral politics, but by putting the capitalists under enough pressure to force them to make concessions.

What about the other stuff?

There is still so much that I haven't addressed.

For further reading I recommend:

The Web

The www was originally created for sharing interconnected information (Markdown is, in many ways, what HTML originally aimed to be).

It has developed into a general-purpose application platform, today the web is probably the primary way to deploy end user applications. While such a technology is in itself useful and beneficial, it is built on frameworks created for manually writing documentation (HTML and CSS), which makes it, in many ways, fundamentally flawed.

Additionally, the strong focus on network interaction and applications that store data on a server rather than on the client machine creates privacy concerns. Lastly, the web has also been perverted from it's original purpose. Because fancy web technologies exist, everyone and their grandma thinks they have to use them. This has lead the accessibility of information to suffer; instead of providing you with information in a simple and readable manner, many sites throw fancy graphics and interactive/reactive elements at you.

Abusing web technologies like this hurts everyone:

Please, if you make a website that hosts information, keep your frontend simple and at least free of JavaScript and complex frameworks. Yes, I know you're a great programmer and want to show off your web development skills. But making a good website is a lot more about what you chose to leave out than what you chose to add. Show some restraint.

Intellectual Property

Intellectual property is the single most harmful thing humanity has ever created.

Applying the restrictions of physical objects to intellectual goods like ideas, media and software which are infinitely reproducable and sharable is a stupid, made up, concept that obviously primarily hinders the progress of humanity.

Since files can easily be copied, intellectual properly is largely ineffective at protecting people who want to sell their work. Piracy is easy, and tracking down pirates costs more than it's worth (depending on their opsec). Many people who pirate also wouldn't even be finanically able to purchase the product they are pirating, and estimates of losses are almost always inflated by disregarding this simple fact. DRM mostly worsens the quality of the product and worsens the paying user's experience, while being insecure by design (it can always be bypassed, it's just a matter of effort).

In practice, any small or medium sized entity producing intellectual goods professionally already can't rely on restricting the produced good, and has to enter different business models. E.g. selling support for software, offering cloud services/hosting, relying on trust/donations, doing art comissions etc. Copyright and intellectual property often even harm creators (every few years there is a new copyright strike drama on youtube).

Intellectual property exists to protect the interests of big companies who have the resources to take each other to court, and who want their "infinite money glitch" to go on forever (Being able to copy and sell software infinitely after it has been written).

IP is not a tool of justice or equality.

The FSF

I agree with the FSF on the issue of intellectual property, I use their GPLv3 License for my projects, and I use many pieces of GNU software. This does not mean that I full endorse (or reject) the FSF and Stallman however.

Stallman has been associated with questionable takes in the past, and I find the FSF's behavior regarding naming issues (GNU/Linux vs. Linux, Free Software vs. Open Source) especially childish. If it gets the point across, there is no need to bitch about it. Use whatever terminology you want to.

The FSF also sees itself as an ethical authority regarding stuff like licenses or git hosters and is - again - very stubborn about it, in a way that doesn't really benefit them or the free software movement in any practical sense. I really don't care a lot about whether the FSF approved the license of a program I use. It seems like a hubris to me.

I'm also not too exclusionary about using free software, if proprietary software is useful to me, I will use it (Games are a notable example). I'd much rather use free software alternatives, but if there are no alternatives or existing alternatives are significantly worse I'd rather use software that (in some cases hypothetically) restricts my freedom. Apply some pragmatism. It must be noted however that it's crucial to not coerce people into using proprietary software. Being able to choose to, or choose not to consensually give up parts of your freedom should be part of freedom itself.

GitHub

GitHub is proprietary and sucks in several ways, feature-wise. However, it's not primarily just a storage for your code, it's a social media platform. It's used to discover and collaborate on software. It's used by employers to discover people. I use GitHub for the same reason I use twitter and reddit. It's not so much about the features of the platform, it's about the (amount of) people that use it.

Using a more free alternative to GitHub is cool, self-hosting a git service is very cool, but I still see large advantages to using GitHub.

Cryptocurrency

As an advocate of digital decentralization and federation, I fully understand the appeal of decentralized currencies. Ideally, currencies would not be dependent on central entities. In practice however, there are several major issues:

  1. Many popular cryptocurrencies (like Bitcoin), contrary to popular belief, are not private/anonymous at all. Monero is the most well known exception to this (secure, private, and untraceable).
  2. Cryptocurrencies suck for the reason all currencies without inherent, non-speculative value (which are all currencies that are at all practial) suck. Investing in crypto (just like investing into stocks, property or anything else) is nothing but gambling.
  3. Even tho there is no central authority that can "infinitely print money" (which btw is an oversimplification of how governments interact with central banks), cryptocurrencies are a lot more unstable than fiat currencies because significantly less people use them and even less people actually understand how they work.
  4. Many blockchains are very centralized, with some entities controlling large parts of the network's hash rate. As an individual miner, you are stongly disadvantaged since dedicated ASICs are exponentially better at mining crypto than CPUs and GPUs usually built into PCs. Monero attempts to combat this by utilizing an ASIC proof algorithm which prevents devices that specialize on mining Monero, but even the Monero blockchain has been shown to be highly centralized. Entities who have a lot of fiat (like governments, banks and large corporations) are able to heavily exercise control over blockchains by acquiring the devices used to increase hash rate. Because the "real world" economy is so unjust and imbalanced, crypto is going to be as well. It's inseparable.
  5. Proof of Work mining (which most currencies including Bitcoin and Monero use) is disastrous for the environment. To mine crypto, extreme amounts of energy and resources used to manufacture hardware are wasted.
  6. Proof of Stake mining (which e.g. Ethereum uses) just benefits those who already posses, which heavily reinforces points 2. and 4.

TL;DR I recommend against using crypto unless you have a good reason. For the most part, crypto is useful for illegal and half-legal transactions, e.g. exercising free financial control as a minor (working and getting paid etc.), buying drugs or medicine (Such as DIY HRT for trans people). If you need to use crypto, use Monero.