Who I am
Hi, I'm Yi Fan Song, currently studying for a Bachelors of
Mathematics at the
University of Waterloo.
I'm from Xi'an, China, and I love the food from my hometown,
凉皮,
羊肉泡馍,
肉夹馍,
etc..
Send me an email.
Other ways to reach me.
My resume, usually, this website will be more up to date.
Things I do
Most of the code I've written are for the backend, but I've done a lot of frontend in the past, my interest mostly lies in backend, so that's what my own projects have mostly been about, either that or it was some tool to solve some trivial problem for myself.
A non-exhaustive list of things I've learned
- Programming languages: Typescript, Golang, SQL, Python, Lua, PHP, HTML, CSS
- Frameworks: ReactJs, React Native, Angular, Express
- Libraries: OpenCV, Scikit-image, Firebase, DiscordJs
- Misc: Docker, Nginx, REST
Things I made
-
Lots of mistakes, that's usually the quickest way to learn.
-
Shinsengumi
Shinsengumi is a moderation bot that I use for my Discord server. It is built with Typescript, because I have a strong negative opinion on Javascript because of its weakly typed nature. It uses a set of containers to run in a isolated environment from its host server. It uses mysql as the database engine in order to persist its state when it does inevitably crash. I originally planned to use deno as the runtime, but at the time, its Discord api library was not as complete as Discord.Js.
Techstack: Typescript, Node, Mysql, Docker
-
Space-kraken
Space-kraken is a client that plays the game Space Traders. I built it originally to combine gaming and programming, but it was just a fight against the clock to implement a working client before the API has breaking updates, so I seldom work on it when I have a large amount of time to spend.
Techstack: Golang
-
Format-copy-for-firefox
Format-copy-for-firefox is one of those tools I built for myself, I use it to copy youtube links with a prefix to copy paste into a Discord channel to issue a command to a bot to play music. If I ever get around to it, it might also be useful to let me copy multiple links and paste them all at once instead of scrolling through ditto.
If only I've search a bit before making it, it's always been made like 50 times. I guess this was a good excuse to learn how to make firefox extensions.Techstack: Javascript
Things I like
Of course, I do things other than programming or spending an entire day trying to get a program to work in my environment.
-
Anime/Manga
I tend to consume manga more often than anime, because it is just much more convenient and faster. My taste are pretty varied but my favorite manga is Grand Blue Dreaming. See my anime list or my mangadex list.
-
Video Games
I used to be a huge FPS player, playing Battlefield 3-4, CS:GO and Overwatch. Nowadays, I try to find some relaxing games like Minecraft, World of Tanks,
-
Gacha Games
I put Gacha Games in another category because my opinion is that Gacha Gaming is not quite the same as playing a traditional video game. I play Azur Lane, Arknights, Blue Archive (a big Yostar fanboy).
Things I think
about website design
My website is ultra light and simple because I've once read a rant on overdesigning websites and I agree with lots of the points brought up, and the simpler a website is, the easier it is to make it accessible by following the Web Accessiblity Iniatiative (WAI) guidelines. Also, I am not going to spend countless hours trying to make a fancy looking website just to learn some random animation library that will have no use besides looking nice when you have javascript turned on and don't mind loading a massive library (no offense to front-end developers), but that is simply not my area of interest.
about https
Secure your freaking website, there is no reason why in this day and age, anyone still uses http. Service like Let's Encrypt makes it free to get a certificate and there's tons of tools out there to automatically get a certificate for you and install it within a static webserver. If it's a dynamic website or some API, it's not very hard to add https to most backend frameworks, and worst case just reverse proxy it. Just add https.
about my blog
I suppose this would also contain a list of recent blogs if I ever decide to blog. [WIP]
Things I Read
I don't know who made these, but they are so well articulated with real world examples that it's hard to not take these to heart.
How to reach me
I can speak English, French or Chinese.