Wednesday, December 9, 2009

Google Chrome Extensions

The Google Chrome team opened up an official gallery of browser extensions. That's exciting news because the addition of more than 300 extensions, combined with blazing speed and good stability, makes Chrome the best browser on the market today.
Cool Things about Chrome extensions are:

  • Chrome extensions install without a browser restart and they update automatically.
  • Too many extensions have been a part of the bloat that's made Firefox-use nearly intolerable for many of us, but the Chrome team says extensions will cause no more drag on Chrome performance than opening up a new web page in another tab would. That's a big part of the premise of Chrome, that every process is running distinct from other processes, so one tab can't slow or crash the others. It's an architecture well suited to running web applications, not just loading web pages, and it's great to hear that the extensions platform works the same way.

Tuesday, December 8, 2009

How to Set Goals



Find Direction. Live Your Life Your Way.


If life is a journey, how will you get there if you don’t have an itinerary? 
Ans: Goals tell you where you are going, how you are going to get there and what you will do when you get there.


Starting to Set Lifetime Goals
Goals are set on a number of different levels: First you create your "big picture" of what you want to do with your life, and decide what large-scale goals you want to achieve. Second, you break these down into the smaller and smaller targets that you must hit so that you reach your lifetime goals. Finally, once you have your plan, you start working to achieve it.

  • Artistic: Do you want to achieve any artistic goals? If so, what?
  • Attitude: Is any part of your mindset holding you back? Is there any part of the way that you behave that upsets you? If so, set a goal to improve your behavior or find a solution to the problem.
  • Career: What level do you want to reach in your career?
  • Education: Is there any knowledge you want to acquire in particular? What information and skills will you need to achieve other goals?
  • Family: Do you want to be a parent? If so, how are you going to be a good parent?
  • Financial: How much do you want to earn by what stage?
  • Physical: Are there any athletic goals you want to achieve, or do you want good health deep into old age? What steps are you going to take to achieve this?
  • Pleasure: How do you want to enjoy yourself? - You should ensure that some of your life is for you!
  • Public Service: Do you want to make the world a better place? If so, how?
Starting to Achieve Your Lifetime Goals
Once you have set your lifetime goals, set a 25 year plan of smaller goals that you should complete if you are to reach your lifetime plan. Then set a 5 year plan, 1 year plan, 6 month plan, and 1 month plan of progressively smaller goals that you should reach to achieve your lifetime goals. Each of these should be based on the previous plan.

Finally review your plans, and make sure that they fit the way in which you want to live your life.

Goal Setting Tips

The following broad guidelines will help you to set effective goals:

  • State each goal as a positive statement: Express your goals positively – 'Execute this technique well' is a much better goal than 'Don't make this stupid mistake.'
  • Be precise: Set a precise goal, putting in dates, times and amounts so that you can measure achievement. If you do this, you will know exactly when you have achieved the goal, and can take complete satisfaction from having achieved it.
  • Set priorities: When you have several goals, give each a priority. This helps you to avoid feeling overwhelmed by too many goals, and helps to direct your attention to the most important ones.
  • Write goals down: This crystallizes them and gives them more force.
  • Keep operational goals small: Keep the low-level goals you are working towards small and achievable. If a goal is too large, then it can seem that you are not making progress towards it. Keeping goals small and incremental gives more opportunities for reward. Derive today's goals from larger ones.
  • Set performance goals, not outcome goals: You should take care to set goals over which you have as much control as possible. There is nothing more dispiriting than failing to achieve a personal goal for reasons beyond your control. In business, these could be bad business environments or unexpected effects of government policy. In sport, for example, these reasons could include poor judging, bad weather, injury, or just plain bad luck. If you base your goals on personal performance, then you can keep control over the achievement of your goals and draw satisfaction from them.
  • Set realistic goals: It is important to set goals that you can achieve. All sorts of people (employers, parents, media, society) can set unrealistic goals for you. They will often do this in ignorance of your own desires and ambitions. Alternatively you may set goals that are too high, because you may not appreciate either the obstacles in the way or understand quite how much skill you need to develop to achieve a particular level of performance.


SMART Goals:
A useful way of making goals more powerful is to use the SMART mnemonic. While there are plenty of variants, SMART usually stands for:
  • S Specific
  • M Measurable
  • A Attainable
  • R Relevant
  • T Time-bound
For example, instead of having “to sail around the world” as a goal, it is more powerful to say “To have completed my trip around the world by December 31, 2015.” Obviously, this will only be attainable if a lot of preparation has been completed beforehand!

Achieving Goals

When you have achieved a goal, take the time to enjoy the satisfaction of having done so. Absorb the implications of the goal achievement, and observe the progress you have made towards other goals. If the goal was a significant one, reward yourself appropriately. All of this helps you build the self-confidenceyou deserve!

With the experience of having achieved this goal, review the rest of your goal plans:

  • If you achieved the goal too easily, make your next goals harder.
  • If the goal took a dispiriting length of time to achieve, make the next goals a little easier.
  • If you learned something that would lead you to change other goals, do so.
  • If you noticed a deficit in your skills despite achieving the goal, decide whether to set goals to fix this.
Failure to meet goals does not matter  much, as long as you learn from it. Feed lessons learned back into your goal setting program.
Remember too that your goals will change as time goes on. Adjust them regularly to reflect growth in your knowledge and experience, and if goals do not hold any attraction any longer, then let them go.


Key Points
Goal setting is an important method of:
  • Deciding what is important for you to achieve in your life.
  • Separating what is important from what is irrelevant, or a distraction.
  • Motivating yourself.
  • Building your self-confidence, based on successful achievement of goals.
If you don't already set goals, do so, starting now. As you make this technique part of your life, you'll find your career accelerating, and you'll wonder how you did without it!


Steps to set your goals



  • Decide what you want first of all. The problem with so many people is that they do not know what they really want. In other words they are not at all clear about what they want in life. Setting your goals, needs you to make a decision about that which you want, and determine when you want to have achieved that thing. In other words you must put a deadline to what you currently want. Get clear about what you want.
  • Have a good plan of attack. Ask yourself:
    • What do I know about this?
    • What information do I have?
    • What information do I need? Where can I get it?
    • What skills do I need to master?
    • What other resources should I use?
    • Is this the best way to do it, or is there some other way?
  • Start small, but keep walking. Goals don’t necessarily have to be big ones. When you set your goal too high, you might find it too overwhelming and time consuming and just give up, or make another one, just as big. It’s akin to quitting cold turkey – there are setbacks.
  • Set goals in small increments, complete with time, dates, amount, some details. If you tell yourself, “I’m going to be an opera singer” and then sit around and wait for it to suddenly happen, you could be waiting all your life. Start with singing lessons for a month, and then a year and expose yourself to opera music. You can then progress to more singing lessons year after year. By breaking down your goals in smaller, workable units, you are more likely to make them come true. Remember, even the great ones had to start somewhere.
  • Be positive when stating your goals. Instead of saying, “I am not going to miss my exercise routine today,” say “I’m really busy, so I’ll probably just make time for 20 minutes on the treadmill.” Stating your goal positively will help you view it as a good thing to do, and not as a byproduct of what you had to avoid.
  • Spread out your goals. So maybe we do have certain general goals that apply to all areas of our lives like, “I want to be successful” or “I want to be rich” but those would seem as far away as the Niagara Falls viewed from Hawaii. Instead, try making tiny goals for different aspects of your life, one or two for each, even more if you like. These areas are: family and home, career, social, physical, mental and spiritual. If you say, “I want to be a successful dad,” then try to make goals towards the development of your family life while still keeping an eye out for ways to improve your career and other areas of your life.
  • Don’t underestimate yourself. It’s tempting to sometimes just slack off, or let yourself off too easy. If you want to write the definitive American novel, then don’t try to churn out just a page or two a day when you know you are more than capable of writing five pages, even ten. The fear of failure is sometimes to blame for setting our goals too low. How often have we said, “I don’t really want to volunteer for that project ‘cause I might screw it up. And then my colleagues will make fun of me.”
  • Remember that some fears are unfounded. How do you know you’ll actually ruin it? And how do you know for sure your coworkers will laugh at your effort? If you try to reason with your fears, more often than not, you’ll realize that there really is no reason for you to be reluctant and that in fact, you can do it.
  • Write it down. Putting your goal down on paper is more than just memorizing it. You are actually confirming your willingness to make it come true. A written list of goals is an effective reminder of what you need to do and once you’re done, a good review of your accomplishment. A simple list on a piece of notebook paper is fine, or using a computer program to really jazz it up works just as well. You may want to hang it up somewhere, as a constant reminder to work toward your goals: inside your closet, the back of your medicine cabinet door, or on your bulletin board near your desk.
  • Affirm it. Affirmation is really more than writing down, “I am going to buy my $750,000 home by Christmas” twenty times. It’s actually being conscious not only of your thought processes, but also of your acts during the day.
  • If you’re trying to save money and then you pass by a shop window where a great pair of shoes seems to have your name on it, think, “If I buy those shoes, would I be making my goal of saving easier? Will I be able to meet my deadline if I splurge just this once? A few months from now if I don’t meet my deadline because I didn't save enough, would I feel good about it?”
  • Stop procrastinating. So you’ve heard this before. Big deal. Well, it is. Time wastage is one of the greatest crimes in history. If Henry Ford put off studying and tinkering with machines for another time, someone else would have improved on automobiles and he wouldn't have gone down in history as a pioneer. If you’re used to procrastination, being bullheaded about a goal can seem scary at first. Try to set a schedule and then reward yourself each time you meet it.
  • Start inculcating the habit of liking something. The most difficult thing is to LIKE something useful. For example we may like that particular model, star, lazing around with friends, to impress the opposite sex etc...but do they give us any long term returns? They just look jazzy for a small period of time and again life is as usual, that which has no achievement. .Our mind generally rejects any conscious attempt to focus on any worthwhile goal. Some really lucky souls subconsciously liked these worthwhile goals and made it big. Many of us focus subconsciously on these petty things such as entertainment, celebrities etc...and when time comes for focusing on big ones we back out because we have an already loaded negative image of that goal. It is simply a misinterpreted relativity. No reason to feel worthless before a big goal just because we have been LIKING petty goals. You need to think big, when you are setting goals, think great thoughts. You must also crystallize your thinking, make it clear to you first, then write it down.
  • Plan ahead, so you can get ahead.












                Thursday, December 3, 2009

                Roles and responsibilities of Senior Software Engineer


                Primary Roles and Responsibilities:

                • Responsible for planning, processing and performing all jobs in an efficient manner with no assistance from the supervisor
                • Working closely with upper management.
                • Design and develop programming systems making specific determinations about system performance.
                • Responding promptly and professionally to bug reports.
                • Review and repair legacy code.
                • Expected to conduct system analysis and development, with limited support from professional staff, to keep our systems current with changing technologies.
                • Analyze, design, coordinate and supervise the development of software systems to form a basis for the solution of information processing problems.
                • Analyze system specifications and translate system requirements to task specifications for junior programmers.
                • Responsible for analysis of current programs including performance, diagnosis and troubleshooting of problem programs, and designing solutions to problematic programming.
                • Responsible for developing new programs and proofing the program to develop needed changes to assure production of a quality product.
                • Responsible for development of new programs, analyzes current programs and processes, and making recommendations which yield a more cost effective product.
                • Writes, edits, and debugs new computer programs for assigned projects, including necessary records and desired output.
                • Tests new programs to ensure that logic and syntax are correct, and that program results are accurate; assists lower-level programmers with programming assignments.
                • Document code consistently throughout the development process by listing a description of the program, special instructions, and any changes made in database tables on procedural, modular and database level.
                • Responsible for reading, understanding, and utilizing all part and assembly prints, forms, spreadsheets, bills of material, specification sheets, and technical references.
                • Responsible for utilizing tools and equipment involved in performance of essential functions of programming including measuring instruments.
                • Search, summarize and keep the team abreast of strategic information from all sources
                • Maintain client databases
                • Capable of writing proposals or papers.
                • Making presentations to customer or client audiences or professional peers.
                • Maintain positive client interactions.
                • Strong and effective inter-personal and communication skills and the ability to interact professionally with a diverse group of clients and staff.
                • Responsible for communicating with engineers and manufacturer's technical support staff regarding programming needs and performance.
                • Provide general administrative support to the organization
                • Provide feedback to analysis/training staff about performance considerations / usability issues concerning software specifications and implementation.
                • Research and recommend software tools to management.
                • Provide assistance to testers and support personnel as needed to determine system problems.
                • Review, to the extent possible, changes in code and the environment that will affect system performance.
                • Provide recommendations to management concerning issues of programmer productivity and software development management.

                Additional skills and/or areas of expertise:

                • Ability to solve problems quickly and completely.
                • Ability to identify tasks which require automation and automate them.
                • A solid understanding of networking/distributed computing environment concepts.
                • Solid understanding the principles of routing, client/server programming.
                • Possess excellent communication skills, with an emphasis on verbal and written communication.
                • Ability to multi-task and stay organized in a dynamic work environment.
                • Possess a positive attitude.
                • Ability to "think outside the box".
                • Consult with the Lead Programmer and the Technical Manager regarding professional skill development.
                • Prepare reports and analyses setting forth progress, adverse trends and appropriate recommendations or conclusions.
                • Participate in development of long range planning for new projects and facilities.
                • Experience and ability to teach or instruct co-workers.
                • Providing advice, training and technical support for various projects.
                • Working closely with management team in evaluating current systems and making decisions on future development.
                • Possess extremely advanced technical skills.
                • As new technologies emerge and impact our systems, expected to learn these technologies very quickly and resolve any problems involved in integrating new technologies with our systems.
                • Expert knowledge of technology on which they work.
                • Expert knowledge of computer logic and flow-charting.
                • Expert knowledge of computer program design methods and techniques.
                • Expert knowledge of all compiler versions.
                • Ability to learn new programming languages quickly.
                • Good knowledge of mathematical and statistical principles and formulas.
                • Assists the Programmer Analysts in designing programs and databases.
                • Ability to write, edit, and debug computer programs to achieve desired output.
                • Ability to work productively in a team.
                • Expert knowledge of maintaining and debugging live software systems.
                • Expert knowledge of writing program documentation.
                • In-depth technical knowledge of the current hardware.
                • Expert knowledge of used operating systems.
                • Expert knowledge of standard development tools.
                • Expert knowledge of networking technologies from the programmers prospective.
                • Ability to determine whether a particular problem is caused by hardware, operating systems software, application programs, or network failures.
                • Good knowledge of security and encryption.
                • Updates and modifies computer programs to improve efficiency.
                • Performs work of high difficulty in designing, writing, editing, modifying, and debugging computer programs.
                • Define functional specifications of the system for the appropriate hardware.
                • Expert knowledge of component writing.
                • Demonstrated ability to use standard computing tools: Word processor, spreadsheet, browser, email, and file compression software.
                • Overall knowledge of the computing environment at large, e.g. typical uses and user populations of operating systems, communications protocols, hardware platforms, etc.

                How to do Personal development

                • Be on time for ALL your appointments. If you schedule a meeting, set a time to visit with a client, or tell a friend you'll meet them for a working breakfast you have to be there at the time you set or you will lose their respect. If your dispatcher tells a client the serviceman will be there at 1pm, make sure he is. It's just common courtesy, but it will really help your business.
                • Stop and smell the roses. Believe it or not, you will do a better job with your business if you let your mind wander once in a while. Take a break. Recharge your internal battery. When you go back to work you will be more creative as well as less stressed.
                • Be Careful Who You Step On Your Way Up, they will be there on your way down too.
                • You Are Not Smarter Than Everybody. You may be smarter than anyone, but you are not smarter than everyone. Seek input from the group, and LISTEN to it. You will be surprized at what you can learn.
                • Get Involved. If you think you are too busy to get involved in civic and charitable activities, you don't know what you are missing. The greatest reward is the personal satisfaction, but you will also make a lot of valuable contacts.
                • Do Your Homework. Whether it's a proposal to a major client or a meeting with the Shop Steward of a union, you will do better if you are prepared. Collect the facts, think the problem through, talk to the others involved. Take the time to do the "up-front" work and the "downstream " work will be easier and more rewarding.
                • It's not how hard you work, it's what you get done. Anybody can work hard, and most people do. The really successful people focus on accomplishing results not on effort expended.
                • Learn from the mistakes of others. You can't live long enough to make them all yourself.
                • Focus your energies. There are a lot of demands on your time, but your time and energy are limited. Focus on what is important to you and do that first. It is better to do a few key things well than to do lots of things, but none of them well.
                • Work On Your Weaknesses First. In any position or job you find yourself, there will be things you do well, some you do okay, and some you don't do so well. To improve yourself, and increase your value, work first to improve in those areas that are your weakest.
                • Dare to Dream. You can't move forward if you are always looking back. You can't find new solutions if you believe 'it can't be done'. Have the courage of your convictions and go after it.
                • Anyone can steer the ship in calm waters. What will set you apart in your career is how you perform during the tough times. Don't become complacent and relax just because things are going well. Plan ahead for the downturn.
                • You have to make a difference. The group you manage has to be more effective, more productive with you there than they would be if you were not. If they are as productive without you, there is no business sense in keeping you on the payroll.

                How to Counter Back Stabbers!


                • Keep your emails - The most simple thing you can do at work. Keep all your email conversations and archive them if you run out of space. These electronic emails will be useful as evidences and proofs against biased remarks made against you in the event that calls for it!
                • Document all conversations in the workplace - Document all verbal and phone conversations in an email and send it to the party that you spoke to get their consensus on the conversation content. Being the same as keeping emails, it will become useful as evidences and proofs in future!
                • Be sure to have someone to standby you in any major decisions make - Find someone to back you up in any decisions you make. Why? First, you want to have a witness in your decision and when things go against you, you have a witness to standy you. Secondly, you may not be able to make a major decision alone. If you do, you might get yourself into trouble and that may be used against you in future. Therefore, get someone to share the risk with you! If it involves management, the troublemaker will have to think twice as there are consequences to it. J (Part of deterring these troublemakers is to make them think of the consequences and the risk versus effort taken)
                • Attempt to covered most of your loop holes in your work - We cannot cover all the risks. But at your best effort, cover all risk and loop holes. You do not want to be uncovered of loop holes by your back stabber, right?
                • Always hang around with the "neutral" guys of the organisation - Avoid the "bad" or "loud" guys of the organisation. It's birds of the same feather flying in a flock. Generally, "bad" or "loud" groups tend to be at some kind of office power competition (of any kind). Therefore, you can avoid being becoming a pawn in the struggle by not joining the group. However, having said that, it's still up to individual preference on their social circle.
                • Be neutral in most situations - Being friendly and not siding to anyone leaves you safe from most office power struggle. If you do have a point you want to drive across, be firm but at the same time give room for alternatives to those potential back stabbers. Give them options to choose that will beneficial to them. If you do not do that, you may end up making enemies instead!