Thursday, November 13, 2008

Happy Children's Day

While 20th November is universally celebrated as Children’s Day, in India this day has been preponed to 14th November, the date the marks the birth anniversary of independent India’s first Prime Minister – Pandit Jawaharlal Nehru. The reason why his birthday has been chosen for the celebration of children is because of his love and passion for children.

Wednesday, November 5, 2008

Some cool tricks for Linux

Ctrl+Alt+'+': Using this command switches you to a higher resolution
than your GUI started up in.

Ctrl+Alt+'-': Using this command switched the screen resolution lower.

Ctrl+Alt+Backspace': It kills the X server. Use it if your normal
logout option does not work.

Shift+PageUp: Scrolls up through the terminal output. Use this and the
one below to move through screenfuls of information.

Shift+PageDown: Scrolls down through the terminal output.

Ctrl+Alt+F1: Linux gives you the capability of working on more than
one virtual terminal at a time. You can have any number of virtual
terminals but most Linux system are setup for six that are accessible
through 'ctrl + alt + f1' to 'ctrl + alt + f6'. So, basically f1-fn
tells your system to switch to the virtual terminal corresponding to
the function key number. You will be using this most often to jump
from one terminal to another.

Ctrl+Alt+F7: While working in the Unix command line interface, if you
want to get back into the GUI mode, all you have to do is issue this
command.

Ctrl+C: This command halts a running process. Use this to quickly exit
from any program that you are running.

Ctrl+D: This command is used to log you out of a particular terminal.
It also issues an EOF (End Of File) to the program that you are
working in.

Ctrl+Z: Sends a current process into the background. Also if your
terminal is messed up because you 'cat' a binary file 'ctrl + z' will
clear up the screen for you and give you a clean prompt.

Ctrl+S: Scroll lock. Your screen will not be updated.

Ctrl+Q: Remove the scroll lock set above. You will now be able to
interact properly with your terminal.

Tab: One of the most used keys. Pressing the 'tab' key while typing
the path to any directory or a filename is very helpful. Write the
first few characters of the file or directory and press the tab key to
complete the name or give you a list of possibilities. When pressed
during an incomplete command, the 'tab' key completes the command for
you.

Ctrl+Alt+Del: When used at the console it reboots the machine.
Remember it causes a soft boot and not a cold boot. The system will
shutdown all services before rebooting.

UP Arrow: In the terminal, it cycles through the list of commands that
you have executed.

GPM: Let's look at copying data from one virtual terminal to another.
This requires your mouse to be setup for GPM. Use mouseconfig under
Red Hat and Yast under SuSE to set up your mouse correctly. Also make
sure the package GPM is installed beforehand.

MiddleMouseButton: Just select the text you would want to copy using
your mouse. Do as you would under Windows. Press and hold the right
mouse button and then drag to select the text. Then switch to the
terminal you want to copy to and click the middle mouse button. This
will paste the text at the current cursor location.

~: This represents your home directory. Use this in a command and the
`~` will get replaced by your home directory. cd ~/freeos . This
command gets you to the 'freeos' directory, which is a sub-directory
under your home directory.

Setting the speed of your mouse in X: Do a "man xset" and look at the
option 'm'.

'Very Fast' xset m 7 10
'Normal(Fast)" xset m 3 10
"System Default" xset m default
"Glacial" xset m 0 10

The xset -m option takes two parameters: the first is the speed and
the second is the threshold value. But these values will be reset as
soon as you log out. To make this setting permanent, just add it to
the ".xsession" file in your home directory.

Ctrl+Right-Mouse-button: Setting your Font Size in xterm. To set your
font size in an Xterm you can make use of the command 'setfont' or
simply just do the following. If you are in an xterm use 'ctrl + right
mouse button. This will popup a menu where you can choose some
(standard) font-sizes.

How to kill Netscape but have it save your bookmarks and history:

'kill -12" (USR2) is more gracious, when used to terminate Netscape.
Netscape will save the bookmarks and history files of the current
session.

Disable Blanking in Text consoles:

setterm -blank 0. To make this setting permanent, just add it to
your .xsession file in your home directory.

To disable X-Server screen blanking:

xset s off

To make this setting permanent, just add it to your .xsession file in
your home directory.

Turning off PING reply:

PING ( Packet Internet Groper ) is a service used most commonly to
figure out the network status of your machine. Many a time the useful
service provided by it could be used for a D.O.S. (Denial Of Service)
attack against you.

A simple 'echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all' will do
the trick. To turn it back on, simply 'echo 0 > /proc/sys/net/ipv4/
icmp_echo_ignore_all' to turn off the service.

Killing a Virtual Console without rebooting:

Log in as root, type 'lsof /dev/ttyx' where the 'x' in /dev/ttyx is
the terminal number of the hung virtual console. This will show you
the process that occupies this tty. Kill it and the getty process for
that virtual console should respawn.

32 Cool Tips for Windows XP

1. Press Win+L to switch to the Welcome screen.
2. Press Win+L to lock your workstation.
3. You can switch users without going through the Welcome screen:
From Task Manager, go to the Users tab, right-click a user, and select
Connect.
4. Hold down the shift key in the shutdown dialog to change "Stand By"
to "Hibernate". Or just press H to hibernate instantly. You can even
use the Power Control Panel to configure your power button to
hibernate.
5. To disable the password when resuming from standby or hibernation,
open the Power Control Panel and uncheck "Prompt for password after
returning from standby" on the Advanced tab.
6. You can rename multiple files all at once: Select a group of files,
right-click the first file, and select "Rename". Type in a name for
the first file, and the rest will follow.
7. Hold down the shift key when switching to thumbnail view to hide
the file names. Do it again to bring them back.
8. When dragging a file in Explorer, you can control the operation
that will be performed when you release the mouse button:
- Hold the Control key to force a Copy.
- Hold the Shift key to force a Move.
- Hold the Alt key to force a Create Shortcut.
9. If you create a file called Folder.jpg, that image will be used as
the thumbnail for the folder. What's more, that image will also be
used as the album art in Windows Media Player for all media files in
that folder.
10. From the View Menu, select "Choose Details" to select which file
properties should be shown in the Explorer window. To sort by a file
property, check its name in the "Choose Details" in order to make that
property available in the "Arrange Icons by" menu.
11. To display the volume control icon in the taskbar, go to the
Sounds and Audio Devices Control Panel and select "Place volume icon
in the taskbar".
12. Hold down the shift key when deleting a file to delete it
immediately instead of placing it in the Recycle Bin. Files deleted in
this way cannot be restored.
13. If you hold down the shift key while clicking "No" in a Confirm
File Operation dialog, the response will be interpreted as "No to
All".
14. To save a document with an extension other than the one a program
wants to use, enclose the entire name in quotation marks.
For example, if you run Notepad and save a file under the name
Dr.Z
it will actually be saved under the name Dr.Z.txt. But if you type
"Dr.Z"
then the document will be saved under the name Dr.Z. Note that a
document so-named cannot be opened via double-clicking since the
extension is no longer ".txt".
15. Put a shortcut to your favorite editor in your Send To folder and
it will appear in your "Send To" menu. You can then right-click any
file and send it to your editor.
16. Ctrl+Shift+Escape will launch Task Manager. 17. To arrange two
windows side-by-side, switch to the first window, then hold the
Control key while right-clicking the taskbar button of the second
window. Select "Tile Vertically".
18. To close several windows at once, hold down the Control key while
clicking on the taskbar buttons of each window. Once you have selected
all the windows you want to close, right-click the last button you
selected and pick "Close Group".
19. You can turn a folder into a desktop toolbar by dragging the icon
of the desired folder to the edge of the screen. You can then turn it
into a floating toolbar by dragging it from the edge of the screen
into the middle of the screen. (It helps if you minimize all
application windows first.)
20. You can turn a folder into a taskbar toolbar.
- First, unlock your taskbar.
- Next, drag the icon of the desired folder to the space between
the taskbar buttons and the clock. (Wait for the no-entry cursor to
change to an arrow. It's a very tiny space; you will have to hunt for
it.)
- You can rearrange and resize the taskbar toolbar you just
created.
- You can even turn the taskbar toolbar into a menu by resizing it
until only its name is visible.
21. In the Address Bar, type "microsoft" and hit Ctrl+Enter. Internet
Explorer automatically inserts the "http://www." and ".com" for you.
22. To remove an AutoComplete entry from a Web form, highlight the
item in the AutoComplete dropdown and press the Delete key. To remove
all Web form AutoComplete entries, go to the Internet Explorer Tools
menu, select Internet Options, Content, AutoComplete, then press the
"Clear Forms" button.
23. To organize your Favorites in Explorer instead of using the
Organize Favorites dialog, hold the shift key while selecting
"Organize Favorites" from the Favorites menu of an Explorer window.
24. You can organize your Favorites by dragging the items around your
Favorites menu. Alternatively, you can open the Favorites pane and
hold the Alt key while pressing the up and down arrows to change the
order of your Favorites.
25. To run Internet Explorer full screen, press F11. Do it again to
return to normal mode.
26. If your "Printers and Faxes" folder is empty, you can hide the
"Printers and Faxes" icon when viewed from other computers by stopping
the Print Spooler service.
27. To add or remove columns from Details mode, select Choose Details
from the View menu, or just right-click the column header bar.
28. In Internet Explorer, hold the Shift key while turning the mouse
wheel to go forwards or backwards.
29. In Internet Explorer, hold the Shift key while clicking on a link
to open the Web page in a new window.
30. In Internet Explorer, type Ctrl+D to add the current page to your
Favorites. This and many more keyboard shortcuts can be found by going
to Internet Explorer, clicking the Help menu, then selecting Contents
and Index. From the table of contents, open Accessibility and click
"Using Internet Explorer keyboard shortcuts".
31. In some applications (such as Internet Explorer), holding the
Control key while turning the mouse wheel will change the font size.
32. To shut down via Remote Desktop, click the Start button, and then
type Alt+F4.

91 Ways to Become the Coolest Developer in the World

Since there are dozens of posts on becoming a better developer, but no single post with all the advice you need, perhaps, you'll find this short guide useful.

1. Learn the Skills You Need

  1. Learn the programming basics

    "The goal of this guide is to be the easiest and funnest way for a beginner to get started programming."

    Read more: Learn To Program - Beginner's Guide

  2. Get a complete understanding of programming

    "To be a good programmer is difficult and noble. The hardest part of making real a collective vision of a software project is dealing with one's coworkers and customers. Writing computer programs is important and takes great intelligence and skill.

    But it is really child's play compared to everything else that a good programmer must do to make a software system that succeeds for both the customer and myriad colleagues for whom she is partially responsible."

    Read more: How to be a Programmer: A Short, Comprehensive, and Personal Summary

  3. Remember these 9 principles to become a good developer:
    1. Attitude
    2. Read the books
    3. Code! Code! Code!
    4. Try out tools and utilities that make your work easier
    5. Try out new technologies
    6. Look how other guys develop systems
    7. Everything that shines is not gold
    8. Participate in communities
    9. Visit technology events

    Read more: How to become a good developer? - Gunnar Peipman's ASP.NET blog

  4. Know what makes a great programmer:
    1. Being a great problem solver.
    2. Being driven and lazy at the same time.
    3. Ability to understand other people's code
    4. Having a passion for programming
    5. Loving learning for the sake of learning
    6. Being good at math
    7. Having good communications skills
    8. Strong debating skills
    9. Extreme optimism
    10. Extreme pessimism

    Read more: The Top 10 Attributes of a Great Programmer

  5. Learn what really matters in programming
    • Work with other OSes
    • Research classes and internships more
    • Consider taking the SCJA or SCJP exams
    • Connect with more people
    • People in the workplace seemed more easygoing than I would have thought and socialization (face-time) is an important part of working
    • Company/workgroup attitude is the most important factor in how much I succeeded in my work.
    • The best job is not usually the best-paying job
    • Consider blogging and/or mentoring

    Read much more here: What I wanted to know before I left college: A programmer reflects

  6. Use the advice from Paul Graham:

    • To start with, read Appjet's guide to learning to program
    • start thinking about specific programs you want to write
    • don't start with a problem that's too big
    • Initially your programs will be ugly
    • you'll find it useful to look at programs other people have written. But you'll learn more from this once you've tried programming yourself.
    • find friends who like to write programs

    Also learn answers to these questions:

    • Why do you advise plunging right into a programming project instead of carefully planning it first?
    • Why do you keep going on about Lisp?
    • Isn't object-oriented programming naturally suited to some problems?

    Read more: Programming FAQ

  7. Remember the 11 object-oriented programming principles:
    1. Open closed principle
    2. Liskov substitution principle
    3. Common reuse principle>
    4. Interface segregation principle
    5. Stable dependancy principle
    6. Acyclic dependencies principle
    7. Common closure principle
    8. Stable abstraction principle
    9. Release-reuse equivalency principle
    10. Dependency inversion principle
    11. Single responsibility principle

    Learn more: 10 Object Oriented Design Principles | Livrona

  8. Learn programming by not programming

    "The older I get, the more I believe that the only way to become a better programmer is by not programming. You have to come up for air, put down the compiler for a moment, and take stock of what you're really doing. Code is important, but it's a small part of the overall process."

    "To truly become a better programmer, you have to to cultivate passion for everything else that goes on around the programming."

    "The nature of these jobs is not just closing your door and doing coding, and it's easy to get that fact out. The greatest missing skill is somebody who's both good at understanding the engineering and who has good relationships with the hard-core engineers, and bridges that to working with the customers and the marketing and things like that."

    Bill Gates, remarks, 2005

    Read more: How To Become a Better Programmer by Not Programming

  9. Learn C/C++ no matter what your main language is

    "If you want to be a top-notch programmer, you can no more afford to ignore the C and C++ languages than a civil engineer can afford to ignore the difference between a plumb line and a snap line, a right angle and an oblique one."

    Read more: Learning To Drive a Stick Shift - Coding the Wheel

  10. Try Python to learn to code at a higher level

    "Learning Python taught me the value of programming at a higher level. Things like using boost::signals to break up dependencies; boost::bind and boost::function to use functions as first-class objects; boost::foreach to separate iteration from the algorithm; boost::any for generic data types; and much more."

    Read more: How learning Python made me a better C++ programmer | The GITS Blog

  11. If 11 object oriented design principles weren't enough, remember the 10 proverbs every developer should know:
    • There's no smoke without fire.
    • An ounce of prevention is worth a pound of cure
    • Don't put all your eggs in one basket
    • As you sow, so shall you reap
    • Great haste makes great waste
    • Look before you leap
    • When the only tool you have is a hammer, everything looks like a nail
    • Silence is construed as approval
    • A bird in the hand is worth two in the bush
    • With great power comes great responsibility

    Read more: 10 Programming Proverbs Every Developer Should Know

  12. Master the use of routines to:

    1. reduce complexity
    2. avoid duplicate code
    3. reduce the effect of changes
    4. hide sequences
    5. improve performance
    6. hide data structure
    7. hide global data
    8. promote code reuse
    9. plan for a family of programs
    10. improve readability
    11. improve portability
    12. isolat the use of nonstandard language functions
    13. isolate complex operations

    "Aside from the invention of the computer, the routine is arguably the single greatest invention in computer science. It makes programs easier to read and understand. It makes them smaller (imagine how much larger your code would be if you had to repeat the code for every call to a routine instead of invoking the routine). And it makes them faster (imagine how hard it would be to make performance improvements in similar code used in a dozen places rather than making all the performance improvements in one routine). In large part, routines are what make modern programming possible."

    Read more: Why You Should Use Routines, Routinely.

    "Good programmers -- regardless of whatever language they happen to be working in -- understand the importance of crafting each routine with the utmost care. The routines in your code should be treated like tiny, highly polished diamonds, each one more exquisitely polished and finely cut than the last."

    Read more: The Greatest Invention in Computer Science.

  13. Learn to estimate software projects precisely

    "We tend to look at software estimates as successive hundred yard dashes instead of a long distance race. It allows a client to pick out just what they want built, while using their line item veto on tasks they don't want to do. But this assumes that you can break a software system down into features that have no interactions. A series of silos, though, isn't an accurate description of software. There's interactions between features, and rarely do you see estimates take that into account."

    Read more: RossCode.com - The Art of Software Estimation

  14. Learn to see, when you are overengineering things

    "The problem with patterns, best practices and idioms is the overuse of a single principle. Regardless what you are considering: overuse of DRY can lead to "fat" layers and classes, overuse of Separation Of Concerns to many fine grained units, overuse of modularization to jar, plugin or just governance hell. Common sense and the balance between concepts and idioms are the solution- but it's hard to find in real world :-)."

    Read more: Adam Bien's Weblog : Weblog

  15. Test your app performance in conditions, similar to the live environment

    "Your application is useful and popular. Your users love it. Your users love you. But over the next week, something curious happens. As people use the application, it gets progressively slower and slower. Soon, the complaints start filtering in. Within a few weeks, the app is well-neigh unusable due to all the insufferable delays it subjects users to-- and your users turn on you."

    Read more at Everything Is Fast For Small n.

  16. Find out the signs you are a bad programmer, symptoms and remedies to them:

    • Inability to reason about code
    • Poor understanding of the language's programming model
    • Deficient research skills / Chronically poor knowledge of the platform's features
    • Inability to comprehend pointers
    • Difficulty seeing through recursion

    Also the article covers signs that you are a mediocre programmer and that you shouldn't be a programmer.

    Read more: Signs that you are a bad programmer (Bad Programmers)

  17. Choose your platform wisely.

    "When we build our applications, we have to decide what foundation (or platform) to use, and those decisions are not at all simple. In fact, these technology choices can be so difficult that you don't have to be "foolish" to earn bad results. Many a wise man has watched his software product floating away in the floodwaters after a big rain."

    Read more: Be Careful where you Build

  18. Learn a framework, because

    There are several reasons to work with a framework for a business:

    • better application security
    • improved time to market
    • easier to find someone, who knows the framework

    There are 3 reasons why developers benefit from frameworks, too:

    • community support
    • frameworks give you tools to do more work and earn more money
    • it is easier to get a job, if you know any framework

    Read more: should you learn a framework? Yes!

  19. There isn't one language that can solve all problems

    "Just because it's cleaner to do something in Perl does not mean that it's right. Nor does it mean the solution we had was "bad"."

    Read more: Being a Better Programmer #2: Don't Be a Missionary | Javalobby

  20. Be a good architect

    Read more: 97 Things Every Software Architect Should Know - The Book [97 Things]

  21. Remember the 21 laws of programming

    "As any experienced computer programmer knows, there are unwritten laws that govern software development. However there are no penalties for breaking these laws; rather, there is often a reward."

    Read more: 21 Laws of Computer Programming

  22. Create well thought out software:
    1. Make It Multiuser
    2. Make It Modular
    3. Create A Related Firefox Extension
    4. Add Config Options For Performance
    5. Make It Cross-Platform
    6. Improve The Loading Time

    "You may be thinking in starting programming something, for work, for your studies or as a hobby. You may also have a software project that is quite successful, but need to go beyond.

    This list will help you to reach what you need."

    Read more to learn how: 50 Ways To Improve Your Software Project

  23. Try developing open source applications

    Read more:

  24. Listen to the smart people

    "Huge collection of Computer Science Video Lectures from Universities like ADUNI ,MIT, Washington, Berkeley, IIT, etc"

    Read more: LinkMingle.com > 30+ List of Computer Science Video Lectures (Over 200 Videos)

  25. Search code on the Web to get more programming knowledge.

    "we use search we should make effort to expand all types of knowledge instead of just solving particular problems. It will pay off with enhancing ability to solve much more advanced problems and becoming even more effective programmer."

    Read more: Software Creation Mystery > How to use search skills to become an effective programmer

  26. Follow these 10 commandments of developing user-friendly software:
    1. Allow immediate termination
    2. Leave start-up alone
    3. Not modify existing file associations
    4. Not ask inappropriate question
    5. Keep noise to a minimum
    6. Stay focused on the goal
    7. Make actions obvious and reversible
    8. Avoid restarts
    9. Make configurations count
    10. Adhere to the platform

    Read more: Ten commandments for developers > DamienG

  27. Know the concepts that every software engineer should know, such as:

    1. Interfaces
    2. Conventions and Templates
    3. Layering
    4. Algorithmic Complexity
    5. Hashing
    6. Caching
    7. Concurrency
    8. Cloud Computing
    9. Security
    10. Relational Databases

    Read more: Top 10 Concepts That Every Software Engineer Should Know

  28. Learn to be open

    "I am a great believer in not 're-inventing the wheel' and now encourage in others to get out of the habit of thinking 'I can make a better what-ever-it-is".

    Read more: How to be a better programmer - What is this Tech?

  29. Use the seven practices for healthier, faster software development:

    1. Improve business processes before starting development
    2. Create a solid software development team
    3. Improve processes for service requests
    4. Minimize reporting of software metrics
    5. Improve communication with the business team
    6. Use the right programming language
    7. Use the right IDE

    Read more: Seven practices for healthier, faster software development

  30. Learn about modelling.

    "Modeling is frequently used in certain software development domains to help verify the design of software, both formally and informally, before implementation starts.

    One of the reasons that this approach hasn't caught on in the programming community at large is that it slows down development and increases the overall cost significantly. You have to maintain separate artifacts that contain largely the same information: the source code and the model. Finally models are often ignored after implementation starts.

    This is well-known in the modelling community as the Achilles heal of modeling. Nonetheless modeling is still important enough for creating correct and robust software that it is widely used in many software projects where robustness is important."

    Read more: The Future of Programming includes Modeling

  31. Learn to ask why

    If a non-developer gives you a technical task for you to programm, ask "Why?". It might happen that the result that the client/manager wants to get can be achieved with much less effort.

    Trying to understand how things work and asking people for more information definitely helps, too. (Thanks to Wade Wilson via DZone for the tip.)

  32. Check out a guide to become a better developer from Rob:
  33. Listen to a podcast to hear a discussion around a question "What are you doing for the next 6 months to be a better developer?"

    "Justice Gray and Bill Simser asked folks 'What are you doing for the next 6 months to be a better developer?' In this episode, Scott and Carl kick the question around."

    Read more: Hanselminutes Podcast 72 - Be a Better Developer in Six Months

  34. If you are a web developer, study these and other websites that every web developer should know by heart:

    Read more:

  35. Read more on becoming a better programmer:

    Thanks to: Particletree > Becoming a Better Programmer

  36. Bonus tips from the members of Digg

    Perhaps, you'll find these gems of wisdom from the members of Digg helpful, too.

  37. Learn from the masters
  38. Critique your work
  39. Learn some useful computer science
  40. Do summer internships if you can
  41. Program for 10 years

    "Generally, that's how long it takes to become an "expert" at any complex task (but only if you are effectively making an effort to improve)"

  42. Read the tips from DonPMitchell in more detail.

  43. Make sure you truly understand OOP.
  44. Spend a little extra time to write small apps that are outside of your experience
  45. Try building some apps with a rich front end (AJAX, Flex, whatever), if most of what you do is writing CRUD web apps
  46. Consider moving business logic out of stored procedures and into application code that wraps the database and is exposed as web services, if you spend a lot of time working close to the database layer
  47. Try different approaches to the same problem and look for commonalities and differences.
  48. Read lots of books.
  49. Using a framework doesn't mean you're going to understand how the code works under the hood
  50. Keep up on the industry news and understand how it relates to your short and long-term job prospects.
  51. There aren't really a whole lot of "easy ways" to be come a better developer
  52. Read the tips from fenris6644 in more detail.

    2. Write Self-Descriptive Code, Useful Comments or None at All

    There are as many opinions on writing code and commenting as there are developers. Learn their opinions and form your own.

  53. Code as if comments don't exist

    "While comments are neither inherently good or bad, they are frequently used as a crutch. You should always write your code as if comments didn't exist. This forces you to write your code in the simplest, plainest, most self-documenting way you can humanly come up with."

    "When you've rewritten, refactored, and rearchitected your code a dozen times to make it easy for your fellow developers to read and understand -- when you can't possibly imagine any conceivable way your code could be changed to become more straightforward and obvious -- then, and only then, should you feel compelled to add a comment explaining what your code does."

    Read more:

  54. Remember the rules of good commenting:
    • The value of a comment is directly proportional to the distance between the comment and the code.
    • Comments with complex formatting cannot be trusted.
    • Don't include redundant information in the comments.
    • The best kind of comments are the ones you don't need.

    "The only "comments" guaranteed to be accurate 100% of the time-- and even that is debatable-- is the body of the code itself. Endeavor to write self-documenting code whenever possible."

    Read more: Coding Horror: When Good Comments Go Bad

  55. Cope with the excuses to document everything:
    • The code is not readable without comments
    • We want to keep track of who changed what and when it was changed
    • I wanted to keep a commented-out section of code there in case I need it again
    • The code too complex to understand without comments
    • Markers to easily find sections of code
    • Natural language is easier to read than code

    Learn how to cope with the excuses: Common Excuses Used To Comment Code and What To Do About Them

  56. Don't use "don't comment" posts as an excuse not to comment. Only when you write clean, understandable code.

    Read more:

  57. Include business logic in your comments

    "I often find that code I'm maintaining is missing comments regarding the business logic. Rather than "Why is the code designed like this?", something like "Why is the business process designed like this?"

    This becomes most useful when you look at unfamiliar code (your own, probably) and decide that the easily-digestible code is nevertheless doing something you are sure is silly, and you change it. Big mistake."

    Read more: Code commenting? Try Business Commenting.

  58. Write really great code by following these principles:
    • Consistency
    • Indenting
    • Comments
    • Write descriptive variable names
    • Minimize horizontal scrolling
    • Follow the gnu convention of doing one thing and doing it right

    Read more: 6 tips to make your fellow coders love you

  59. Write good code for it to be testable.

    "..somehow you look at your code and you say, "I understand how to write tests for your code, but my code is different ". Well your code is different because you violated one or more of the following things."

    1. Mixing object graph construction with application logic
    2. Ask for things, Don't look for things (aka Dependency Injection / Law of Demeter)
    3. Doing work in constructor
    4. Global State
    5. Singletons (global state in sheep's clothing)
    6. Static methods: (or living in a procedural world)
    7. Favor composition over inheritance
    8. Favor polymorphism over conditionals
    9. Mixing Service Objects with Value Objects
    10. Mixing of Concerns

    Learn more: Top 10 things which make your code hard to test | Misko Hevery

  60. Remember these 5 rules of variable naming:
    1. Make your variable names long and descriptive
    2. Put units in your variable names
    3. If you are using Camel Case, don't capitalise commonly hyphened, or combined words
    4. Never, ever use the variable name temp
    5. int i is perfectly valid in a small loop

    Learn more: 5 rules of variable naming.

  61. Document your code really, *really* well, because

    • Employees leave and you need to document well, because
      • You protect yourself against workers leaving with legacy application knowledge
      • You shorten the ramp-up time of the new employees that take over the application
    • You automatically create a lasting knowledge base for any problems that might arise in the future
    • People might actually use it
    • It also shows your dedication and attitude on software development

    Read more and learn what makes good documentation: Why you really, *really* should document your code properly, inside and out

  62. Know why, how, what, where and when to comment

    Read more: Build good geek karma: Start commenting your code...

  63. 3. Programm Efficiently

    One thing is to know the functions or application structure, but there are things that can help you work more efficiently.

  64. Develop productively:
    • Limit News Intake to twice a day, Including Google Reader & News Sites
    • Leave Yourself a Place to Start (or: Leave work with something small broken)
    • Draw it Out & Research First
    • Architect Your Perfect Distraction-Eliminating Work Environment
    • Eliminate IM during productive hours
    • Only Respond to Emergency Emails during productive hours
    • Limit Meetings to once a week (or less)!
    • Get out, and be social every 2 weeks
    • Take evenings off most days
    • Get 20 minutes of exercise in the morning, 3 times a week - but use that time!
    • Make/Use Better Tools

    Read more: 10 Ways to Improve Your Programming Productivity - Articles - Matthew Moore

  65. Get even more productive:
    1. Minimize distractions
    2. Maximize working time
    3. Encourage physical and mental health
    4. Stop hammering nails with a screwdriver
    5. Stick to programming
    6. Get clear project specs
    7. Make sure the environment is safe and comfortable
    8. Pay attention to your attitude
    9. Don't overlook mentors, training, and education
    10. Code reviews

    Read more: 10 ways to increase the productivity of your programmers | 10 Things | TechRepublic.com

  66. Read "The Productive Programmer" book

    "What it will help you with is building the kind of foundational skills and ways of thinking that make it easier to learn about the new and flashy things because you're not wasting time in other areas."

    Read more: The Productive Programmer | Book Zone, discuss at the "Productive Programmer" wiki.

  67. Have someone and something to rely on
    • Start a code library and find a fast way to access it
    • Get good and know the language
    • Find someone that knows more about programming than you and find someone that knows less
    • Find a few easy to understand and easy to navigate sites for syntax reference

    "Starting programming or simply refining your work flow can be a daunting task. Everyone has their set way of working and it’s the way that works best for them. This is a list of suggestions that can help coders of all levels and languages."

    Read more: Beginning Programming Productivity Tips

  68. Get more efficient in your work:
    1. Get ergonomic
    2. Take it easy on your eyes
    3. Get good peripherals
    4. Get good hardware
    5. Dual screens
    6. Organize your screen and your desk
    7. Get focused
    8. Use the best tools
    9. Customize your tools
    10. Source control
    11. Easy access to information

    Read more: 11 Tips to make you more efficient

  69. Stay healthy at work:
    • Setup your work environment to be ergonomic
    • Try using an ergonomic mouse and keyboard
    • Remember to look up from your monitor
    • Sit up and stop slouching
    • Keep yourself hydrated
    • Take regular rest breaks
    • Look after yourself before it is too late

    "It may seem hard to believe that working at your desk can cause you long term harm, but unfortunately the real toll of sitting in the same location and doing the same operations over and over again may not be felt until it is too late."

    Read more: 7 Ways to be a healthier programmer

  70. Master your soft skills to be a better person:
    • Humanity
    • Temperament
    • Speech

    "I have found that programmers who are willing to crack this social code with their soft skills, are often the very same geeks who end up in leadership positions, or who start their own company. I can say without question that it is not my ability to decipher collaborative filtering algorithms that has brought me the most success, but it is the soft skills that continue to generate interest with employers. This was a difficult realization, but one that I have come to accept and embrace."

    Read more: d'bug > Blog Archive > Soft skills for the programmer

  71. Be creative:
    • Learn a new language
    • Start from the ground up
    • Question everything
    • Do it for fun
    • Never stop testing ideas
    • Find a passion
    • Master your tools
    • Start making abstract associations
    • Think of structure as a tool, not a limitation
    • Don't rule anything out until you try it
    • Always look for a simpler and more elegant solution
    • Don't be afraid to build off the code of others
    • Don't be afraid to collaborate
    • From the very basic, create the beautiful

    Read more on what others learn from creative programmers: Creative Code: 14 Ways to Learn From Creative Programmers

  72. Create a list of things you need to do

    "This software developer does not have a detailed list of all the things he needs to do. Which means, despite adamantly claiming that he is 99 percent done -- he has no idea how long development will take! There's simply no factual basis for any of his schedule claims."

    Read more: Coding Horror: On Our Project, We're Always 90% Done

  73. Save your time

    "Over the past couple of weeks I have been trying to find out what the main principles of time management are in the case of agile software development. I was able to distinguish 10 principles so far, and I will present them here for your convenience."

    Read more: 10 Principles of Agile Project Time Management

  74. Learn the essential life skills to stay afloat:
    • How to handle your finances
    • How to cook
    • How to interact with people
    • How to take care of yourself
    • How to take care of your stuff
    • How to have fun

    Read more: Programming Skills vs Life Skills.

  75. Motivate yourself

    "You might have all the time in the world to work on your game and you just don't feel motivated enough to work. When that happens, you might need some tools to be productive."

    Read more: 14 Ways to Motivate Yourself

  76. Get more active to stay motivated:
    1. Find/rediscover your passion
    2. Remove distractions
    3. Listen to podcasts and read blogs
    4. Blog yourself
    5. Learn a new technology every month
    6. Get involved in an open source project
    7. Seek out local groups around your programming language of interest

    Read more: Becoming a Better Developer

  77. Not only be smart, but be willing to learn to become a good developer.

    "The huge demand for developers, coupled with the relative youth of our industry, has created hordes of developers who simply don't understand what they are doing. They do not understand how computers work, or how a compiler works. They use dictionaries and stacks all the time, but they don't understand that these are classic data structures, and not something that Microsoft just made up. And the problem isn't that they don't know these things, it is that they don't want to know these things."

    Read more: Being Smart Does Not a Good Developer Make

  78. Get a great, comfortable chair.

    "In fact, after browsing chairs for the last few years of my career, I've come to one conclusion: you can't expect to get a decent chair for less than $500. If you are spending less than that on seating -- unless you are getting the deal of the century on dot-bomb bankruptcy auctions -- you're probably making a mistake."

    "Choice of seating is as fundamental and constant as it gets in a programming career otherwise marked by relentless change. They are long term investments. Why not take the same care and consideration in selecting a chair as you would with the other strategic directions that you'll carry with you for the rest of your career? Skimping yourself on a chair just doesn't make sense. "

    Read more:

  79. Address negative attitudes in your team

    "To Mr./Ms. Pessimism new ideas and new thinking are "yet another thing I have to learn", rather than a chance to improve one's self and challenge one's own assumptions. If left unchecked, such negative attitudes can result in the team member sticking their head in the sand in hopes they can avoid learning anything at all."

    Read more: Negative Attitudes are a Cancer to Successful Teams

  80. 4. Be a Good Businessman

  81. Learn to identify and work with great clients
    1. All cards are played face up
    2. Mutual accountability
    3. Willing to share whatever is necessary to get the job done
    4. Constantly probing to find the best solution
    5. Time is no barrier
    6. Eager to learn...and to teach
    7. An 'always on' response mechanism
    8. Keep up the pace
    9. Express thanks
    10. Accept value based pricing

    "Great clients are worth their weight in gold and over the last few months I've been fortunate to work with a couple who are top drawer. Such clients bring interesting challenges to the table. Challenges that stretch the team yet produce a solid, satisfying result."

    Read more:

  82. Scale your services and increase pricing

    Scale your services to provide a better service to your clients, which they will appreciate. It'll come at a cost, but it's worth it.

    "In the long run, what do great clients need? Do they need simple implementers that can get menial tasks done quickly and cheaply, or do they need long term, stable and reliable web development experts that can get the job, however great or small, done right the first time? Well, there are plenty of clients out there of either kind, but we aim to serve the latter group."

    Read more: Accurately Scaling Services and Pricing

  83. See, where your project is starting to fail

    When you start seeing these signs on the wall, take action.

    Read more: 101 Ways To Know Your Software Project Is Doomed

  84. Learn to work with your boss

    "Bosses: You can't live with them, and you can't live without them. Like it or not, most of us must deal with a boss, and the way we do so affects not just our career advancement and our salary, but also our mental well-being. Here are some tips on how to get along better with your boss."

    Read more: 10 ways to work better with your boss | 10 Things | TechRepublic.com

  85. Break rules, such as these:
    • Keep your eyes on your own work
    • Do not discuss your work with others (or do so only at a high level)
    • Do not copy other people's code
    • First develop a prototype, then deliver a more polished product by the end of the year
    • Ask your advisor or TA for help

    Read more: David Siegel - The Plenitude of Arboreal Beauty - 5 Rules I Had to Break to Create a Senior Project that Rules

  86. Learn a few tips to work well in corporations:
    • Learn the mailto link syntax and use it
    • Make sure you're using Web 1.0 before you even attempt Web 2.0
    • Code to the requirements
    • Development efforts should be like the Special Effects in a movie

    Read more:

  87. Dress well to:
    • get promoted
    • be a good manager
    • be confident

    Learn how to dress up: Metrosexual Developers

  88. 5. Get the Job You Deserve

    Regardless of the state of the economy, companies still need developers. And a good developer is a developer with a job, no matter, if inhouse or freelance.

    Here are some tips on how to get a good development job.

  89. Do anything to enjoy your work
    • Make sure you like doing your job
    • Make sure you get satisfaction out of your job
    • Choose between actual jobs, not companies
    • If you like developing software, then keep working as a developer!
    • Don’t put up with being a Code Monkey
    • Learn from your co-workers
    • Keep up with new technologies and ways of working
    • Don’t focus on job security
    • Don’t let money dominate your decisions
    • Always make sure you can leave your job if you’re not happy there

    "To me, one of the most important parts of a job is the fact that you should enjoy doing it. If you do the math, you’ll quickly realize that you’ll spend somewhere around half of your active adult life at your job, so you might as well try to make the most of it. If you’re unhappy or frustrated at your job, you’re essentially wasting a large part of your life so you’re better off trying to find something that you actually enjoy doing."

    Read more: Career Advice For Young Developers

  90. Know available salary data, but don't worry about it.

    Since you have your own unique set of abilities and skills and the company you want to work for has its situation, you'll be able to get a fairer salary, than, if you had one in mind.

    Nick Corcodilos, the IT hiring expert and the owner of AskTheHeadHunter, advises IT jobseekers:

    "You should never, ever, ever divulge your prior salary to any employer. Because as soon as you do, you destroy your ability to negotiate. It's the equivalent of inviting your prospective employer to judge you by the standards of your last job. Which is utterly insane."

    Read more:

  91. Learn one or more of the most demanded IT skills to have more fun at work and earn more:
    • Network administration, especially among IT firms and governmental institutions
    • Windows administration
    • Desktop support, starting from $46k
    • Database management
    • Wireless network management, to manage wi-fi, mostly
    • Telecommunications support,
    • Web development, design to address web-centric business strategies
    • Business intelligence, a trend gaining steam at the moment
    • Virtualization, one of the hottest IT trends, too
    • .NET development
    • CRM implementation
    • Web application development
    • Project management
    • MS SQL server development
    • SAP Skills
    • Web 2.0 Application Development

    Read more:

  92. Learn about and become efficient with the current technologies:
    • Multicore and hybrid processors
    • Virtualisation and fabric computing
    • Social networks and social software
    • Cloud computing and cloud/Web platforms
    • Web mashups
    • User Interface
    • Ubiquitous computing
    • Contextual computing
    • Augmented reality
    • Semantics

    Read more:

  93. Know the states to get tech jobs in, such as:
    • California, naturally
    • Florida
    • North Carolina
    • Maryland
    • Pennsylvania
    • Utah
    • Virginia

    Read more: The Best States For Tech Jobs--And The Worst - Forbes.com

  94. Know the cities that pay more for the IT jobs:
    • Silicon Valley with $144k on average
    • San Francisco and Oakland, California
    • Austin, Texas
    • Seattle

    Read more: Technology: It's Where the Jobs Are (June 2008)

  95. Follow these simple tips from Lifehacker to get the job you want:
    • Let RSS and email find the job for you
    • Shoot for the right salary
    • Rebuild your resume
    • Ace the interview
    • Restart a stalled search

    Learn more: Lifehacker's Guide to Nabbing the Job You Want.

  96. Learn the truth about corporate software development

    "It doesn't matter where you look, you'll get to know over time hundreds of people working as programmers for those corporations and it's very, very rare to encounter someone who really has a clue about what he's doing."

    "Wouldn't it be great to employ the master/apprentice model known since the middle ages? Why do we allow inexperienced people to mess around with the most important thing in software, which is the code? I think a well motivated apprentice working alongside with a good master will evolve into a true master himself over the years."

    Read more: What's wrong with software development in large corporations - Stephan Schwab

  97. Understand that you weren't supposed to have a boss

    "Technology tends to separate normal from natural. Our bodies weren't designed to eat the foods that people in rich countries eat, or to get so little exercise. There may be a similar problem with the way we work: a normal job may be as bad for us intellectually as white flour or sugar is for us physically."


Windows 7 Screenshots

Check out this photo gallery for the first official screenshots of Microsoft's successor to Vista, Windows 7. The software giant debuted Windows 7 to the world at its Professional Developers Conference (PDC) in the United States this week.

http://www.zdnet.com.au/insight/software/soa/Windows-7-Official-screenshots/0,139023769,339292888-2s,00.htm

Saturday, October 25, 2008

An evening at the Wagah Border















What was once just one portion of the thousands of kilometers long border that India and Pakistan share has over the years evolved into a place almost of pilgrimage…….for both nations. I am not sure whether the name Wagah comes from some village or bit of land on ‘our’ side or ‘their’ side but there it sits right bang on the Grand Trunk Road,in the middle of the fertile Punjab fields that are planted with the same crops by farmers of both sides at the same time, creating a seamless green carpet.
I first visited this border post in early 1972 as a child. The war had ended just a few months earlier and my dad was working at a place just about 25 kilometers from the Indo-Pak border in a small place called Khasa.

These were days when the signs of the just concluded war were everywhere: from the bunkers in our front and backyards to the pieces of exploded bombs that we used to collect as souvenirs. The memories of those many spy dramas that we enacted with our friends in those very real bunkers will forever be amongst my fondest memories. Next year we were also to witness the return of Pakistani prisoners of war. We stood for hours peering through the coils of barbed wires as the prisoners in newly issued shorts, vests and sneakers collected near the Khasa station to await their turn to be sent back to their country.
Getting back to the border, we were shown around the border post by a Sikh officer of the Border Security Force. It was evening time and the sun was about to set. The lowering of the flag was about to take place and the Indian soldiers blew the bugle, marched to the gate and in a flurry of dramatic steps and salutes lowered the tri-color. The Pakistani soldiers came next but minus the fanfare and took their flag away quietly. We were told by the officer that because Pakistan had surrendered to the Indian forces, as per international convention, only India was allowed to lower the flag each evening ceremoniously. I do not remember how long this state of affairs lasted because on all subsequent visits I saw the two sides lowering their flags in the same manner with equal fan fare.


The Wagah border, back then, was just a couple of gates with the no-man’s land in between. On either side of the gates there was barbed wire for some 500 meters and then just plain fields looking on both sides. That these were two (often hostile) countries face to face across an international border was brought home only by the small stone markers with some numbers written on them.
The farmers on both sides continued their informal friendships and carried on their barely concealed small scale exchange/smuggling of some goods like betel leaves and onions etc There calm atmosphere made one almost forget that guns and bombs had created a cacophony there just months ago.

Wagah continued to exist in near anonymity, not known to many outside the army and BSF personnel and the people of the state. On subsequent visits in the seventies I saw Wagah become a more relaxed place and in the evenings the people of both Lahore and Amritsar would throng to it to watch the flag ceremony and to gape at and occasionally wave to each other. In those days the people were allowed to come right up to the gates once they were shut and people would shout out greetings to each other in a language they both share. While the women dressed the same way on both sides the men on the Pakistani side mostly dressed in the Shalwar Kameez that was labeled “Awami suit” during the rule of Zia-ul-Haq and was made almost compulsory.
Now, 21 years later I visited the Wagah again and that too on the Independence Day, this year. It would be an understatement to say that things have changed. What was once a laid back border post is now a tourist destination that attracts hundreds of visitors each day. A virtual cottage industry has sprung up around the growing ‘fame ‘of Wagah. The evenings have the atmosphere of a village ‘mela’ with everything from ‘aaloo tikki’ to popcorn being sold from make shift stalls. There are stalls selling the usual touristy items like T-shirts, caps, key chains and pictures of the Wagah border post.Al this is haphazard development with very little attention paid to the issues of public facilties like parking.



All this is about 250 yards away from the actual border but the proverbial Indian entrepreneurial skill can be seen even at the new visitor’s galleries that have been built some 50 yards from the main gates. Small boys, some as young as just 8 can be seen moving briskly amongst the visitor’s selling pictures and CDs of the flag ceremony. What the gullible visitor pays Rs.100 for during the ceremony can be bought for just Rs.10-15 later further away from the gates. Needless to say that I was in the gullible category
These changes were a surprise for me because I have seen the Wagah in its earlier peaceful avatar. But the bigger shock for me was the manner in which the Retreat ceremony itself has changed over the years into a virtual war dance of confrontation. In what are obviously well choreographed moves the soldiers, on both sides, march right up to the gate to face each other. Then the BSF personnel make some very distinct hand and feet movements that leave no doubt in the mind that this is saber rattling of another kind.The same is then done by the Pakistani Rangers.



Each side tries to out do the other in the ferocity of their steps and salutes and I am told that each side now has men that specialize in the whole sequence. They try to bring their own unique style to the ceremony and the whole thing is now nothing short of a spectator sport. In earlier days the Indian soldiers would be towered over by the taller and sturdier Pakistani rangers but now India is up to speed and posts mostly exceptionally tall men here. I must confess however that the Pakistanis are still outdoing our men in the moustache department!



Because it was the Independence Day (the Pakistanis had celebrated theirs on the previous day, August 14) special arrangements had been made to have entertainment programs that ranged from a band singing patriotic songs (from what else but Bollywood films) to troops of school children dancing and waving the Indian flag. Occasionally they would move in groups towards the gate in an excited rush and raise the slogan Bharat Mata Ki Jai. This of course is then matched by similar groups shouting Pakistan Paiendabad from the other side. The whole point of the evening was to drown each others din by ratcheting up the volume on your side. This was filmy patriotism but with a barely concealed undercurrent of hostility. Men on microphones exhort the crowds to a fevered frenzy by asking them to clap in rhythm and make sure the Pakistani slogans are drowned out by our own. The same happens on the other side.
Both sides tried their best but the Indians being masters of mass Bollywood style entertainment were certainly leagues ahead, at least on this evening. The Pakistani side was more muted with very few women in the stands. The school girls that danced on the Indian side with total abandon had their counterparts on the other side in school girls wearing head scarves and waving flags demurely.
The irony of the division of British India into two countries is driven home when the Indian side proudly plays the song, “sarey jahan se achha, Hindustan hamara” penned by the poet Iqbal(1877-1938) who was later to be known as the national poet of Pakistan. The Indian side followed it up by playing a song from the film Naya Daur that sings of India as the land of brave soldiers, pretty Heers and handsome Ranjhas. Technically these legendary lovers were from the Punjab that is with Pakistan now and the tale of their tragic love was celebrated by the poet Waris Shah ,born in1722-98 in Jandiala Sher Khan, District Sheikhupura, Punjab (Pakistan), in his famous poem Heer.
Mingling with the teeming crowds were tourists of many western countries who joined in the carnival like atmosphere but commented that they knew of no other border between hostile neighbours that could boast of such colourful and musical drama.
Although I was spell bound by the whole show that the soldiers put up I could not help wondering at the aim behind encouraging such strong emotions against each other at a border post. There has been enough enmity for 61 years and if the scale of that has to be lowered then surely this is not the way to do it.
I later found out that the whole show that goes with such precision and co ordination is the result of the soldiers of both sides working out the whole routine together. I found it amusing that the soldiers who put on this modern day version of a war dance actually work together behind the scene to ensure that the whole thing goes about without a move out of place. Similar shows on a lesser scale can now be seen on the Ferozepur border also.

Sitting in the VIP gallery just 100 yards away from the Pakistani crowds I could not help but wonder about all those places that my family members of the previous generation left behind to make their way to safety on this side in 1947.None believed at the time that they would not be going back and all clung to their memories and stories till the end of their lives. I wondered if, sitting in the crowds on the other side, someone else was wondering the same about his/her relatives who had trudged across to the Pakistani side in that tragic year. I wondered, too, about this whole notion of identity. What makes up identity? Does it come from a shared religion or a shared language or from the shared cultural experiences, stories, songs and collective memories of a people? Or is it defined by borders and boundries?
When there was a lull in the music I could hear the Pakistanis singing their song, ‘Jeevay, jeevay, jeevay Pakistan’ and the memories of hours of watching Pakistani television in childhood came back and unknowingly I started humming along till I was politely reminded by my brother that I could possibly be lynched by the crowds for sitting on this side and singing a song wishing Pakistan a long life. The irony of it all brought sobriety back and I joined the crowds in singing lustily, “mere desh ki dharti sona uglay, uglay heeray moti.”

P.S: As I got up to leave the stands I could not help noticing that, probably in an assertion of their Arabic (real or imagined) roots, the Pakistani side has named the grand stand on their side Bab – Azadi (Arabic for gateway of freedom) rather than Azadi Darwaza in Urdu. That has been the struggle for Pakistan: to find an identity for itself, distinct from it’s larger and more diverse neighbour. In this effort many there live in the belief that their history starts in the 8th century with the invasion of Sindh by Mohammed Qasim and not 5000 earlier with the Indus valley civilisation, not with the blooming of Buddhism or the ethos of Hinduism.
While the Indian side was festooned with lights and flags for the Independence Day, atop the Bab-Azadi, on Pakistani side, was a crude model of the Pakistani missile (Ghazni or Ghouri, I think). It seemed so out of place atop the graceful gate way made in the Mughal style. The events of the months since my visit make it seem even more misplaced. With the threat to Pakistan emerging from its northern borders(Taliban and Al-Qaeda) and from home grown Islamic radicalism, I wonder if they would be placing that silly model of the missile atop the gate again next year.

A lot can actually happen over coffee

A lot can happen over a cup of hot coffee, say researchers, who have found that people judged others to be more generous and caring if they hadjust held a warm drink in their hand.

The study led by Yale University psychologists suggests that simply handling a hot cup of coffee can change one's attitude toward a stranger. "The basic scientific implication is about exploring the link between the physical world and the psychological world," said CU-Boulder Assistant Professor Lawrence E. Williams.

"It's at the same time subtle and very powerful, a repeated association of physical warmth that is learned over a lifetime," he added. Psychologists have long noted the importance of warm physical contact with caregivers in developing healthy relationships as adults.

Williams and John A. Bargh, a professor of psychology at Yale and co-author, decided to test the impact of warmth on the perceptions of adults.

During the study, the researchers casually asked that the undergraduate test subjects briefly hold either a warm cup of coffee or iced coffee as they wrote down information. The subjects were then given a packet of information about an individual, and asked to assess his or her personality traits. The participants assessed the person as significantly "warmer" if they had previously held the warm cup of coffee rather than the iced cup of coffee.

In a second study, they showed people are more likely to give something to others if they had just held something warm, and more likely take something for themselves if they held something cold.

The participants held heated or frozen therapeutic packs as part of a product evaluation study, and were then were told they could receive a gift certificate for a friend or a gift for themselves. Those who held the hot pack were more likely to ask for the gift certificate, while those who held the frozen pack tended to keep the gift.

"It appears that the effect of physical temperature is not just on how we see others, it affects our own behaviour as well," said Bargh.

"Physical warmth can make us see others as warmer people, but also cause us to be warmer – more generous and trusting – as well," he added.

WORDS WOMEN USE MOSTLY

FINE
This is the word women use to end an argument when
they feel they are right
and you need to shut up. Never use "fine" to
describe how a woman looks -
this will cause you to have one of those arguments.

FIVE MINUTES
This is half an hour. It is equivalent to the five
minutes that your
football game is going to last before you take out
the trash, so it's an
even trade.

NOTHING
This means "something," and you should be on your
toes. "Nothing" is usually
used to describe the feeling a woman has of wanting
to turn you inside out,
upside down, and backwards. "Nothing" usually
signifies an argument that
will last "Five Minutes" and end with "Fine"

GO AHEAD (With Raised Eyebrows! )
This is a dare. One that will result in a woman
getting upset over "Nothing"
and will end with the word "Fine"

GO AHEAD (Normal Eyebrows)
This means "I give up" or "do what you want because
I don't care" You will
get a "Raised Eyebrow Go Ahead" in just a few
minutes, followed by "Nothing"
and "Fine" and she will talk to you in about "Five
Minutes" when she cools
off.

LOUD SIGH
This is not actually a word, but is a non-verbal
statement often
misunderstood by men. A "Loud Sigh" means she thinks
you are an idiot at
that moment, and wonders why she is wasting her time
standing here and
arguing with you over "Nothing"

SOFT SIGH
Again, not a word, but a non-verbal statement. "Soft
Sighs" mean that she is
content. Your best bet is to not move or breathe,
and she will stay content.

THAT'S OKAY
This is one of the most dangerous statements that a
woman can make to a man.
"That's Okay" means that she wants to think long and
hard before paying you
back for whatever it is that you have done. "That's
Okay" is often used with
the word "Fine" and in conjunction with a "Raised
Eyebrow."

GO AHEAD!
At some point in the near future, you are going to
be in some mighty big
trouble.


PLEASE DO
This is not a statement, it is an offer. A woman is
giving you the chance to
come up with whatever excuse or reason you have for
doing whatever it is
that you have done. You have a fair chance with the
truth, so be careful and
you shouldn't get a "That's Okay"


THANKS
A woman is thanking you. Do not! faint. Just say
you're welcome.


THANKS A LOT
This is much different from "Thanks." A woman will
say, "Thanks A Lot" when
she is really ticked off at you. It signifies that
you have offended her in
some callous way, and will be followed by the "Loud
Sigh." Be careful not to
ask what is wrong after the "Loud Sigh," as she will
only tell you "Nothing

Thursday, October 23, 2008

Asia's top 10 budget airlines

The aviation sector is going through a very turbulent phase in India and abroad.

In India, domestic air traffic has plunged to a five-year low, as traffic crashed by 19 per cent in September 2008.

As airlines face mounting pressures of a recession, fall in traffic and huge operational costs, how are low cost airlines faring?

So here's a look at the best budget airlines in Asia. Smart Travel Asia, an online travel magazine, rates these airlines on the basis of cheap tickets, reliable schedules, decent service and route network and access. While Air Asia tops the list, Air Deccan and Spicejet also make it to the top 10 list.

1. AirAsia Berhad

Topping the list of low cost carriers is AirAsia. Asia's largest low budget airline is based in Kaula Lumpur and flies domestic & international flights. AirAsia was the first to introduce low cost travelling in Asia. The airline started operations on 18 November 1996.

It was founded by the government owned DRB-Hicom. However, the airline ran into rough weather and incurred huge losses. Former Time Warner executive Tony Fernandes took over the company and revived it. "Before a business can grow, it needs to have its costs under control. It must be cost-efficient and profitable, and it must create value," Fernandes believes.

The company under his leadership scaled new heights. AirAsia introduced its low fare, no frills concept in December 2001. AirAsia is also now a public listed company on the Malaysia Stock Exchange. The airline now flies to over 60 destinations. It has a fleet of 69 aircraft.

The AirAsia group, has carried over 35 million passengers. AirAsia also plans to start low-cost flights to India soon. According to Fernandes, the revenue for the quarter ended June 2008 increased by 41 per cent to RM608 million as the airline carried 20 per cent more passengers to 2.8 million with 16 per cent higher fares. 'Now everyone can fly' says AirAsia Berhad's tagline.


2. Jetstar Asia


Jetstar Asia based in Singapore is ranked second among the budget carriers in Asia. The airline first took off for Hong Kong on 13th December, 2004. Qantas and Temasek Holdings (Private) Limited jointly own more than 80 per cent of Jetstar Asia.

Jetstar Asia Airways merged with Valuair on 25th July 2005. Both airlines operate out of Singapore and fly to major cities in South-east Asia. The airline boasts of a brand-new fleet, great destinations and friendly crew and affordable experience. It has a fleet size of 10 aircraft.

The company, has seen a 20 per cent jump in revenue and 4 percent rise in passenger load factor to more than 75 per cent for the year ended 31 March 2008. Jetstar Asia is headed by chief executive officer Chong Phit Lian

While fuel accounts for 40 per cent of the group's expenses in the previous year, Jetstar Asia is confident that it is on the path to sustainable growth, according to Chong.

In the Skytrax Airline of the Year survey for 2006, Jetstar Asia was awarded the best low-cost Airline for both the Asia and South-east Asia categories. In 2007, it was ranked as the world's best low cost airlines by SkyTrax.


3. Nok Air


Nok Air based in Bangkok is the third best budget airline in Asia. The 'Nok Air' brand was first established on 10th February 2004 under the company Sky Asia Co. Ltd. NoK Air means 'bird' in Thailand.

On January 15th, 2006, the company name was changed to 'Nok Airlines Co. Ltd'. The airline was established in December 2003 and started operations on 23 July 2004. A subsidiary of Thai Airways International, Nok Air plans to add several international destinations to its route.

Known for its innovative measures, the airline also introduced 'Book Online Pay Offline' scheme to help make reservations online without using credit cards. The pre-reserved ticket can be paid at the airline counter services and ATMs. Patee Sarasin is CEO of Nok Air. 'We fly smiles' is the company's tagline.


4. Tiger Airways


Tiger Airways offers one of the lowest possible airfares in the market. Tiger Airways first flew from Singapore in September 2004 with two aircraft in its fleet and three routes in its network.

After 3 years, Tiger Airways now flies to more than 25 destinations across 9 countries in Asia-Pacific on a fleet of brand new Airbus A320 aircraft. Tiger Airways recently ordered 50 brand new Airbus A320s to grow its fleet to 70 Airbus aircraft.

Tiger Airways based in Singapore has also launched a new route between Singapore and Bangalore. The Tiger Aviation Group consists of Tiger Airways Singapore and Tiger Airways Australia, both 100 per cent owned by the Tiger Aviation Private Limited. Tony Davis is the CEO of Tiger Airways.


5. Cebu Pacific


Cebu Pacific based in Philippines started operations on March 1996 and pioneered low coast flying in the country. CEB launched its international operations on November 2001 and now flies to Bangkok, Guangzhou, Ho Chi Minh, Hong Kong, Jakarta, Kaohsiung, Kota Kinabalu, Kuala Lumpur, Macau, Osaka, Pusan, Shanghai, Seoul, Singapore, and Taipei.

It operates a fleet of 21 aircraft, the youngest fleet in the Philippines with a fleet age of 1.8 years.

CEB offers the lowest year round 'all-inclusive' fares for its domestic sectors. It was first local airline to introduce e-ticketing and booking through SMS in the Philippines.

It is known for on-time performance, schedule reliability, and comfortable flights. Lance Gokongwei is the director, president and CEO of the airline.


6.Virgin Blue


Founded by British businessman Richard Branson's Virgin Group, Virgin Blue took off on 31 August 2000 with just two aircraft. Virgin Blue launched the first low fare airline in Australia.

Today, it is recognised as an innovator and leader in the global aviation industry known for good service, on-time performance and value for money. It is also one of the world's most profitable airline groups incorporating Virgin Blue, Pacific Blue (Aust), Pacific Blue (NZ), Polynesian Blue and V Australia.

Virgin Blue was listed on the Australian Stock Exchange in December 2003. Virgin Blue and its international carriers Pacific Blue and Polynesian Blue currently operate a fleet of 60 aircraft.

With more than 31 per cent of the domestic market, Virgin Blue Airlines currently operates over 2100 flights a week to 24 Australian cities and 8 international destinations.

Virgin Blue's total annual passenger numbers exceeds 15 million travellers. Virgin Blue has been named the 'Low Cost Airline of the Year' (Asia Pacific) in the Budgie$ Best in Class Awards.


7. Air Deccan


India's first low cost airline, Air Deccan launched by Captain G R Gopinath, operated its first flight on 23rd August 2003 from Bangalore to Hubli.

The airline revolutionized air travel in India by offering tickets for as low as Re 1, making flying a possibility for every Indian. However, the good times did not last for long. Vijay Mallya acquired 26 per cent stake in the airline.

With the Kingfisher logo on all the aircraft's, the airline has a totally new identity and fares are no longer affordable for all. With its main base at Bangalore, Deccan Airways operate 350 flights to more than 65 cities a day within India.

In 2007, the airline was awarded the '2007 Frost & Sullivan Company of the Year' award in the area of Indian commercial aviation, and its managing director, G.R Gopinath was honored with the 'Frost & Sullivan CEO of the Year' award.


8. SpiceJet


SpiceJet started flying in May 2005. By 2008, it became India's second-largest low-cost airline in terms of market share. Based in New Delhi, SpiceJet was earlier known as Royal Airways, a reincarnation of ModiLuft.

It was promoted by Ajay Singh, Sanjay Malhotra and the Kansagra family. Rising fuel costs and increasing competition resulted in SpiceJet posting a loss in the first quarter of 2008-09. In July 2008, billionaire Wilbur Ross announced that he would invest about Rs 345 crore (Rs 3.45 billion) in the airline.

SpiceJet started offering fares at Rs 99, which attracted a lot of travellers! Amidst all this turbulence, SpiceJet still offers fares at Rs 99 in some sectors.

SpiceJet was voted as the best low-cost airline in South Asia and Central Asia region by Skytrax in 2007. SpiceJet operates 94 flights daily to 16 cities across India and has a fleet size of 21. SpiceJet was recognized as Best Low Cost Airline for 2007 by TAFI (Travel Agents Federation of India).

SpiceJet voted the Best Low Cost Airline by a reader's survey conducted nationally by India's leading travel magazine Outlook Traveler(Feb 2008).


9. Viva Macau


Viva Macau from China was founded in 2004. The airline gets its name from 'Macau' which is a cosmopolitan city on the southern coast of China and 'Viva' which in Portuguese means 'Hurray'.

Viva Macau currently operates a fleet of modern Boeing 767 wide-body jetliners and operates non-stop service in Asia and abroad. It has fleet size of about 15 aircraft. As of July 08, the airline was flying to Sydney, Ho Chi Minh and Jakarta.

The airline also operates a number of charter flights to Japan, including Tokyo. It's likely that their routes will be expanded in the near future. It has plans to fly to Australia. Con Korfiatis is Viva Macau's chief executive officer.


10.Hong Kong Express


Hong Kong Airlines Limited and Hong Kong Express Airways Limited were established in 2001 and 2004 respectively. The two sister airlines provide services between Hong Kong and over 30 cities in Asia.

As of April 2008, the fleet comprises 13 Boeing 737-800 aircraft and is expecting to reach over 20 in the near future. Hong Kong Airlines and Hong Kong Express Airways have employed a fleet of all-new Boeing 737-800 aircraft, the average service time of which is one year.

Hong Kong Airlines and Hong Kong Express Airways provide short haul flight services to leisure destinations in Asia.

In the past few months, Hong Kong Express Airways has launched direct scheduled services to Beijing, Shanghai, Osaka, Okinawa, Kagoshima, Manila, Phuket and Bali. More new routes are expected in the near future. Kalid Razack is the chief executive officer of Hong Kong Express Airways.