Me in Suzhou, China
A picture of me in Suzhou, China, December 2019. (full resolution)

Quick Links

Links about me:

Site navigation:

About Me

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, computers, and bicycles 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:

Eric Zheng
20 years
Holmdel, NJ
Current Residence
Pittsburgh, PA
Current Occupation
Student (computer science, algorithms and complexity concentration)
Editor of Choice
Operating System of Choice
Favorite Language
Σ\Sigma^\star, because if it’s not in DTIME(1)\mathrm{DTIME}(1), it’s clearly 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 a functional programming class, I’m contractually obligated to answer this with “Standard ML” for the rest of my life
Favorite Breakfast Cereal
Probably Apple Jacks—the orange ones are my extra favorite
Favorite Translation of the Bible
As my friend 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:

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:

Of course, I’m not going to throw out your email if you don’t follow these “rules,” but they will make me happier, 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:

Colophon: About This Site

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: e(S,T)dSTnλST. \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.