Sunday, March 30, 2008

Art and Stance

Heard this from a drama just now and it makes a lot of sense to me. Architecture is an art, thus as an artist you should have your own stance. Put aside your boss' and customers' opinions.

Likewise, software architecture is an art, your software is an artifact – a piece of art. Therefore, you design it and you justify each part of it.

- yc

Saturday, March 29, 2008

FOSS-SM April 2008 Meetup, Selenium Web Testing Tool

I will be giving a presentation on Selenium this Thursday at the FOSS-SM meeting, more details can be found here:

Your support will definitely be appreciated, please join me to attend this.

- yc

Friday, March 28, 2008

I'm Clean

Did you mean clean? My colleague David showed this to me when he was looking for my online profiles.


Google gives 20,500 results for yclian, 7,760 for "Yuen-Chi Lian", 3,360 for yuenqi, 1,060 for yuenchi.lian, 290 for "Lian Yuen Chi".

Anyway, you are urged to join the Earth Hour at 8 - 9pm of your time tonight, read more about it from the link.

- yc

Tuesday, March 25, 2008

Fashion for Software/IT Guys?

The IT people generally prefer wearing t-shirt and jeans to work, at least that's what most of my IT friends prefer. In some companies, which professional dressing is required for Monday to Thursday (like mine), traditionally, guys will go for a simple sleeve and slack, girls will prefer chino/straight skirt. And they all like moderate colours (just not funky or too bright). Let's call this "standard" dressing.

Especially in Malaysia, which is warm every day, people go with one-layer dressing, you hardly see someone with coat, cardigan, jumper, sweater, etc.

If you wear something that's not within the standard, say, a short sleeve with a skinny/fit tee at the outside and a bright tie. Your colleagues will start questioning why you are wearing in this way, or telling you that you should be wearing in that way, blah and blah.

I have recently changed my fashion style, GQstyle is my source of inspiration (no, I don't buy Paul Smith or Moschino, I can only afford around the price of TopMan). I bought cardigans, new shoes, belts, ties, and braces.

I don't agree that you wear simply because you just want to cover up some parts of your body, I believe I wear is to show who I am and how unashamed of my own ideas and mixtures. When I feel gloomy in the morning, I will pick light blue as the fashion of the day, it makes me looks brighter. When I can't think of something better for that day, I will just grab a cardigan to make myself to not look too plain.

I always like to look at how the Paul Smith's models wear. I think IT guys can wear like them too. Don't you think so?

- yc, geek.. talks about fashion

Saturday, March 22, 2008

Dangerous Constructions

The Adrian Newey-penned RB4 was suspected in violation of the regulation about "dangerous constructions". It has now given green light by the FIA guys anyway.

Adrian Newey is a Formula 1 technical icon, and that got me to think; To think about as a software designer or architect, have you ever designed a dangerous construction that performed godly. What can be classified as dangerous construction in software engineering?

I have watched how ugly the suspension of RB4 turned in Melbourne and Malaysia. Kind of scary.

Wednesday, March 19, 2008

Qi4J on the 13th

Supported by the Malaysian Java User Group, the FOSS-SM hosted the March meet-up with the presence of Rickard Oberg on the topic of Composite Oriented Programming in Java using Qi4J.

It's a good occasion to meet Rickard in person and other JUG guys -- Edward, Bernie, KC., ..

Qi4J in short is an implementation of Composited Oriented Programming (COP), an idea heavily influenced by the concept of Domain Driven Development (DDD). You can read more about its background from this page. Aspect Oriented Programming (AOP) and Dependency Injection (DI) are essential parts of Qi4J to achieve DDD (you might want to check Matthew Podwysocki's blog).

In Qi4J, you no longer think about objects but composites. A Composite is a collection of fragments, where a fragment can be a Mixin that holds the state of the composite, a Constraint that validates the usage, a Concern that handles contextual behaviour or a SideEffect that is used for notification. Here are some resources to help you more with it:

I like the general idea personally, just like how I like AOP at the first time I got in touch with it. Clean code, domain centric, separation of concerns, and low coupling between components (that also promotes reusability).

There are some concerns from the ground too, that,

It is Hackish

To some people, the framework looks completely like a hack to achieve something can not be originally done by Java. I beg to differ with that point, programming to me is a lively and creative area of computer science, with a good design and deep thoughts, we are actually leveraging the Java platform to introduce a new programming style. Just like how people use Spring and its applicationContext.xml to do AOP.

Learning Curve and Adoption

Learning curve is a major concern too. The discussion focused on how long it would take for new and old Java programmers to adopt to this new programming style. My opinion is, what truly drives someone to do something to be different from the norm relies on how widespread and the quality of the new concept; as well as how conservative an individual would like to remain, a comfortability issue. Likewise, not everyone uses AOP, ORM, etc. because they do not see the point, accept the idea, or are comfortable with what they are currently doing. But certainly, Spring has a very good documentation and from the way I look at it, Qi4J is going to have one too. :-)

Performance

A realistic concern. I talked to Niclas and Edward (folks from Jayway, the core committers of Qi4J) after meeting. They shared with me that, which is also written in the website, Qi4J is not production ready. The product is still undergoing development and the team has not yet done any performance tuning. Take note that it doesn't even have a binary release at the moment. A more mature codebase should be ready by end of this year.

I am ending this blog entry here. Like I said, I like the idea of it and Qi4J definitely worth revisiting at a later time and since it is an OPS4J project, I will definitely find a time to contribute to the codebase.

Lastly, please visit our JUG's blog for a list of other blogs that discuss about the meeting.

- yc

Sunday, March 9, 2008

An Era Where People Express

I did not study the history of civilization and democracy in detail, all I have is from the high school. But I am certainly sure that the result of the 12th general election yesterday has certainly marked a watershed in the history of Malaysia after half a century.

One factor contributed to the setback of the ruling coalition is how the government stumbled badly on the issues of bloggers, Internet media and street demonstration. They made a wrong move -- they tried to control, suppress, and ignore our voice.

Web 2.0 should be called World 2.0 instead, as it redefines not just the Internet but the world in terms of learning, communication, collaboration, and business. People are more open, open to discussion, open privacy boundary, open source, open API, ... They express.

When you go online, you see the mood and state of mind of your friend from his MSN personal message or Facebook status. You read about his life, work and vision from his blog. You can see his social activities from his Flickr and Facebook photo tags. You are also invited to events to get into a closer touch with the people. Then, you learned that you are one of us, we want changes, we want our voice heard, and we dislike how authority controls and manipulates.

Among our generations, there are still people who remain behind the times and you could be one of them. How are you repositioning yourself?

In the city that I am living, a lot of people carry an MP3 player like I do in the train, but not many move with the music like I do. Let's move.

- yc, expresses

Friday, March 7, 2008

The Day We Decide

If you are a Malaysian, you are supposed to know about this; if you are older than 21 y/o, you are one of us who can decide; if you are not a Malaysian, basically, today is the day of general election.

I want a effective, fair and clean government, for the people.


- yc

Sunday, March 2, 2008

Are you overworked, IT guys?

I have come across so many friends who are overworked by their employers, especially those from the IT field, the issue of underpaid sounds serious in Malaysia. I could be wrong, so feel free to drop a comment if you have other opinions.

In Malaysia, our salary has been stagnant for years, and I believe that's part of the reason why it attracts foreign investors. When it comes to the argument of employees being overworked, there are two factors that we can look into:

  1. Employees are not being efficient.
  2. Management is being unreasonable, in terms of deadline and human resource.
Most of the time, both are valid. For an old-school manager who is not willing to adopt to new methodologies, his interest is to squeeze the most out from the project and his employees for a high ROI. Driven by this, he is likely to commit to an unreasonable deadline and cut down the cost by hiring just-sufficient (usually turned out to be not, due to inefficiency) human resources.

Sounds familiar to you? I am happy that I am not working for this kind of company.

In the end, the development team faces huge pressure, as the deadline comes closer it turns worse, and they stay late to work even on the weekends. Driven by this, the employees are no longer efficient and neither they are happy and motivated -- They will choose to leave.

What will happen when they leave? The company has to hire and train new guys again, that's a terrible investment and due to their management style the company will forever be haunted by high turnover rates. And generally (yes, I say generally, not all, based on my experience) since most Asian companies share the same management style, the employees will end up in the same type of company and they will.. be forever unhappy until they are retired.


I have created a Jyte claim: You are overworked and your employer is not hiring sufficient human resources. When I'm writing this, one of my friends is making the decision to leave her company. Why? The project has to be delivered on April, but she has been working 7 days per week since late-January. On Friday, she was talking with me on MSN when she was still in the office, the time was 1am morning.


- yc, what do you feel?