While working with a lot of web development teams, I found a truth: most of developers (at least: Vietnamese developers) do not think Javascript is important. Most of them use javascript as tips and tricks – just google and apply every script they found to solve their problem. Parts of them try to prevent using javascript with complex technique into their project – with them Javascript is a nightmare.

Continue Reading »


Hi all,

Because of some personal reasons, I decided to move this blog into blogspot. This is the link trandangkhoa.blogspot.com

If you’re interested in my blog. Please go there and comments for my entries.

Thanks and regards,


I’ve read this article http://career-advice.monster.com/job-interview-practice/Prep-for-the-Top-10-Interview-Quest/home.aspx. It inspired me to write a custom version for myself

What Are Your Weaknesses?

Dear sir, as you know: the most dangerous weakness of anyone is “does not know what are his/her weaknesses”. I am very happy because I understand myself.  As an IT technical person, I need to improve more  knowledge and experience in software engineering. I see some common mistakes from other technical persons: they abuse their technical knowledge and apply the technical view into anything.  I tried to quit that to get a broader/higher view whenever I analyze or do anything… Now I think I succeed with that. It helps me so much in life and work.

Why Should We Hire You?

With over 4 years working in software engineering, I worked for many small and big projects, from medium to big customers. That helps me get a lot of experiences in technical domain and management.  I am always the key person in projects and company.

My principal in project development: the core value of a project is its business value. A good team must be a team can create more added value to the project business. I can create teams like that for your company

Beside technical experience, I also have a good business view.  My team and I usually give customers good  advices to help them improve their business road map in project. That’s the reason many customers satisfy with my team and the project quality.

I am confident that I can be the best addition in your company. What do you think?

Why Do You Want to Work Here?

I’ve selected key companies whose mission statements are in line with my values, where I know I could be excited about what the company does, and this company is very high on my list of desirable choices.

What Are Your Goals?

My short term goal is: contribute my best for new company  and make its business success. I hope I will be one of top persons contribute most added value to the company.

My long-term goal will depend on where the company goes. I hope to eventually grow into a position of responsibility

Why Did You Leave (Or Why Are You Leaving) Your Job?

With more than 4 experienced years, I decided to find a company where offers me a good condition to contribute my best and open for my career road map.

When Were You Most Satisfied in Your Job?

Where I was most satisfied in my job?

No one can work effectively if he/she does not satisfy with his/her job. In all situations/organization, I am always happy with the job I take.

When was I most satisfied with my job?

That’s the time I find some ways to improve the my job more effectively or add more value to the company business.

What Can You Do for Us That Other Candidates Can’t?

One of my strongest points is: strong experience in technical domain and problem solving skill.  There may be many persons have the same technical level as me. However, I have one more thing that a few technical people have, that’s the good view in business.

What Are Three Positive Things Your Last Boss Would Say About You?

Creative, Active and Professional!

What Salary Are You Seeking?

I think it depends on the final result of this interview meeting. We can discuss about it later. I am not hurry! I need to consider more factors before taking the final decision to join to your company.

Hmm, a small question:  how do you offer for same position? Could you please send it to me by email?

I am a SEO consultant. The first thing I like in wordpress.com is: it has some advantages may help me get a page with high Google page rank. However, there’ re a lot of things that wordpress.com need to be improved more if they want to attract more users.

I’ve read a comparison between wordpress.com and blogger of Google. You can find it here http://pulsed.blogspot.com/2007/07/blogger-wordpress-chart.html

From this article, we can see that WordPress limits a lot of things that a blogger needs to improve his site for SEO.

I do not want to repeat all things in above entry here. I just want to add some additional points and press some strong factors (in my opinion):

1. Should allow user can customize meta tags of a specific page (description, keyword, …). It is necessary for SEO

2. Should allow user post JS script or adding embed tags. I know that is risk because some hackers may make use of that to do some Cross site scripting hacks. However, why blogger allow that? It makes user feel more convenient.

3. Should allow user customize the HTML structure of the template.  That help user can create creative theme page and SEO friendly whenever they need.

All of professional bloggers need their page must be SEO friendly and easy to customize. If wordpress can not improve these feature, it will be only a shadow beside the Google giant.

Wait and see what they will do in the future? who knows?

Yesterday, I received a very interesting question from my friend – a technical man. It inspired me write this story.

(I want to hide real names of all persons in this story – so from now we will call him Tech).  Tech has a friend (Mr. Biz) – a business man. Mr. Biz has taken part in a MBA course and he needs Tech consult him to do a thesis. This is the thesis:

Analyze the e-commerce market in Vietnam and give your ideas about e-commerce websites in VietNam.

Mr. Biz – actually he does not have to much knowledge about IT – so he asked my friend (Tech):

Hey, Tech – do you have any program help me analyze the e-commerce market and rate an e-commerce website with good/bad comments?

My friend (Tech) tried to search on Google to find some good software or services has enough statistic data to analyze the e commerce market in VietNam, but he can not find any thing helpful. So, he asked me to help. I have a look on the thesis and told him:

You made a mistake. You should not search the software or some technical tricks to do that. Only ask Google: “analyze e-commerce market in Vietnam”. You can find a lot of good articles. Just summarize them and send to your friend.

After doing that, Tech found some good links and send to his friend.

What is the conclusion of this story? What is my friend’s mistake?

Javascript is a  prototype based language (not a class based language).  You can read more here to understand differences between prototype based and class based language.

However, prototype has some good features that help you can implement the Object oriented programming model. Nowadays, a lot of javascript frameworks support us can implement OOP easily (like Prototype, JQuery, …). In this post, I do not want to introduce about them. I would like to help you understand about Javascript OOP without any support from other external libraries or frameworks.


1. Defining a class

2. Common definitions and implementation

3. Inheritance in Javascript

1. Defining a class

To define a class in Javascript,  we can use one of below ways

1. Traditional way

function className ([params] )  {

//properties and functions


2. Second way

className = function( [params]) {

//properties and function


2. Common definitions and implementation

  • private variables are declared with the ‘var’ keyword inside the object, and can only be accessed by private functions and privileged methods.Example
    function Person {
    var name = "KBird";
  • private functions are declared inline inside the object’s constructor (or alternatively may be defined via var functionName=function(){...}) and may only be called by privileged methods (including the object’s constructor).Example
    function Person {
    this.name = "KBird";
    var getName =  function()
    return this.name;
  • privileged methods:privileged methods are declared with
    and may invoked by code external to the object.
  • public properties are declared with this.variableName and may be read/written from outside the object.
  • public methods are defined by Classname.prototype.methodName = function(){...} and may be called from outside the object.
  • prototype properties are defined by Classname.prototype.propertyName = someValue
  • static properties are defined by Classname.propertyName = someValue

3.  Inheritance in Javascript

Inherit from a super class

subclassName.prototype = new subClass;

Override a function

subclassName.prototype.functionNeedToOverride =function(params)  {


To be continue

Javascript history

JavaScript was originally developed by Brendan Eich of Netscape under the name Mocha, which was later renamed to LiveScript, and finally to JavaScript. The change of name from LiveScript to JavaScript roughly coincided with Netscape adding support for Java technology in its Netscape Navigator web browser. JavaScript was first introduced and deployed in the Netscape browser version 2.0B3 in December 1995. The naming has caused confusion, giving the impression that the language is a spin-off of Java, and it has been characterized by many as a marketing ploy by Netscape to give JavaScript the cachet of what was then the hot new web-programming language.

Microsoft named its dialect of the language JScript to avoid trademark issues. JScript was first supported in Internet Explorer version 3.0, released in August 1996, and it included Y2K-compliant date functions, unlike those based on java.util.Date in JavaScript at the time. The dialects are perceived to be so similar that the terms “JavaScript” and “JScript” are often used interchangeably (including in this article). Microsoft, however, notes dozens of ways in which JScript is not ECMA compliant.

Netscape submitted JavaScript to Ecma International for standardization resulting in the standardized version named ECMAScript.

(From wikipedia: http://en.wikipedia.org/wiki/JavaScript)

Who make Javascript success?

Brendan Eich: the man invented Javascript

Brendan Eich

he created Javascript when he was in Netscape. Currently, Brendan Eich is CTO of Mozilla Corporation

Douglas Crockford (JSON)

Discover Javascript and JSON.

He is well known for his work in introducing JavaScript Object Notation (JSON).

You can enjoy a lot of his good articles here



John Resig (JQuery)

pushed Javascript forward. He is the man creates JQuery – this is one of biggest successful projects of Javascript.

Now, John Resig is a JavaScript Evangelist for the Mozilla Corporation and the author of the book Pro JavaScript Techniques.

Sam Stephenson (PROTOTYPE)

Sam Stephenson

Sam created the Prototype JavaScript framework in February of 2005 as part of the foundation for Ajax support in Ruby on Rails. He lives in Chicago, writes web applications for 37signals, and tumblelogs on Projectionist.

While working in Pyramid Consulting, I’ve had a chance to work with Mr. Truong Lap Vi. He was one of Technical Architects of Pyramid Consulting. I’ve learned a lot of things from him. Based on his original training course, I’ve added some customizations to create a newer version of the Basic course for junior web developer.
This basic course takes only 3-4 hours. The purpose of this course is:
+ Based on the Web model to explain the vision and road map of a web developer.
+ Explain what good code is.
The original structure of this course has 2 parts:
1. Web model
2. Good code
2.1. What is good code
2.2 Good function
2.3 Good class
I’ve changed its structure a little bit and add more sections:
1. Web model
2. Good code
2.1. What is good code
2.2 Good piece of code
2.3 Good function
2.4 Good class (make the definition clearer)
3. Best practices in coding

As my introduction in About, I have a lot of nicknames. However, I like “Kool bird” most. So I decided to use an abbreviation of this (KBird) as my alias in this blog.

This blog is my place to share with you and all of my friends some interesting things in my life, some good experiences from my technical knowledge, some good books that I’ve ever read, or …. a lot of things more.

Enjoy! However, do not hesitate to give me your ideas/ comments about what I’ve posted here. You’re welcome to my blog.

Next Page »