Five Things Missing from the iPad

After much awaiting launch of the iPad , many in the techie community have raised several comments claiming Apple's latest ipad is missing key features, functions, and hardware components. Lets see and have a review of the features that are missing which other wise will make the apple ipad a tech savvy gadget.
1.No built in Camera
Of all of the surprising omissions in the iPad, the absence of a built-in camera came as the biggest shock. With just about every mobile device incorporating some sort of camera these days, the iPad's lack of some sort of photo or video taking ability is stupefying. Granted, Apple is pushing the iPad as a web browsing, media-loving, book reading device, but given how cheap and accessible the technology is, it would have been a simple addition to the hardware. 
2.No Flash Support
This is another big omission from the iPad: support for Adobe Flash. It’s bad enough on the iPhone, but imagine loading up a nice video link on the iPad only to have it… simply not play.
3.No USB Port:
Isn’t the usb point missing the point? The iPad requires a host computer; it’s more like an iPod in that sense. You can’t plug an iPod into an iPod. Just to say: the iPad is not an unhitched computer in the way a Kindle or a netbook is. Nor is it the MacCloud of my dreams, able to run off an MobileMe account.
4.No Mutitasking
From what we saw on the iPads we tested following the keynote this week, multitasking is not offered for apps on the iPad. Other than simply utilizing the iPod functionality while using other apps, you can't seem to run multiple apps at once. Apple could potentially add this feature later through a firmware update, but we wouldn't expect it for quite some time (or before the 2nd-gen iPad is announced).
5.Typing Ergonomic
The iPad will be a huge competitor for netbooks and laptops and has support for iWorks and web browsing, but its missing keyboard is one of the iPad's only disappointments. Being sort of an upgraded iPhone, an actual keyboard wasn't expected to be an inbuilt feature, but with all of the input demanding programs on the iPad, it's hard to believe that the iPad lacks a better solution than that silly keyboard dock (that isn't practical on the go).

Basic Framework of Job Control Language-JCL

My head’s spinning around the 3 JCL Statements : JOB, EXEC and DD. Could you tell me something more about them?
So, you’ve got the gist of the concept behind JCL, all the JCL that you going to write from hereon, maybe for the next 10-20 years, would be composed of three main statements :





//nameJOBparameters...
//nameEXECparameters...
//nameDDparameters..

Each of this JCL Statements have a label – a symbolic name assigned to them. Its like naming kids. Well, there could be so many boys in your area, but how do distinguish them? Of course, by their names.


In the same way, a JCL may contain a bunch of DD Statements, one for Input file, one for the output file, one for the error file. How do you tell them apart, by naming them. As a good practice, we always give names to all our JCL Statements. Names kinda help you to refer back to these statements in the future. You want to point out a particular JCL Statement to your friend, just spell out its name.

But, notice carefully, each label(name) is preceded with two slashes //. The two slashes are a JCL Statement’s signature. They indicate that the statement is a JCL Statement(one of JOB, EXEC, DD). Every JCL Statement wear the two slashes //. A naked statement without // won’t be treated as a JCL Statement.

Now, every JOB, EXEC and DD Statement has got these whole lot of parameters. What you’ll be learning throughout these tutorials is mostly the parameters. Parameters add stuff and meaning to the JCL Statement.

Now, let me give you a booster, that’s going to help you organise the way you think about this JCL.

JCL is made up of mainly JOB, EXEC and DD.
- JOB is easy to learn and use.
- EXEC is easy and fun to use.
- DD Statements take three forms
   1. DD Statements to read a file.(easy)
   2. DD Statements to write to the logs.(easy)
   3. DD Statements to create a new file(hard!); you’d have to learn parameters such as DISP, UNIT, DCB, SPACE and several others to code this.

Have a good look at this chart :
Image99[1]

Oracle buying Sun will change the IT industry

1) MySQL is dead. Long live MySQL. Oracle doesn't have much to say about MySQL. Why should they? They're going to quietly kill the open-source DBMS as fast as possible.

Unfortunately for Oracle, it's too late. MySQL, under Sun's mismanagement, had already forked. MySQL founder, Michael 'Monty' Widenius left Sun and started his own community branch of MySQL, MariaDB. His purpose? "To provide a community developed, stable, and always Free branch of MySQL that is, on the user level, compatible with the main version."

That's one of the things that Ellison, and Microsoft for that matter, don't get. You can't kill open-source projects. Companies come and go, but popular open-source programs like MySQL just keep rolling on.

2) Solaris/OpenSolaris. Oracle is making sounds like it wants to do something with Solaris. Just don't ask me what. Solaris has been declining for years. Oracle uses Linux internally, and it even has its own rip-off of RHEL (Red Hat Enterprise Linux), Oracle Unbreakable Linux.

Ellison can talk all he wants about Sun's Solaris operating system being "by far the best Unix technology," but so what? Unix is dying. Linux has been eating away at the Unix market for more than a decade. Ellison's support of Unix makes a good sound-bite, but as a business move it makes no sense. I predict death by neglect for Solaris.

3) Java. Java has value, but Sun's done a poor job over the years of turning that value into money. Oracle, which uses Java in many of its applications, can certainly put Java to good work in supporting its own products. My question is, "What is Oracle going to do with the Java Community and vice-versa?"

I know some things will happen. NetBeans, for example, is history. Oracle is a big-time Eclipse supporter. As for the rest? I honestly don't know what Oracle will do with the JCP (Java Community Process). If they're smart, they'll get everyone together as soon as possible to spell out their future plans for Java. If Oracle doesn't, they'll have Java developers running, not walking, away from the Sun/Oracle Java as fast as they can.

4) SPARC. Oracle can talk all it wants about taking a step back to the past where companies sell hardware and software bundles, but I don't see it. Fujitsu will continue to make SPARC boxes for that dwindling market, and I expect to see Sun's x86-server based business getting either spun out as an independent company or sold to Dell or HP. I just can't see Oracle in the hardware business.

5) Sun's other open-source programs. I have a bad, bad feeling that Oracle is going to let popular and powerful open-source projects like OpenOffice and VirtualBox wither on the vine. Oracle is willing to spend money on open-source projects that it uses. For example, Oracle is a top contributor to ldLinux. But, I don't see these, or Sun's other open-source projects, contributing to Oracle's bottom-line, so I don't see them getting much support.

Over the years, Sun has contributed, albeit reluctantly at times, many great advances in operating systems and open-source software. With this acquisition, those days are done. Good-bye Sun, it was nice to have known you.
Courtesy:ComputerWorld

Apple Ipad Launched


Apple has officially introduced the iPad tablet computer. The iPad is designed to be a revolutionary device for browsing the web, reading and sending e-mail, viewing photos, watching movies, listening to music and reading e-books. The $500 base iPad includes a high-resolution Multi-Touch display and is just .5” thick and will be available in late March. The iPad is powered by a custom 1GHz Apple “A4” chip and includes built-in WiFi and optional 3G wireless. The 1.5-pound device boasts a 9.7” screen (1024 x 768) and a battery life of 10 hours. The iPad is managed by iTunes and just like an iPhone, it can run all of the various applications found at Apple’s App Store too.
Apple iPad


iPad runs almost all of the over 140,000 apps on the App Store, including apps already purchased for your iPhone® or iPod touch®. The iTunes® Store gives you access to the world’s most popular online music, TV and movie store with a catalog of over 11 million songs, over 50,000 TV episodes and over 8,000 films including over 2,000 in stunning high definition video. Apple also announced the new iBooks app for iPad, which includes Apple’s new iBookstore, the best way to browse, buy and read books on a mobile device. The iBookstore will feature books from major and independent publishers.

Microsoft Launches Visual Studio 2010 Beta 2

Microsoft has announced the availability of Microsoft Visual Studio 2010 Beta 2 and Microsoft .NET Framework 4 Beta 2 to Microsoft Developer Network (MSDN) subscribers.
Microsoft will shed more light on Visual Studio 2010, .NET Framework 4 and all of its other developer technologies at its upcoming Microsoft Professional Developers Conference (PDC) to be held in Los Angeles November 17-19
What’s New with Beta 2
With this release the Web Tools team has introduced a number of great improvements. A number of these improvements are listed below.
New Template

Using the default ASP.NET web site template, projects now come with a pre-configured site. This template configures your site to use master and content pages. In addition, it has styles pre-defined and controls for login, register and changing your password.

Silverlight 3 Tooling Support
While Dev10 tooling for Beta 1 has Silverlight 2 features that worked with Silverlight 3, Beta 2 now re-introduces all the Silverlight 3 features directly into Visual Studio.

Changes include:
  1. Support for configuring Out of browser (see screenshot below).
  2. Support for Transparent Platform Extensions.
  3. Page.xaml renamed to MainPage.xaml.
  4. Removal of support for Silverlight 
Parameterization of Web Packages 
VS will automatically parameterize the connection strings defined in the web.config and the destination virtual application name.  The users can specify customized parameters in parameters.xml file in the project directory as well, to parameterize configurations, such as WCF service’s end point etc. 

Import from web.config file for DB deployment Web application’s Deploy SQL property page provided a button “Import from web.config”, which will import the web.config connection string names to the connection list, with the connection strings as their package source. 

Fedora 12 vs. Windows 7

After the grand launch of much awaited ?Windows 7?, on October 22' 2009 here comes Fedora 12, code names Constantine. In this story we will try to see how Fedora 12 fares against Windows 7 plus will also compare the Ext4 (one of the key highlights of Fedora 12) against Ext3 and NTFS.
One of the key enhancements in Fedora 12 is the Ext4 boot support which was not there in Fedora 11. But coming to the desktop of Fedora 12, it still doesn't impress me because the Compiz effects are still more or less the same and I don't see much of the difference as compared to Fedora 11. Some other enhancements of Fedora 12 are better touch screen and tablet support, and an improved Bluetooth stack.

Microsoft's New Table Top Technology is Amazing

Microsoft To Purge Search Data on Bing After 6 Months

Microsoft's Bing blog announced they will reduce the time frame they store search data, from 18 months to only 6 months. This is in response to the European Union's request that search companies reduce the time they store such data. Microsoft Bing is the first major search engine to comply with those demands.
According to bing..
Specifically, we are reducing the amount of time we store IP addresses from searchers to 6 months. Currently we keep that information for 18 months before we delete it. Generally, when Bing receives search data we do a few things: first, we take steps to separate your account information (such as email or phone number) from other information (what the query was, for example). Then, after 18 months we take the additional step of deleting the IP address and any other cross session IDs associated with the query. Under the new policy, we will continue to take all the steps we applied previously – but now we will remove the IP address completely at 6 months, instead of 18 months. We think this gives us the right balance between making search better for consumers (we use the data to improve the service we offer) and providing greater protection for the privacy of our users.

How to Use jQuery hide() function for hiding the current HTML element


<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("button").click(function(){
  $(this).hide()
});
});
</script>
</head>

<body>
<button type="button">Click me</button>
</body>

</html>

Explanation:
The jQuery syntax is tailor made for selecting HTML elements and perform some action on the element(s).
Basic syntax is: $(selector).action()



  • A dollar sign to define jQuery
  • A (selector) to "query (or find)" HTML elements
  • An jQuery action() to be performed upon the element(s)
Examples:
$(this).hide() - hides current element
$("p").hide() - hides all paragraphs
$("p.test").hide() - hides all paragraphs with class="test"
$("#test").hide() - hides the element with id="test"


Groovy-Eclipse 2.0.0 Released!

 The most important new features that Groovy-Eclipse 2.0.0 provides are:
  • a new approach to compiling joint Groovy-Java code that does not require a stub compiler
  • advanced and extensible content assist
  • vast speed and memory improvements over previous releases
  • debug support
  • deep integration with the Java Development tools
Also, over 380 bugs have been addressed since the previous release. See the release notes. The Eclipse update site is available here:
  • http://dist.springsource.org/release/GRECLIPSE/e3.5/

Top 5 Web Technology Trends for 2009

Here are 5 additional web technology trends that will be important in 2009, in no particular order:
  1. Actionable Web Analytics as part of Enterprise BI and Dashboards.
    Web Analytics in many organizations is still an orphan with no real parents. Every department looks at its data but rarely does it get a strategic priority as an indicator of business trends and business intelligence asset. Investment in web analytics allows for customer insights, marketing spend ROI, conversion optimization and can impact the bottom line. As companies invest in sophisticated BI and analytical dashboards, web based data that is not transactional is usually not there. Integrating web traffic and user interest data into these systems can result in new insights and better actionable data.
  2. Phone Browser Compatibility
    Mobile computing is booming. About 13M iPhones were sold so far, and the support for location and browser that both the Android, Blackberry and all Microsoft based smartphones are offering, the percentage of traffic to web sites coming from phones is already in the 3%-10% range and will only increase. These are not the early 00’s WAP/WML jokes but full HTML browsers. Still, these special browsers are very different from the full version used on PC’s and Laptops. Bandwidth is still a challenge and their support for Rich Applications such as Flash and Silverlight is lacking. If you have a fancy Flash based site, your users will most likely not see a thing. Companies that have ignored it so far will have to adjust their sites or redirect mobile traffic to a mirror mobile optimized site.
  3. Location based services
    Continuing from the previous point, these mobile devices have GPS included and location based applications can drastically impact the user experience. Either as an iPhone/Android application or websites, the ability to share location information and get back location specific data about local services, other people, events, sales or anything else adds a new dimension to mobile applications.
  4. Increased reliance on open source infrastructure products and technologies
    Free is always a powerful word. Strong and reliable open source environments allow companies to create a robust e-commerce infrastructure with little or no proprietary platforms. The excellent Apache OFBiz for example, provides strong open source modules for e-commerce, ERP, CRM and many others. Alfresco offers a great content management solution and multiple open source development environments are available. The case for Enterprise Open Source web environment is getting stronger every day.
  5. Approaching Social Networking and Collaboration in a Strategic way
    Everyone now realizes the power of social networks and is rushing to get in, establish a FaceBook page, a Twitter account and get’s their PR to sprawl the web to “engage” people. Internally, companies are haphazardly trying various collaboration methods. We see a maturity process happening through 2009 that will force companies to look at all their collaboration points in a strategic way and tie them to business goals and processes. This new approach will transform them from toys to tools and will establish their place and value in the new order.

Difference between compiler and interpreter

 http://www.mattcutts.com/images/compiler.jpg



http://wyvern.cs.uni-duesseldorf.de/hhu-dynlang/figures/bytecode-interpreter-diagram.png 
A compiler first takes in the entire program, checks for errors, compiles it and then executes it. Whereas, an interpreter does this line by line, so it takes one line, checks it for errors and then executes it.

Eg of Compiler - Java
Eg of Interpreter - PHP


Explanation 2:
interpretor translate the program line by line and compiler translate the entire program interpretor requires less memory and compiler requires more memory

definition of compiler:
Compiler is a program that translates a computer program written on one computer language to another computer language. A "compiler" is primarily used for programs that translate source code from a high level language to a lower level language (e.g., assembly language or machine language). A program that translates from a low level language to a higher level one is a decompiler. A compiler for a relatively simple language written by one person might be a single, monolithic, piece of software. When the source language is large and complex, and high quality output is required the design may be split into a number of relatively independent phases, or passes. Having separate phases means development can be parceled up into small parts and given to different people. It also becomes much easier to replace a single phase by an improved one, or to insert new phases later.

Interpreter is a program that translates an instruction into a machine language and executes it before proceeding to the next instruction..... A high-level programming language translator that translates and runs the program at the same time. It translates one program statement into machine language, executes it, and then proceeds to the next statement. This differs from regular executable programs that are presented to the computer as binary-coded instructions. Interpreted programs remain in the source language the programmer wrote in, which is human readable text. Interpreted programs run slower than their compiler counterparts. Whereas the compiler translates the entire program before it is run, interpreters translate a line at a time while the program is being run. However, it is very convenient to write an interpreted program, since a single line of code can be tested interactively.

The difference between Adobe Flex Builder and Adobe Flash Builder

Adobe Flex Builder (FB) is the product name for FB product release 1, 2, and 3 of Adobe's Rich Internet Application (RIA) client and Adobe AIR solution development tool. FB 4 is being renamed from Flex Builder to Flash Builder 4 for its initial product release in the first-half of 2010.

The Flex to Flash product name change is to better position the FB development tool product to be better positioned with Adobe's extensive family of Flash development tools and platforms.

Connecting SQL Server 2005 JDBC to JBOSS

We have seen some questions on how to connect a SQL Server in the Windows environment to  jBoss. So I wrote a little how-to that describes just that.
It turns out that it is actually very simple.
Essentially, all that’s involved with installing the driver is:
  1. Download the jdbc driver from here; http://www.microsoft.com/downloads/details.aspx?familyid=e22bc83b-32ff-4474-a44a-22b6ae2c4e17&displaylang=en#filelist  (Scroll to the bottom of the screen)
  2. You can either download the Windows or Unix version. It does not really matter which one you use. For this example I use the Windows version.
  3. Run the downloaded exe file; this will create a directory called Microsoft SQL Server 2005 JDBC Driver in the directory you downloaded the file to.
  4. Copy the file Microsoft SQL Server 2005 JDBC Driver\sqljdbc_1.0\enu\sqljdbc.jar to your $JBOSS_HOME/server/default/lib
  5. Set your data source of your application to use the driver;

   
        DATASOURCENAME
        jdbc:sqlserver://DATABASE URL;databaseName=jboss;
        com.microsoft.sqlserver.jdbc.SQLServerDriver
        DATABASE USERNAME
        DATABASE PASSWORD
  
NOTE: Substitute DATASOURCE NAME, DATABASE-URL, DATABASE USERNAME and DATABASE PASSWORD for your local values.
And that is all there is to it. jBoss now should be able to connect to the SQL Server

H-P, Microsoft To Spend $250M In Effort To Simplify IT Management

Hewlett-Packard Co. (HPQ) and Microsoft Corp. (MSFT) unveiled details of a three-year pact to spend $250 million in an effort to help simplify information-technology systems.
The tech titans say they plan to invest an additional $250 million into developing new products around the Microsoft Windows Azure platform, with the companies offering services and Microsoft continuing to invest in H-P hardware for the Azure infrastructure.
The two tech giants said they will collaborate in designing a full "stack" of data center hardware, software management tools and other applications, as well as on Windows Azure, which is Microsoft's operating platform for cloud computing, in which customers can access data center services over the Internet. 

10 Key Security Questions to Help Determine the Most Secure Platform


1. How well does it protect sensitive data?
Mainframe computers provide for complete protection of all data from unauthorized reading and writing. If you want a measurable standard of how good the security of a given computer is, you probably want to know how it scores on the Common Criteria, a set of standards supported by the International Standards Organization (ISO). They specify seven levels of security from Evaluation Assurance Level (EAL)-1 up to EAL-7. A computer system is granted an EAL certification only after rigorous independent testing. Levels EAL-1 to EAL-4 apply to commercial installations. Levels EAL-5 and higher are much more formal and are granted only after certification by the National Security Agency (NSA).
Mainframe computers with z/OS system software have been certified at EAL-4+. Mainframes with VM system software have been certified at EAL-3+. With Linux system software, mainframes have been certified at EAL-4+.
Mainframe computers are usually kept behind locked doors in a secure data center. This physical security provides a “secure zone,” and within that zone, the mainframe security software permits only authorized users to access data. Outside the security of the data center, access to data is restricted by means of encryption. Whether the data is sent over a network or shipped on a tape cartridge, encryption can prevent unauthorized data access. You’ve probably read f companies whose computer tapes containing sensitive data were stolen off delivery trucks. In cases where the data on the tapes had been encrypted, the loss was minimal.
Mainframe computer security provides several additional access control functions not commonly found on other types of computers. These include verification of tape access by means of tape labels, access control over printouts before they’re printed, and automated obliteration of data when disk data sets are erased.
Because of its large size and standardized processes, the mainframe can be said to offer more functions and more comprehensive protection of computerized data than most computing platforms.
Windows computers have received a Common Criteria rating of EAL-4+, the same as mainframes with the z/OS operating system. Unix computer ratings vary with the brand of Unix, but mainframes with Linux also have been rated EAL-4+.
Mainframes can provide more security functions than Windows or Unix, such as the tape and printout protection previously described, because of their greater processing power. Unlike mainframes, Windows and Unix systems aren’t always housed in locked data centers with strong physical security.
For any computer system you’re considering, ask how it ranks on the Common Criteria, which provides a consistent, independent evaluation of a given computer’s security. Also, ensure that your staff encrypts all sensitive data leaving your data center.

10 Reasons to Switch to Linux


1. It Doesn't Crash

Linux has been time-proven to be a reliable operating system. Although the desktop is not a new place for Linux, most Linux-based systems have been used as servers and embedded systems. High-visibility Web sites such as Google use Linux-based systems, but you also can find Linux inside the TiVo set-top box in many livingrooms.
Linux has proved to be so reliable and secure that it is commonly found in dedicated firewall and router systems used by high-profile companies to secure their networks. For more than ten years, it has not been uncommon for Linux systems to run for months or years without needing a single reboot.

2. Viruses Are Few and Far Between

Although it is possible to create a virus to target Linux systems, the design of the system itself makes it very difficult to become infected. A single user could cause local damage to his or her files by running a virus on his or her system; however, this would be an isolated instance rather than something could spread out of control.
In addition, virtually all Linux vendors offer free on-line security updates. The general philosophy of the Linux community has been to address possible security issues before they become a problem rather than hoping the susceptibility will go unnoticed.

3. Virtually Hardware-Independent

Linux was designed and written to be easily portable to different hardware. For the desktop user, this means that Linux has been and likely always will be the first operating system to take advantage of advances in hardware technology such as AMD's 64-bit processor chips.

4. Freedom of Choice

Linux offers freedom of choice as far as which manufacturer you purchase the software from as well as which application programs you wish to use. Being able to pick the manufacturer means you have a real choice as far as type of support you receive. Being open-source software, new manufacturers can enter the market to address customer needs.
Choice of application programs means that you can select the tools that best address your needs. For example, three popular word processors are available. All three are free and interoperate with Microsoft Word, but each offers unique advantages and disadvantages. The same is true of Web browsers.

5. Standards

Linux itself and many common applications follow open standards. This means an update on one system will not make other systems obsolete.

6. Applications, Applications, Applications

Each Linux distribution comes with hundreds and possibly thousands of application programs included. This alone can save you thousands of dollars for each desktop system you configure. Although this is a very small subset, consider that the OpenOffice.org office suite is included as well as the GIMP, a program similar to (and many people say more capable than Adobe Photoshop); Scribus, a document layout program similar to Quark Xpress; Evolution, an e-mail system equivalent to Microsoft's Outlook Express; and hundreds more.
For the more technically inclined, development tools, such as compilers for the C, C++, Ada, Fortran, Pascal and other languages, are included as well as Perl, PHP and Python interpreters. Editors and versioning tools also are included in this category.
Whether you are looking for Instant Messaging clients, backup tools or Web site development packages, they likely are all included within your base Linux distribution.

7. Interoperability

More and more computers are being connected to networks. No system would be complete if it did not include tools to allow it to interoperate with computers running other operating systems. Once again, Linux is very strong in this area.
Linux includes Samba, software that allows Linux to act as a client on a Microsoft Windows-based network. In fact, Samba includes server facilities such that you could run a Linux system as the server for a group of Linux and Windows-based client systems.
In addition, Linux includes software to network with Apple networks and Novell's Netware. NFS, the networking technology developed on UNIX systems also is included.

8. It's a Community Relationship, Not a Customer Relationship

Other operating systems are the products of single vendors. Linux, on the other hand, is openly developed, and this technology is shared among vendors. This means you become part of a community rather than a customer of a single manufacturer. Also, the supplier community easily can adjust to the needs of various user communities rather than spouting a "one size fits all" philosophy.
This means you can select a Linux vendor that appears to best address your needs and feel confident that you could switch vendors at a later time without losing your investment--both in terms of costs and learning.

9. It's Not How Big Your Processor Is...

Because of a combination of the internal design of Linux and development contributions from a diverse community, Linux tends to be more frugal in the use of computer resources. This may manifest itself in a single desktop system running faster with Linux than with another operating system, but the advantages go far beyond that. It is possible, for example, to configure a single Linux system to act as a terminal server and then use outdated hardware as what are called thin clients.
This server/thin client configuration makes it possible for older, less powerful hardware to share the resources of a single powerful system thus extending the life of older machines.

10. Linux Is Configurable

Linux is a true multi-user operating system. Each user can have his or her own individual configuration all on one computer. This includes the look of the desktop, what icons are displayed, what programs are started automatically when the user logs in and even what language the desktop is in.

Top Ten Errors Java Programmers Make


Whether you program regularly in Java, and know it like the back of your hand, or whether you're new to the language or a casual programmer, you'll make mistakes. It's natural, it's human, and guess what? You'll more than likely make the same mistakes that others do, over and over again. Here's my top ten list of errors that we all seem to make at one time or another,  how to spot them, and how to fix them.

10. Accessing non-static member variables from static methods (such as main)

Many programmers, particularly when first introduced to Java, have problems with accessing member variables from their main method. The method signature for main is marked static - meaning that we don't need to create an instance of the class to invoke the main method. For example, a Java Virtual Machine (JVM) could call the class MyApplication like this :-
MyApplication.main ( command_line_args );
This means, however, that there isn't an instance of MyApplication - it doesn't have any member variables to access! Take for example the following application, which will generate a compiler error message.
public class StaticDemo
{
        public String my_member_variable = "somedata";
public static void main (String args[])
        {
  // Access a non-static member from static method
                System.out.println ("This generates a compiler error" +
   my_member_variable );
        }
}
If you want to access its member variables from a non-static method (like main), you must create an instance of the object. Here's a simple example of how to correctly write code to access non-static member variables, by first creating an instance of the object.
public class NonStaticDemo
{
        public String my_member_variable = "somedata";

        public static void main (String args[])
        {
                NonStaticDemo demo = new NonStaticDemo();

  // Access member variable of demo
                System.out.println ("This WON'T generate an error" +
                        demo.my_member_variable );
        }
}

9. Mistyping the name of a method when overriding

Overriding allows programmers to replace a method's implementation with new code. Overriding is a handy feature, and most OO programmers make heavy use of it. If you use the AWT 1.1 event handling model, you'll often override listener implementations to provide custom functionality. One easy trap to fall into with overriding, is to mistype the method name. If you mistype the name, you're no longer overriding a method - you're creating an entirely new method, but with the same parameter and return type.
public class MyWindowListener extends WindowAdapter {
 // This should be WindowClosed
 public void WindowClose(WindowEvent e) {
  // Exit when user closes window
  System.exit(0);
 }
});
Compilers won't pick up on this one, and the problem can be quite frustrating to detect. In the past, I've looked at a method, believed that it was being called, and taken ages to spot the problem. The symptom of this error will be that your code isn't being called, or you think the method has skipped over its code. The only way to ever be certain is to add a println statement, to record a message in a log file, or to use good trace debugger (like Visual J++ or Borland JBuilder) and step through line by line. If your method still isn't being called, then it's likely you've mistyped the name.

8. Comparison assignment (  = rather than == )

This is an easy error to make. If you're used other languages before, such as Pascal, you'll realize just how poor a choice this was by the language's designers. In Pascal, for example, we use the := operator for assignment, and leave = for comparison. This looks like a throwback to C/C++, from which Java draws its roots.
Fortunately, even if you don't spot this one by looking at code on the screen, your compiler will. Most commonly, it will report an error message like this : "Can't convert xxx to boolean", where xxx is a Java type that you're assigning instead of comparing.

7. Comparing two objects ( == instead of .equals)

When we use the == operator, we are actually comparing two object references, to see if they point to the same object. We cannot compare, for example, two strings for equality, using the == operator. We must instead use the .equals method, which is a method inherited by all classes from java.lang.Object.
Here's the correct way to compare two strings.
String abc = "abc"; String def = "def";

// Bad way
if ( (abc + def) == "abcdef" )
{
    ......
}
// Good way
if ( (abc + def).equals("abcdef") )
{
   .....
}

6. Confusion over passing by value, and passing by reference

This can be a frustrating problem to diagnose, because when you look at the code, you might be sure that its passing by reference, but find that its actually being passed by value. Java usesboth, so you need to understand when you're passing by value, and when you're passing by reference.
When you pass a primitive data type, such as a char, int, float, or double, to a function then you are passing by value. That means that a copy of the data type is duplicated, and passed to the function. If the function chooses to modify that value, it will be modifying the copy only. Once the function finishes, and control is returned to the returning function, the "real" variable will be untouched, and no changes will have been saved. If you need to modify a primitive data type, make it a return value for a function, or wrap it inside an object.
When you pass a Java object, such as an array, a vector, or a string, to a function then you arepassing by reference. Yes - a String is actually an object, not a primitive data type.  So that means that if you pass an object to a function, you are passing a reference to it, not a duplicate. Any changes you make to the object's member variables will be permanent - which can be either good or bad, depending on whether this was what you intended.
On a side note, since String contains no methods to modify its contents, you might as well be passing by value.

5. Writing blank exception handlers

I know it's very tempting to write blank exception handlers, and to just ignore errors. But if you run into problems, and haven't written any error messages, it becomes almost impossible to find out the cause of the error. Even the simplest exception handler can be of benefit. For example, put a try { .. } catch Exception around your code, to catch ANY type of exception, and print out the message. You don't need to write a custom handler for every exception (though this is still good programming practice). Don't ever leave it blank, or you won't know what's happening.
For example
public static void main(String args[])
{
    try {
 // Your code goes here..
    }
    catch (Exception e)
    {
 System.out.println ("Err - " + e );
    }
}

4. Forgetting that Java is zero-indexed

If you've come from a C/C++ background, you may not find this quite as much a problem as those who have used other languages. In Java, arrays are zero-indexed, meaning that the first element's index is actually 0. Confused? Let's look at a quick example.
// Create an array of three strings
String[] strArray = new String[3];

// First element's index is actually 0
strArray[0] = "First string";

// Second element's index is actually 1
strArray[1] = "Second string";

// Final element's index is actually 2
strArray[2] = "Third and final string";
In this example, we have an array of three strings, but to access elements of the array we actually subtract one. Now, if we were to try and access strArray[3], we'd be accessing the fourth element. This will case an ArrayOutOfBoundsException to be thrown - the most obvious sign of forgetting the zero-indexing rule.
Other areas where zero-indexing can get you into trouble is with strings. Suppose you wanted to get a character at a particular offset within a string. Using the String.charAt(int) function you can look this information up - but under Java, the String class is also zero-indexed. That means than the first character is at offset 0, and second at offset 1. You can run into some very frustrating problems unless you are aware of this - particularly if you write applications with heavy string processing. You can be working on the wrong character, and also throw exceptions at run-time. Just like the ArrayOutOfBoundsException, there is a string equivalent. Accessing beyond the bounds of a String will cause a StringIndexOutOfBoundsException to be thrown, as demonstrated by this example.
public class StrDemo
{
 public static void main (String args[])
 {
        String abc = "abc";

        System.out.println ("Char at offset 0 : " + abc.charAt(0) );
        System.out.println ("Char at offset 1 : " + abc.charAt(1) );
        System.out.println ("Char at offset 2 : " + abc.charAt(2) );

 // This line should throw a StringIndexOutOfBoundsException
        System.out.println ("Char at offset 3 : " + abc.charAt(3) );
 }
}
Note too, that zero-indexing doesn't just apply to arrays, or to Strings. Other parts of Java are also indexed, but not always consistently. The java.util.Date, and java.util.Calendar classes start their months with 0, but days start normally with 1. This problem is demonstrated by the following application.
import java.util.Date;
import java.util.Calendar;

public class ZeroIndexedDate
{
        public static void main (String args[])
        {
                // Get today's date
                Date today = new Date();
 
  // Print return value of getMonth
  System.out.println ("Date.getMonth() returns : " +
    today.getMonth());

  // Get today's date using a Calendar
  Calendar rightNow = Calendar.getInstance();

  // Print return value of get ( Calendar.MONTH )
  System.out.println ("Calendar.get (month) returns : " +
   rightNow.get ( Calendar.MONTH ));
}
}
Zero-indexing is only a problem if you don't realize that its occurring. If you think you're running into a problem, always consult your API documentation.

3. Preventing concurrent access to shared variables by threads

When writing multi-threaded applications, many programmers (myself included) often cut corners, and leave their applications and applets vulnerable to thread conflicts. When two or more threads access the same data concurrently, there exists the possibility (and Murphy's law holding, the probability) that two threads will access or modify the same data at the same time. Don't be fooled into thinking that such problems won't occur on single-threaded processors. While accessing some data (performing a read), your thread may be suspended, and another thread scheduled. It writes its data, which is then overwritten when the first thread makes its changes.
Such problems are not just limited to multi-threaded applications or applets. If you write Java APIs, or JavaBeans, then your code may not be thread-safe. Even if you never write a single application that uses threads, people that use your code WILL. For the sanity of others, if not yourself, you should always take precautions to prevent concurrent access to shared data.
How can this problem be solved? The simplest method is to make your variables private (but you do that already,  right?) and to use synchronized accessor methods. Accessor methods allow access to private member variables, but in a controlled manner. Take the following accessor methods, which provide a safe way to change the value of a counter.
public class MyCounter
{
 private int count = 0; // count starts at zero

 public synchronized void setCount(int amount)
 { 
  count = amount;
 }
 
 public synchronized int getCount()
 {
  return count;
 }
}

2. Capitalization errors

This is one of the most frequent errors that we all make. It's so simple to do, and sometimes one can look at an uncapitalized variable or method and still not spot the problem. I myself have often been puzzled by these errors, because I recognize that the method or variable does exist, but don't spot the lack of capitalization.
While there's no silver bullet for detecting this error, you can easily train yourself to make less of them. There's a very simple trick you can learn :-
  • all methods and member variables in the Java API begin with lowercase letters
  • all methods and member variables use capitalization where a new word begins e.g - getDoubleValue()
If you use this pattern for all of your member variables and classes, and then make a conscious effort to get it right, you can gradually reduce the number of mistakes you'll make. It may take a while, but it can save some serious head scratching in the future.

(drum roll)

And the number one error that Java programmers make !!!!!


1. Null pointers!

Null pointers are one of the most common errors that Java programmers make. Compilers can't check this one for you - it will only surface at runtime, and if you don't discover it, your users certainly will.
When an attempt to access an object is made, and the reference to that object is null, a NullPointerException will be thrown. The cause of null pointers can be varied, but generally it means that either you haven't initialized an object, or you haven't checked the return value of a function.
Many functions return null to indicate an error condition - but unless you check your return values, you'll never know what's happening. Since the cause is an error condition, normal testing may not pick it up - which means that your users will end up discovering the problem for you. If the API function indicates that null may be returned, be sure to check this before using the object reference!
Another cause is where your initialization has been sloppy, or where it is conditional. For example, examine the following code, and see if you can spot the problem.
public static void main(String args[])
{
 // Accept up to 3 parameters
 String[] list = new String[3];

 int index = 0;

 while ( (index < args.length) && ( index < 3 ) )
 {
  list[index++] = args[index];
 }

 // Check all the parameters 
 for (int i = 0; i < list.length; i++)
 {
  if (list[i].equals "-help")
  {
   // .........
  }
  else
  if (list[i].equals "-cp")
  {
   // .........
  }
  // else .....
 } 
}
This code (while a contrived example), shows a common mistake. Under some circumstances, where the user enters three or more parameters, the code will run fine. If no parameters are entered, you'll get a NullPointerException at runtime. Sometimes your variables (the array of strings) will be initialized, and other times they won't. One easy solution is to check BEFORE you attempt to access a variable in an array that it is not equal to null.

Summary

These errors represent but some of the many that we all make. Though it is impossible to completely eliminate errors from the coding process, with care and practice you can avoid repeating the same ones. Rest assured, however, that all Java programmers encounter the same sorts of problems. It's comforting to know, that while you work late into the night tracking down an error, someone, somewhere, sometime, will make the same mistake!

How to Create a Easy Jquery Auto Image Rotator

Hi Friends here is a simple way of creating a Jquery Image Rotator.Before showing you how to create it lets see some basic functionalities of the Image Rotator Properties and Associated Parameters.
Usage:

jQuery(imgElement).rotate(angleValue)
jQuery(imgElement).rotate(parameters)
jQuery(imgElement).rotateAnimation(parameters)
jQuery(imgElement).rotateAnimation(parameters)


Returns:
jQueryRotateElement - !!! NOTICE !!! function return rotateElement instance to help connect events with actually created 'rotation' element.

Parameters:

  • ({angle:angleValue,
  • [animateAngle:animateAngleValue],
  • [maxAngle:maxAngleValue],
  • [minAngle:minAngleValue],
  • [callback:callbackFunction],
  • [bind:[{event: function},{event:function} ] })




Use a $document.ready() function to load the JQuery Cycle rotator effects
$(document).ready(function()
{
$('#image').rotate(-25);
});



Some Other Useful Examples:

$(document).ready(function()
{
var rot=$('#image3').rotate({maxAngle:50,minAngle:-55,
bind:
[
{"mouseover":function(){rot[0].rotateAnimation(50);}},
{"mouseout":function(){rot[0].rotateAnimation(-50);}}
]
});
});


Example 2:

$(document).ready(function()
{
$('#image2').rotate({angle:5});
});


How to Load Content from text file to Browser Using JQuery

In this Tutorial we will show you how to Display the text data which is there in some text file say (mytext.txt) in the Browser on click of the button.
 Step 1: Create a text file with name as mytext.txt
 Step 2:Copy the below content in the text file
            Hi!!! Welcome to the World of JQuery Programming!!
   How do you Feel about JQuery?
   Seems to be working Great right!!?
   Keep Going!!!
Step 3: Create a HTML page say loadcontent.html and copy the below code in that file
         LoadContent Example Using Jquery                                              


<html >
<head>
<title>LoadContent Example Using Jquery</title>
<script type="text/javascript" src="jquery-1.2.6.js"></script>
<script type="text/javascript">
function Displaycontent()
{
$.ajax({
url : "textContent.php",
success : function (data) {
$("#contentArea").html(data);
}
});
}
</script>

</head>
<body>
<table width="100%" >
<tr><td> </td><td> </td></tr>
<tr><td> </td><td> </td></tr>
<tr><td width="20%" > </td><td style="color:Yellow;"

width="60%">
 see How Jquery Works</td></tr>
<tr><td> </td><td ><input type="button" value="Load Content"

onClick="
Displaycontent();"> <span

style="color:Yellow;"></span></td></tr>
<tr><td> </td><td>
<textarea id="contentArea" rows="6" cols="100"></textarea>
</td>
</tr>
</table>
</body>
</html>


Explanation:
Code Part 1:
function Displaycontent()
{
$.ajax({
url : "textContent.php",
success : function (data) {
$("#contentArea").html(data);
}
});
}
This Part of JQuery code retrives the Data from the Server and displays it in the text area
The Remaining part of the code deals with the creation of table and text area which is related to HTML concepts so i am not explaining those things here.

Hello World Using JQuery Selector

In This Example we will Show you how to Display a alert when a link is clicked

Hello World Alert Using JQuery                                           
<html>                                                           
 <head>

 <title>Hello World Alert Using JQuery</title>

 <script type="text/javascript" src="jquery-1.2.6.min.js"></script>  

 <script type="text/javascript">

 $(document).ready(function(){

 $("a").click(function()

 {

 alert("Hello world! you have called me");

 });

});                             
 </script>                                                              
 </head>                                                                
 <body>   
 <a href=””>Click Me for Saying Hello</a>

  </body>                                                                
 </html>


Explanation:
 Code Part1 :
 The Above piece of code tells the browser to load the JQuery library which is located in the Folder you have created
 Code Part 2:
 $(document).ready(function(){
 $("a").click(function()
 {
 alert("Hello world! you have called me");
 });
});
---Here We register a ready event for the document ie we will perform the things whenever the DOM(document object model ) is Ready.
---$() is a JQuery Object
---$(“a”) is jQuery selector tool or method, which selects all “a”  elements
---The click() function we call next is a method of the jQuery object.

Hello World Using JQuery

Lets Start with a Simple Example as usual always the "Hello World"..
   Ok, let get start to create a JQuery Hello World
1.Create a Simple HTML Page say MyfirstJqueryProgram.html like below and place it in the folder
where you have placed jquery-1.2.6.min.js file
<html>                                                   
<head>
<title>My First JQuery Program</title>
<script type="text/javascript" src="jquery-1.2.6.min.js"></script>       
<script type="text/javascript"> 
$(document).ready(function(){
$("#myprogram").html("This is my first Jquery Program saying Hello World");
});                                   
</script>                                                              
</head>                                                                
<body>                                                                 
Hi Welcome !!!
<div id="myprogram">
</div>
</body>                                                                
</html>

 Explanation:
 code Part 1 :  
 The Above piece of code tells the browser to load the JQuery library which is located in the Folder you have created

 Code Part 2:
 $(document).ready(function(){
 $("#myprogram").html("This is my first Jquery Program saying Hello World");
});

Here we are registering a ready event ie whenever the DOM is Ready
$() is a JQuery syntax called jQuery selector

Downloading and Installing Jquery

2. Downloading and Installing Jquery

2.1 Downloading Jquery:
In this section we will download and install jQuery for developing our demo application. 
you can download the latest version of jQuery from its official site http://jquery.com/
After Downloading Jquery Follow the Below Steps for Installing Jquery.

2.2     Installing Jquery
         jQuery comes as single js file. So, its very easy to download and install jQuery in any web application. You can even add it to your existing application and use jQuery functions. Due to this simplicity programmers are using jQuery for adding Ajax capabilities into their web applications.

 download jquery-1.2.6.min.js and add into js directory of your application. You can rename it to jquery-1.2.6.js.You are now all set and ready to add the jQuery support into your web application.In the next section we will show you how you can develop your first Ajax jQuery application that shows the current server time.

Introduction to jQuery-Part 1

1.1 About Jquery                                                                           
JQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development.
 jQuery is an exceptionally clever piece of engineering. It neatly encapsulates an extraordinary range of common functionality, and provides a clever plugin API for any functionality not included by default.
 Using JQuery makes the code light weight and executes faster at the client side. JQuery separates the "behavior" characteristics from the HTML structure

1.2 Why Jquery?
     Unlike most other JavaScript libraries, jQuery works in a different manner. What sets it apart is something known as “Chainablity”. This is somewhat related and like object oriented programming. For one, jQuery generated code is less heavier or smaller than prototypes. Unlike jQuery, which uses OO concepts, prototype – as a JavaScript library, only encourages them. Even if you have used other JavaScript libraries, I, as web developer would definitely suggest you guys at least trying out jQuery. Its simple, short and sweet  and Its powerful, light and fun!
Google, Yahoo, Dell, Bank Of America, also have adopted and used jQuery for developing and deploying their website or website based products

1.3 Where can you get jQuery and other JavaScript libraries?
     jQuery is free and is available at http://jquery.com/. Its small ~15kb and you can find a lot of tutorials and discussions too.

1.4 Features of Jquery
DOM element selections using the cross-browser open source selector engine
jQuery owns a strong and very flexible mechanism for adding in methods and functionality,bundled as plugins
CSS manipulation
Effects and animations
Ajax
Extensibility through plugins
Utilities - such as browser version and the each function.

1.5 jQuery Advantages
jQuery supports CSS 1-3 and basic XPath.
jQuery is about 19kb in size.
jQuery works in Firefox 1.0+, Internet Explorer 5.5+, Safari 1.3+, and Opera 8.5+.
jQuery and Prototype can be used together!