Sunday, March 30, 2008

NullPointerException

Problem
*******************************************************************
Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException
at it.codegen.tbx.reservationclient.presentation.treeutils.BookingTreeRenderer.getTreeCellRendererComponent(BookingTreeRenderer.java:150)
at javax.swing.plaf.basic.BasicTreeUI.paintRow(BasicTreeUI.java:1413)
at javax.swing.plaf.basic.BasicTreeUI.paint(BasicTreeUI.java:1203)
at javax.swing.plaf.metal.MetalTreeUI.paint(MetalTreeUI.java:152)
at javax.swing.plaf.ComponentUI.update(ComponentUI.java:142)
at javax.swing.JComponent.paintComponent(JComponent.java:742)
at javax.swing.JComponent.paint(JComponent.java:1005)
at javax.swing.JComponent.paintChildren(JComponent.java:842)
at javax.swing.JComponent.paint(JComponent.java:1014)
at javax.swing.JComponent.paintChildren(JComponent.java:842)
at javax.swing.JComponent.paint(JComponent.java:1014)
at javax.swing.JViewport.paint(JViewport.java:728)
at javax.swing.JComponent.paintChildren(JComponent.java:842)
at javax.swing.JComponent.paint(JComponent.java:1014)
at javax.swing.JComponent.paintChildren(JComponent.java:842)
at javax.swing.JComponent.paint(JComponent.java:1014)
at javax.swing.JComponent.paintChildren(JComponent.java:842)
at javax.swing.JComponent.paint(JComponent.java:1014)
at javax.swing.JComponent.paintChildren(JComponent.java:842)
at javax.swing.JSplitPane.paintChildren(JSplitPane.java:1021)
at javax.swing.JComponent.paint(JComponent.java:1014)
at javax.swing.JComponent.paintChildren(JComponent.java:842)
at javax.swing.JComponent.paint(JComponent.java:1014)
at javax.swing.JComponent.paintChildren(JComponent.java:842)
at javax.swing.JComponent.paint(JComponent.java:1014)
at javax.swing.JComponent.paintChildren(JComponent.java:842)
at javax.swing.JComponent.paint(JComponent.java:1014)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:559)
at javax.swing.JComponent.paintChildren(JComponent.java:842)
at javax.swing.JComponent.paint(JComponent.java:1014)
at javax.swing.JComponent.paintWithOffscreenBuffer(JComponent.java:4963)
at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4916)
at javax.swing.JComponent._paintImmediately(JComponent.java:4859)
at javax.swing.JComponent.paintImmediately(JComponent.java:4666)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:451)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:114)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at it.codegen.presentation.CGEventQueue.dispatchEvent(CGEventQueue.java:23)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
Return true...
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

***************

Answer

Here the issue is one object returns a null value
In here node object returns null and getData() makes a NUllpointerException

to avoid this
make sure all the values are set before get those
in other words setters are well called before the getters

Connection to 192.168.0.16:9090 (ip ) refused

java.net.ConnectException: Connection to 192.168.0.16:9090 refused
at com.idoox.transport.http.client.HttpPool.newSocket(HttpPool.java:237)
at com.idoox.transport.util.SocketPool$SocketExImpl.open(SocketPool.java:143)
at com.idoox.transport.util.SocketPool$SocketExImpl.open(SocketPool.java:130)
at com.idoox.transport.util.SocketPool.get(SocketPool.java:343)
at com.idoox.transport.http.client.HttpClient.newConnection(HttpClient.java:164)
at org.idoox.transport.client.Endpoint.newConnection(Endpoint.java:1062)
at org.idoox.transport.client.Endpoint.newConnection(Endpoint.java:1029)
at com.idoox.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:235)
at com.idoox.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:375)
at com.idoox.wasp.wsdl.WSDLRepositoryImpl.getDefinition(WSDLRepositoryImpl.java:142)
at com.idoox.wasp.SOAPServiceInfoCache.getServiceInfos(SOAPServiceInfoCache.java:53)
at com.systinet.wasp.webservice.ServiceClientImpl.lookup(ServiceClientImpl.java:551)
at com.systinet.wasp.webservice.ServiceClientImpl.createProxy(ServiceClientImpl.java:433)
at org.systinet.wasp.webservice.Registry.lookup(Registry.java:168)
at it.codegen.tbx.agent.authority.AuthorityHandler.authoizeAndConfiguration(AuthorityHandler.java:105)
at it.codegen.tbx.TBXClientApplication.initEnvironment(TBXClientApplication.java:43)
at it.codegen.tbx.reservationclient.ReservationClient.(ReservationClient.java:522)
at it.codegen.tbx.reservationclient.ReservationClient.main(ReservationClient.java:540)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
org.systinet.wasp.webservice.LookupException: Error obtaining WSDL definition from http://192.168.0.16:9090/TBXAdminService/wsdl
at com.systinet.wasp.webservice.ServiceClientImpl.lookup(ServiceClientImpl.java:553)
at com.systinet.wasp.webservice.ServiceClientImpl.createProxy(ServiceClientImpl.java:433)
at org.systinet.wasp.webservice.Registry.lookup(Registry.java:168)
at it.codegen.tbx.agent.authority.AuthorityHandler.authoizeAndConfiguration(AuthorityHandler.java:105)
at it.codegen.tbx.TBXClientApplication.initEnvironment(TBXClientApplication.java:43)
at it.codegen.tbx.reservationclient.ReservationClient.(ReservationClient.java:522)
at it.codegen.tbx.reservationclient.ReservationClient.main(ReservationClient.java:540)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
Caused by: WSDLException: faultCode=INVALID_WSDL: Cannot get WSDL at 'http://192.168.0.16:9090/TBXAdminService/wsdl'.
Exception occured: java.net.ConnectException: Connection to 192.168.0.16:9090 refused:
at com.idoox.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:263)
at com.idoox.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:375)
at com.idoox.wasp.wsdl.WSDLRepositoryImpl.getDefinition(WSDLRepositoryImpl.java:142)
at com.idoox.wasp.SOAPServiceInfoCache.getServiceInfos(SOAPServiceInfoCache.java:53)
at com.systinet.wasp.webservice.ServiceClientImpl.lookup(ServiceClientImpl.java:551)
... 11 more
java.lang.NullPointerException
at it.codegen.tbx.agent.authority.AuthorityHandler.authoizeAndConfiguration(AuthorityHandler.java:131)
at it.codegen.tbx.TBXClientApplication.initEnvironment(TBXClientApplication.java:43)
at it.codegen.tbx.reservationclient.ReservationClient.(ReservationClient.java:522)
at it.codegen.tbx.reservationclient.ReservationClient.main(ReservationClient.java:540)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
it.codegen.tbx.agent.authority.AuthorityException: Can not get local configuration details
at it.codegen.tbx.agent.authority.AuthorityHandler.authoizeAndConfiguration(AuthorityHandler.java:153)
at it.codegen.tbx.TBXClientApplication.initEnvironment(TBXClientApplication.java:43)
at it.codegen.tbx.reservationclient.ReservationClient.(ReservationClient.java:522)
at it.codegen.tbx.reservationclient.ReservationClient.main(ReservationClient.java:540)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
it.codegen.tbx.agent.authority.AuthorityException: Can not get local configuration details
at it.codegen.tbx.agent.authority.AuthorityHandler.authoizeAndConfiguration(AuthorityHandler.java:153)
at it.codegen.tbx.TBXClientApplication.initEnvironment(TBXClientApplication.java:43)
at it.codegen.tbx.reservationclient.ReservationClient.(ReservationClient.java:522)
at it.codegen.tbx.reservationclient.ReservationClient.main(ReservationClient.java:540)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)



Answer
************

This comes because the server is not started , Stopped
It's better to check the server is working
and restart the server
if it is linux server

./serverstart.sh > output.log 2>&1 &

Tuesday, March 25, 2008

Software architecture and engineering - From dog houses to skyscrapers

During my interviews of young newcomers into the IT field, I notice that many of them have trouble differentiating "coding" from the discipline of "software engineering."

This is unfortunate, for there is a hugely important difference between the two that young software engineers must appreciate. This article discusses some of these software engineering aspects, with learning's from Virtusa's Technology Office.

A statement by Booch is very relevant to the topic at hand: "Dog houses have been built. You can't build a skyscraper the way you build a dog house." The "engineering" part of software engineering becomes really important-neigh, critical-for large-scale complex projects-the software equivalent of skyscrapers. So what are the important engineering aspects of building the software equivalent of skyscrapers?

First, it's important to understand what attributes are expected from the skyscrapers of the software world. Besides accurately and fully supporting immediate business requirements, the software also needs to support future expansion and scale.

Future expansion translates to both increasing business volume and changing business requirements. The software also needs to adhere to industry best practices that helps future maintainability of the code.

The use of the proper software engineering practices can result in software that adheres to the above attributes, while at the same time facilitating the productive use of a large team to improve time-to-result and enhance productivity of the software development process itself.

Requirements

Requirements gathering is usually the starting point of the software engineering cycle. Verbal and informal methods of gathering requirements, while quick and useful in small projects, are insufficient for large-scale projects.

At the same time, the traditional waterfall method of first gathering all the requirements before proceeding to design and development tends to also fail in a world where time-to-result is becoming a prime differentiator.

Instead, modern agile development techniques tend to engage customers earlier and more frequently and also provide for shorter iterations, enabling customers to see the product earlier and decide implementation priorities. In our experience, agile methods are growing in acceptance and momentum, and are even becoming the approach of choice in offshore development projects.

Metrics, such as the Requirements Clarity Index and Requirements Stability Index, are useful measures of the requirements gathering and management processes. One interesting tool I've come across is an Automated Requirements Measurement tool from NASA.

The tool can scan a requirements document and capture many requirements-related metrics; for example, the usage of weak English phrases that lead to ambiguities, structural inconsistencies, etc. The output of this tool can be very useful to optimize manual requirements reviews.

Requirements gathering includes both business requirements and technical requirements.

The project architect is responsible for visualising the technical solution, and must therefore ensure that any technical requirements and constraints are fully captured during the requirements process.

Architecture and Design

For large projects to be delivered on-time, it is important to effectively engage a large team, and parallelise as much work as possible.

Software architecture provides the means to decompose a large project into smaller sub-systems or sub-projects. Decomposition involves identifying the functional modules, architectural layers and cross-cutting concerns.

Architectural layers focus on specific functions, such as the user interface, business logic or access to database/external systems.

By organising these layers such that, for example, the user interface layer can only access the business logic layer, and the business logic layer can only access the persistence layer, layered architecture reduces the interconnections between components and reduces the complexity of the resulting software. Cross-cutting concerns deal with common technical requirements that go across layers, such as security, error handling, transactions, etc.

A technical requirements checklist of the right questions to ask in these areas can help avoid expensive requirements gaps in new development engagements.

Defining the architecture requires broad and deep knowledge of technology choices and best practices. The team should leverage industry standards and best practices associated with its technology selections.

These standards should not be limited to the main programming language, but should also address user interface (HTML, accessibility, XHTML standards, etc.), database (database object naming conventions, SQL standards, etc.), and any other specific technologies in use. Virtusa's Technology Office provides a portal with all these specific standards and best practices, from which teams can select the subset they require for each project.

In many industries, existing blueprints are used to create new applications. So rather than architecting from scratch, it is often better to use established architecture blueprints as a starting point. Creating an architecture blueprint in code during the early stages of the design process is a highly-recommended best practice that results in better quality code aligned with the architectural vision.

This approach has the advantage of mitigating technical risks early in the project and describing the architecture in developers' language. This thin slice of code representing all the architectural layers can also be run through profiling tools to capture potential performance and scalability bottlenecks with the architecture.

Architecture blueprint generators exist that can generate the early architecture blueprint for new applications.

The architecture blueprints generated by these tools already adhere to best practices and can be a huge boost to both quality and productivity. Virtusa's Technology Office provides a custom blueprint generator for the standard Java/Spring technology stack, and also provides a list of recommendations and guidance for different sets of technologies.

Architecture blueprint generators can go a long way to ensuring that the technologies and standards used in an enterprise are consistent.

Virtusa has also created custom architecture blueprint generators for customers, based on their unique technology decisions and nuances.

Automated Unit Testing

As teams start doing parallel development work, a good team infrastructure and rigorous engineering practices are needed to ensure that conflicts are avoided, and any defects are caught early.

Defects that are caught later in the lifecycle cost much more to fix than those that are caught early in the lifecycle. Also, as the code base starts to grow in the thick of the construction cycle, there is a growing risk of developers not considering dependencies sufficiently and breaking functionality that worked earlier. Such defects can be extremely destabilizing and can easily reduce the productivity of both development and quality assurance (QA) teams to the breakpoint.

Dependency-based defects can be easily avoided by creating a suite of automated unit tests. In fact, developers must be informed that development is not considered complete until their code is sufficiently covered by automated unit tests.

Frameworks, such as JUnit for Java and NUnit or MSTest for Microsoft .NET, can be used to create and run automated unit tests. Code coverage tools, such as Emma for Java and NCover or MS Code Coverage for .NET, provide valuable information about exactly how much of the code is covered by the unit tests.

They point out which lines of code are covered and which lines are not covered by the unit tests-valuable information, indeed, for technical leaders assessing test coverage and thus stability of the code base.

Having a suite of automated unit tests can also be a huge benefit for the maintenance phase of the lifecycle, as it ensures that defect fixes or enhancements don't end up causing instability in the system.

An interesting side note is the relationship between code complexity and unit testing. Code complexity can be measured using McCabe's Cyclomatic complexity metric, which effectively counts the number of conditional branches through the system.

A rule of thumb is that the number of unit tests should at least be equal to the Cyclomatic complexity. Another interesting metric, called the CRAP metric (Change Risk Analyzer and Predictor), provides a measure of the maintainability of software. The CRAP metric increases as the complexity increases, and decreases as the code coverage from unit tests increases.

A high CRAP count can be lowered either by refactoring code to reduce complexity, or by increasing test coverage using more unit tests.

Team Infrastructure

Standard team infrastructure includes source control and defect/change tracking systems, team collaboration portals and continuous integration (CI) build servers. CI servers promote frequent code integration, by "listening" to the source control system, building the code automatically at frequent intervals, and, if automated unit tests exist, executing these unit tests.

CI servers are usually configured to send an email to the team on each build or if a build or unit test failure occurs. Having a CI server ensures that any integration failures are caught early and are therefore much easier to fix.

A defect tracking system can provide useful information on the trending of defects and the readiness to release software to the customer-typically, the number and density of defects decrease and the time to find a defect increases as the system moves closer to release.

Code Analysis

The percentage of defects caught before delivery to the customer as a percentage of the total number of defects (also called the defect removal efficiency) can provide a very useful indicator of the overall efficiency of the QA processes.

Configuration and release management is a well defined activity that can reduce conflicts and ensure a smooth transition of code and other artifacts between the Development, QA and production support teams.

Automation is key to ensuring software quality in a large project. Code analysis tools, such as Checkstyle and Findbugs for Java or FxCop for NET, automatically check code against coding conventions and best practices.

Virtusa's Technology Office provides an integrated development environment (IDE) based on Eclipse that bundles the Virtusa coding standards and conventions, as well as a standard set of code-analysis plug-ins.

Developers are expected to run these tools and correct any errors reported before code is checked in. Another custom tool provided by the Technology Office is installed on the build servers, analyses the code base and publishes metrics to an enterprise-level metrics dashboard.

These metrics are available for technical leadership to analyze and act upon, providing an additional safety net for code quality. Such infrastructure can reduce the subjectivity of code assessments and can focus manual code reviews on higher-order activities, such as finding logical and design-level issues with code.

Software development is often seen as an industry with low barrier to entry. While this may be true for small projects, complex projects that leverage large teams require a very high degree of professionalism and engineering discipline to be successful.

This is especially true as customers also become more sophisticated, demanding high quality solutions to complex business problems with significantly reduced time-to-results.

In an increasingly competitive industry, it's the "architecture and engineering" aspect of software engineering that separates the men from the boys.

Wednesday, March 19, 2008

Correct posture

Here are some correct postures which should be used while using a computer to reduce stress and other ill effects.

Image

Image

Image

Image

Image

Image

Image

Image

Please take good care of your wrist while using the keyboard and mouse of your computer.

Long term repetitive action stress can lead to Carpal Tunnel.
You could end up going under a surgery that looks like this:

n i d o k i d o s




Carpal Tunnel Syndrome and Manual therapy
Exercises for relief from Carpal Tunnel Syndrome


While you are receiving treatment for Carpal Tunnel Syndrome regular exercise sessions can help your rapid recovery. We have included some photos and explanations of recommended exercises.
The following exercises may be prescribed by your healthcare provider in conjunction with Low Level Laser therapy. In the photos you will see below, the right wrist is the one being exercised. If your left wrist is affected, do the same exercises with the left hand.

When doing each of these exercises, the hand should be flexed until a sensation of stretching is felt in the arm. The position should be held fo r 10 to 15 seconds for each of 10 repetitions. Try to this set of exercises three times a day.

Exercises 1 and 2 flex and extend the hand and stretch the wrist. Bend the hand as shown in the photos and apply moderate pressure to it with the other hand.



n i d o k i d o s
Exercise 1 - Wrist Flexion Bend the hand being exercised backward (palm away from you ), as shown in the photos. With the fingers of the other hand, apply pressure.
(Click on photo for larger view)



n i d o k i d o s
n i d o k i d o s
Exercise 2 - Wrist Extension Bend the hand being exercised forward ( palm toward you ), as shown in the photos. With the fingers of the other hand, apply pressure.

Exercises 3 and 4 are similar to 1 and 2 except that an object, such as a pad provides the resistance to the hand, instead of your other hand.


n i  d o k i d o s
Exercise 3 - Wrist Flexion against surface With your arm held vertically, press your hand, palm down, on a firm surface, as shown in the photo.



n i d o k i d o s
Exercise 4 - Wrist Extension against surface With your arm held vertically, press your hand, palm up, on a firm surface, as shown in the photo.



Exercises 5 and 6 involve the side to side range of motion of the hand.



n i d o k i d o s
Exercise 5 - (Radial Deviation) Place your hand palm downward. Grasp the fingers of the hand to be exercised with your other hand (as shown in the photo) and twist the hand toward you. Keep the hand horizontal.



n i d o k i d o s
Exercise 6 - (Ulnar Deviation) Place your hand palm downward. Grasp the fingers of the hand to be exercised with your other hand (as shown in the photo) and twist the hand away from you. Keep the hand horizontal.





















Tuesday, March 11, 2008

NUTRITION UPDATES


NUTRITION UPDATES

TO PREVENT STROKE DRINK TEA!
Prevent buildup of fatty deposits on artery walls with regular doses of tea. (actually, tea suppresses my appetite and keeps the pounds from invading....Green tea is great for our immune system)!



INSOMNIA (CAN'T SLEEP?) HONEY!
Use honey as a tranquilizer and sedative.



ASTHMA? EAT ONIONS!!!!
Eating onions helps ease constriction of bronchial tubes. (when I was young, my mother would make onion packs to place on our chest, helped the respiratory ailments and actually made us breathe better).

ARTHRITIS? EAT FISH, TOO!!
Salmon, tuna, mackerel and sardines actually prevent arthritis.
(fish has omega oils, good for our immune system)



UPSET STOMACH? BANANAS - GINGER!!!!!
Bananas will settle an upset stomach.
Ginger will cure morning sickness and nausea.



BLADDER INFECTION? DRINK CRANBERRY JUICE!!!!
High-acid cranberry juice controls harmful bacteria.



BONE PROBLEMS? EAT PINEAPPLE!!!
Bone fractures and osteoporosis can be prevented by the manganese in pineapple.

PREMENSTRUAL SYNDROME? EAT CORNFLAKES!!!!
Women can ward off the effects of PMS with cornflakes, which help reduce depression, anxiety and fatigue.



MEMORY PROBLEMS? EAT OYSTERS!
Oysters help improve your mental functioning by supplying much-needed zinc.



COLDS? EAT GARLIC!
Clear up that stuffy head with garlic. (remember, garlic lowers cholesterol, too.)

COUGHING? USE RED PEPPERS!!
A substance similar to that found in the cough syrups is found in hot red pepper. Use red (cayenne) pepper with caution-it can irritate your tummy.



BREAST CANCER? EAT Wheat, bran and cabbage
Helps to maintain estrogen at healthy levels.



LUNG CANCER? EAT DARK GREEN AND ORANGE AND VEGGIES!!!
A good antidote is beta carotene, a form of Vitamin A found in dark green and orange vegetables.

ULCERS? EAT CABBAGE ALSO!!!
Cabbage contains chemicals that help heal both gastric and duodenal ulcers.



DIARRHEA? EAT APPLES!
Grate an apple with its skin, let it turn brown and eat it to cure this condition. (Bananas are good for this ailment)



CLOGGED ARTERIES? EAT AVOCADO!
Mono unsaturated fat in avocados lowers cholesterol.



HIGH BLOOD PRESSURE? EAT CELERY AND OLIVE OIL!!!
Olive oil has been shown to lower blood pressure.
Celery contains a chemical that lowers pressure too.



BLOOD SUGAR IMBALANCE? EAT BROCCOLI AND PEANUTS!!!
The chromium in broccoli and peanuts helps regulate insulin and blood sugar.



HEADACHE? EAT FISH!
Eat plenty of fish -- fish oil helps prevent headaches.
So does ginger, which reduces inflammation and pain.

HAY FEVER? EAT YOGURT!
Eat lots of yogurt before pollen season.
Also-eat honey from your area (local region) daily.

Kiwi: Tiny but mighty. This is a good source of potassium, magnesium, Vitamin E &fiber. It's Vitamin C content is twice that of an orange.

Apple: An apple a day keeps the doctor away? Although an apple has a low Vitamin C content, it has antioxidants &flavonoids which enhances the activity of Vitamin C thereby helping to lower the risks of colon cancer, heart attack & stroke.

Strawberry: Protective fruit. Strawberries have the highest total antioxidant power among major fruits &protects the body from cancer causing, blood vessels clogging free radicals. (Actually, any berry is good for you..they're high in anti-oxidants and they actually keep us young.........blueberries are the best and very versatile in the health field........they get rid of all the free-radicals that invade our bodies)

Orange: Sweetest medicine. Taking 2 - 4 oranges a day may help keep colds away, lower cholesterol, prevent & dissolve kidney stones as well as lessen the risk of colon cancer.



Watermelon: Coolest Thirst Quencher. Composed of 92% water, it is also packed with a giant dose of glutathione which helps boost our immune system. They are also a key source of lycopene - the cancer fighting oxidant. Other nutrients found in watermelon are Vitamin C &Potassium. (watermelon also has natural substances [natural SPF sources] that keep our skin healthy, protecting our skin from those darn suv rays)

Guava &Papaya: Top awards for Vitamin C. They are the clear winners for their high Vitamin C content. Guava is also rich in fiber which helps prevent constipation.

Papaya is rich in carotene, this is good for your eyes. (also good for gas and indigestion)

Tomatoes are very good as a preventative measure for men, keeps those prostrate problems from invading their bodies.