Month: February 2005

  • Do you know Java?

    Object-oriented programming has been around for quite some time now.
    And Java is undeniably the language/platform most widely heard of, for
    the simple reason that even non-geeks eventually have to use the
    technology while browsing the web. In case you do not know already:
    most, if not all, of the social games offered by Yahoo! use Java.

    Because Java is so widely used, a lot of aspiring computer scientists
    or software engineers like to do a little something in Java so they can
    claim they know Java in their resumé. I believe it’s really easy to
    tell if somebody really knows Java though, even if they write down Java
    as one of the programming languages they know. So here are things to
    keep in mind while writing anything related to Java in your resumé, so
    that you don’t sound like you don’t know what you are talking about:

    1. Java is not really just a programming language. It’s a whole
      platform, consisting of 3 parts: the Java virtual machine, the Java
      language (syntax), and the Java API;
    2. In my opinion, the 3 parts ordered in decreasing importance are:
      the Java API, the Java virtual machine, and the Java language (syntax).
      1. You see, the power of the Java comes from the API (i.e. the
        huge collection of predefined classes, interfaces, and packages that
        accompany each version of the Java platform). If you don’t know how to
        use the API effectively, there is no point in knowing the language
        syntax because otherwise you would probably end up reinventing many
        many many wheels (stuff already in the API).
      2. Second in importance to the API is the virtual machine. The
        problem comes from the fact that the Java virtual machine exists for
        many different platforms (Windows 32-bit, Linux, Mac OS, cellphones)
        and each implementation has its quirks and bugs. Once you have adapted
        your Java code to work on one platform, you may find the same code broken on another
        platform. So please remember this: “Write once, debug everywhere.”
      3. Now you see how insignificant the Java language syntax is, compared to the API and the virtual machine.
    3. This may sound rude to some people: the decision makers in the
      development and evolution of the Java platform are, ironically, quite
      undecided. They “like” to make changes from one minor version to
      another and some of these changes are either irritating or annoying
      (like the addition of typesafe enum only
      in version 1.5.0). Therefore, unless you are an important and longtime
      contributor to the development and evolution of the Java platform,
      chances are that you don’t know Java; at best, you know some version(s) of Java.

    Given the above, the two general rules are:

    1. If possible, don’t write Java in the “Programming Languages”
      section. Mention it as a “Development Platform” instead. There is a big
      difference between knowing the development platform and knowing just
      the language syntax;
    2. Always state which version of Java you know (e.g. write “J2SE 1.4.2″ instead of “Java”).

    Now, some of you probably have noticed that Java is listed among
    my expertise on the left side of the blog. Why have I not included a
    version number as I encourage you to? The truth is: I really don’t know
    Java that well. I have just started working with J2SE 1.4.2 and I still
    can’t tell the difference between this version and, say, 1.4.1. At
    best, I know the syntax.

    - SwordAngel

  • Source of Confidence

    I think tonight I finally understood something: parents are not good
    sources of confidence. Whenever you are about to start a new project in
    life, you have to be extra careful and strong-willed when discussing
    about it with your parents. Don’t ever expect them to pat your shoulder
    and say “go for it” in a straightforward manner – if you need a pat on
    the shoulder, go talk to your sibblings or friends instead. On the one
    hand, parents give good advice at times. On the other hand, the very
    same parents will always
    try to
    strip you of every single bit of confidence that you may have built-up
    in anticipation to the new project. If they don’t bluntly say “you
    can’t do it” in the present tense, they will at least bring out all
    their worst memory fragments about you, in order to convince you how
    immature or naïve, or what a failure you were, are, and will always be.
    You can’t blame them. They love you and are afraid to see you get hurt in your new project.

    So here are things to keep in mind when talking with your parents:

    1. Listen to their advice because your parents have, after all, built up a couple of decades’ worth more wisdom than you;
    2. Your parents will never
      understand completely accurately, even at the highest levels of
      abstraction, what you are doing or thinking because they lived your age
      a couple of decades ago. In other words: the way things worked around a
      22-year old in the 1970′s probably differs from the way things work
      around a 22-year old today, in subtle yet important manners. This is
      particularly true if your parents have not grown up where you are
      living now;
    3. Your parents will always treat you like a baby. Don’t let them delude you: you have grown up no matter what they think;
    4. As a result of items 2 and 3, before accepting as truth the aforementioned advice from your parents, you should carefully analyze its applicability in today’s context;
    5. You can safely ignore the bad memory fragments that your parents
      bring out, for the simple reason that they are in the past and that you
      have grown up and hence changed;
    6. Confidence is not something that you should try to obtain from
      other people. There is a reason why the term “self-confidence” exists:
      it comes from within yourself, not from other people.

    - SwordAngel

  • Tired Engineers…

    Yesterday the team of software engineering project worked the whole
    day, from 10:00 to 00:00, on our task manager software project. Aliott,
    Google Queen, and Dominatrix left at midnight sharp. We were supposed
    to leave at midnight but apparently Timmy and Rostopher were waiting
    for
    each other to pack up, and I was waiting for the both of them to pack
    up. Yes, we were all very tired. I finished making mock up web pages
    and Timmy dragged me to try code some Java. And then Rostopher took
    over, made more changes to the database schema and I spent the rest of
    the time half watching half zoning out. We ended up leaving the school
    at 4:00 in the morning instead.

    This is what happens when you have 3 tired engineers working:

    Figure 1. This is Rostopher going crazy without getting drunk


    Figure 2. The pizza box is the overtime-working engineer’s best friend.


    Figure 3. This is me working on UI mock-up, trying to ignore the
    conversation between Timmy and Rostopher about changing (again) the
    database schema.


    Figure 4. This is Timmy waiting for Rostopher to pack up.

    - SwordAngel
  • A Simple Guide to Student Mystification

    It’s been a while that I have not presented more teacher survival techniques. So here is the third one.

    Fine Print

    The
    name of the technique suggests small writing. It sounds pretty simple:
    if you write small, then people can’t read. Unfortunately, that’s not
    the whole picture. There are several important points to remember in order to effectively apply Fine Print:

    1. Fine Print does not work on paper or in electronic form because
      then anybody can just use a magnifying glass or increase the font size;
    2. Fine Print works on blackboard and whiteboard (until students bring binoculars to class);
    3. A corollary to the two points above is to never distribute
      classnotes in paper and/or electronic form because it would defeat the
      purpose of Fine Print on blackboard/whiteboard;
    4. Fine Print works best in a badly set up classroom, ideally a
      computer lab measuring over 40 feet deep (from blackboard/whiteboard to
      back of the room);
    5. Depending on the subject matter, a bad accent in the teaching language may be helpful;
    6. You need an excuse to use Fine Print, even if it’s a stupid one.
      Don’t tell the students that you are writing small just because you
      like it.

    I will provide an example with a few photos later on.

    - SwordAngel

  • Great Tutor K

    Yay, I’m starting to tutor math tomorrow. The subject matter should not
    be hard. After all, it’s secondary 1 (or grade 7) mathematics. Now I
    need to come up with creative ways to teach this (apparently) boring
    subject to a little girl. I have quite a few years of experience
    tutoring English now. Let’s see how I do with math…

    - SwordAngel

  • Firework

    The feeling of being lost is certainly a strange one. It is definitely
    not emptiness because you still feel that there is “something” that you
    can, should, and want to reach; you simply don’t know where that
    “something” is. It is also different from defeat because you have not
    found or reached failure. If anything, this feeling should be close to
    distress, minus the mental breakdown part.

    So what should one do about it? I don’t know. In fact, I believe that
    it is a good sign to feel lost. The path of life should not only have a
    source and a destination, otherwise it would just be a straight line.
    Now, would you rather doodle, or draw a straight line and stare at it for the rest
    of the time?

    I’m not very good with analogies because I tend to digress in analogies, but I’ll try my best here. Imagine a
    map with lots of cities. You begin your journey by telling yourself
    that you need to find the ideal, dream city, with the perfect
    landscape, where you shall set up the most beautiful firework show in
    the world. If you travelled and found the dream city immediately, then
    only one city would enjoy your firework show, you too would only get to
    watch one firework show. Fortunately, that’s not what happens because
    you are lost and you don’t know where that dream city is. So you force
    yourself to travel to numerous cities and try to set up a firework show
    in each of them. Now the firework shows in these more ordinary cities
    may not be the greatest in the world, but they are still fun to watch
    nonetheless. Furthermore, because you have practiced so much at these
    other cities that you can be pretty sure you’ll put up an even better
    show when you finally find the dream city. Are you afraid that because
    you will have set up fireworks so many times that at the end you’ll be
    fed up with them? Well, first of all, if fireworks ever become boring
    to you then perhaps you don’t like firework that much after all.
    Secondly, when you travel among the cities, you don’t just set up a
    firework show, watch, and then leave right away anyway. Whether you
    like it or not, you have to eat, you have to find lodging, you will
    walk on the street, and you will need to ask the people around you
    about the best spot to set up a firework show. So why not take a step
    back from the ultimate objectives of finding the dream city and the
    greatest firework show, and instead try to let yourself get distracted
    and savor every moment you spend searching and preparing?

    - SwordAngel

  • New Beginning?

    Some of you, the readers, were my comrades in arms in Lineage for quite
    some time now. To tell you the truth, I didn’t enjoy the gameplay
    itself, but only the bragging and ranting part. Some of you still read
    my blog and wonder what happened to SwordAngel, even after my sudden
    2-month absence. I stopped playing the game at the end of last semester
    because of exams and that dad came over from Hong Kong to spend his vacation (he never liked me playing
    computer/video games). Lineage has been like an emotional morphine to
    me. Before I realized it, I lost the dependency and addiction to it by
    the beginning of the winter semester. Instead, I began to open myself
    to the people around me, even to my parents, with whom I have not
    talked about anything other than school and work since 5 years ago. The
    feelings that I struggled to suppress for 5 years simply bursted out
    and I realized that there are people whom I cannot forget and that I
    still miss. And a certain “she” was among them. So here I am trying to
    see what I can do about it. Waking up from this 5-year cryostatis was
    not pleasant; I went through a lot of up and down during the first month, and managed to bear
    with it and sort out my feelings away from gaming. In any case, the end
    result is that the SwordAngel that you have known in Lineage is no
    more.

    Last Saturday I finally gathered enough
    foolishness/courage/guts/whatever-you-call-it to call “her”. I still
    have her phone number from highschool because of the environmental
    committee; I simply never called her. Well, anyway, I called and she
    wasn’t home. The woman at the other end of the phone, presumably her
    mom, told me that “she” was at work. Having been told when she finishes
    work, I did some quick arithmetic and realized that she must be working
    at least 6 hours on Saturday. That’s a lot compared to me, since I
    had… 0 hour of work per week for the past 5 years. I did have a job
    in Hong Kong last summer, but it’s different from having a job during
    the semester. I believe it is more of a challenge to manage to keep a
    job and do well at school at the same time. I felt like I fell behind
    compared to her and got a bit depressed. So I discussed with my friends
    Chris and Danny – believe it or not, but I have friends in real life – about whether I should get a job in order to get back
    to her level before trying to contact her again. I knew that sooner or
    later I will have to get a job, but my question was more about the
    timing, to contact her before or after
    I get a job. Anyway, we came to the conclusion that I should get a job
    ASAP, but not to shrink the difference in level between her and me.
    It’s always fun to discuss about this kind of stuff with Chris and
    Danny simply because the observers are always the most sober. They see
    stuff that I, being engulfed in the situation, fail to see. So, we
    agreed that, on the one hand, if any girl likes me, she would like me
    for the person that I am, not for my status. I guess reciprocal
    thinking didn’t quite kick in; I completely forgot that I also like
    “her” for the person that she is. On the other hand, getting a job will
    help me build character and firm my self-confidence; it will also
    reactivate my IB
    mode and allow me to enforce better time management and better study
    habits so that my grades climb instead of decline. And so…

    I am in active job hunt now. I’m not going all out yet. I suppose 6 to 10 hours of work per week for a start.

    I am really grateful to the people who helped me go through the past 5
    years of confusion. FieldsofLove, BombSquad, Dlirk, Arathin, MissKat,
    Banishing, ConBaka/WisBaka, W0LFW00D, Elutherin/Evermind, SAcRiFiCe, Tainted/ClassicGirl, just to name
    a few… actually everybody in the Nash, DoM, and Classics pledges. I wish you all
    the best in Lineage and in life.

    And so this marks the end of my overdue account of what’s been happening in the past 2 months.

    - SwordAngel