Monday, September 26. 2005
Came to know that there is an interesting languege enhancement in .NET 2.0 for both VB and C#: Partial Class. The definition of it is that your class definition can be split into multiple physical files. But to the compiler, it simply groups all the various partial classes into single entity. The syntax is something like below: In VB: (One of the classes need not have the "Partial" keyword) ' Class1.vb Partial Public Class Class1 ... End Class
' Class1_1.vb Partial Public Class Class1 ... End ClassIn C#: ("partial" keyword must appear in all class definitions) // Class1.cs public partial class Class1 { ... }According to MSDN, there're many benefits using Partial Class such as it allows programmers on your team to work on different parts of a class without needing to share the same physical file and separates your application business logic from the designer-generated code. In Java, we can't see something similar to it, every single class definition must reside in one physical source file. But people do practise business logic separation by using design patterns like Strategy pattern. If we want to separate UI code from business logic, normally what we do is creating two classes for handling them, for example, HelloFrame class and Hello class. I wonder if we can fully utilize Partial Class without having problem on the issues like code readability, member variables conflicts, code duplication and so forth. I'm not sure about those as I'm still figuring it out, but it's literally a "new" concept to me. As a class implementor, that should be better if we can have the full snapshot of the entire class.
Thursday, September 22. 2005
It's time to post something about my working place, ITPL.  There are 3 main blocks: Innovator, Creator and Discoverer. (Above are taken from 6th floor of Innovator block)  The offices.
He is more than a cab driver, he is a responsible husband, he is a good father, he is a nice guy, and more importantly, he is my friend. 
Govin, who picks me up every morning, he always late for that and surprisingly I don't really mind. he is 2 years younger than me and married with an adorable daughter. During this period in India, he is the one I most often talk to. Yes I do have some men working on the same project with me and sitting physically close to me in the offices, but forgive me if I just couldn't call them "friends" yet. Although he isn't good in English, he seems to understand me and always support me by giving warm smiles. He's asked me to visit his house for several times and I'm planning to do so in next weekend. For that picture, my initial intention was taking his look while he's driving but he insisted want to have a full face being captured. Okay, the final product looks good. I suppose he'll never access Internet and even read "Weblog" in his entire life since he doesn't need to do so for a living. But I formally want to take this opportunity to say a big thank you to him for being my friend over this period (in fact I thank him everyday). If one has no friend around, how far he or she can go?
Thursday, September 15. 2005
Ya this reminds me that I've been using Menu-Toolbar kind of UI for long long time. And subsequently this model applied by almost all non-Microsoft applications. And now we can even see this UI model on the Web pages.  I like the answer given by Larson-Green, the group program manager at Microsoft in the interview: It’s important to note that the new UI is not intended to be a general-purpose application model. It’s not a replacement for menus and toolbars for all applications. There’s nothing wrong with menus and toolbars. It’s just that our powerful authoring applications have lots of commands, so we needed a different model –a higher-level way of presenting commands. Wonder if Mustang (Java SE 6) would follow this footstep, I hope so.
Wednesday, September 14. 2005
The initial title of this post was "Book Recommendation" but I felt that it isn't attractive enough, hopefully this one would gain more attention. Just finished a book, Peopleware by Tom Demarco and Timothy Lister which I found it very interesting and thoughtful and I can't wait to publish some excerpts of it. I read quite a lot of books but this is the ever first book (I'm sure that it won't be the only one) which make me have the intention to recommend to others. In fact there are much more excerpts I wanted to give but eventually I might end up copying the whole book here. The meeting started out with a few minutes of easy banter, a lighthearted comment addressed to each one of those present by Ambrose, the boss. Each recipient rose to the bait and offered an equally lighthearted riposte, all in good fun. Then there was a sharp changeof mood as Ambrose took control. Issues were set out on the table and addressed, briefly and very efficiently. Each issue were discussed with one of the participants. There was a short dialogue between Ambrose and that person, a transfer of status information so that Ambrose would know exactly what progress had been made that week. During the meeting, the time was about equally focused on each of the participants, each interacting separately with the boss while the others listened in, silently. During Elaine's moment in the sun, I could see that Roger was distracted, obviously planning what he would say when Ambrose turned to him. At the end of the meeting, Ambrose established action items, more or less one per person. What could possibly be wrong with this oh-so-familiar picture? What's wrong to my mind is that this is not a meeting at all; it's a ceremony. and also The meeting wasn't really necessary to convey status; there are many less wasteful ways to do that. The need that was being served was not the boss's need for information, but for reassurance. The ceremony supplies reassurance. It established for everyone that the boss is boss, that he or she gets to run the meeting, that attendance is expected, that the hierarchy is being respected. If you're a boss, I'd strongly recommend you to read this book and you might have a ultimate productive team assisting you to accomplish your goal. If you're not, I'd beg you to buy one for your boss and you might have better time spent on daytime job, better working environment, more joys during working hours and much more less overtime required. Footnote: Over my past 5 years of working on software development, I've gone through many many "status meetings". Actually before discovering this book, I've been wondering for so long that why the process of progress status updates can't be done via email. I think it's a waste of time but I kept silent, because I lacked of the definitive statistical evidence that proved the case. Now that I'm not so willing to tell you that in my current company, I'm not only having team status meeting but a bi-weekly cross-teams status meeting with the application demo which no one (other than the presenter) could ever remember what's been presented. So, are you having team status meeting (ceremony)?
Sunday, September 11. 2005
The Four MonkeysI've somewhere, somewhat and somehow heard about India is the kind of place where you can find the meaning of life which I don't really understand why until my trip here in India. I just realized that this is not the place with some meaning of life hidden somewhere but this is the place which provides you every condition you need to figure out the meaning of life quitely and peacefully.According to the sales guy, there was a legend about The Four Monkeys, but he insisted not to tell me the story behind until I decided to buy it. Yes, finally I decided to buy it but I didn't get any interesting story. What I got is (from left to right): Don't say anything bad Don't hear anything bad Don't see anything bad Don't think anything bad (it looks like the monkey is literally thinking, what the sales guy explained to me is that the monkey is thinking not to think anything bad) It's fine, 280 Rupees is definitely worth educating myself. Communication ProblemActually this is what I've already expected upfront as I've been working with Indians on 2 software projects. Nonetheless, yet I find something very funny while communicating with the Indian friends here, Find classical example below: After I got into a cab... Indian driver: Hello sir, good morning! (with sunny smile) (From this point onwards, I supposed he understands English language) Chinese passenger: Good morning. (with charming smile) Indian driver: Kan-na-dal? ("Where do you want to go?", I found out the meaning 1 day after. To my dear Indian friends, please forgive me if I spelled it wrongly as I was having problem asking him to repeat) Chinese passenger: Sorry, I can't understand Hindi (In fact I didn't know whether it is Hindi or Tamil or something else, stupid me) Indian driver: Kannnnnn - Naaaaaa - Daaaaaalllll? (he spoke much more slower and clearer)I hold on my intention to laugh aloud, gave up the conversation and straight away told him the destination: M.G. RoadSuprisingly, that seemed to be the correct answer. It's amazing that the people here seems to presume that me as a foreigner can understand their languages. They always mix their sentence with English and Hindi (not Hindi-slang English but pure Hindi) and expect
me to give response. It's funny anyway, isn't? Communication Problem, againI just realized that this problem doesn't restricted to be happened on human to human but also on human to non-human. What will be your reaction when you see the door with "PULL" on the handlers and want to go out? I don't know yours. Let me try to visualize the situation in a conversation again: Door: If you want to get out, please pull my handler. Me: OK, I'm coming to pull... (Before I even had the chance to bring up my
hand, the door opened automaticalaly when I was 1 meter close to it) Door: OK please come closer, I'm opened for you. (Joke: Does the word "PULL" in Hindi mean "AUTO"?) Is that a bad UI design?
See, I'm in a Auto Rikshaw!
 Wow, I found Yahoo! office!

The prettiest girl I've seen on the street.

The cinema.

The crowded street.

Friday, September 9. 2005
Here are some mainstream programming worlds. c World#include <stdio.h>
void main (void) { printf ("Hello, World"); }
C++ World#include <iostream.h>
int main() { cout << "Hello World!"; return 0; }
Visual Basic.NET WorldModule Module1 Sub Main() System.Console.Write("Hello World!") End Sub End Module
Java Worldpublic class HelloWorld { public static void main(String[] args) { System.out.print("Hello World!"); } }
Perl Worldprint "Hello World!"
Python Worldprint "Hello World!"
C# Worldnamespace HelloWorld { class Program { static void Main(string[] args) { System.Console.Write("Hello World!"); } } }
PHP World<html> <head> <title>Hello World</title> </head> vbody> <?php echo "Hello World!"; ?> </body> </html>
Cobol WorldIDENTIFICATION DIVISION. PROGRAM-ID. HELLOWORLD.
ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. RM-COBOL. OBJECT-COMPUTER. RM-COBOL.
DATA DIVISION. FILE SECTION.
PROCEDURE DIVISION.
MAIN-LOGIC SECTION. BEGIN. DISPLAY " " LINE 1 POSITION 1 ERASE EOS. DISPLAY "Hello world!" LINE 15 POSITION 10. STOP RUN. MAIN-LOGIC-EXIT. EXIT.
Pascal Worldprogram hello; begin write('Hello World!'); end.
|