"A son and his father were walking on the mountains.
Suddenly, his son falls, hurts himself and screams: "AAAhhhhhhhhhhh!!!"
To his surprise, he hears the voice repeating, somewhere in the mountain: "AAAhhhhhhhhhhh!!!"
Curious, he yells: "Who are you?"
He receives the answer: "Who are you?"
And then he screams to the mountain: "I admire you!"
The voice answers: "I admire you!"
Angered at the response, he screams: "Coward!"
He receives the answer: "Coward!"
He looks to his father and asks: "What's going on?"
The father smiles and says: "My son, pay attention."
Again the man screams: "You are a champion!"
The voice answers: "You are a champion!"
The boy is surprised, but does not understand.
Then the father explains: "People call this ECHO, but really this is LIFE.
It gives you back everything you say or do.
Our life is simply a reflection of our actions.
If you want more love in the world, create more love in your heart.
If you want more competence in your team, improve your competence.
This relationship applies to everything, in all aspects of life;
Life will give you back everything you have given to it."
YOUR LIFE IS NOT A COINCIDENCE. IT'S A REFLECTION OF YOU!"
Thursday, March 12, 2009
Two frogs
A group of frogs were traveling through the woods, and two of them
fell into a deep pit. When the other frogs saw how deep the pit
was, they told the two frogs that they were as good as dead. The
two frogs ignored the comments and tried to jump up out of the pit
with all their might. The other frogs kept telling them to stop,
that they were as good as dead. Finally, one of the frogs took
heed to what the other frogs were saying and gave up. He fell down
and died.
The other frog continued to jump as hard as he could. Once again,
the crowd of frogs yelled at him to stop the pain and just die. He
jumped even harder and finally made it out. When he got out, the
other frogs said, "Did you not hear us?" The frog explained to
them that he was deaf. He thought they were encouraging him the
entire time.
This story teaches two lessons:
1. There is power of life and death in the tongue. An encouraging
word to someone who is down can lift them up and help them make it
through the day.
2. A destructive word to someone who is down can be what it takes
to kill them.
Be careful of what you say. Speak life to those who cross your
path. The power of words... it is sometimes hard to understand
that an encouraging word can go such a long way. Anyone can speak
words that tend to rob another of the spirit to continue in
difficult times. Special is the individual who will take the time
to encourage another.
fell into a deep pit. When the other frogs saw how deep the pit
was, they told the two frogs that they were as good as dead. The
two frogs ignored the comments and tried to jump up out of the pit
with all their might. The other frogs kept telling them to stop,
that they were as good as dead. Finally, one of the frogs took
heed to what the other frogs were saying and gave up. He fell down
and died.
The other frog continued to jump as hard as he could. Once again,
the crowd of frogs yelled at him to stop the pain and just die. He
jumped even harder and finally made it out. When he got out, the
other frogs said, "Did you not hear us?" The frog explained to
them that he was deaf. He thought they were encouraging him the
entire time.
This story teaches two lessons:
1. There is power of life and death in the tongue. An encouraging
word to someone who is down can lift them up and help them make it
through the day.
2. A destructive word to someone who is down can be what it takes
to kill them.
Be careful of what you say. Speak life to those who cross your
path. The power of words... it is sometimes hard to understand
that an encouraging word can go such a long way. Anyone can speak
words that tend to rob another of the spirit to continue in
difficult times. Special is the individual who will take the time
to encourage another.
PUPPIES FOR SALE
A farmer had some puppies he needed to sell. He painted a sign advertising the pups and set about Nailing it to a post on the edge of his yard. As he was driving the last nail into the post, he Felt a tug on his overalls. He looked down into the Eyes of a little boy.
Mister," he said, "I want to buy one of your puppies."
"Well," said the farmer, as he rubbed the sweat off the back of his neck, "these puppies come from fine parents and cost a good deal of money."
The boy dropped his head for a moment. Then reaching deep into his pocket, he pulled out a handful of change and held it up to the farmer. "I've got thirty-nine cents. Is that enough to take a look?"
"Sure," said the farmer.
And with that he let out a whistle,"Here,Dolly!" he called.
Out from the doghouse and down the ramp ran Dolly followed by four little balls of fur. The little boy pressed his face against the chain link fence. His eyes danced with delight.
As the dogs made their way to the fence, the little boy noticed something else stirring inside the doghouse. Slowly another little ball appeared; this One noticeably smaller. Down the ramp it slid. Then in a somewhat awkward manner the little pup began hobbling toward the others, doing its best to catch up....
"I want that one," the little boy said, pointing to the runt.
The farmer knelt down at the boy's side and said, "Son, you don't want that puppy. He will never be able to run and play with you like these other dogs would."
With that the little boy stepped back from the fence, reached down, and began rolling up one leg of his trousers. In doing so he revealed a steel brace running down both sides of his leg attaching itself To a specially made shoe. Looking back up at the farmer, he said, "You see sir, I don't run too well myself, and he will need Someone who understands."
The world is full of people who need someone who understands.
Mister," he said, "I want to buy one of your puppies."
"Well," said the farmer, as he rubbed the sweat off the back of his neck, "these puppies come from fine parents and cost a good deal of money."
The boy dropped his head for a moment. Then reaching deep into his pocket, he pulled out a handful of change and held it up to the farmer. "I've got thirty-nine cents. Is that enough to take a look?"
"Sure," said the farmer.
And with that he let out a whistle,"Here,Dolly!" he called.
Out from the doghouse and down the ramp ran Dolly followed by four little balls of fur. The little boy pressed his face against the chain link fence. His eyes danced with delight.
As the dogs made their way to the fence, the little boy noticed something else stirring inside the doghouse. Slowly another little ball appeared; this One noticeably smaller. Down the ramp it slid. Then in a somewhat awkward manner the little pup began hobbling toward the others, doing its best to catch up....
"I want that one," the little boy said, pointing to the runt.
The farmer knelt down at the boy's side and said, "Son, you don't want that puppy. He will never be able to run and play with you like these other dogs would."
With that the little boy stepped back from the fence, reached down, and began rolling up one leg of his trousers. In doing so he revealed a steel brace running down both sides of his leg attaching itself To a specially made shoe. Looking back up at the farmer, he said, "You see sir, I don't run too well myself, and he will need Someone who understands."
The world is full of people who need someone who understands.
EAGLES IN A STORM
Did you know that an eagle knows when a storm is approaching long before it breaks?
The eagle will fly to some high spot and wait for the winds to come. When the storm hits, it sets its wings so that the wind will pick it up and lift it above the storm. While the storm rages below, the eagle is soaring above it.
The eagle does not escape the storm. It simply uses the storm to lift it higher. It rises on the winds that bring the storm.
When the storms of life come upon us - and all of us will experience them - we can rise above them by setting our minds and our belief toward God. The storms do not have to overcome us. We can allow God's power to lift us above them.
God enables us to ride the winds of the storm that bring sickness, tragedy, failure and disappointment in our lives. We can soar above the storm.
Remember, it is not the burdens of life that weigh us down, it is how we handle them.
The eagle will fly to some high spot and wait for the winds to come. When the storm hits, it sets its wings so that the wind will pick it up and lift it above the storm. While the storm rages below, the eagle is soaring above it.
The eagle does not escape the storm. It simply uses the storm to lift it higher. It rises on the winds that bring the storm.
When the storms of life come upon us - and all of us will experience them - we can rise above them by setting our minds and our belief toward God. The storms do not have to overcome us. We can allow God's power to lift us above them.
God enables us to ride the winds of the storm that bring sickness, tragedy, failure and disappointment in our lives. We can soar above the storm.
Remember, it is not the burdens of life that weigh us down, it is how we handle them.
Monday, March 9, 2009
Java- the Unbeaten......
101 Reasons Why Java is Better than .NET (Reloaded)
The original edition was put together using a blogging system, this edition is now based on a Wiki system. Hopefully, the comments and contributions will be richer this time.
The list is structured such that all 101 entries can be viewed on a single page (unlike the original!). Each entry would be accompanied by a "sound bite" that bests captures the intent of the entry (if you got a good one, please let me know!). Each entry is also a link that you can navigate to examine more details and supporting information. At this time there is no particularly reason for the ordering and that will change at a later date (so please don't cite the entries number when you make an external comment!).
For an easy to remember url to link to this list and all future editions use 101.manageability.org . Feel free to post this url in response to articles and posts falsely promoting the benefits of .NET.
Finally, for those who unfortunately have legacy .NET deployments, here a series of articles that will help you migrate to a superior Java platform .
1. Public Domain APIs - Any Java public apis are part of the public domain, .NET apis are proprietary and can open the door to a law suit.
2. Standard Library Source Code Availability - Java source code for the core libraries are available in every J2SDK distribution, .NET sources can only be seen by resorting to illegal means.
3. dotNet Purity Is A Myth - Java promotes 100% pure Java libraries, for .NET purity is nothing more than a myth.
4. 75% Of Enterprise Software Development - Avoid becoming one of the 25% of "use-less" employees.
5. Preferred Platform for Implementing WebServices - Despite billions spent by Microsoft in marketing, surveys continue to reveal that Java is the preferred platform when it comes to Web Services.
6. Superior Platform for Web Development - ASP.NET is a poorly designed and crippled framework as compared to the richness of frameworks found in Java.
7. Write Stored Procedures using Java - Most relational databases support writing of stored procedures in the Java language. There has yet to be a production release of a database that supports any .NET languages.
8. An Abundance of Experienced Practitioners - Nobody seems to know how to write .NET programs well and that's giving .NET a bad name! A pretty lame excuse I must say!
9. Supportive Open Source Communities - Open Source communities that support distributed development are a plenty in the Java world.
10. Proven Security - 2 Years after Trust Worthy initiative is launched and we collectively lose $55 billion last year.
11. No Lizard Brain - .NET programmers continue to struggle with the complexities of a hybrid managed/unmanaged environment.
12. More Languages - The JVM is more "common" than the CLR.
13. Smaller Runtime Download - You can't run your app if you don't have the runtime.
14. No Mandatory Upgrade Fees - 3 things a Microsoft shop can't avoid: Death, Taxes and License 6.
15. More Vendor Choices - .Net is a marketing program. Java is a Market.
16. Industrial Strength Collection Classes - The .Net libraries look like they were designed by high-school students, First year CompSci? students at best.
17. FutureProof - The way to ensure your return on investment (i.e. ROI) is that your choice of platform doesn't get obsolete in 5 or even 10 years. Avoid the Microsoft upgrade treadmill!
18. Larger Talent Pool - Majority of Universities not only teach but require knowledge of Java. That's a big talent pool that you need to consider before you off-shore your project to a different time-zone.
19. More Contributions From Researchers - Research institutions and universities have consistently provided innovative research not only built on top of Java but also contributing to Java.
20. US Government Approved - Guess where the billions of dollars spent on the U.S. government's IT renovation is going to?
21. NoEvilTypeCoercion - Some C++ constructs are meant to be entombed forever, .NET resurrects them with disastrous consquences.
22. More Mature And Robust O/R Mapping - You can't beat the wealth of O/R mapping solutions found in Java.
23. Superior Coding Tools - Like having your own personal Java fairy dancing through your code, anticipating your every thought and keystroke.
24. Sane Coding Conventions - I don't know what's worse Hungarian notation or .NET coding conventions.
25. Higher Paying Jobs - Somehow you've got to afford those skyrocketing housing prices don't you?
26. Favored for Implementing P2P - Gnutella and JXTA, anything else legally more pervasive?
27. PureJavaRDMS - Can't beat the ease of installation when the RDMS is Java based and packaged with the application in a .zip file.
28. More Exception Handling Options - .NET has no analog to the throws clause in method signatures.
29. Better Structured Diagramming Frameworks - When going beyond forms and windows, Java can't be beat.
30. Reusable Open Source IDE Frameworks - Why re-invent the wheel? Start building your killer GUI application on top of killer IDE frameworks.
31. RobustParserGenerators - Want to build a new language, well you'll need some robust parser building tools.
32. AspectOrientedProgramming - The next advance in modular software development, get a head start by using Java.
33. PureJavaWebServers - Customizations and extensions are easier in a web container that's built using the same language as applications. Furthermore, managed environments support better reliability and security.
34. OpenSourceJavaCompilers - Your tools have got to be able to parse the code before it has any chance in understanding it.
35. Distributed Caching - Sometimes embarassingly parallel applications aren't the only things that you need to scale.
36. MultipleReliableMessagingChoices - Java provides more choices for the backbone that integrates the Enterprise.
37. Faster Development Turnaround - Incremental compilation is unavailable in the .NET environment.
38. Lightweight Persistence - Sometimes a relational database (RDMS) has too big a footprint.
39. Open Community Process - How does one contribute to the specification of standards?
40. Hardware Accelerators - Performance boosting hardware.
41. More Flexible Licensing Options - Ultimate flexibility in licensing.
42. EmbeddedDevices - Java inside small packages.
43. Faster Virtual Machines -
44. MickrokernelArchitectures
45. ContinuousBuild
46. WholeProgramOptimization - Please sir may I have a linker?
47. Comprehensive RDMS Driver Support - Can you find a ADO.NET driver for an open source database?
48. Superior Code Analysis Tools
49. NetworkingSupport - Why is MSN managed by a Java based tool?
50. More Garbage Collection Options
51. ReliabilityConcerns
52. Better Web Services Interoperability
53. Better Domain Specific Languages Support
54. Painless Upgradability
55. Simple Side By Side Execution
56. More Business Rules Engines
57. Lightweight Containers
58. Better Business Process Management
59. Sixty Four Bit Support
60. Millions Of Java Phones
61. Garbage Collect Classes - The only way to unload MSIL code is to unload an entire application domain.
62. More Alternative VM Implementations
63. Hard Realtime Capabilities
64. Cross Platform Language Integration
65. More Extensive XML Support
66. Better Support For Dynamic Distributed Systems
67. Superior 2D Drawing
68. Better GUI Framework - Why isn't VS.NET written in a .NET language?
69. SuperiorBranding
70. No Anti Open Source Agenda
71. Standardized Portal Frameworks - Standardized ""Integration at the glass"".
72. RunInIntepreterMode - ""We're just not optimized for interpreting""
73. More Semantic Web Research
74. Leads In Software Process Best Practices
75. Better Concurrency Utilities
76. More Multicasting Libraries
77. Superior Refactoring Tools
78. Higher Demand Therefore More Jobs
79. Faster And More Reliable Regex
80. SuperiorBuildEnvironments - A .NET practitioner's concept of a build is F7.
81. Embarassingly Rich Information Sources
82. More Open Source Projects
83. Affordable Industrial Grade IDEs
84. Standardized Enterprise Connectivity
85. DynamicLanguagesSupport
86. MorePDASupport - Why limit oneself to a single PDA brand?
87. OpenTechnologyRoadmap - .NET is like a five year plan in the former USSR: You know it doesn't actually make sense or help anything, but if you live under it, you're certainly not going to say anything negative about it.
88. EmergingStandardsSupport
89. JavaCard - JavaCards? are becomming the preferred method of keeping tabs on your citizenry or customers. If Microsoft ever co-opts this technology then "1984" will become more than just a paperback novel.
90. Complete Open Source Stack - Open Source code visibility spanning all layers of an application.
91. NonStopServers - .NET not fault-tolerant enough for Hewlett-Packard-Compaq?
92. Out Of This World - Java runs on other planets, .NET has yet to leave Terra Firma.
93. Better Unit Testing Support - More extensions and comprehensive IDE support
94. More Identity Management Solutions - Can you trust Microsoft to keeping your customer's identity secure and available?
95. Most UML Tools Implement In Java - Ever wonder why the best UML tools are implemented in Java?
96. More R&D On Intelligent Agents - Java is the preferred implementation platform for Intelligent Agents.
97. Easy Rich Client Deployment - No-Touch development was shaky.
98. Lower Cost for Massively Parallel Systems - How much does it cost to deploy a .NET application on a platform with 10,000 servers like google?
99. More Profilers - Profilers mitigate the risk of not finding the root cause of show stopping bugs.
100. Eclipse
101. OneHunderedReasons
The original edition was put together using a blogging system, this edition is now based on a Wiki system. Hopefully, the comments and contributions will be richer this time.
The list is structured such that all 101 entries can be viewed on a single page (unlike the original!). Each entry would be accompanied by a "sound bite" that bests captures the intent of the entry (if you got a good one, please let me know!). Each entry is also a link that you can navigate to examine more details and supporting information. At this time there is no particularly reason for the ordering and that will change at a later date (so please don't cite the entries number when you make an external comment!).
For an easy to remember url to link to this list and all future editions use 101.manageability.org . Feel free to post this url in response to articles and posts falsely promoting the benefits of .NET.
Finally, for those who unfortunately have legacy .NET deployments, here a series of articles that will help you migrate to a superior Java platform .
1. Public Domain APIs - Any Java public apis are part of the public domain, .NET apis are proprietary and can open the door to a law suit.
2. Standard Library Source Code Availability - Java source code for the core libraries are available in every J2SDK distribution, .NET sources can only be seen by resorting to illegal means.
3. dotNet Purity Is A Myth - Java promotes 100% pure Java libraries, for .NET purity is nothing more than a myth.
4. 75% Of Enterprise Software Development - Avoid becoming one of the 25% of "use-less" employees.
5. Preferred Platform for Implementing WebServices - Despite billions spent by Microsoft in marketing, surveys continue to reveal that Java is the preferred platform when it comes to Web Services.
6. Superior Platform for Web Development - ASP.NET is a poorly designed and crippled framework as compared to the richness of frameworks found in Java.
7. Write Stored Procedures using Java - Most relational databases support writing of stored procedures in the Java language. There has yet to be a production release of a database that supports any .NET languages.
8. An Abundance of Experienced Practitioners - Nobody seems to know how to write .NET programs well and that's giving .NET a bad name! A pretty lame excuse I must say!
9. Supportive Open Source Communities - Open Source communities that support distributed development are a plenty in the Java world.
10. Proven Security - 2 Years after Trust Worthy initiative is launched and we collectively lose $55 billion last year.
11. No Lizard Brain - .NET programmers continue to struggle with the complexities of a hybrid managed/unmanaged environment.
12. More Languages - The JVM is more "common" than the CLR.
13. Smaller Runtime Download - You can't run your app if you don't have the runtime.
14. No Mandatory Upgrade Fees - 3 things a Microsoft shop can't avoid: Death, Taxes and License 6.
15. More Vendor Choices - .Net is a marketing program. Java is a Market.
16. Industrial Strength Collection Classes - The .Net libraries look like they were designed by high-school students, First year CompSci? students at best.
17. FutureProof - The way to ensure your return on investment (i.e. ROI) is that your choice of platform doesn't get obsolete in 5 or even 10 years. Avoid the Microsoft upgrade treadmill!
18. Larger Talent Pool - Majority of Universities not only teach but require knowledge of Java. That's a big talent pool that you need to consider before you off-shore your project to a different time-zone.
19. More Contributions From Researchers - Research institutions and universities have consistently provided innovative research not only built on top of Java but also contributing to Java.
20. US Government Approved - Guess where the billions of dollars spent on the U.S. government's IT renovation is going to?
21. NoEvilTypeCoercion - Some C++ constructs are meant to be entombed forever, .NET resurrects them with disastrous consquences.
22. More Mature And Robust O/R Mapping - You can't beat the wealth of O/R mapping solutions found in Java.
23. Superior Coding Tools - Like having your own personal Java fairy dancing through your code, anticipating your every thought and keystroke.
24. Sane Coding Conventions - I don't know what's worse Hungarian notation or .NET coding conventions.
25. Higher Paying Jobs - Somehow you've got to afford those skyrocketing housing prices don't you?
26. Favored for Implementing P2P - Gnutella and JXTA, anything else legally more pervasive?
27. PureJavaRDMS - Can't beat the ease of installation when the RDMS is Java based and packaged with the application in a .zip file.
28. More Exception Handling Options - .NET has no analog to the throws clause in method signatures.
29. Better Structured Diagramming Frameworks - When going beyond forms and windows, Java can't be beat.
30. Reusable Open Source IDE Frameworks - Why re-invent the wheel? Start building your killer GUI application on top of killer IDE frameworks.
31. RobustParserGenerators - Want to build a new language, well you'll need some robust parser building tools.
32. AspectOrientedProgramming - The next advance in modular software development, get a head start by using Java.
33. PureJavaWebServers - Customizations and extensions are easier in a web container that's built using the same language as applications. Furthermore, managed environments support better reliability and security.
34. OpenSourceJavaCompilers - Your tools have got to be able to parse the code before it has any chance in understanding it.
35. Distributed Caching - Sometimes embarassingly parallel applications aren't the only things that you need to scale.
36. MultipleReliableMessagingChoices - Java provides more choices for the backbone that integrates the Enterprise.
37. Faster Development Turnaround - Incremental compilation is unavailable in the .NET environment.
38. Lightweight Persistence - Sometimes a relational database (RDMS) has too big a footprint.
39. Open Community Process - How does one contribute to the specification of standards?
40. Hardware Accelerators - Performance boosting hardware.
41. More Flexible Licensing Options - Ultimate flexibility in licensing.
42. EmbeddedDevices - Java inside small packages.
43. Faster Virtual Machines -
44. MickrokernelArchitectures
45. ContinuousBuild
46. WholeProgramOptimization - Please sir may I have a linker?
47. Comprehensive RDMS Driver Support - Can you find a ADO.NET driver for an open source database?
48. Superior Code Analysis Tools
49. NetworkingSupport - Why is MSN managed by a Java based tool?
50. More Garbage Collection Options
51. ReliabilityConcerns
52. Better Web Services Interoperability
53. Better Domain Specific Languages Support
54. Painless Upgradability
55. Simple Side By Side Execution
56. More Business Rules Engines
57. Lightweight Containers
58. Better Business Process Management
59. Sixty Four Bit Support
60. Millions Of Java Phones
61. Garbage Collect Classes - The only way to unload MSIL code is to unload an entire application domain.
62. More Alternative VM Implementations
63. Hard Realtime Capabilities
64. Cross Platform Language Integration
65. More Extensive XML Support
66. Better Support For Dynamic Distributed Systems
67. Superior 2D Drawing
68. Better GUI Framework - Why isn't VS.NET written in a .NET language?
69. SuperiorBranding
70. No Anti Open Source Agenda
71. Standardized Portal Frameworks - Standardized ""Integration at the glass"".
72. RunInIntepreterMode - ""We're just not optimized for interpreting""
73. More Semantic Web Research
74. Leads In Software Process Best Practices
75. Better Concurrency Utilities
76. More Multicasting Libraries
77. Superior Refactoring Tools
78. Higher Demand Therefore More Jobs
79. Faster And More Reliable Regex
80. SuperiorBuildEnvironments - A .NET practitioner's concept of a build is F7.
81. Embarassingly Rich Information Sources
82. More Open Source Projects
83. Affordable Industrial Grade IDEs
84. Standardized Enterprise Connectivity
85. DynamicLanguagesSupport
86. MorePDASupport - Why limit oneself to a single PDA brand?
87. OpenTechnologyRoadmap - .NET is like a five year plan in the former USSR: You know it doesn't actually make sense or help anything, but if you live under it, you're certainly not going to say anything negative about it.
88. EmergingStandardsSupport
89. JavaCard - JavaCards? are becomming the preferred method of keeping tabs on your citizenry or customers. If Microsoft ever co-opts this technology then "1984" will become more than just a paperback novel.
90. Complete Open Source Stack - Open Source code visibility spanning all layers of an application.
91. NonStopServers - .NET not fault-tolerant enough for Hewlett-Packard-Compaq?
92. Out Of This World - Java runs on other planets, .NET has yet to leave Terra Firma.
93. Better Unit Testing Support - More extensions and comprehensive IDE support
94. More Identity Management Solutions - Can you trust Microsoft to keeping your customer's identity secure and available?
95. Most UML Tools Implement In Java - Ever wonder why the best UML tools are implemented in Java?
96. More R&D On Intelligent Agents - Java is the preferred implementation platform for Intelligent Agents.
97. Easy Rich Client Deployment - No-Touch development was shaky.
98. Lower Cost for Massively Parallel Systems - How much does it cost to deploy a .NET application on a platform with 10,000 servers like google?
99. More Profilers - Profilers mitigate the risk of not finding the root cause of show stopping bugs.
100. Eclipse
101. OneHunderedReasons
Subscribe to:
Posts (Atom)