Notes on Programming Languages

May 30, 2016

This past semester, I took a course on Programming Languages at NYU’s Courant Institute of Mathematical Sciences as a part of my ongoing Master’s degree in Computer Science.

Because of Professor Benjamin Goldberg’s clear and methodical presentation of the subject matter, and because this is a subject I found myself pretty comfortable with, I ended up taking some pretty thorough, detailed notes while in class. A few classmates I shared them with thought they were very useful.

I thought it would be a shame to keep it to myself, so I’ve put them up online here. Hopefully this will be useful not just to my classmates (to whom I sent this link before the exam) but also to students taking this course in the future, or anyone who has an interest in programming languages.

You can access the notes here.

Extracting Audio Messages from WeChat

December 4, 2015

Want to skip the chatter and just find out how to extract and convert WeChat audio messages? Click here to skip to the instructions.

WeChat (Chinese: 微信, wěi xìn) is a chat app popular in mainland China and used by many Chinese immigrants around the world. It’s a staple in China as much as Facebook is here, being used by pretty much everybody who has a smartphone. It was also far ahead of introducing features that are now standard in most chat apps: things like stickers, “share” messages from other apps, and audio messages were present in WeChat long before they made their way to services like Facebook Messenger.

Audio messages in particular are an interesting case: because Chinese text input is more complicated than English, many Chinese people just prefer pushing a button and speaking a short message to their friends than trying to type it out. It allows for much quicker messaging when you’re on the move.

Recently, I found myself wanting to extract some WeChat messages from my chat logs for use in a personal project. The problem is, WeChat offers no opportunity for bulk exporting chat logs: the most you can do is email a small, hand-selected set of messages to yourself, and that only brings across text content. So I found myself realizing that if I was going to do this, I needed to do it myself.

Read more…

Who Do You Think You Are?

November 2, 2015

My ethnic history is a complicated subject.

Whenever people ask me what my background is—a common occurrence in a place as multicultural as Toronto, where I lived most of my life—I can never just give a simple answer.

Some people can. For some people, their family have lived in Canada for generations. Others are recent immigrants, who were born outside the country. Still others are second-generation immigrants whose parents were both born in a country outside Canada.

With me, things aren’t as simple, because my heritage comes from two different continents. My father was born and spent much of his childhood in Europe, in Portugal. My mother is from South America, and lived in Brazil from her childhood through to her twenties. But I was born and raised in Canada, where the two of them settled down.

What this meant was that when I was growing up in Toronto, I was raised between a few very distinct and different cultures. And this diversity of experience has in many ways shaped who I am today.

Read more…

Impossible to Learn

March 30, 2015

Mandarin Chinese has a reputation for being extremely difficult for westerners to learn.

Image source: PRChinese

It’s a not an undeserved reputation. The writing system is obscure, with thousands of different characters, and there’s no way to learn them except through memorization. The language is tonal, which means that depending on the contours of the pitch of your voice, a single syllable can have many vastly different meanings. And there’s a massive cultural gap between the east and west, meaning that the idioms that Chinese people spout—most of which have root in old folk tales, literature, and history—are going to be incomprehensible to a westerner. Put all this together, and you end up with a language that presents massive barriers to adoption for people on this side of the planet.

But what if you decided to try anyway?

That’s what I did for much of last year. I didn’t commit too many resources to it: I did it in a relatively small share of my spare time, and spent little to no money on the pursuit. But by now, although I’m far from fluent, I’ve achieved a good enough understanding of the basics of the language—both spoken and written—that if I were to travel to Beijing tomorrow I think I’d be okay getting my way around.

And although it was difficult, it most certainly wasn’t impossible. In fact, in the Internet Age, the idea that something like this is “impossible to learn” is damaging and artificially limiting. If you’re able to read this article, your access to knowledge, culture, and learning resources is at a level that is completely unmatched throughout history. All you have to do is harness it.

I want to again take you through the barriers to learning Mandarin that I listed above, but this time with a more positive outlook, showing you how I used the resources at my disposal to work around them.

Read more…