Month: December 2005

  • Exams over… for now

    I had my last exam of the semester on the 21st (database design and implementation). It was ok. I answered 9 out of 10 problems in 2 hours and then spent a whole hour on a trick problem on RAID-6. Anyway, now that it’s over, I’m not even thinking whether I did well or not. I really cannot care less when the teacher outright sucks and more than half the class has no clue what’s going on.

    I spent the past 3 days doing just one thing: leveling up my dark elf. Thanks to the Christmas polymorph event, I was able to make about 1% in 20 minutes at level 48. Even though my dark elf died like 6 or 7 times in 3 days – Dark Elder, Ifrit, fight, disconnection… – I was able to make up for it AND bring my dark elf to level 49. I turned down invitations to 2 LAN parties just for this. I upset a bunch of friends by ditching them, and mom was not happy about me sitting in front of the computer for over 10 hours per day either (hey, it’s not as though I would not be sitting in front of a computer at the LAN parties either). Sorry Danny and Jawaad. I had to stick to my goal of making level 52. Besides, I don’t enjoy LAN parties because I’m really not good sports, if you have not noticed in the 5+ years that you have known me. As for mom, I don’t even bother to explain to her what’s going on. I find it absolutely fine that she doesn’t understand my world; in fact, for privacy reasons, I’d prefer that she does not understand ever.

    - SwordAngel

  • Pochacco!

    Some of you know that I adore Pochacco. (Right, Danny?) It’s like a contagious condition in our family that began with my sister. I have been under her heavy influence ever since I was little. My sister likes sheep and Hello Kitty, then she got me to like sheep, then I found out about Pochacco, another cute character by Sanrio.

    My sister got me this “Pochacco head” cushion for birthday last year. You’ve seen this one, Danny.
    DSC01706

    At the end of this summer, she brought me a baby Pochacco from Hong Kong.
    DSC01708

    Even dad joined the madness and brought me another one.
    DSC01707

    Yes, my family is weird. Don’t mind us.

    - SwordAngel

  • Update on the C# quirk

    It appears that the official C# specifications allow parameters and class members to take on identical names. Disambiguation is achieved through the use of the “this” reference in the method, as follows:

    class Foo
    {
    private int bar;
    public Foo(int _bar)
    {
    bar = _bar;
    }

    public Print(int bar)
    {
    System.Console.WriteLine("This is the "bar" parameter: " + bar.ToString());
    System.Console.WriteLine("This is the "bar" member: " + this.bar.ToString());
    }
    }

    Regardless, this behaviour is not what I experienced while coding my compiler. Using “bar” without the “this” reference resulted in the member instead of the parameter. Therefore, though it is officially legal for a parameter to take on the same name as a class member, I still recommend not to rely on the ambiguity resolution mechanism in Microsoft’s C# compiler. Instead, try to name your parameters differently. If you must, begin all of your parameter names with an underscore (e.g. “_bar” instead of “bar“).

    - SwordAngel

  • C++ .NET, Java, and C#

    I was drooling over the new Visual C# 2005 Express IDE that Microsoft released to the public for free. Apart from the usual goodness (IntelliSense) of its predecessor, Visual Studio .NET 2003, this new IDE also comes with improved refactoring abilities and is much easier on system resource – it does, after all, nothing but C#, as opposed to all the .NET languages that VS.NET2003 did. This is exactly what I want today. I don’t want to hear about C++, or Visual Basic, or J#. I just want a clean, kosher C# development environment. Ever since I have tried to work with managed C++ (i.e. Visual C++ .NET) over a year ago in a team project, I have decided that it’s not worth the effort to continue using C++. C++, since its early days, has been a dirty hack to add some object-oriented programming support to C. As though that was not bad enough, Microsoft made managed C++ even dirtier. For some strange reason that continues to evade me, the engineers at Microsoft decided to implement the .NET framework class library in a completely incoherent way for C++: while some classes are to be declared as objects directly, others are declared as pointers. All good OOP programmer knows that pointers are not welcome in the OOP paradigm because they are too troublesome to manage; beside, what is the point of using pointers when objects can be passed around freely? In the end, my whole team decided that managed C++ is a total disgrace and all of us sweared to not touch it again.

    I never got a chance to like Java because I’ve been working with JSP and servlet technology only. All of my friends agree that the JSP and servlet technology sucks when it comes to configuration and deployment. I often have nightmares about the XML configuration files and the stupid .classpath file. I shiver and get cold sweat from the sheer thought of them. There are also other aspects of Java that I don’t like (the great typesafe enum that was missing until version 1.5, and the double meaning of the “static” keyword).

    Finally, C# caught my attention. I figured that the compiler design course, which is programming-intensive, was a good opportunity to learn a new language. I picked C# because it sounds like a very promising language. Even without the fantastic .NET framework class library, the C# language is so clean syntax- and semantic-wise that it deserves attention in itself. This week, however, I encountered some strange quirk and I hope it’s just a bad implementation of the new C# compiler.

    Somehow, it seems absolutely legal to declare method parameters to have the same name as a class member. The following code snippet illustrates my point…

    public class foo
    {
    public int count;

    /* Constructor(s), more fields, and more methods go here. */

    public void doSomething(int count)
    {
    System.Console.WriteLine(count.ToString());
    // Here, the method uses the "count" field instead of the
    // "count" parameter.
    }
    }

    An application that uses the above class will compile, run, and give you unexpected output. The compiler gives neither error nor warning. I skimmed through the C# specifications and have yet to spot any detail about the resolution of name conflicts between parameters and class members. In any case, I hope that Microsoft intended to regard this kind of name conflict as outright errors, and release a corrected version of the compiler soon.

    - SwordAngel

  • A new type of monster?

    Hey, if NC put killer rabbits and killer bees in Lineage, why not add a new type of monster? Killer squirrels! These furry things should spawn in groups and be agressive to pets. These killer squirrels can already be found in real life anyway!

    Setting the humor aside, the situation of the environment is really worrying. Beside the reported lack of pine cones in Lazo, in the Eastern part of Russia, there have also been reports of abnormal fruits in Japan possibly caused by climate change.

    - SwordAngel

  • Ctrl+Alt+Del Animation!

    I’m quite overjoyed to learn that my favourite web comic is going to have an animated feature. Check it out at Ctrl-Alt-Del.

    Not much else is going on lately, besides some really frustrating experience with a course project and then this compiler design assignment which seems to never end. I have decided not to depress my dear readers by telling the whole story.

    My dark elf is gaining experience steadily; it is now level 48 with 23% experience. I’m eagerly looking forward to the end of the semester because this semester was one of the worst I have lived through in my whole school life, with mom being hospitalised twice for a surgery and post-surgery complications, and some unfinished business with two professors and a lab instructor from last year.

    - SwordAngel