Driving

September 9th, 2010

I didn’t really care much about cars, or driving, before this year. I used to think owning a car and driving is a hassle, a responsibility, a burden (which is still true to some degree). This mentality explains why I didn’t follow the path of many of my peers when I was a teenager, rushing to get my driver license. Instead, I didn’t start learning how to drive until about two years ago, and didn’t get my license until about two months ago. Since then, I’ve driven a lot, and have begun to really enjoy driving. I find that driving alone is an incredibly serene experience.

When you’re in the driver’s seat of a car, you’re isolated from the outside world. You’re in a pod that glides gracefully across the road. You can crank up the music as loudly as you want, sing at the top of your lungs, and no one’s gonna interfere. When you’re in a car, you’re in your own little world. The destination is where you want to be, but getting there is definitely half the fun.

Roadtrip

May 28th, 2010

After four intense years of UC Berkeley, I have finally graduated from college. I’ve been in school for as long as I can remember and now it is all over, at least for many years to come. It is a strange feeling to not have to think about homeworks, exams, and grades. But I’m grateful for that; I never really enjoyed those aspects of school. What I’ve always enjoyed, and will miss dearly, is the process of learning, applying what I’ve learned to projects, and of course, all my friends. School was one hell of a journey.

What lies ahead of me is the “real world”, a place I was fortunate enough to experience a bit of while in school (jobs and pokedream.com). But from now on, it will be 100% real world. No hand-holding. No safety nets. No harnesses. There’s nothing to fall back on. I have my eyes fixed on the long road ahead of me. I can see it’s filled with plenty of twists and turns, bumps and potholes. They all make the roadtrip that much more fun. I’ve never been more excited in my whole life.

Reflection

August 14th, 2009

A coworker of mine asked me what my plans are ten years down the road — or even five years. I’m really glad she asked me this, because I don’t think I’ve seriously considered this in a long time. The past few years have been filled with lots of busy-work, leaving little time for me to step back and look at the bigger picture. What is it that I want to accomplish? What is my biggest goal in life? I hesitated when responding to my coworker, but I think I expressed to her something that’s buried within me and hasn’t seen the light of day for quite a while.

My dream is to change the world for the better through technology. This is a very vague and fluffy dream. There are many, many ways to meet this goal. But, as of now, the way I want to do this is to start a company that delivers revolutionary products. Not evolutionary, but revolutionary. I want to start a company that makes a tremendous impact. I envision that it’ll all start with one great idea. Not just any idea, but a mind-blowing, simple, yet revolutionary idea. I haven’t a clue what that idea will be or what will lead me to that idea. But one thing I’ve learned over the years and that I’m certain of is that opportunities come for the ones who are prepared. I’ve been preparing, am preparing, and will be preparing for that moment when that idea hits me. Whether it be alone or with a group of people, I’ve got to be ready. And I stress that this has to be a revolutionary idea, because an ordinary idea won’t turn people’s heads. It has to be something that’ll change things forever.

I don’t know when this will happen, but I know it will happen. Only time will tell. Until then, I will continue doing what I love and loving what I do, while always keeping my dream in the back of my head.

Summer Plans

June 3rd, 2009

I think to-do lists are extremely useful; they help you identify and focus on your tasks. Here is a list of things I want to accomplish this summer, in no particular order:

  1. Make a Pong game for the iPhone
  2. Finish polishing Cocoa Tetris
  3. Play through Pokemon Platinum and update my Pokemon Diamond/Pearl Walkthrough
  4. Finish refactoring PokeRep
  5. Work through four chapters of my algorithms textbook
  6. Work through three chapters of my computer graphics book
  7. Get acquainted with OpenGL
  8. Update my personal website with more content

Keep in mind I want to do all of this on top of working a full-time internship. If you are curious about any of this, feel free to talk to me (email, IM, phone, whatever) about it. I’m happy to elaborate. :)

Impossible is Nothing

March 22nd, 2009

I recently came upon a JavaScript Tetris game built in under 10 hours — I was thoroughly impressed. The code was very concise, the programmer spent very little time working on it, and the game works great. Perhaps most impressive of all, it ran using JavaScript and DOM manipulation right in your browser (in other words, it’s not Flash), a rather unnatural way to run a game. I was immediately inspired to make my version of JavaScript Tetris.

I had never coded a game before or done such intensive DOM scripting. I couldn’t imagine how long it would take me or how hard it would be. It was a challenge for me, but I love to be challenge. I love to try new things. Every minute I spent working on the game was fun-filled and action-packed. I learned a ton from making this game. In the end, I was able to produce a basic, fully-functioning Tetris in 12.5 hours over a period of a few days.

I impressed myself. What an amazing feeling! :)

Genesis

December 28th, 2008

This winter break marks the end of my fifth semester at Berkeley. My pursuit of a degree in computer science has so far been an amazing intellectual experience. I consider myself very lucky to be where I am and doing what I’m doing today. Of course, that luck resulted from all the work I put in over the past two and a half years, during which I’ve lived a life consumed by virtually non-stop work. While there have been plenty of frustration and hardships, I loved every minute of it. I’d just like to take a moment to reminisce the beginning of this journey.

I entered Berkeley knowing I would be studying computer science. While I hadn’t done any real programming prior to college (I mainly did web design, and a touch of PHP and JavaScript), I was fascinated by computers. To start off, I enrolled in CS 61A, Berkeley’s introductory CS course covering a wide range of programming paradigms, with an emphasis on functional programming in Scheme and recursion. CS 61A was designed for students who had prior programming background, requiring that students know recursion. But I didn’t even know how to write a program, much less know recursion. I naively thought the class was going to be a piece of cake; after all, I learned HTML all by myself when I was 11. I was dead wrong.

CS 61A turned out to be the toughest class I’d ever taken. I completely hit a brick wall when it came to recursion, which was used in nearly all of the course material. They weren’t kidding when they listed knowledge of recursion as a prerequisite. Although I did well in most homeworks and projects, I completely fumbled on exams. No matter how much I practiced and studied, I just couldn’t seem to grasp the material and be able to demonstrate what I learned. I spent more time on CS 61A than all my other classes combined, yet I did the worst in it. Never had I done so poorly in a favorite class of mine that I put so much time into. I felt scared, lost, and hopeless. Was CS the right choice? Why was it so difficult? I was at a loss for answers.

I remember once in office hours, the professor even suggested that CS probably isn’t the right path for me. I didn’t want to believe that. However, considering my performance in the class at the time, that did seem like a valid claim. But I was in love with the material — computer science was the most beautiful thing I’d ever encountered. There’s a saying that goes something like this: “Many things in life will catch your eye, but only a few will catch your heart — pursue those.” Computer science had captured my heart. I wasn’t about to give it up.

As the semester progressed, I got better and better. Topics became clearer, exam scores went up, and I met an incredible friend who continues to inspire me to this day. However, in the end, I still received an unsatisfactory grade, and still had doubts that I’d gained a full understanding of the material. It was an incredibly challenging start of the path to a Berkeley CS degree. Nonetheless, CS 61A turned out to be an extremely rewarding class that taught me concepts I would hold onto forever.

Bonfire

November 22nd, 2008

Last night, for the first time, I went to Cal’s annual bonfire before the big game. It was an amazing incredible display of school spirit. Everyone (students, faculty, alumni) was cheering on their Golden Bears with so much energy and pride. We cheered, sang, danced, did the wave, listened to the history of the Big Game and the Axe, and filled the stadium with candles at the end. And, at the same time, we dissed Stanfurd in all the ways you can think of. Thanks to Wendy for convincing me to go! GO BEARS!

4-Day Coding Session

November 20th, 2008

So it’s been a bit over a month since I last posted, and a lot has happened — especially in my CS 162 Operating Systems class. On Monday, my team had finally turned in our third and most challenging project, where we had to implement virtual memory and deal with the TLB. This project was really due last Friday, but we somehow managed to focus so much attention and put so much detail into our design document (a required portion of every project) that we didn’t write a single line of useful code until 2 p.m. on the day it was due. Oh yeah, the due date was even extended by a day from Thursday to Friday. Wow, were we screwed or what.

Amazingly, over the next four days (the Friday it was supposed to be due, the weekend, and the Monday we turned it in), spending an around 10 hours a day, we coded and debugged like mad. Luckily, we had tremendous endurance, faith, and a few slip days to burn. I’ve never slept so little and programmed so intensely. It was so epic.

The autograder results are back and we didn’t do too poorly considering our situation: 13 out of 14 tests passed. This experience has taught me a lot. Although I’m glad it’s over, I also kind of miss it. Yeah, I know I’m crazy. Now for project four…

Taking Notes on the Computer

October 17th, 2008

Word processing on the computer is something we’re all very used to when we write reports, essays, letters, etc. They’re so useful because one can type with ease and go back later for extremely flexible editing. If one needs to add that special adverb in the middle of a sentence to get just the right punch out of that sentence, one can easily insert that word in a word processor. Compared with traditional pen-and-paper, one must probably write that new word somewhere else and use special notation to indicate the insertion. The situation is made much worse for entire paragraphs or ideas to be inserted in the middle of a page. Deleting stuff is just as bad. And, of course, in the end, one would have to rewrite the entire paper if it was done on pen-and-paper. What a mess.

Okay, so I’m stating the obvious. But, sometimes, things are so obvious I fail to realize them. After all these years, I continue to use traditional paper notebooks to take notes for classes. More than half my notes are notes for my textbook readings. Very often, I find myself wanting to add little things here and there upon reaching the end of a chapter. That’s a complete pain to do with paper notebooks. It’s so messy to the extent that I usually end up not writing down those few extra bullet points, which results in suboptimal notes. But, how’s this for an idea? I can read through my book as usual, take my notes as usual, but I can reorganize and add or remove stuff effortlessly. What’s more, in the end, I can get a clean page of the very best notes that are extracted from the readings, without rewriting a thing. Wow. Okay, but that’s just using a word processor. Oh, I didn’t realize that.

So, from now on, I will take notes (in particular, my reading notes) on my computer. There’s really no point in taking physical paper notes anymore and end up with ugly cross-outs and left-out bullet points. I’ve seen a lot of other students doing this already, but only now have I given it a serious thought. And, immediately, it becomes obvious that this is a no-brainer. E-notes for the win!

By the way, the only downside to this method of taking notes is that I wouldn’t be able to draw diagrams quickly with a word processor. But, I guess that’s what a large glass trackpad with multi-touch technology is for. ;)

A Month

September 27th, 2008

It’s been a month since school started. In this month, I’ve made new friends, learned the basics of an operating system, gained new concepts, and refined old ones. The first project in CS 162 (Operating Systems) has been tough, yet fun and exciting. So far, it’s been great. But, midterm exams are approaching, and I’ve got to lay out a battle plan.

I did great on nearly all my first midterms last semester, a first for me. I plan on doing the same this time, but preparing even more and having even more confidence. Basically, I want to pwn my midterms, which generally hasn’t happened in college. However, I’ve realized the general strategy for doing well on midterms (still haven’t figured this out for finals, unfortunately), and I shall exercise this semester. In the next few weeks, I’m going to go through as much practice material I can to prepare for the midterm. I’m going to review my notes over and over again. Ready or not, midterms, here I come!