• My resume, because after all, I am a student who'd like a job.
• My Github profile, which isn't terribly active but is a rather fashionable thing to have on a website.
• My Keybase profile, which contains links to a couple of my other online identities, as well as my public key.

I'm Eric. I currently go to school in Pittsburgh. Before that, I grew up in New Jersey. I guess my life is mostly dominated by math and computers now. Maybe you came here to learn more about me, in which case I'm sorry to say that I'm really not that exciting. If you were looking to employ me, perhaps check my resume. If you were looking for juicy personal details, there are a few below, although I can't vouch for how interesting you'll find them:

Name
Eric Zheng
Age
20 years
Hometown
Holmdel, NJ
Current Residence
Pittsburgh, PA
Current Occupation
Student (computer science, probably algorithms and complexity concentration)
Editor of Choice
Vim
Operating System of Choice
Debian
Favorite Language
$\Sigma^*$, because if it's not in $\mathrm{DTIME}(1)$, it's not worth knowing
Oh, that kind of language
I once had some claim to being decent at Latin, although my skills have declined (pun partially intended)
Oh, that kind of language!
Having been a TA for 15-150 (functional programming), I'm contractually required to answer this with "Standard ML" for the rest of my life
Favorite Breakfast Cereal
Apple Jacks in general, but I like to mix it up a bit
Favorite Translation of the Bible
As Richard Yan calls it, the "Extra Spiritual Version" (ESV)
Favorite Mathematical Theorem
I feel like Gödel's first incompleteness theorem is a bit of a lame answer, but I had to plug my essay somehow! As a CS major, I feel somewhat obligated to say it's the PCP theorem. But part of me has always loved Kempe's universality theorem.

Hopefully this is enough for you to pass any of those pesky "security questions" and impersonate me!

# Contact Information

I've been a happy man ever since January 1, 1990, when I no longer had an email address. I'd used email since about 1975, and it seems to me that 15 years of email is plenty for one lifetime.

Donald E. Knuth

If you so desire, you can contact me via email. (I am not so much a purist as Donald Knuth, above, and at any rate I probably don't receive nearly as much email as he does.) The following addresses will get to me, listed from most preferred to least preferred:

• ericzheng@cmu.edu, or equivalently ericzhen@andrew.cmu.edu. This goes to my university mailbox. I kind of regret not reserving ez@cmu.edu, because it's so short and cute.
• zheng.eric.y@gmail.com. This goes to my personal mailbox.
• z_lucian@hotmail.com. This is that embarrassing email that we all made in middle school. (I believe the name comes from the 39 Clues book series.) This email is not preferred and exists for legacy reasons.
• 06f6cb@protonmail.com. I suppose that for "ethical" reasons it's good to support non-Google and non-Microsoft email, although truth be told I check this very infrequently. All of my common aliases were taken, so I decided to just run with echo "ericzheng" | sha256sum | head -c 6 as my username.

If you are so inclined, here is my PGP key. The fingerprint is 343F 641A ABBC 684F D4B3 62F5 61BE 1E3C 5557 FFDF, if anyone actually checks those.

On another note, in the interest of promoting general usage of healthy email standards, if you do email me, I'd really appreciate it if you could do the following:

• Provide a descriptive subject line: This is self-explanatory.
• Use plaintext: I read my email with Mutt these days, so if you send me HTML email, there is no guarantee that I will see the same thing that you are sending. Particularly offensive are "emails" that are really just big images.
• Keep text width to about 72 characters: This really helps when displaying email in a terminal, and it gives ample rooom to indent quotes in replies.
• Refrain from top posting: Okay, I think we lost the battle on this one, especially after Gmail made it the default. I guess interleaved posting is a bit like "whom" in that it's not the end of the world if you don't use it, but I definitely notice when someone does.

Of course, I'm not going to throw out your email if you don't follow these "rules," but they will make me happeier, and they will make me think you are terribly smart and fashionable, if you care about my opinion at all.

For historical curiosity, here is a list of old email addresses which no longer work:

• erzheng@ctemc.org. This was my high school address, which was deleted when I graduated.
• zhenge@holmdelschools.org. This was my middle school address. I still remember fondly those long email chains that we'd keep up, since email was our primary means of communication in middle school.
• ezheng1@stevens.edu. This was a temporary email address that I had one summer while I was at Stevens.

This is a present from a small, distant world, a token of our sounds, our science, our images, our music, our thoughts, and our feelings.

Jimmy Carter, on the Voyager Golden Record

I guess I maintain this website mostly as a means of self-expression. Consider it my little message in a bottle in a vast digital ocean. (Sorry, I never said I was good at metaphors.) I don't expect very many people to read these words, and that's fine.

I started this site back in the summer of 2018, when I was in high school. The technology stack is quite simple: the pages are a mix of hand-written HTML/CSS and Markdown, which I then build with a "static site generator" (okay, it's really just Pandoc + a couple of short bash scripts). I try to avoid Javascript where I can. It's currently being hosted on Gitlab Pages, which offers some more flexibility than Github Pages. If you're interested in digging up embarrassing past information about me, you can clone the old Github repository and take a look. Do note that the Github repository is no longer kept in sync with the official version on Gitlab.

When it comes to the design, one might complain that it's not easily digestible, and it's easy to get lost. I'm okay with that; I love it when I stumble across unique, bizarre labyrinths of websites out in the wild, and I figured that I'd contribute my own specimen to the Web. If someone ever sends me an email over losing an afternoon browsing my site, I think I can say that I have succeeded, even beyond my original aim. Of course, there is not yet enough content here for that to happen.

Over the summer of 2020, I started a project to make a personal wiki, first using Org Mode and then using Vimwiki. This was mostly just to have a place to dump links, files, notes, etc., since I frankly don't have enough "biological disk space" to store everything that I need. Unfortunately, the semester intervened, and I never got a chance to really polish it into a publishable state. I'm considering consolidating the things in that wiki into this site.

One technical issue that has perennially plagued me (and about which I've probably written ad nauseam) is the rendering of mathematics on the Web. As someone who studies a technical field, it's naturally very helpful to have good math typesetting available when writing down my thoughts. Math is obviously never going to look beautiful in a terminal (although Vim tries its best with Unicode characters), but I am somewhat frustrated by the current options for displaying math on the Web.

As a matter of personal taste, I would prefer not to require any client-side Javascript to render content; I want to keep the viewing experience as simple as possible. I've finally settled on post-processing every page with , directly rendering into HTML. Ideally I'd like to keep the build dependencies of this site to a minimum (and in particular, not require Node), but generally seems like the best option, and at least everything remotely "sketchy" is handled on the server-side; everything that the client receives is just HTML. Here's an example of what the rendering looks like, with the expander mixing lemma:

$\left\lvert e(S,T) - \frac{d|S||T|}{n}\right\rvert \le \lambda\sqrt{|S||T|}$

Of course, one could always just distribute a nice PDF of anything that requires math, or even convert the binary's output to SVG (similar to the way Wikipedia does it), but this is not always ideal. It's quite unfortunate that MathML hasn't really caught on.