Java Programming Tutorials and Compilations

Java Guides, Tutorials, Web Resources, and E-books Compilation


What is Java?

Wikipedia:
Java is a programming language originally developed by James Gosling at Sun Microsystems (which is now a subsidiary of Oracle Corporation) and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities. Java applications are typically compiled to bytecode (class file) that can run on any Java Virtual Machine (JVM) regardless of computer architecture. Java is general-purpose, concurrent, class-based, and object-oriented, and is specifically designed to have as few implementation dependencies as possible. It is intended to let application developers "write once, run anywhere". Java is considered by many as one of the most influential programming languages of the 20th century, and widely used from application software to web application.

Official Website:
http://www.java.com/en/


Code:
Java Lessons and Resources:
Java IRC Bot
Introduction to Programming Using Java
Java Programming Resources
Java Programming FAQs and Tutorials
Java Programming Examples
Java Programming Notes
Getting started with Java
Beginner Java Tutorial
Java Programming Style Guidelines
Java - Programmer's Heaven
Sockets programming in Java
Java Programming ... From the Grounds Up
Intro to JavaFX - Dummy Chess 
Programming 2D Games in J2ME 
Generics in Java – Part I 
An Introduction to Java GUI Programming 
Executing commands on a remote machine - Part 1
4 Simple Rules for Effective Bug-free Concurrent Programming 
How to Write Small and Useful Programs
Java Chat With Customizable GUI
Tracing in Java applications 
Quick Mail using Java Mail API 
Using Sockets in Java - Server 
Tab Control in Java ( in AWT)


Code:
Useful Website Links:
http://www.codeproject.com/KB/java/
www.info4java.com/
http://www.beginner-java-tutorial.com/
http://www.javapassion.com/javaintro/
http://www.webpelican.com/internet-programming-1/
http://home.cogeco.ca/~ve3ll/jatutor0.htm
[http://java.sun.com/new2java/index.jsp
http://www.cafeaulait.org/
http://java.sun.com/developer/onlineTraining/JavaIntro/
http://java.sun.com/developer/online...va1/index.html
http://java.sun.com/developer/online...ng/BasicJava2/
http://www.extropia.com/tutorials/java/toc.html
http://java.sun.com/docs/books/tutorial/
http://www.cafeaulait.org/javatutorial.html
http://www.javacoffeebreak.com/tutorials/index.html
http://www.cs.cmu.edu/~jch/java/optimization.html
http://www.apl.jhu.edu/~hall/java/Sw...-Printing.html
http://www.javacoffeebreak.com/java101/java101.html
http://java.sun.com/developer/techni...ases/1.4regex/
http://www.vijaymukhi.com/vmis/java.html
http://java.sun.com/docs/books/tutorial/deployment/jar/
http://www.woodger.ca/jv_top.htm
http://www.webdeveloper.com/java/jav...rounds_up.html
http://javaboutique.internet.com/
http://www.mandomartis.com/onlinecourses/courses.html
http://java.sun.com/developer/online...ons/index.html
http://www.cs.drexel.edu/~shartley/C...ava/index.html
http://www.artima.com/designtechniqu...alization.html
http://www.apl.jhu.edu/~hall/java/Java2D-Tutorial.html
http://java.sun.com/developer/online.../abstract.html
http://www.javaworld.com/javaworld/j...2-sockets.html
http://www.acm.org/crossroads/xrds4-2/serial.html
http://java.sun.com/developer/online...mming/JDCBook/
http://www.apl.jhu.edu/~hall/java/CGI-with-Java.html
http://java.sun.com/developer/online...ail/index.html
http://java.sun.com/developer/onlineTraining/rmi/
http://www.onjava.com/pub/a/onjava/e...ch2/index.html
http://netbeans.org/kb/articles/learn-java.html
http://java.sun.com/docs/books/tutorial/java/index.html
www.freejavaguide.com/


Code:
Java Programming E-books: (Direct Download):
Mastering Enterprise JavaBeans Third Edition

Java Programming Guide

Java™ Coding Style Guide

Introduction to Programming Using Java

Intro to Java Programming

1000 Java Tips!

All About Xperia ZL

Since wala pang Thread exclusive for Xperia ZL here at symbianize, I wanted to post a mini review of the Xperia ZL and I also want to hear the experience of other users.

First, in terms of Display:
On my standards, Mobile Bravia Engine 2 really did a great job in enhancing the phone's display. Though, there is a slight prob in terms of viewing it on an angle, nawawash out ung display as compared to other smartphones out there (not a big deal naman kasi no one uses their phone on an angular view).

In terms of Battery Life:
Would last at least 24 hours with below usage
2hours walkman app usage 
2.5 hours gaming - Real Football 2k13 HD
3-4 hours wifi usage
minimal usage on text and call

On Camera:
Low light conditions are good (LED Flash use)
HDR mode on normal lighting conditions simply stunning.
(will try to upload sample pics)
Front Camera is good on normal lighting conditions

On Sound Quality:
Better control of sound preference through the Walkman App's Equalizer.
You have the option to select ClearAudio+ which works great for me.

On Album App:
Great effects compared to other Android Phone's simple gallery.

On Facebook integration:
Same as before on older Xperia devices but lacking Sony's Timescape, replaced by Socialife App.

On Gaming:
The Quad-core 1.5 GHz Krait processor and Adreno 320 GPU handles HD games with ease, no lags experienced yet. GTAIII, Real Racing 3 and Real Football 2k13

On Built:
5inch display really maximized the phone's form factor size (5.18 x 2.73 x 0.39 in) with minimal bezel as much as possible


Sony Xperia ZL






images and specs c/o GSMArena

How To Make Money Online - Staying FROM HOME

Friends, Here I am going to talk about how you can make money online. What all things you can do to earn WORKING FROM HOME. I am going to list area and some of good websites where you can earn quite a good money online.
# REVIEW WRITING:
If you are good in writing reviews, I know some good site where you can earn money writing reviews. One of them is Ciao, that you know very well... so no need to explain in detail. Other sites are Review Stream, Product Review, Shared Reviews & Epinions. On all these mentioned site you can earn writing review on all your favorite and known products.

# DOING DISCUSSIONS:
There are many good site which really pays doing discussions. I know only two of them. They are MyLot, & Ximmy. On these site you just have to start new discussion on any topic you think or interested in. You can ask any kind of questions also... and next thing is - other member reply to your post and again if you think, you again answer to your reply.. this things goes on and on and by doing this thing you earn.
Here you again can earn inviting your friends.. and your earning will also increase if any of your friend posting any discussion or replying to any post.

# PTCs (Pay To Click Sites):
Name it self tells us about how one can earn money. PTC sites are those sites - where they pay money clicking on Ads on their site & display those ads for 15-30 seconds. Per viewing one ad they will pay
some nominal money and also if you invite other then also you will earn. It is actually a good business if you are making lots of referrals.
# GOOGLE ADSENSE:
If you have your own site / blogs, you can subscribe to this Google Adsense and start earning money. In this google will display their ads on your website and is some one is clicking on those ads you will get money. If you are attracting lots of people and if traffic on your site is good.. you can earn lots of money from this. I had earned some money using it.

# SELLING BLOGS:
You can sell your blogs - and also earn good money. I know one site called Sponsored Reviews where you can sell your BLOGS in your mentioned money.. you have to specify money to sell your blogs.
# SEARCH & EARN:
You can earn by just using searching engine. I know two site where they provide some search engine, and if you use their search engine to search on net, they will give money to you. Two sites I know are Home Pages Friends & other is Scour. So start using this search engines and start earning.

# JOB POSTING:
Here you just have to post some jobs on some sites and they will pay you some good money for this job. It is a very simple job. One site I know is, Work From Home HQ.
# HELPING STUDENTS:
Some of the site were you just help students to complete their assignments. After completing assignment they will pay you some specified money.

# DOING SURVEY:
Many good sites are available which pays good money after completing survey. I didn't try doing this kind of job but I would like to. I have searched for many good site but didn't find any. Some of them I know Dollar Surveys, Global Test Market, Planet Pulse, Ciao Survey, & Technology Board.
# SUBMITTING PAPER ON ANY TOPIC:
You can again earn submitting paper on any topic you like. You just have to publish once and you will be payed your entire life. Some sites I know are, Associate Content, & Academon.

# SUBMITTING PHOTOS:
There are some good site from where you can earn selling your snaps. I know one its name is - Dreamstime. Nice site.
There might be some good source of site and method and idea from where you can earn money from Home online.. but these all are what I am familiar with.

Odesk Tutorials and FAQs (Earn Money Easily)


oDesk Log-in Page




Registration Form


Questions and Answers for oDesk Readiness Test

Q: Can I start my own company on oDesk?
A: Yes! oDesk allows you to build and manage a team of workers, colleagues and collaborators.
You can even subcontract other workers on oDesk to other customers oDesk (and take a cut).


Q: Which of the following actions are NOT allowed when applying to job openings?
A: All of the above

Q: ‘How does feedback work on oDesk?’
A: All of the above

Q: Which of the following is true of your oDesk timelog?
A: All of the above

Q: Which of the following break the oDesk user agreement?
A: All of the above

Q: Which of the following statements about the oDesk Team application are true?
A: All of the above

Q: What do you need to do to ensure guaranteed payment on hourly jobs?
A: All of the above

Q: If you have not done so please download and install the oDesk Team application. 
With the client running right click on the oDesk Team icon in the system tray (or doc for Mac users). 
Which of the following options is listed first? 
A: TeamRoom..

Q: Which of the following statements are correct about oDesk fees?
A: All of the above

Q: Buyers set weekly limits on hourly assignments, how do these work?
A: All of the above

Q: How does oDesk’s dispute resolution policy for work?
A: All of the above




oDesk Skills Tests

oDesk offers hundreds of free skill tests to help you prove your skills to perspective employers. 
Passing tests is also a way for new contractors to raise their job application quotas. 
Try to take the test for every skill you listed in your profile and any others that sound relevant. 
If you don't like your score, you can hide it and retake the test again in 30 days. 
Generally, you should only make your most impressive test scores public.


A lot of people come to online sources because it's easy and convenient - but that doesn't mean that they want to completely give up the personal experience as well. Your profile is what will introduce you as a person as well as an applicant to the people reviewing your cover letter. Make it count.

Overview - One of the most important parts of your profile is your overview. It should introduce you to the client and establish your objective. Use this to set you apart from other contractors. "I write fast and can get the job done quickly." So what! Chances are, 90%-95% of the other applicants can, too. So how are you any different? "I want to be the best provider to my clients." Again, so what!? This doesn't help you at all because everyone else says the same thing. Not to mention - it should be a given that you want to provide the best service. Your overview should answer the question "why you should hire me over the other guy" ... If it doesn't answer that question, it's not a good overview.

Picture - After all, they speak a thousand words, right? It's not a requirement to have a picture, but it does help. Make sure you follow oDesk's identity policy when choosing a picture to post - but in general, any picture of you with a smile on your face will do wonders for you. People like to put a face to a font... So give them one.

Hourly Rate - I hate to say it, but there are a lot of clients that will look at your hourly rate. I am not talking about whatever rate you bid on a project, but the rate that is displayed on your profile. This rate should reflect the level and quality of work that you provide and should be a fair reflection of a going rate for the field / category you are interested in working for. Is there a difference? Of course! Can you expect to get paid the same amount of money for site scraping as you can for writing articles? Probably not unless you are the best darn web scraper in the world (and can back it up!). If you're not sure what to set your rate at, look through at other providers, or go through the oConomy pages, figure out how much you would be paid for the exact same job at an office, or do a search to see if you can find out what the average going rate is for that field and adjust that average to reflect your experience level.





Resume - Also important because your resume houses all of your skills. Are you a web designer? Great! Then post your CSS, PHP, Javascript, Drupal, Joomla!, and Wordpress skills! A lot of clients search for providers based on these skills - how will they find you if you don't have them listed anywhere on your profile? And your resume is the perfect place to showcase these skills because it allows you to also place a brief description of how you have used this skill in the past and display how long you have been using it.

Sample Resume



Build a Portfolio - This may be easier for some than others... But a portfolio is a great way to display your work. If you build web sites - place some links in there to web sites that you've built. If you're an artist, then throw together some logos and interface designs and place them up there. Writer? Post a link to your blog... Anything that will show examples of your work without violating any terms of service is good. Also important, once it's up - keep it updated. Check the links to those web sites to make sure they're still working and place up new examples of your work as you complete them.

Be Honest - If your English isn't a 5.0 - then don't rate it at 5.0... Clients will be able to figure it out and you will look like a liar. If you can't be honest about something like how fluent you are in English, why should anyone believe that you're being honest about anything else?

Bid often and bid reasonably. Earlier I spoke about the hourly rate that is posted on your profile - now I'm talking about the hourly rate or fixed price rate that you enter onto the little application form that will accompany your cover letter. This bid can be different from what's posted on your profile - but it should still be reasonable. What do I mean by reasonable?

* Make sure it is worth your time
* Make sure it will cover your expenses (such as cost to withdraw)
* If it is fixed price, make sure it reflects the amount of time you will be working on that project

Remember, it looks bad if your hourly rate on your profile says that you charge $10 per hour if you then bid on a project at $1 per hour... And you shouldn't let a client's budget dictate the level and quality of professionalism that you can provide.

And bid often! I still continue to fill out my quota of 20 applications per week. If a client is not responding to my application after a couple of weeks, I withdraw that application so I can apply to another job. The only time I slow down on my bidding is if I am beginning to get overloaded with projects. Don't send out just 2-3 applications and then get disheartened that neither one has accepted you yet.

This doesn't mean sit down and apply to 20 jobs all in one day - spread them out. I read through just about every hourly job posted (I always filter out the fixed price jobs), but I probably apply to only 4-5 jobs every day, if that many. Be discerning - if the job isn't worth your time, wait a couple more hours and see what new jobs have been posted. It won't do you any good to apply to a job that you're only semi-interested in only to find a great job that you would love to work on but can't apply because you've reached your limit already.


Browse Jobs by Category



Preview of list of available jobs for Data Entry





Job Application Quota
oDesk sets a limit, known as a quota, on the number of job applications you can submit. Remember that the quota is the maximum number of jobs you can apply to, not a requirement that you must fulfill.



How can I increase my quota? 
Once you become oDesk Ready, your quota is earned based on the number of tests you've taken (for new contractors) or your feedback score (once you have one). 
- If you do not yet have a feedback score, take more tests to increase your quota. 
- If you have a feedback score, the only way to increase your quota is to increase your score. 

Which job applications count against my quota? 
- Active, contractor-initiated application that are 7 days old (or less) count against your quota. 
- Applications that are inactive, employer-initiated or more than 7 days old do not count against your quota. 

When does my quota refresh? 
- Your job applications, tests and feedback are evaluated twice per day to calculate your available quota. This means it can take up to 12 hours for your quota to refresh after a job application is withdrawn, rejected or aged out of your quota. 
- For new users who take tests to increase their quota, the same refresh cycle applies. It can take up to 12 hours after passing tests for your quota to increase to the next level. The only exception is the oDesk Readiness Test. Passing this test will immediately raise your quota to the applicable oDesk Ready level.


Preview of the Job Application Form




This is where you can check the list of Job Applications you have sent.
Here you will also see your Active Candidacies and Invitations for Interview.


Once your profile is set, then it's time to sell yourself to the clients. And by sell yourself, I don't mean pay them for the privilege of working for them. I mean convince them that they should hire you and pay you what you want. So, how do you do this? Cover Letters. Write a cover letter that proves you know what you're talking about, proves that you've read the job description and explains your costs and terms. And for goodness sake - don't send the same cover letter to each and every job posting. 
The clients always know. You aren't fooling anyone - so just stop.

Never beg for a job... It makes you look desperate, not professional. Never lower your hourly rate to a ridiculous amount in hopes of landing a job (or worse, offering to work for free). Again, it makes you look desperate and gives the impression that you don't deserve whatever amount you have posted on your profile.


Sample of my Cover Letters 








Basic Guidelines About What to Include (and what not to)

- Don't include your contact information in your cover letter (your email address, chat ID, etc.). This is a violation of oDesk policy and makes you an easy target for an unscrupulous employer. When you are invited to an interview, then you are free to share whatever contact info you wish. 

- Don't start with a "To Whom It May Concern" or "Dear Sir" greeting. Neither adds any value and they may even offend some employers. If you do include a greeting, find a gender-neutral way to say hello, say "Dear Hiring Manager" or use the employer's name (if they've mentioned it). 

- Don't copy and paste the same cover letter over and over again, even if you 'fill in the blanks' with specifics for the job at hand. Just as you can tell when an employer posts a template job description, an employer can tell you're using a form cover letter. If you don't put in the effort to write a custom letter, they are unlikely to take the time to interview you. 

- Do try to use the same keywords the employer did. This shows you were paying attention to their job post. 

- Do answer specific questions or include special keywords the employer put in the job description to prove you can follow directions. That is, unless the employer is asking for your contact info or otherwise violating oDesk policy - in that case you should flag the job as inappropriate.

- Do link directly to some relevant examples of your work whenever possible. Make sure you've added them in your portfolio as well. 

- Do state your availability (when and how much you can work) and explain what kind of commitments you have to any other oDesk contracts, regular employers, etc.


Structured Computer Organization


Assembly Language Level:



Assembler - creates object codes by translating assembly instruction mnemonics into opcodes, and by resolving symbolic names for memory locations and other entities. Like to generate common short sequences of instructions.



Loader - is the part of an operating system that is responsible for loading programs. Like runtime objects.



High-level language - is a programming language with strong abstraction from the details of the computer. There are three models of execution for modern high-level languages: Interpreted, Compiled, and Translated.



Low-level language - is a programming language that provides little or no abstraction from a computer's instruction set architecture.  


Operating System Level:


Operating System - is a set of programs that manage computer hardware resources and provide common services for application software. The most important program that runs on a computer. Every general-purpose computer must have an operating system to run other programs.



Windows - is a series of software operating systems and graphical user interfaces produced by Microsoft.



Race - A race condition occurs when two threads access a shared variable at the same time. The first thread reads the variable, and the second thread reads the same value from the variable. Then the first thread and second thread perform their operations on the value, and they race to see which thread can write the value last to the shared variable. The value of the thread that writes its value last is preserved, because the thread is writing over the value that the previous thread wrote.

ISA Level:


 
Mouse -  is a pointing device that functions by detecting two-dimensional motion relative to its supporting surface.



Trap - is typically a type of synchronous interrupt typically caused by an exceptional condition (e.g., breakpoint, division by zero, invalid memory access). A trap usually results in a switch to kernel mode, wherein the operating system performs some action before returning control to the originating process. A trap in a system process is more serious than a trap in a user process, and in some systems is fatal. In some usages, the term trap refers specifically to an interrupt intended to initiate a context switch to a monitor program or debugger. 



Embedded Computers - also known as industrial computers, are rugged programmable platforms designed for industrial or heavy-duty applications. Computer system that is part of a larger systemand performs only peripheral functions (such as guidance or security) but no data processingfunction.



Pentium 4 - was a line of single-core desktop and laptop central processing units (CPUs), introduced by Intel.

 Microarchitecture Level:

Interpreter - An interpreter translates high-level instructions into an intermediate form, which it then executes.



Adder - Although adders can be constructed for many numerical representations, such as binary-coded decimal or excess-3, the most common adders operate on binary numbers. In cases where two's complement or ones' complement is being used to represent negative numbers, it is trivial to modify an adder into an adder–subtractor. Other signed number representations require a more complex adder. 

Digital Logic Level: 


Dynamic RAM - is a type of random-access memory that stores each bit of data in a separate capacitor within an integrated circuit.



Static RAM - is a type of semiconductor memory where the word static indicates that, unlike dynamic RAM (DRAM), it does not need to be periodically refreshed, as SRAM uses bistable latching circuitry to store each bit.



Flip Flop - is a circuit that has two stable states and can be used to store state information. The circuit can be made to change state by signals applied to one or more control inputs and will have one or two outputs. It is the basic storage element in sequential logic. Flip-flops and latches are a fundamental building block of digital electronics systems used in computers, communications, and many other types of systems.

 
                                               Outside of Computer Architecture:


Blue Gene - is a computer architecture project to produce several supercomputers, designed to reach operating speeds in the PFLOPS (petaFLOPS) range, and currently reaching sustained speeds of nearly 500 TFLOPS (teraFLOPS)



Media Processor - is a microprocessor-based system-on-a-chip which is designed to deal with digital streaming data in real-time (e.g. display refresh) rates. These devices can also be considered a class of digital signal processors (DSPs).



PCI express - is a computer expansion card standard designed to replace the older PCI, PCI-X, and AGP bus standards. PCI Express is used in consumer, server, and industrial applications, as a motherboard-level interconnect (to link motherboard-mounted peripherals), a passive backplane interconnect and as an expansion card interface for add-in boards.



Cache - is a component that transparently stores data so that future requests for that data can be served faster. The data that is stored within a cache might be values that have been computed earlier or duplicates of original values that are stored elsewhere.



Pipeline - is a set of data processing elements connected in series, so that the output of one element is the input of the next one. The elements of a pipeline are often executed in parallel or in time-sliced fashion; in that case, some amount of buffer storage is often inserted between elements.



Gate - is an idealized or physical device implementing a Boolean function, that is, it performs a logical operation on one or more logic inputs and produces a single logic output.



Branch Prediction - is a strategy in computer architecture design for mitigating the costs usually associated with conditional branches, particularly branches to short sections of code. It does this by allowing each instruction to conditionally either perform an operation or do nothing.



Ultra SPARC - is a four-issue superscalar microprocessor that executes instructions in in-order. It has a nine-stage integer pipeline.



Parallel Processing - The simultaneous use of more than one CPU or processor core to execute a program or multiple computational threads.