Pages

Thursday, November 27, 2008

Thoughts about [clean code] from famous persons

I am reading the book: "Clean code - a handbook of agile software craftsmanship" - Robert C. Martin. In the first chapter, I found some interesting thoughts about "clean code" of famous persons in Software Engineering. I post them here. Hope you like these thoughts.



Bjarne Stroustrup, inventor of C++ and author of The C++ Programming Language


I like my code to be elegant and efficient. The logic should be straightforward to make it hard for bugs to hide, the dependencies minimal to ease maintenance, error handling complete according to an articulated strategy, and performance close to optimal so as not to tempt people to make the code messy with unprincipled
optimizations. Clean code does one thing well.


Grady Booch, author of Object Oriented Analysis and Design with Applications

Clean code is simple and direct. Clean code reads like well-written prose. Clean code never obscures the designer’s intent but rather is full of crisp abstractions and straightforward lines of control.


"Big" Dave Thomas, founder of OTI, godfather of the Eclipse strategy

Clean code can be read, and enhanced by a developer other than its original author. It has unit and acceptance tests. It has meaningful names. It provides one way rather than many ways for doing one thing. It has minimal dependencies, which are explicitly defined, and provides a clear and minimal API. Code should be literate since depending on the language, not all necessary information can be expressed clearly in code alone.


Michael Feathers, author of Working Effectively with Legacy Code

I could list all of the qualities that I notice in clean code, but there is one overarching quality that leads to all of them. Clean code always looks like it was written by someone who cares. There is nothing obvious that you can do to
make it better
. All of those things were thought about by the code’s author, and if you try to imagine improvements, you’re led back to where you are, sitting in appreciation of the code someone left for you—code left by someone who cares deeply about the craft.


Ward Cunningham

Ward Cunningham, inventor of Wiki, inventor of Fit, coinventor of eXtreme Programming. Motive force behind Design Patterns. Smalltalk and OO thought leader. The godfather of all those who care about code.




You know you are working on clean code when each routine you read turns out to be pretty much what you expected. You can call it beautiful code when the code also makes it look like the language was made for the problem.



If you are a developer, I advice that you should read this book. This is a very exciting book!

My poem - kiss

I like poems and I do poetry (just in Vietnamese) sometimes. Today, I have a strange thought: why I don't try to translate one of my poems into English? I hope it is still poem in English also. Ha ha.
This is the original Vietnamese version (hope you like it). In this poem, I wrote about a kiss.

Nụ hôn
Bóng tối chập chùng em và tôi
Phập phồng hơi thở cháy bờ môi
Tóc em xõa lấp màn đêm giá
Phủ cả hồn ta kín mất rồi



Translate into English:

Kiss
Is the dark moving or
... you and I?
Hurry in breath, lips are fire
Your hair is so black, cover the dark
Cover my soul... and my life

Do you have any idea about this translation? Is the translated version a poem in English?

Tuesday, November 25, 2008

Gift for you - my favorite VN song collection

I like music, especially songs of Pham Duy, Trinh Cong Son. In VN, we called these songs "Golden songs".
I posted a lot of my favorite songs in another blog: http://baihatvang.blogspot.com
I hope you like them also.
Pham DuyImage via Wikipedia

Monday, November 24, 2008

Open source collaborative working solutions

My girl friend is working in a perfume company (an inter-continent company). The CEO of this company wanted to find a solution to help his workers work in a collaborative environment with highest efficiency. They also need a Customer relationship management system to keep track of their customers information and their business goal. He asked the IT staff to do it.
As the result, they choose 2 software: Highrise for CRM and TeamworkLive for collaborative working system.

I do not have any idea about their choosing. However, I asked myself: what are alternative open source solutions for these needs. Actually, I am interested in collaborative working model. For a long time ago, I've had an idea about creating a software solution for collaborative working, but I do not have enough time to research carefully about this idea at that time.
In this topic, I only show you some open source solutions for collaborative working model that are available on Internet. I haven't had a detail look on these solutions. I hope you can. If you have more helpful information about these solutions or other solutions, please share to me also.



MindQuarry :
Mindquarry is an Open Source collaborative software platform for file sharing (documents, images, media files, etc.), task and project management, team collaboration and Wiki editing that meshes simplicity and functionality. As a result, knowledge workers are able to connect with team members and share information from wherever they are, effectively improving team-work and increasing productivity within the company.








Teamwork

Teamwork is a proven, reliable and friendly web based software solution for managing work and communication in any field. Groupware and project management features are used in an integrated environment, from which you can coordinate and manage hundreds of projects at once. It offers us some cool features for: Project management, Issues tracking, Document managing, Work logging, Smart features (shared calendar, prioritize assignment, ...)
Teamwork has an open source version (written on Java, Database independent). I downloaded it but not deployed yet. I will update you if I have any more information.







Dimdim:
Dimdim is the leading provider of open source web meeting software.
Dimdim is a free web conferencing service where you can share your desktop, show slides, collaborate, chat, talk and broadcast via webcam with absolutely no download required for attendees. It also offers us an open source version. We can customize it as our real needs.









kablink

A single Integrated Collaboration Environment that establishes a collaborative group workspace of people, teams, functions, tasks and content all working together to drive effective teamwork to the next level.

Kaplink is built from Java with Hibernate, Liferay portal and use Lucene as the Full text search solution behind.



If you have any other open source solutions for this, please share to me!
My slogan: Share to get more. I like this.

Sunday, November 16, 2008

livemocha - a success story of social network + e-learning

Image representing LiveMocha as depicted in Cr...
Recently, social network is emerging as a new trend. You can see a lot of social networks over the world: MySpace, Facebook, ... They appear like stars after Big Bang. Each social network has its mission in the real world (not only on Internet). The strength of social network is its community. When you have a big community, that means you have a big chance to get more money!

Actually, social network is only a type of model (a social model on Internet). If you can find a good idea to apply into a social network, that means you created a new model. For a long time, I tried my best to do that (invent new thing with social network). When researching, I found some of my "new" ideas exists in the real world. One of them is: combine social network with e-learning.

This type of social network appear recently. I strongly believe that this is a good model for e-learning. One of success web site applied this model is:

http://www.livemocha.com

The idea behind is very simple: "learning new language by friends over the world".
It creates a big community who wants to learn language by communication directly.

I found a very interesting analyzing in the CEO's blog of livemocha

Based on various research reports that I have seen, this is a market that is well over $20 billion in size with over 350 million people all over the globe learning a variety of different languages. In many countries, people can double their income by learning English because they can get more attractive jobs in industry. And the need has become even stronger given increasing trends towards globalization, immigration and travel.


Currently, Livemocha secures $6 million in funding led by Maveron.
Do you think this idea is interesting?

Saturday, November 15, 2008

Google Analytic example - How business view can help you ?

Yesterday, I received a request from a customer: create a tool to track statistic data on email campaigns. We must find the solution with cheapest price and lowest development cost.

Actually, I've used a lot of statistic tracking tools like: Google Analytics, SiteMetter, ... However, I thought that these are tools for web sites (not for email) because the real mechanism behind these tools is: the client (browser) must run a piece of Javascript to send statistic data into their server.
With email client, we can not run script because of some limitations regarding security.


I get in stuck.
How to solve this issue?
The CTO told me: I see that some companies use Google Analytic to track statistic data related to their marketing email campaigns.
Oh, really? I can not believe in that.
Search on Google, and this is the result:

http://www.epikone.com/blog/2008/11/04/email-tracking-with-google-analytics/

This is just a very simple idea: adding parametters into the link we want to track in email content. When user reads the email and open the link, Google Analytics will track this.
To view statistic data, user will use the filtering parameters to select data they want to view.

Oh! my god. Great
Actually, this is not a quite 100% good solution. However, it can make use of Google Analytic in a new way.



I think this is invented by a business man, NOT from any developers or technicians.
WHY I said that?
NO developer can find this - because they always think about complete and quite 100% good solutions.
In the mind of a business man, he wants to make use of everything. So, tricks are good ways save his money and make use of everything was available.

Do you want to be a developer with good business mind? I am trying my best to be that.

Web Standards Curriculum - Good course for web developer

Web standard is fundamental knowledge that all web developers need to know. I am going to look for a course about this for training in my company. Fortunately, I found this course in Opera developer community: "Web Standards Curriculum"

Web Standards Curriculum, a course designed to give anyone a solid grounding in web design/development, no matter who they are—it is completely free to use, accessible, and assumes no previous knowledge.

You can find this course here:

http://dev.opera.com/articles/view/1-introduction-to-the-web-standards-cur


About the author of this course

Picture of the article author Chris Mills

Chris Mills is a developer relations manager for Opera—he edits and publishes articles on dev.opera.com and labs.opera.com, liaises with the community to raise awareness of Opera and collect feedback, and evangelises about Opera software wherever he can. He is also the organiser and editor of the Web Standards Curriculum.

Outside of work, he is an extremely avid music fan, enjoying playing and listening to a wide variety of music, including metal, folk, punk, electronica, prog, and more. His main band at the moment is the mighty Conquest of Steel.



I hope this course is useful to you!

Tuesday, November 11, 2008

Domain brainstorming and tools

As you known, domain brainstorming is one of first steps when you want to set up a new web site. How to choose a good domain? That's a very good question.
To do this step, you should ask your friends about keywords related to your business that they think first. The rest task is "combine keywords and choose the best name that are still available on Internet".
You can check some guidelines here for this. Actually, that's not simple!

Fortunately, there are some tools to help you check available domains and give you some good suggest names.

BustAName - gives the widest range of available options: it mixes the given keywords, gives synonyms for each one, adds prefixes and suffixes, shows both singular and plural versions, drops last vowel, checks for both hyphen- and non-hyphen versions. The tool dynamically checks for 3 top level domains: .com, .net and .org

Domize - shows information on domain names availability one-character shorter than the one specified (covers 3 TLDs: .com, .net, .org).

PickyDomains.com — PickyDomains employs actual people who suggest names for your domain. The process begins by registering with the service, providing a description of your site, keywords and your preferences. Once your account is setup, they start suggesting names and you either flag them as “Like” or “Dislike”. As soon as you find a name you want, you “pick” the name and register it. The service costs $50.00 per domain name and you are charged only if you register a domain. My experience has been spotty. They certainly can come up with great names, but there is no consistency in the quality of names. But since you are not charged if you don’t register the name, it does not hurt to try. The good thing about using this service is that it makes you think hard about what your site should be about.

Web 2.0 Name Generator: This is a fun and easy website to use, especially if you just want a cool sounding name for your soon to be media empire. Simply go to the site and click on “Generate Name” and the site generates cool names.

PsychicWhois - covers a wide variety of TLDs (.com, .net, .org, .biz, .info, .us) and provides a lot of alternative domain name suggestions based on your previous searches and related terms.

Thesaurus.com: This is probably one of the more useful ways to pick a name. I usually start by jotting down a few key words, and start entering them into the thesaurus. The thesaurus kind of helps you to think about your name from different angles because of the various synonyms it suggests. Unlike Microsoft Word, thesaurus.com suggest synonyms that are similar in meaning but are divergent enough to make you think - its a great brainstorming tool.

Ajaxwhois.com: This site allows you to search for domain name availabilty. It is fast and very easy to use.

I like bustaname.com most. However, you can try all above tools to select your best choice.
Good luck

Monday, November 10, 2008

Apply accessibility to web projects

Recently, I see there' re many persons misunderstand about Accessibility. Someone can not distinguish it with Usability. So, I post this entry to help you have a general overview about this.
I also post some ideas related to the way we apply Accessibility into web project under 2 views: Company view and Project view.


Outline of this post:

  1. What is accessibility?

    1. WCAG (Web Content Accessibility Guidelines)

    2. ATAG (Authoring Tool Accessibility Guidelines)

    3. UAAG (User Agent Accessibility Guidelines)

    4. EARL (Evaluation and Report Language)

    5. WAI-ARIA (Accessible Rich Internet Application)

  2. Why we need to support accessibility?
  3. How to apply accessibility?


What is accessibility?


This is the Web accessibility definition from W3C


Web accessibility means that people with disabilities can use the Web. More specifically, Web accessibility means that people with disabilities can perceive, understand, navigate, and interact with the Web, and that they can contribute to the Web. Web accessibility also benefits others, including older people with changing abilities due to aging.

You can find here some scenarios that People with Disabilities Using the Web

From now, when we talk about Accessibility - we're talking about the ways to support people with disabilities to use the web.
So, do not confuse this definition with Usability.

Web standards for Accessibility


W3C composed a standard for Accessibility called WAI. These are a collection of guidelines to help us create web site and tools to support Accessibility.
There are 5 standard groups in WAI

1. WCAG (Web Content Accessibility Guidelines):
These are guidelines for web content. If we are a web based solution company - we should follow this. I need to explain to you more detail about this because this is what we have to support in our web projects.
In this document, there are 14 guidelines:
Each guideline has one or many checkpoints with 3 types of priority: 1(MUST) , 2 (SHOULD), 3 (MAY).

If you can support all checkpoints with level 1, you get Conformance Level "A".
If you can support all checkpoints with level 1, 2, you get Conformance Level "Double-A".
If you can support all checkpoints with level 1, 2,3 you get Conformance Level "Triple-A".
2. ATAG (Authoring Tool Accessibility Guidelines)
These are accessibility guidelines for tool to create content. Eg: WYSIWYG Editors, media tools, ...
3. UAAG (User Agent Accessibility Guidelines)
These are accessibility guideline for Web browsers, media players, and other user agent.
4. EARL (Evaluation and Report Language)
Evaluation and Report Language (EARL) is a machine-readable format for expressing test results. The primary motivation for developing EARL is to facilitate the processing of test results, such as those generated by Web accessibility evaluation tools, using a vendor-neutral and platform-independent format.
5. WAI-ARIA (Accessible Rich Internet Application)
WAI-ARIA, the Accessible Rich Internet Applications Suite, defines a way to make Web content and Web applications more accessible to people with disabilities. It especially helps with dynamic content and advanced user interface controls developed with Ajax, HTML, JavaScript, and related technologies

Why we need to support Accessibility?



  • Provide equal access and equal opportunity to people with disabilities

  • Web accessibility is required by laws and policies in some cases. You can see here some list of relevant laws and policies around the world

  • This is a new trend in 2.0 web sites. If you can support this, it is an added value to your customer.


How to apply accessibility?


In my point of view, I think we have 2 views to apply this.

Apply under organization view


The first thing we need to do is: training for web developers about Accessibility and its importance. Your developers must understand about WHY they need to follow it.

Second, you should have HTML coding standard document. This is a guideline to help your development team can follow it and transfer to the new one. Before doing this step, you should select the conformance level that your company will support by default. Actually, I haven't seen any site get the Conformance Level "Triple-A" (except http://www.w3.org/WAI/)

Apply under project view


If you want to apply WCAG. You should create a process to support this. In my point of view, the simple process should have 3 below roles:
1. HTML designer: he/she must make sure the output HTML design follow WCAG standard.
2. Web developer: he/she must apply HTML design into the code by proper way that create the final version matching WCAG standard.
3. Content checker or QC: check the final output.
4. Content developer: when your site is deployed into production, content developer takes responsibility of creating/editing content. He must has knowledge about Accessibility to follow that.
As a process, you must have document, guidelines and checklist to support it.
Roles in process are up to you. I just raise some default roles in a simple way. You can create your customized version to follow the default support conformance level (of your company) in WCAG.
Good luck!

Sunday, November 9, 2008

Doodle4google - the way google gets creative logos

Google changes its logo frequently for happening events. Have you ever wondered that how they do to have a lot of interesting logos?

Actually, they create a competition in doodle4google. You can go there to discover more.


Doodle 4 Google is a competition where we invite K-12 students to reinvent Google's homepage logo. This year we asked U.S. kids to doodle around the theme "What if...?"

Our winning doodle, selected from over 16,000 entries, was created by Grace Moon, a 6th grader at Canyon Middle School from Castro Valley, California. Grace's lovely doodle, "Up in the Clouds," will grace our homepage, Google.com, on May 22nd, 2008.


16,000 entries - great!

Entry bonus:
Watch this video to see how Google's Chief Doodler Dennis Hwang draws a Google Doodle from scrap to finish.


Saturday, November 8, 2008

Tools for blogspot

You can see a lot of widgets and some special features on my page. You may wonder how did I do that? :)

Actually, blogspot only supplies us some basic features for blogging. To get more features, you need to search "tips and tricks" on Internet and puts it into your blog. You can ask me: "oh, you may have a lot of free time, isn't it? Why do you like that?". Actually, NO - I do not have much time but researching ideas and good features on Internet is one of my hobbies. I takes my free time to do that.

In this entry, I list some good links for you if you want to enhance your blogspot page. If you have problem with any trick, you can contact me.





10 chat widgets for your page.
Add read more feature to your blog
Templates for your blog
Add rating feature to your blog
Add tag cloud into blogspot
Add sharethis into blogspot
Add sitemap to blogspot
Show related post in blogger
Add recent comments
This entry will be updated whenever I find any more good links.

Object relation mapping - Is it a Vietnam war science?

the Vietnam war


I read this article 1,2 years ago. I think it's valuable for anyone loves Object Relation mapping. You should read it carefully and think about what you applied with ORM in your projects.
The original article is: The Vietnam of Computer Science


You can find some more interesting related articles:



+ Object-Relational Mapping is the Vietnam of Computer Science
+ Thoughts on Vietnam commentary
Actually, I am a fan of ORM. I've ever had nightmare with Hibernate (a famous ORM framework). It takes my team many weeks to optimize the performance of the whole system. However, it does not break my dream about it.
If I have free time, I will post an entry to share with you some of my experiences in Hibernate (a famous ORM framework). Wait'n see.
Reblog this post [with Zemanta]

Google and KBird blog

I am in the top position of "KBird blog" in Google. :) Do you want to buy this keyword? LoL




Top reasons that manager should write blog

Some managers told me: forget it, I do not have enough time for blogging. We should save time for other more important things!
Actually, I sympathize with them. However, blogging has a lot of advantages. It may help you manage your team efficiently. You don't believe? :) See top reasons I've listed below to understand why.
KYOTO, JAPAN - FEBRUARY 9: Ichimame, an 19-yea...


  • Blogging helps your employee understand and sympathize with you more: if you have difficulties, or something need to explain to your employee - you can use blog. If you're good at writing, you can tell them about your emotion, what you're thinking ... However, do not tell any stupid thing when you're angry. That may create side effect of your blogging. :)

  • Blogging helps you to practice the writing skill: writing skill is one of must have skills of manager. Practicing it with blogging is a good way.

  • Blogging is a very useful tool for training (if you can make use of it): I see some of my friends post some entries to train the team in his blog. He received a lot of feed backs. That's a good signal to know your team can understand what you want to transfer.

  • Blog is a good tool for communication: through blogging, you can announce some thing and explain easier to your team. Actually, people like reading blog than reading the news board/policy board in the office.

  • Blog is a good place to create relationship: a lot of people tell me that they like making friends through blog. That's the great point that you should make use of. If each employee has a blog, introducing their blogs to others is the best way to help them understand each other fast and strengthen the relationship.



Why don't we try from now?

Friday, November 7, 2008

Usability error of Microsoft in setup project with VS 2005

In the past, one developer of my team has a problem with Visual Studio 2005 setup project. He wants to change the Product name in setup project but he can not find any place to do this. He also search on Internet but there is no good solution.
One day, I found the secret behind this story :). Actually, this is a usability bug of Microsoft. Let me show you what this bug is.


First, user right clicks and chooses Property of the setup project - he/she can not see anything related to the Product name, or information of what he/she needs to setup.





How he/she have to do now?
The answer is: please select the setup project in Solution Explorer. After that, click into the Property tab. Remember this carefully!











Microsoft Product manager, please tell me how many user knows this trick?

Thursday, November 6, 2008

Product manager - who are you?

NEW YORK - MARCH 3:  (L-R) Microsoft Product M...I had a chance to work with a big customer in a web 2.0 project. From this project, I've learned a lot of things from business to techniques.
After 1 year, our client gets financial support from one big Capital venture organization (over 3 million dollars) and this project becomes one of top 100 raising web 2.0 sites this year.
(I am so sorry because I can't tell you more information about my customer , and my project business - that's my principle)
One of the most important factors help this project to be success is: product managers. They created good road map and a good product positioning for our product.
In this entry I will help you understand more about this position and how it is important.
I also share to you some experiences when we develop a product from idea.

What is Product management?


First, we have to know what Product management is.


Product management is an organizational function within a company dealing with the planning or marketing of a product or products at all stages of the product lifecycle. (wikipedia)


So, more detail - in product management, what we have to do?

Product planning




Product marketing



  • Product positioning and outbound messaging

  • Promoting the product externally with press, customers, and partners

  • Bringing new products to market

  • Monitoring the competition


So, what is product manager?

Product manager


Product manager is the person who takes responsibility of Product management in an organization.
In production companies, there are
usually 2 separate staffs takes important role in product development: sale - marketing + product management staff. Sale & marketing staff research the market, predict market trend in the future and send it to Product management staff. Product management staff will research to create product to follow market trend.

How important this position is?


As you can see above, product manager takes care of all things related to Product management. It's a very important role because:

  • This position determines the success of product and strongly affects to your business

  • It determines the development trend of a company in the future. If your company is built only one product, the product management strongly affect to the vision and mission of your company .


How to develop a product from idea?


This is a big question, so I can not write all related things in only one entry. I just give you some questions that you need to answer before deciding to develop an idea:


  • Who are end users that your product/service serves?

  • How your product/service earns money? (What is your business model?)

  • Who are your competitors?

  • What is the most important difference of your product with others? (differentiation).

  • Why users must use your product (not others)?


...
These questions are not enough. I will post a series of entry related to this question.
Wait and enjoy!
Do not hesitate to feedback me if you have any other ideas.

Wednesday, November 5, 2008

Basic course for junior web developers

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

You can find the slide for this course here:
Basic course for junior web developers

Some cool pictures for wallpaper

Today, when searching a document in my computer, I found some old pictures I used as wallpaper for a long time. I think they're very nice. So, I upload them into Google Web Picasa. You can view and download them into your computer.

They may help your desktop screen to be nicer.

Enterprise solution patterns for Microsoft .NET (Books for technical architect)


This is one of good books that any Technical architect should read.
This book is organized in 6 chapters.
+ 2 first chapters introduce to you about concepts and how patterns are organized.
+ Main content of the book in the rest (4 chapters). You can find here all of necessary patterns for:
a. Web presentation patterns
b. Deployment patterns
c. Distributed system patterns
d. Performance and reliability patterns.



As a technical architect, you always face to application design. This book is really a must-read book if you need to refer some patterns in application implemented in Microsoft technologies.

One important note: do not read this book to learn technology or tips and tricks to solve your specific problem. You should learn ideas from patterns and apply them into your real project.

One very good news: you do not need to buy this book if you do not want hard-copy. You can find the online version on MSDN here






Tuesday, November 4, 2008

CMS comparision - where you can find a place to do this?

COMSHARP CMSImage via WikipediaIn the past, I received a request from my client: implement a CMS to satisfy some of their specific requirements.
The first step I have to do is: searching on Internet all of CMS solution and compare them for pricing, features, ...
Fortunately, I found a website very useful for this: http://www.cmsmatrix.org/

After checking all famous CMS on this site with features and pricing. I found the best solution for my customer.
I hope it can help you also

What wordpress.com must be improved?

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?


My custom answers for top difficult interview questions

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?

Reblog this post [with Zemanta]

About me

Tran Dang Khoa's photo
My name is Tran Dang Khoa. I live in Vietnam. I love my country - a safe and beautiful country with a lot of nice people (like me). I’ve worked in software development more than 4 years. I love my job also.


This blog is a place to share my knowledge and some of my bad/cool articles to everyone. You can also find some interesting things or some very bad things here.

Do not hesitate to comment and discuss with me about wrong/cool things here. :)

My hobbies



I love fictions, science, music and … software development.

One more thing, I love everything in Open source and its community.

I like the CAN DO attitude. With me, nothing’s impossible.

My nicknames


My friends often call me “Khoa Bird” because I like birds (I used them for my avatar) .

In company, they call me by another nick name “Cool bird” or “Kool Bird”. I like the “Cool” word. Whenever I say: “that’s cool already” - mean we've completely done one thing with the best quality. They trust me whenever I say that. :)


Javascript Object Oriented Programming

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.

Index

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
    this.methodName=function
    (){}
    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

Reblog this post [with Zemanta]

Javascript history

In this post, I just collect information from Wikipedia and some portfolios of persons who makes Javascript to be success today.
Everything has its history. Understand the history of Javascript helps you have a broader knowledge and makes you more interesting in working with this great programming language.

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

http://crockford.com/

http://blog.360.yahoo.com/douglascrockford





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.


Javascript programming

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.

I agree that writing Javascript to make the code run cross browser is complex and difficult with some developer. However, that’s not a big problem if you have a deep knowlege about Javascript. Everything has a little bit difficult starting. Right?

In this series of posts, I don’t want to dig into old knowledge about syntax, basic types, … in Javascript. If you want to know about that, you can get them with google. This series of post only focuses into these points:

1. Javascript introduction

2. Object oriented programming in Javascript

3. Unit testing with Javascript

4. Introduce some Javascript frameworks nowadays.

I am writing these parts and will post them one by one.

Wait ‘n enjoy.

Reblog this post [with Zemanta]

Saturday, September 13, 2008

Team building games

Today, our team decided to go to picnic together this Sunday. We also takes our girl friends and wives with us. I have an idea to organize some team work games for my team on this chance. So I go to google and do some searches. I found some interesting games for our picnic.

I've just posted them here to share with all of you. I think they're very helpful for anyone wants to build a stronger /more efficient team.
I will update this post frequently whenever I found some new great games.
Enjoy!
Because of a stronger team.

Top

Index of games:



Teamwork Icebreaker Game


This icebreaker game requires everyone in the group to work as a team. It provides not only a quick energy boost, but also information about how well the team or teams can work together.

The main goal of the Teamwork Icebreaker Game is to get the group to complete a task within a specific amount of time, or if you have more than one team, to see which team can complete an assigned task the fastest.

Sample tasks to try:

  • Build a house of card using 10 cards.

  • Form a line according to height (tallest to shortest or shortest to tallest).

  • Think up and write down 20 words that start with the letter "T".

  • Create and write down 5 questions that have the same answer.


After the icebreaker game ends, ask the teams to describe the strategy they used to work together and accomplish the task.

Candy Reach


A piñata, Easter egg hunt, and trick-or-treat; these are all great ways to get candy, but it’s every man for himself! People can become super competitive when there is candy involved, but in this game the more teamwork used the more candy you get!

Objective


To work together with your partner to problem solve and help each other to reach your goal.

Who


People who need practice working together with a partner to problem solve and who need practice offering help to others and accepting help from others. People must be able to be in a close space with other people.

Group Size


2 or more

Materials



  • An assorted bag of individually wrapped candy

  • A piece of cardboard, wood, carpet scrap etc. that is big enough for
    two people to stand on at the same time


Description


Set up the game prior to the activity by placing the board on the floor (make sure it won’t slide - maybe tape it down) and spreading the candy on the floor, all around the board. Put the pieces of candy far enough away that they would be hard to reach if you were standing on the board by yourself.

Ask the group to get into pairs. Challenge each pair to take a turn trying to get as much of the candy as they can by working with their partner and state the following rules.

1. Both you and your partner must be on the board at all times
2. No part of your body or clothing may touch the floor at any time
3. If you touch the floor you must go to the end of the line before trying again
4. You may not slide the cardboard
5. You must pick up the candy, not drag it
6. You may not use anything (i.e. belt, piece of clothing) to pick up the candy
7. What ever candy you pick up you and your partner may keep
8. Once you pick up one piece you may only try for ten more seconds before you go to the end of the line

Rule number eight is in place because once a team figures out a good way to get candy they may be able to get every single piece. You may wish to allow this and replenish the supply for each pair. It is a good idea to put some really good pieces of candy really far away to add to the challenge. Also for a shorter or taller pair you may need to adjust the distance of the board according to the group. To emphasize teamwork allow time for groups to come up with a plan and to practice before trying it out on the candy.
Hint: One person holds the other person who reaches out to get the candy.

Discussion Prompts


1. What did you and your partner have to do to be successful at this activity?
2. Could you have done this alone? Why or why not?
3. Are you ever in a situation where you must rely on others to be successful? Are you able to accept help from others? Why or why not?

4. When would it be good for you to accept help from others? Can you?
Go to top



Mega Mini Golf


Playing golf is an individual sport, but creating a golf course takes many different people working together to reach a common goal. In this activity each person can contribute unique ideas and listen to the ideas of others to make a great golf course.

Objective


For group members to be able to work with others in a group situation, by participating in group decision making.

Who


People who need to work on being a member of a team and getting along with teammates.

Group Size


4 to 16 participants

Materials



  • Large plastic cups

  • Hockey sticks or golf clubs

  • Whiffle balls or tennis balls

  • Any equipment that can be used to create mini golf obstacles (i.e. cones, basketballs, jump ropes, chairs, blocks, beanbags, tables, milk cartons, boxes, tumbling mats, etc.)


Description


Use a large field or open room. Place all the equipment (except for the hockey sticks or golf clubs and balls) in a pile in the middle. Break the group into smaller groups of two to four members.

Each group may use a few items from the pile to create an original mini golf hole. Each group gets one of the large plastic cups to use for the hole itself. Use the cup by tipping it onto its side so that the open end is the target at the end of the mini golf hole.

Using the selected items, the group creates an obstacle in front of the cup, with a designated starting point for the ball. Once each group has completed their mini golf hole, tour the golf course as a group, allowing each group to give an explanation of their hole to the rest of the group.

Once the tour is completed, give each person a hockey stick and ball. Have the group play a round of mini golf with each small group starting the game at a different hole.

Discussion Topics


Did everyone in your group contribute to the creation of the golf hole? If not, why not? If so, what contribution did you make?

2. Would it have been easier or more difficult to create a mini golf hole by yourself? Why?

3.Was there any confusion about the explanation of the course once play started?

Variations

  • Depending on the size of the group and the amount of time allowed, each group may be allowed to create more than one golf hole.

  • With younger children it is a good idea to supply each group with a small pile of items that they must use when creating their golf hole. Also, use hula hoops for the hole


Go to top

Helium Stick



  • Deceptively simple but powerful exercise for learning how to work together and communicate in small to medium sized groups.

  • Line up in two rows which face each other.

  • Introduce the Helium Stick - a long, thin, light rod.

  • Ask participants to point their index fingers and hold their arms out.

  • Lay the Helium Stick down on their fingers. Get the group to adjust their finger heights until the Helium Stick is horizontal and everyone's index fingers are touching the stick.

  • Explain that the challenge is to lower the Helium Stick to the ground.

  • The catch: Each person's fingers must be in contact with the Helium Stick at all times. Pinching or grabbing the pole in not allowed - it must rest on top of fingers.

  • Reiterate to the group that if anyone's finger is caught not touching the Helium Stick, the task will be restarted. Let the task begin....

  • Warning: Particularly in the early stages, the Helium Stick has a habit of mysteriously 'floating' up rather than coming down, causing much laughter. A bit of clever humoring can help - e.g., act surprised and ask what are they doing raising the Helium Stick instead of lowering it! For added drama, jump up and pull it down!

  • Participants may be confused initially about the paradoxical behavior of the Helium Stick.

  • Some groups or individuals (most often larger size groups) after 5 to 10 minutes of trying may be inclined to give up, believing it not to be possible or that it is too hard.

  • The facilitator can offer direct suggestions or suggest the group stops the task, discusses their strategy, and then has another go.

  • Less often, a group may appear to be succeeding too fast. In response, be particularly vigilant about fingers not touching the pole. Also make sure participants lower the pole all the way onto the ground. You can add further difficulty by adding a large washer to each end of the stick and explain that the washers should not fall off during the exercise, otherwise it's a restart.

  • Eventually the group needs to calm down, concentrate, and very slowly, patiently lower the Helium Stick - easier said than done.


How Does it Work?



  • The stick does not contain helium. The secret (keep it to yourself) is that the collective upwards pressure created by everyone's fingers tends to be greater than the weight of the stick. As a result, the more a group tries, the more the stick tends to 'float' upwards.


Processing Ideas



  • What was the initial reaction of the group?

  • How well did the group cope with this challenge?

  • What skills did it take to be successful as a group?

  • What creative solutions were suggested and how were they received?

  • What would an outside observer have seen as the strengths and weaknesses of the group?

  • What did each group member learn about him/her self as an individual?

  • What other situations (e.g., at school, home or work) are like the Helium Stick?


Toxic Waste



  • Toxic Waste - in ActionThis is a popular, engaging small group initiative activity which always "works", providing a rich teamwork challenge for about 30-45 minutes. Involves thinking, imagination, action, fantasy, risk and an attractive solution.

  • Can be done with adolescents or adults.

  • The challenge is to move the toxic waste contents to the neutralization container using minimal equipment and maintaining a safe distance within a time limit.

  • Moderately difficult - avoid using with groups who are still in the early stages of group development. Works best towards the end of a program and/or after the group has come together and dealt with basic teamwork issues.

  • Can be done indoors or outdoors; outdoors is more dramatic because water can be used as the "toxic waste" instead of balls.


Set-Up



  • Toxic WasteUse the rope to create a circle at least 8 ft in diameter on the ground to represent the toxic waste radiation zone. The larger the radiation zone, the more difficult the activity.

  • Place the small bucket in the center of the radiation zone and fill it with water or balls to represent the toxic waste.

  • Place the neutralization bucket approximately 30 to 50 feet away. The greater the distance, the more difficult the activity.

  • Put all other equipment (i.e., bungee, cords, and red herring objects (optional)) in a pile near the rope circle.


Directions



  • The challenge is for the group to work out how to transfer the toxic waste from the small bucket into the large bucket where it will be "neutralized", using only the equipment provided and within a time frame. The waste will blow up and destroy the world after 20 minutes if it is not neutralized.

  • Anyone who ventures into the radiation zone will suffer injury and possibly even death, and spillage will create partial death and destruction. Therefore, the group should aim to save the world and do so without injury to any group members.

  • The rope circle represents the radiation zone emanating from the toxic waste in the bucket. Emphasize that everyone must maintain a distance (circle radius) from the toxic waste wherever it goes, otherwise they will suffer severe injury, such as loss of a limb or even death.

  • Give the group some planning time with no action e.g. 5 mins, then start the clock and indicate its time for action, e.g., 15 or 20 mins.


Facilitator Notes



  • Toxic Waste is not an easy exercise and most groups will benefit from some coaching along the way.

  • The solution involves attaching the cords to the bungee loop, then guiding the bungee with the strings to sit around and grab the toxic waste bucket. Then with everyone pulling on their cord and with good coordination and care, the toxic waste bucket can be lifted, moved and tipped into the empty neutralizing bucket.

  • If someone breaches the toxic waste zone, indicated by the circle, enforce an appropriate penalty e.g., loss of limbs (hand behind back) or function (e.g., blindfolds if a head enters the zone) that lasts for the rest of the game. If a whole person enters the zone, they die and must then sit out for the rest of the activity.

  • If the group struggles to work out what to do, freeze the action and help them discuss.

  • If the group spills the waste entirely, make a big deal about catastrophic failure (everyone dies), invite them to discuss what went wrong and how they can do better, then refill the container and let them have another go.

  • Ideas for varying the level difficulty of the activity:

    • Adjust timeframe

    • Adjust distance between the buckets

    • Include obstacles between the buckets

    • Include red herring objects in available equipment




Processing Ideas



  • There are invariably plenty of key communications and decisions during the exercise that provide for fruitful debriefing.

  • The exercise will tend to naturally expose processes and issues related to many aspects of teamwork, including cooperation, communication, trust, empowerment, risk-taking, support, problem-solving, decision-making, and leadership.

  • Can be videoed for subsequent analysis and debriefing.

  • How successful was the group? e.g. consider:

    • How long did it take?

    • Was there any spillage?

    • Were there any injuries? (Often in the euphoria of finishing participants will overlook their errors and seem unconcerned about injuries and deaths caused by carelessness along the way. Make sure there is an objective evaluation of performance - it is rarely 'perfect'.)



  • How well did the group cope with this challenge? (e.g., out of 10?)

  • What was the initial reaction of the group?

  • What skills did it take for the group to be successful?

  • What would an outside observer have seen as the strengths and weaknesses of the group?

  • How did the group come up with its best ideas?

  • What did each group member learn about him/her self as a group member?

  • What lessons did the group learn from this exercise which could be applied to future situations?


Variations



  • Can be used a staff selection or group assessment exercise.

  • Can be used with large groups (with multiple kits and divided into small groups).

  • The toxic waste bucket can be used upside down, with a ball balanced on top.

  • The activity can be framed in many different ways, e.g., instead of waste, it could presented as a desirable substance, such as a life saving serum which needs be carefully transported (suggested by Rohnke & Butler, 1995, pp.178-179).

  • Divide the group into leaders and workers. Leaders can talk but not touch equipment. Workers cannot talk but can touch equipment.

  • Lends itself to being metaphorically structured and isometrically framed to suit specific training contexts (e.g., see "Computer Disinfectant" by Gass & Priest in Gass, 1995, pp. 151-154) and "Disseminating Raw Materials (Toxic Waste)", activity #57 in Priest & Rohnke 2000).

  • For added drama, the toxic waste can be floated on a platform in a swimming pool (Priest & Rohnke 2000).

  • A chemical reaction can be created by putting baking soda in the neutralization container and vinegar in the toxic waste container. When combined, they froth.

  • Object Retrieval is a variation in which a group needs to retrieve a heavy object from the middle of a circle, without touching the ground in the surrounding circle (Rohnke, 1994).


Go to top

Mine Field



  • A popular and engaging game involving communication and trust. The task is very flexible, works for groups of various types and sizes, and can be adapted to youth, adults, corporate, etc.

  • Select an appropriate area. Go outside, if possible. Can be done inside, even in rooms with fixed furniture (which can become objects to be avoided).

  • Midnight Crossing (Product Description)Distribute "mines" e.g., balls or other objects such as bowling pins, cones, foam noodles, etc.

  • Establish a concentrating and caring tone for this activity. Trust exercises require a serious atmosphere to help develop a genuine sense of trust and safety.

  • Participants operate in pairs. Consider how the pairs are formed - it's a chance to work on relationships. One person is blind-folded (or keeps eyes closed) and cannot talk (optional). The other person can see and talk, but cannot enter the field or touch the person.

  • The challenge is for each blind-folded person to walk from one side of the field to the other, avoiding the "mines", by listening to the verbal instructions of their partners.

  • Allow participants a short period (e.g., 3 minutes) of planning time to decide on their communication commands, then begin the activity.

  • Be wary of blindfolded people bumping into each other. The instructor(s) can float around the playing area to help prevent collisions.

  • Decide on the penalty for hitting a "mine". It could be a restart (serious consequence) or time penalty or simply a count of hits, but without penalty.

  • It can help participants if you suggest that they each develop a unique communication system. When participants swap roles, give participants some review and planning time to refine their communication method.

  • Allow participants to swap over and even have several attempts, until a real, satisfied sense of skill and competence in being able to guide a partner through the "minefield" develops.

  • The activity can be conducted one pair at a time (e.g., in a therapeutic situation), or with all pairs at once (creates a more demanding exercise due to the extra noise/confusion).

  • Can be conducted as a competitive task - e.g., which pair is the quickest or has the fewest hits?

  • The facilitator plays an important role in creating an optimal level of challenge, e.g., consider introducing more items or removing items if it seems too easy or too hard. Also consider coaching participants with communication methods (e.g., for younger students, hint that they could benefit from coming up with clear commands for stop, forward, left, right, etc.).

  • Be cautious about blind-folding people - it can provoke trust and care issues and trigger post-traumatic reactions. Minimize this risk by sequencing Mine Field within a longer program involving other get-to-know-you and trust building activities before Mine Field.


Variations



  • Minefield in a Circle: Blindfolded people start on the outside of a large rope circle, go into middle, get an item ("treasure", e.g., a small ball or bean bag), then return to the outside; continue to see who can get the most objects within a time period.

  • Metaphorical Framing: Some set ups for minefield get very elaborate and metaphor-rich, e.g., hanging objects which metaphorically reflect the participants' background and/or issues. For example, items which represent drugs, peer pressure, talking with parents about the problem, etc. have been used in a family adventure therapy program (Gillis & Simpson, 1994).

  • Participants can begin by trying to cross the field by themselves. In a second round, participants can then ask someone else to help them traverse the field by "talking" them through the field.

  • To increase the difficulty, you can have other people calling out. The blindfolded person must concentrate on their partner's voice amidst all the other voices that could distract them from the task.

  • Be aware that some participants may object to, or have previous traumatic experience around the metaphor of explosive mines which have caused and continue to cause much harm and suffering. It may be preferable to rename the activity, for example, as an "obstacle course" or "navigation course". Alternatively, the activity could be used to heighten awareness about the effect of land mines on the lives of people in countries such as Afghanistan and Nicaragua (see UNICEF information on land mines).


Processing Ideas



  • How much did you trust your partner (out of 10) at the start?

  • How much did you trust your partner (out of 10) at the end?

  • What is the difference between going alone and being guided by another?

  • What ingredients are needed when trusting and working with someone else?

  • What did your partner do to help you feel safe and secure?

  • What could your partner have done to help make you feel more safe/secure?

  • What communication strategies worked best?

  • For some more ideas, download Minefield in a Circle - Debrief (.doc)


Zoom and Re-Zoom



  • Zoom KitThis engaging group activity helps develop communication skills, perspective taking, and problem solving skills.

  • Based on the intriguing, wordless, picture books "Zoom" and "Re-Zoom" by Istvan Banyai which consist of 30 sequential "pictures within pictures". The Zoom narrative moves from a rooster to a ship to a city street to a desert island and outer space. Zoom has been published in 18 countries. The Re-Zoom narrative moves from an Egyptian hieroglyphic to a film set to an elephant ride to a billboard to a train.

  • Hand out one picture per person (make sure a continuous sequence is used).

  • Explain that participants may only look at their own pictures and must keep their pictures hidden from others.

  • Encourage participants to study their picture, since it contains important information to help solve a problem.

  • The challenge is for the group to sequence the pictures in the correct order without looking at one another's pictures.

  • Participants will generally mill around talking to others to see whether their pictures have anything in common. Sometimes leadership efforts will emerge to try to understand the overall story.

  • When the group believes they have all the pictures in order (usually after ~15 minutes), the pictures can be turned over for everyone to see.


Facilitator's Notes



  • Works with any age group, including corporate groups.

  • Can be done indoors or outdoors.

  • Once the challenge is finished, allow everyone to see the pictures and encourage participants to sort out any mistakes in the order (can be done on a table or the floor), then let everyone walk around view the pictures in sequence so they understand the full story.


Variations



  • Use as a novel icebreaker by handing each participant a picture on arrival. When everyone has arrived, explain that each person is holding part of a story and that the group task is to find out what the story is by putting their pictures in sequence.

  • Use a time limit to increase difficulty and enhance focus on teamwork.

  • Team performance can be measured (e.g., for a competition) by counting how many pictures are out of sequence.

  • If there are a few more people than cards, then pair people up.

  • For larger groups, if there is enough people then have 2 or more groups running the activity at the same time or use a sequence of cards to suit the group size.

  • For smaller groups, try disallowing talking. This increases the difficulty and creates the need for expressive sign language. In general, allow large groups to talk because there is enough complexity sorting out all the pictures.

  • Another way to increase complexity with small groups is to give each person more than one picture.

  • To reduce complexity for young groups (e.g., pre-school), allow a small group to look through all pictures and organize the story from beginning to end.


Zoom Kit



Processing Ideas



  • There is usually much potential for debriefing and discussion.

  • Why was it hard to get the story together?
    (everyone had a piece, but no-one had the big picture)

  • What type of communication was used in attempting to solve the problem?

  • What communication methods might have worked better? e.g., Imagine if, at the outset, the group had taken the time to let each person describe his/her picture to the rest of the group. What would have happened then? Would the solution have been found faster? What prevented such strategies from being considered?

  • Did you try to "second position" (i.e., see one's communications from the perspective of others)?

  • What kind of leadership was used to tackle the problem?

  • Who were the leaders? Why?

  • What style of leadership might have worked best?

  • If you were to tackle a similar activity again, what do you think this group could do differently?

  • What real life activities are similar to this activity?


References



  • Banyai, I. (1995).Zoom New York: Viking / Penguin.


  • Banyai, I. (1998). Re-Zoom New York: Viking / Penguin.


Go to top

All Aboard!



  • This activity requires working together in close physical proximity in order to solve a practical, physical problem. It tends to emphasize group communication, cooperation, patience and problem solving strategy, as well as issues related to physical self and physical proximity.

  • The activity can be run in many different ways.

  • Basic method: Ask the whole group to try to fit inside a small area which can be marked by:


  • When the group succeeds, decrease the area (e.g., changing platforms, shrinking the circle, or folding the tarp) and challenge the group again. How far can the group go?

  • Cautions: Obviously people are going to need to feel physically comfortable in order to get physically close and be supportive of one another. So make sure people are warmed up and preferably have removed excessive jewelry, watches, etc.


Variations



  • Tarp Flip Over: With a group standing on a tarp, challenge them to turn the tarp over without anyone touching the ground in the process. Can add a time limit e.g., 15 mins for this activity.

  • All Aboard!Framing, e.g.,"The group must work together to ensure everyone manages to get aboard the new management structure. As time goes by, the team must become closer to deal with shrinking margins and increased competition." [www.bushsports.com.au]

  • Name game: The activity can be used as a name game by setting the rule that every communication to another person must include that person's name.


Group Survival Scenario Exercise



  • A classic group communication and decision making exercise, with many variations.

  • Works for a wide variety of ages and purposes, indoors or outdoors.

  • There are two classic types of "paper & pencil" group survival scenarios (selecting equipment and selecting people). In each case:

    • Provide instructions & hand out materials

    • Set a time limit (~15-30 minutes)

    • Let the group go - answer questions, watch, & observe!

    • Debrief




Go to top

Survival Scenario Exercise


Scenario Type 1: Choose Survival Equipment




Your plane crashed...your group needs to choose the 12 most useful items to survive...

Choose / rank equipment items in terms of their relative survival value:

  • Participants choose/rank the items individually

  • Discuss choices/rankings in small group and come to a group consensus

  • Score answers against "expert" opinion

  • Possible scenarios:

    • Lost at sea or island survival (shipwreck)

    • Desert (plane crash)

    • Space or Moon




Scenario Type 2: People Survival Scenario (Who will be saved?)


A nuclear bomb has been dropped...a radiation-free shelter is available, but can only take 6 people; choose who will survive...

Choose / rank people in terms of who will get to live or die in situations with limited survival resources:

  • Participants role play characters (a bit like a Murder Mystery)

  • Survival Scenario Exercise - Lost at SeaCan lead to high emotions; people get intensely engaged, particularly when choosing who will survive, and none of the decisions are easy.

  • No right answers - any so-called "correct" answers are based on debatable values (e.g., ageism, sexism, racism)

  • Highlights individual's dispositions, group processes and decision making

  • Possible scenarios:

    • Nuclear war shelter

    • Oxygen dwindling (space, moon, mars)

    • Lifeboat / Sinking ship (sea)




Variations



  • Appoint a time keeper in each group and encourage them to be the person who monitors the progress of the group towards achieving consensus within the time frame.

  • To emphasise individual versus group decision making, split the session into three parts:

    • Individuals make their own selections first, on paper (5-10 minutes)

    • Groups (or sub-groups) then discuss and create a group decision

    • Compare individual and group performances, e.g.,:

      • For equipment scenarios, group decisions are usually more accurate than individual answers, helping to illustrate the importance of collaborative group decision-making.

      • For people scenarios, score individuals according to how close the group's decision was to their own selections of who is to live and die (an indicator of each person's influence over the group).






Possible Debrief Questions



  • How were decisions made?

  • Who influenced the decisions and how?

  • How could better decisions have been made?

  • How was conflict managed?

  • How did people feel about the decisions?

  • How satisfied was each person with the decision (ask each participant to rate his / her satisfaction out of 10, then obtain a group average and compare / discuss with other groups' satisfaction levels)

  • What have you learnt about the functioning of this group?

  • How would you do the activity differently if you were asked to do it again?

  • What situations at work/home/school do you think are like this exercise?


Go to top

Great Egg Drop



Variation



Go to top

Warp Speed



  • Warp Speed is a Group Juggle spin-off activity to focus on problem-solving and teamwork.

  • Extends the common Group Juggle icebreaker/name game to a team building exercise by asking participants how fast they can pass the ball to everyone (including saying names). Groups can tender a time and then try to deliver. Push them to go even faster.

  • Use the set up & instructions as for Group Juggle, but probably not emphasizing names.

  • Challenge the group to see how fast it can juggle one ball around the whole group. Time the group, and ask them to "tender" for how fast they think they can really do it.

  • Explain that the tender is like a business tender - they must put in a really good bid, but they must be able to deliver.

  • Allow time for discussion and planning.

  • Then ask them what their tender is & then ask them to deliver it.

  • If they make it, then ask them to think again, because they undersold themselves. Ask them to come up with a new tender which better reflects their capabilities as a group.

  • If they don't make it, then ask them to discuss what went wrong, and say you'll give them a second chance to make their tender.

  • Generally requires debriefing.


Go to top

Multi-Way Tug-of-War



  • Fun, finale-type activity. Physically exhausting and emotionally climaxing!

  • Works for kids through to corporate programs. Ideal for adolescents and possibly youth at risk. Especially with older adults, be careful with this activity, especially if they are unfit or if overexertion is contraindicated (e.g., heart problems).

  • Use for any size groups, indoor or outdoor. Ideal is large group outdoors.Multi-Way Tug-Of-War Pick a soft location e.g., grass/beach.

  • In traditional 1 on 1 tug-of-war it is mostly strength that wins, with a few tactics.

  • In multi-way tug-of-war it is mostly tactics that wins, with some strength.

  • Lay out the ropes, etc. as shown in diagram below.

  • Participants should prepare appropriately e.g., watches and hand jewellery off.

  • Divide into groups and make sure the groups appear to be of similar strength.

  • Brief group on normal tug-of-war safety rules, basically:

    • no wrapping or tying rope around anyone or anything - only hold rope with hands

    • watch out for rope burn on hands - let go if rope is moving through hands

    • watch out for rope burn on body - let go if you lose footing



  • First command from the Tug-of-War master is "take the strain". This is only to take up the slack, that's all. The Tug-of-War master makes sure the centre ring is stable and centered. This needs strong leadership because teams are always keen to add extra strain!

  • Second command is "Go!!"

  • Teams attempt to pull the center ring or knot over their finish line. This can rarely be achieved by strength alone and instead will require guile. Teams can swivel to cooperate / compete with other teams, then switch directions, etc.

  • Conduct several rounds. Continue, say, until one team earns 3 victories and the Tug-of-War title.

  • Allow teams plenty of time to physically recover and debrief/plan after each round.

  • Team building groups may wish to discuss what the secrets to success were in this activity - and whether these lessons apply elsewhere


Go to top