Posts

  • The Blogging Gauntlet: May 23 - Why Do I Blog?

    This is part of The Blogging Gauntlet of May 2016, where I try to write 500 words every day. See the May 1st post for full details.

    A while back, one of my friends asked why I started blogging. Amazingly, I’ve never explictly laid it out, so I figured it was worth writing about.

    ***

    First off, I’m blogging because I want to. This is obvious to the point of vacuousness - of course I wouldn’t write blog posts if I didn’t want to. Who would? Still, that doesn’t explain why I have this motivation to write. After thinking about it, I’ve ultimately decided I blog for mostly selfish reasons.

    Everything comes back to my perspective on writing. Writing is the process of turning explicit thoughts into words. Thinking about writing, on the other hand, is the process of turning implicit thoughts into explicit thoughts.

    This can take a very long time. I have a hard time explaining my points in person. It may just be my general social awkwardness, but often I feel like I want to say something and can’t because I don’t know how to explain it properly. If I try, it gets muddled into a ton of rambling that doesn’t go anywhere.

    By blogging, I give myself an outlet for practicing turning vague notions into concrete words. It may not come out perfectly, but all I’m looking for is getting experience at explaining my thoughts.

    With that in mind, let’s look at the posts I’ve written so far. I would broadly classify them into the following categories.

    • Posts on topics I understand well. These are all technical posts, and are about problems with known solutions. The post is spent presenting and framing the solution the right way.
    • Posts on topics I’ve been learning about recently. These are things I don’t understand very well yet, and trying to articulate them forces me to condense my understanding into simpler terms.
    • For lack of a better word, discussion posts. These are posts where I try to present my point of view on a topic. They’re essentially life observations, things a person might post on Twitter or Facebook.

    Writing posts on topics I understand well only helps train my framing, because I know the ideas well enough to have most of my feelings be explicit already. Accordingly, I’ve written very few of these posts, reserving them for ideas I find exceptionally cool. Yes, it feels good to teach something new, but writing a good teaching post takes forever, and I don’t have the motivation to sustain it.

    Writing posts on topics I’ve been learning about, on the other hand, is good for raising awareness on ideas that I think should be more well known. At this point, I don’t know enough to make a judgment call on whether the idea is worth researching more, but I do know it’s interesting enough that someone else may want to research it more. It helps me organize the new information I’ve just received.

    That leaves discussion posts. In these posts, I’m forcing myself to evaluate my own beliefs and become more aware of my implicit thoughts. Depending on how much I’ve reflected on my world views, these posts either come naturally or are a huge pain to write. In the worst case, organizing all the disparate threads of thought into a coherent narrative takes days to disentangle.

    Now, note that these are all things I’m doing for me. I’m making blog posts to help organize my own thoughts, to help figure out my position on things. There’s very little I’m trying to do for anybody else.

    I suspect the only reason I’m okay with writing a ton of blog posts is that I have very few inhibitions against sharing my thoughts on the Internet. I have friends who would never, absolutely never, share their life stories without careful consideration. Somehow, my barriers against this are much lower.

    (Also, I’d be lying if I didn’t point out I was also writing this blog to try to make myself interesting. Come one, come all, sue me for my insecurities when I know awesome people! Get in line, I’ve got first dibs.)

    Of course, pointing out your own selfish motivations doesn’t stop them from being selfish. It just makes you more honest. And besides, a lot of good things in the world happened for selfish reasons. If you like this blog, hopefully you consider it as one of them.

    Comments
  • The Blogging Gauntlet: May 22 - Super Meat Boy's Instructive Design

    This is part of The Blogging Gauntlet of May 2016, where I try to write 500 words every day. See the May 1st post for full details.

    I play a lot of video games. They’re fun!

    I’ve learned a bit of video game design, and it’s really interesting. Much like cinematography, there’s so much you don’t consciously recognize until someone points it out to you. Good design is invisible, and it’s much easier to notice its absence than its presence. That can make design infuriatingly difficult to understand, so today I decided to explain what I’ve learned so far.

    Before I get into the meat of things, I should cite my sources. I’m cribbing from the Sequelitis video on Mega Man (warning: lots of swearing) and the TVTropes page for Instructive Level Design.

    ***

    As I’ve said before, video games take place in a constructed world. The first thing any video game does is teach you those rules. If you don’t know the mechanics, how are you supposed to play the game?

    What makes video games unique is that they can teach you the rules while you’re playing the game, without ever explaining them to you outright. This is what makes well-crafted video games so fun to me. It feels like I’m genuinely learning something. I get guided through simple challenges, which are then composed into larger ones. When done properly, playing a game feels like solving a puzzle where your subconscious already has part of the solution. Everything flows.

    Let’s talk about Super Meat Boy. It’s a really, really well designed platformer. It’s also hard as balls, but only in the later levels. The first world is easy, because it focuses on teaching the core mechanics.

    Here’s the first level, 1-1.

    1-1

    Easy enough. To beat this level, you have to jump to the raised terrain on the right side, then jump left to the middle platform. You can’t jump directly to the middle platform, and failing to do so teaches you how high your jump is.

    You touch Bandage Girl (the pink square) because there’s nothing else in the level, and after a few loading screens you move to 1-2.

    1-2

    Wow, Bandage Girl is really high and there’s no platforms to reach her! You might get curious and try jumping to the terrain on the left. If you do, you’ll learn you die if you go outside the level.

    Once that happens, the only thing left is to jump towards the wall. You try pressing buttons, and learn you can walljump to cover vertical space. Walljumping up the corridor takes you to 1-3.

    Also, note the decorative buzzsaw. It’ll come up later.

    1-3

    This gap is too big to cross unless you hold the run button before jumping. Also, more decorative buzzsaws.

    1-4

    So many buzzsaws! This level takes the walljump you learned in 1-2 and makes sure you know how to do it. So, you start jumping, and then you notice something - the screen scrolls.

    1-4-2

    This tells you that levels in Super Meat Boy may be bigger than one screen. Note we’re never worried about going out of bounds - by the time we reach the edge of the initial screen, we’ve seen the screen scroll. This primes the player to continue jumping to the top, even if they died by going out of bounds on 1-2.

    1-5

    The natural inclination is to go up. Why not left? Well, if you went left on 1-2, you died, but if you didn’t, note this part I’ve circled in red.

    1-5-2

    It’s incomplete. There must be more to the level off the top of the screen. We know the screen scrolls, so let’s go up. The only way to go up is to do walljumps off a single wall, so now you know how to do that too.

    So to recap, here’s the game mechanics learned so far.

    • You can jump.
    • The goal is to get to Bandage Girl.
    • You can walljump between two walls, or off the same wall.
    • You die if you go out of bounds.
    • You can run, and that gives you a larger jump.
    • Some levels are larger than one screen, and the game will scroll if they are.

    This is all taught in the first minute of gameplay, with no environmental hazards. This all builds into 1-6.

    1-6

    This is the first level where you can die by something other than going out of bounds. By this point, decorative sawblades have appeared in the past few levels, so seeing them as a stage hazard is no surprise.

    At this point, the player will jump and walljump their way to Bandage Girl. They’ve been taught everything they need, even if they don’t recognize it, and if they hit a sawblade, it’ll be their fault.

    Comments
  • The Blogging Gauntlet: May 21 - Fearful Symmetry

    This is part of The Blogging Gauntlet of May 2016, where I try to write 500 words every day. See the May 1st post for full details.

    I was hesitant to write on this topic, because I care about it a lot and didn’t want to mess it up. Eventually I decided it was worth writing a beta post.

    Last month, Anca Dragan gave a presentation on her work in human-robot interaction. Anca is one of those terrifyingly smart people that make you feel slightly ashamed about yourself. She did a PhD at CMU, was nominated for several best paper awards at top robotics conferences, and was hired straight out of her PhD to a assistant professorship at Berkeley.

    The event was hosted by FEM Tech, a new student organization that, quote,

    promotes gender diversity and inspires women from all majors to excel in technology careers. Through organized seminars, mentorship programs, training workshops, and networking events, FEM Tech will provide a supportive community for all majors to create meaningful connections with like-minded women. We hope to excite new interest in tech and provide support for women already in STEM majors.

    (FEM Tech website)

    The event was billed as open to everyone, but I didn’t go. I was very busy that week, and the event description sounded like it wouldn’t go into enough depth to be interesting to me. Or rather, that is the excuse I gave myself.

    In truth, I walked towards the event, and saw almost everyone there was female. I wasn’t comfortable with that, so I turned around and went back to the library.

    I only grasped the full implications when I was at the library doors. I wasn’t comfortable with an all-female room, at a time when many women in tech have to deal with an all-male room. Oh, so that’s what that feels like. Did deciding not to enter that room make me part of the problem?

    ***

    Several of my friends are worried about the reasonable chance Trump has at becoming president. Of course, the majority of my friend group is planning to back the Democratic nominee. (What, you were expecting me to know a Berkeley CS student who would vote for a Republican? Tell me if you find one of those, because that’s a rare breed.)

    Some have semi-jokingly talked about finding ways to live in Europe next year. Many are seriously worried about the damage a Trump presidency could cause.

    Meanwhile, I’m thinking about the 2008 general election, and the voters who gave their all to stop an Obama presidency. I’ve seen interviews from volunteers for the McCain campaign - some were truly frightened about how an Obama presidency would erode American values, destroy the economy, and send the US into a death spiral.

    I listen to the conversation with a blank face. So now we understand what it feels like, to see a candidate we truly fear. A candidate who we believe will rip the nation asunder. That fear is nothing new. It existed before, exists now, and will always exist. This year, we get to see it with our own eyes.

    ***

    It doesn’t feel like I’ve had a tough life.

    Yes, I went to a challenging high school, and a tough college. I’ve definitely had struggles. But, it doesn’t feel like I’ve had to work as hard as other people. I’ve never had to worry about failing a class. While students vent about a final’s difficulty, I walk out feeling like I solved every problem.

    That has to mess with my empathy. How am I supposed to effectively cheer up a student for the class I’m TAing, if I got an A+ while they find mod math inscrutable? How am I supposed to understand implicit prejudice, when I’m a male Asian in Silicon Valley? How do I justify avoiding crazy working hours, when those in poverty have to deal with them out of necessity?

    I view suffering as input-independent. It doesn’t matter if someone is crying because their salary is below $100,000, or if they’re crying because they didn’t have enough to eat. The inputs don’t entitle us to write off the suffering of a privileged person. Suffering is symmetrical, no matter the cause. Fixing those causes may have wildly varying costs, but we should still strive to empathize with that suffering.

    We should try, and yet it feels like I don’t. I can walk to an artisan tea shop every day and ignore the homeless on the streets. I don’t understand what it feels like to view the police with fear, or my bank account with dread, and I never want to. I’m in a position where I can avoid these issues, and quite reasonably decide I don’t want to add pain into my life for the sake of having pain in my life. Suffering is symmetrical, and I choose to avoid it.

    Tyger, tyger, burning bright
    In the forests of the night,
    What immortal hand or eye
    Could frame thy fearful symmetry?

    (William Blake, The Tyger)

    ***

    Yesterday, I lost. I didn’t finish my post in time. I have to donate $20 to some effective charity, and it feels like I lost. It’s going to help people, and it feels like I lost.

    I don’t know how to reconcile that, and some part of me doesn’t want to.

    On days like these, I have to wonder. Which is worse - always living with wool worn over your own eyes, or taking the wool off and pulling it back on by your own accord? And in the end, which will I choose?

    Comments