Monday, January 14, 2013

Open Source Charting & Reporting Tools in Java



JFreeChart

JFreeChart is a free Java class library for generating charts, including:

 * pie charts (2D and 3D)
 * bar charts (regular and stacked, with an optional 3D effect)
 * line and area charts
 * scatter plots and bubble charts
 * time series, high/low/open/close charts and candle stick charts
 * combination charts
 * Pareto charts
 * Gantt charts
 * wind plots, meter charts and symbol charts
 * wafer map charts

JCCKit

The Java Chart Constuction Kit (JCCKit) is a small (< 100Kb) Java library and a very flexible framework for creating scientific charts and plots.

BIRT

BIRT is an Eclipse-based open source reporting system for web applications, especially those based on Java and J2EE. BIRT has two main components: a report designer based on Eclipse, and a runtime component that you can add to your app server. BIRT also offers a charting engine that lets you add charts to your own application.

jCharts

jCharts is a 100% Java based charting utility that outputs a variety of charts. This package has been designed from the ground up by volunteers for displaying charts via Servlets, JSP's, and Swing apps.

Cewolf

Cewolf can be used inside a Servlet/JSP based web application to embed complex graphical charts of all kinds (e.g. line, pie, bar chart, plots, etc.) into a web page. Therefore it provides a full featured tag library to define all properties of the chart (colors, strokes, legend, etc.). Thus the JSP which embedds the chart is not polluted with any java code. Everything is described with XML conform tags.

iReport

iReport is a visual reporting tool based on JasperReports written in 100% pure java. You can manage charts, images, subreports,... Data can be retrived using JDBC, TableModels, JavaBeans, XML,...It supports output in PDF,XML,XLS,CSV,HTML,Java2D,...

DocumentBurster

DocumentBurster takes as input PDF reports and bursts them based on meta-data. Generated documents can be delivered on a variety of destinations like email, ftp, fax, archive and many more. Features:

 * It is portable as it works on all versions of Windows and most of the UNIX systems.
 * It is working by reading meta-data which is easily included in the document to indicate the splitting and delivery methods to be used.
 * It has out of the box delivery targets as email, ftp, fax, archive and many more. Email is referring to any SMTP compatible server including gmail and yahoo.
 * It is easy to define your own custom delivery targets with the help of a plug-in architecture. This will handle the delivery of reports to any target that can be imagined.
 * Scheduling. It is easy to define simple or complex schedules for bursting.
 * It has command line support so it is easy to automate the bursting of reports.

JChart2d

A Java swing widget (JComponent) for precise runtime-dynamic display of tupels in form of a stripe chart. Intended for engineering task where precision is more important than a huge variety of different beautiful presentations. Key features are a minimal configuration effort, automatic scaling and labeling, thread-safeness, a clean and extendible API and extensive documentation.

SWTJasperViewer

SWTJasperViewer is a JasperReports viewer component for SWT/JFace based applications and Eclipse plug-ins. The component is designed with reusability in mind so it can suit as many projects as possible. SWTJasperViewer is developed as part of the JasperAssistant report designer where it's used for report preview.

JasperReports

JasperReports is a powerful open source Java reporting tool that has the ability to deliver rich content onto the screen, to the printer or into PDF, HTML, XLS, CSV and XML files. It is entirely written in Java and can be used in a variety of Java enabled applications, including J2EE or Web applications, to generate dynamic content. Its main purpose is to help creating page oriented, ready to print documents in a simple and flexible manner.

JOpenChart

OpenChart is an open source Java library and toolkit for creating different kinds of charts and embedding them into web applications or Swing applications.

Chart2D

Chart2D is a library written in Java for adding 2D charts to Java programs

JFreeReport

JFreeReport is a free Java report library. It has the following features:

 * full on-screen print preview
 * data obtained via Swing's TableModel interface (making it easy to print data directly from your application)
 * XML-based report definitions
 * output to the screen, printer or various export formats (PDF, HTML, CSV, Excel, plain text)
 * support for servlets (uses the JFreeReport extensions)

Datavision

DataVision is an Open Source reporting tool similar to Crystal Reports. Reports can be designed using a drag-and-drop GUI. They may be run, viewed, and printed from the application or exported as HTML, XML, PDF, LaTeX2e, DocBook, or tab- or comma-delimited text files. The output files produced by LaTeX2e and DocBook can in turn be used to produce PDF, text, HTML, PostScript, and more.

ART

ART is a lightweight, multiplatform web based query tool and reporting environment. Easy customizable, support graphs, export resultset in various formats via plug-ins.

Open Reports

OpenReports is a flexible open source web reporting solution that allows users to generate dynamic reports in a browser. OpenReports uses JasperReports, an excellent full featured open source reporting engine, and was developed using leading open source components including WebWork, Velocity, Quartz, and Hibernate.

Pentaho - Business Intelligence

Enterprise-class Business Intelligence (BI) - including reporting, analysis, dashboards, data mining and workflow. Inlcudes Eclipse BIRT, JasperReports, Mondrian, JPivot, scheduling, web services, busienss rules. Released under the Pentaho Public License

JMagallanes

JMagallanes is an open source end user application for Olap and Dynamic Reports written in Java/J2EE. Combines static reports, pivot table and charts. It reads from SQL and other data sources.

FreeReportBuilder

FreeReportBuilder is an application to create a simple report quickly. Features of FreeReportBuilder:

 * FreeReportBuilder can work with any database that has a JDBC driver.
 * Include FreeQueryBuilder to create SQL queries without directly writing SQL.
 * Frb create graphs from the report because include JFreeChart .
 * JDBC administrator.
 * Load, save report in xml format.
 * Drag&Drop of any component.
 * Single-multi-selection of the component.
 * You can add images.
 * Headers and footers, group headers and footers.
 * On label, column, text you can change: color, font, etc.
 * Nested Report (report in report).
 * You can insert "Retrieval arguments" for to run a same report with different parameters on the WHERE clause.
 * Print/Save the results of report.

OpenReports

OpenReports is a flexible open source web reporting solution that allows users to generate dynamic reports in a browser. OpenReports uses JasperReports, an excellent full featured open source reporting engine, and was developed using leading open source components including WebWork, Velocity, Quartz, and Hibernate.

OpenI

OpenI is a simple web application that does out-of-box OLAP reporting. Its a J2EE web application to build and publish interactive reports from OLAP data sources. It uses JPivot, Mondrian, R Project, JFreeChart and JasperReports

JGraphT

JGraphT is a free Java graph library that provides mathematical graph-theory objects and algorithms. JGraphT supports various types of graphs including:

 * directed and undirected graphs.
 * graphs with weighted / unweighted / labeled or any user-defined edges.
 * various edge multiplicity options, including: simple-graphs, multigraphs, pseudographs.
 * unmodifiable graphs - allow modules to provide "read-only" access to internal graphs.
 * listenable graphs - allow external listeners to track modification events.
 * subgraphs graphs that are auto-updating subgraph views on other graphs.
 * graph visualization using the JGraph library Although powerful, JGraphT is designed to be simple and type-safe (via Java 5 generics). For example, graph vertices can be of any objects. You can create graphs based on: Strings, URLs, XML documents, etc; you can even create graphs of graphs!

prefuse

A Java-based toolkit for building interactive information visualization applications. Prefuse supports a rich set of features for data modeling, visualization, and interaction. It provides optimized data structures for tables, graphs, and trees, a host of layout and visual encoding techniques, and support for animation, dynamic queries, integrated search, and database connectivity.

QN Plot

This chart implementation provides graphs of one or more functions as Swing components. The design was made to render large amounts of real-time data.

 * Coordinates are of type BigDecimal for arbitrary-precision
 * High performance
 * All classes are completely thread-safe
 * The axis has schemes to automatically choose stepsizes for the index

GRAL

An extensible Java plotting library for creating high quality plot and charts. GRAL can import text, audio and image data and export the resulting plots to PNG, JPEG, EPS, PDF, or SVG. In addition to charting GRAL also offers various methods for data processing and an ready-to-use Java Swing interface.

charts4j

charts4j is a free, lightweight charts & graphs Java API. It enables developers to programmatically create the charts available in the Google Chart API through a straightforward and intuitive Java API.

Eastwood Charts

Eastwood Charts is an independent and open source implementation of the Google Chart API. Eastwood Charts implements most of the features from Google Charts, and adds a few of its own (such as trendline overlay, 3D effects for bar charts, and optional(!) deployment via applets). Eastwood Charts uses JFreeChart to render the charts, and is aimed at web developers that want to incorporate charts into their web pages, but can't or won't send their data to Google for processing. Version 1.1.0 includes the following features: support for generating pie charts, bar charts, line charts and scatter plots, using encodings that match the Google Chart API; software you install on your OWN server; open source licensing under the terms of the GNU Lesser General Public Licence (LGPL, version 2.1 or later), the same licence as JFreeChart.

Friday, January 11, 2013

My Top Ten Tips on how to become a Rockstar Programmer

You will notice that there are no micro coding tips&tricks below. No info on how to make a fast for loop or such. The tips I post is what think you should do to learn how to learn those tricks for yourself. In all, this list is a little softer around the edges and goes mostly for the background things. 
Most noticeably you will see things that are totally opposite to what most recognized people say about how to code. This is probably because there is actually a difference in target audience. This is about you , and how you should become a great coder, maybe even a rock star coder! They often say how you should do to write good and portable code that other coders can understand and maintain. 

#1 Do development on a fast computer

Wicked fast even. Compiling should take at most a couple of seconds so that you do this often. In fact what is most important is how long it takes from you hitting that Run Project short key until your application shows up. The lesser the time the more you will run the application and the more keen you will be to try new things, which is how you learn. If running takes too long you will go for, not safer, but code you know to work, and you will evolve more slowly. A good advice is also to keep a crappy computer around for testing. Your GUI might feel snappy on your super fast developer monster machine, but your customers might not be so lucky as to have one of those.

#2 Use a big TFT screen

Code is talking to you in more than characters. With a bigger screen you will get more overview and this helps your right side brain into the game. You will see patterns more clearly and you can see the structure of a whole method and not just parts of it. You should have such a big screen that your methods will fit, in most cases, on one page. Eyes move fast, editor scroll panes do not. I use a 30 inch Apple CinemaDisplay and a 20 inch Dell rotated 90 degrees as a second debugging monitor.

#3 Learn your IDE

It matters less what IDE you use, today they are all above the good enough bar. Be ashamed every time you do something in a way you know you can do faster another way. Learn a new feature of your IDE until you have learned them all, or at least learned enough. Use short keys but don't over exaggerate. Be super lazy and create short cuts for everything you do. All to keep down the waiting time and minimizing the most important code-to-show time.

#4 Don't learn APIs too well

The APIs might change and/or you might start to use another API. Learn how to find information about the APIs really fast. Use your IDE for this where appropriate. Use JavaDoc for your own code and mount the JavaDocs in your projects for imported APIs. Knowing how to find information is good for everything, storing APIs in brainRAM is bound to get old. If for instance you don't use some sort of parameter help/completion you have a long walk ahead.

#5 Write smart cool compressed code constructs

And test them thoroughly! You will learn what works and what don't. You will evolve, not to use the smartest and coolest code, but in terms of knowing that smart code constructs is seldom the way of the rock star programmer, other than for showing off. Less code, in a smart way, means less to maintain. Over-smart code that is just for show will make your fellow code maintainers put "fart bags" on your chair just when the new super-hottie from the Rocket Scientists Department comes over to ask you a question (which would be a bad thing).

#6 Read books

You might be good at what you do, but knowing only that, whatever it may be, is seldom enough to really shine. Knowing enough about more fields than the field you are about to shine in is golden. Take for instance a GUI coder that knows nothing about databases. He might be almost useless since he can't interact with the guy doing the backing store, and so on. It takes as much effort to be 90% good in five fields than to be 99% good one one.

#7 Go back and enhance your old code

Not that it is sound from an economical point of view but because you learn oodles of things reading you own crap, which old code always is. Code gets rotten after a couple of years, it really does, since you evolve. If you can't find bad things in your old code you either already are a rock star programmer, or maybe more probable, hasn't evolved much lately.

#8 Eat your own dog food!

If you create APIs, create some applications using that API. If you create applications, ask your friends/wife(s)/husband(s)/children to try it. Don't say you did it; say that your crappy no-good overpaid work mate did it, so you get some honest feedback. Honest feedback is golden.

#9 Don't ask people for advice

Learn how to get that answer yourself instead, it is way more useful. Finding out how to get information about something is a value in itself and may pay you back more than the solution to the problem in the first place. Ask only if you must or if the question in itself is more a discussion and you are actually spreading information. Of course you shouldn't take this too literally, but I see lots of people asking pointless questions they could have found out faster by ten seconds of googling.

#10 Do micro benchmarks

But know that they are useless for almost all purposes in the real world. It will increase your knowledge about performance though, and next time you have a higher probability of choosing the fastest construct for new code. Don't do premature code optimization but learn how to write fast code from the start, without sacrificing readability.

#11 And last...

Eat right, exercise more, don't drink too much coffee, and all that other crap that matter more than you think, but you won't do because I said so. :)



Original post was by : 
Mikael Grev 

What to Expect from HTML5 in 2013


It's December and predictions season in the tech world, so let's look at what 2013 will mean for HTML5.

2011 saw breathless pronouncements about how HTML5 would dominate the next 12 months, along with predictions that developers would overwhelmingly abandon Flash in favor of HTML5's "write once, run everywhere" approach.

While 2012 was quite not the year analysts and HTML5 supporters expected, organizations showed definite interest and demonstrated success. In 2013, it's certain that the new Web standard will continue to grow and attract support.

Faster and Cheaper Development, in Theory
HTML5 promises shorter development times and cheaper development costs. Since HTML5 applications essentially live in the Web browser, developers (theoretically) don't have to worry about starting from scratch when developing for mobile platforms such as Android and iOS.

It hasn't turned out to be all that straightforward.

Developers still have to tweak the application for mobile devices, but more to optimize existing code rather than starting fresh. Mobile developers may also be interested in HTML5 because it lets them circumvent app stores and still reach closed platforms such as iOS, Facebook and Xbox Live.

When Facebook abandoned HTML5 for its mobile app earlier this year, detractors pointed to CEO Marc Zuckerberg's statement: "I think the biggest mistake we made as a company is betting too much on HTML5 as opposed to native" as proof that HTML5 was just hype. Later reports made clear, however, that the problem wasn't so much that HTML5 could not deliver what Facebook needed, but that its team didn't have the expertise to accomplish its goals.

High-Profile Successes
Nonetheless, 2012 saw definite HTML5 successes too. Financial Times successfully shifted its Web platform to HTML5. Amazon uses HTML5 in its Kindle Cloud Reader, Amazon AppStore for Android, Amazon MP3 Player, Amazon Mobile, Kindle for Windows 8 and Dictionary Lookup on eInk Kindles, Ethan Evans, director of app developer services at Amazon, explained in his keynote speech at AnDevCon earlier this month. That Amazon could dynamically update its app without having to go through the app store outweighed some of the performance challenges, Evans said.

Growing Mobile Security Concerns
Yet the promise of cross-platform compatibility is a double-edged sword. Security experts warn that cyber-criminals can also take advantage of the ability to target multiple platforms with the same code. The top three platforms hackers will target in 2013 are Windows 8, Android, and iOS, according to Websense Security Labs, adding that cross-platform exploits designed in HTML5 and Java will make the attacks easier.

"Cybercriminals operate toward similar objectives as legitimate application developers and focus on the most profitable platforms. As development barriers are removed, mobile threats will be able to leverage a huge library of shared code," Websense recently warned.

Bright Mobile Future for HTML5
HTML5 still makes sense for mobile, as mobile devices become more ubiquitous; analysts predict more growth. Research firm Strategy Analytics forecasts that one billion HTML5-capable mobile devices will be sold in 2013. ABI Research sees more than 2.1 billion mobile devices with HTML5 browsers by 2016. IDC estimates over 80 percent of all mobile apps will be wholly or in part based upon HTML5 by 2015. The firm also predicts 2 million developers working with HTML5 in 2013.

In 2012, an estimated 109 million phones had browsers capable of running HTML5 applications in 2010 (ABI) or 336 million in 2011 (Strategy Analytics). Either way, that's a lot of potential growth. With Flash out of the way, HTML5 has plenty of room to grow.

At this year's Black Hat security conference, several researchers demonstrated how HTML5 opens up new vectors for attack of because it has extensive access to local data stores, services and applications. As more and more developers start working with HTML5, it's important they learn how to build the application securely.

As the new year approaches, excitement still surrounds HTML5. Even those who admit the technology may have been overhyped are still committed to improving the tools and encouraging adoption.

With 2013 right around the corner, I would like to know what you think. Are you working with HTML5? Do you still think it is not ready for prime time? Will we see HTML5-based attacks in 2013? Weigh in below.

by Fahmida Y. Rashid 

About the Author
Fahmida Y. Rashid is a contributing editor for Slashdot and SourceForge.

Tuesday, January 8, 2013

I want to be a Java developer, What skills do I need !



"I want to be a java developer, What are the all skills that I need to have. I have learned the core java in college but what now?"

Does this sound a familiar question! You too may have a similar question in your mind. Don't worry, This article explains what are all the skills that you will need to be a Java web developer, and what are the skills that you are expected to have when you appear for an interview for a Java/J2EE web developer.

Java developer ! But what kind of?
Let me clarify, this article is about the Java web development. As most of the time, when beginner say, 'I want to be a java developer', he actually means he wants to be a java web developer and wants to get involved in developing web applications. Otherwise, Java development in general is a vast field, today Java is used in many types of platforms, that includes Personal computers, Main frames, Hand held portable devices, Mobiles, Smart cards, Games and many more thing. But the biggest stream of java development that creates more jobs than any other stream is the JavaEE platform. The JavaEE platform is used to create the enterprise applications (It includes web applications as well).

So be clear in your mind, This article is about java web development or enterprise application development. Most of the time when you read a job classified for skills, “Spring, Spring MVC, Struts, Hibernate, EJB” they are for java web development.

So, now it’s clear that you want to be a Java web developer and looking for a jump start. So here are the skills that will get you going.

Step 1 : First thing first, Know the basics, Learn core Java
The first thing you must learn is Core Java. Having a solid foundation in core java will help you when you jump into the advanced java. No matter what Java technologies you plan to work on, you will need to use the core java every day. So it is absolutely must to have a good understanding of the core concepts. Learn the basic programming concepts like variables, branching and looping, logical conditions, data types etc.

Good understanding of core java library is a must

Learn core java library, especially collection framework, Threads, java.lang, java.io packages. If you are targeting the web development, you may not want to waste time on the swing.
Get yourself a good core java book that covers the latest java edition JDK 1.6. (When I was a beginner, I read “The complete reference java”)

Step 2 : Learn to use an IDE (integrated development environment)
While working as a professional, you won’t use the plain text editors to write the code, you will have to know how to use IDE. IDE A.K.A code editor will greatly improve your productivity, and make your life easier. Code editors are used to write, compile, run and debug code. They provide features like syntax highlighting, auto completion, can identify the problems in code even before compiling. These are some of the most common features, but there are many more than just these. I will recommend you to learn eclipse which is one of the most popular IDE amongst java developer, and its free.

Step 3 : your first step toward web development, HTML, CSS and JavaScript
I will not explain what HTML or CSS is, there are plenty of resources available on the internet. But understand, this is the most important parts of any web application. Second most important thing to learn is JavaScript, let me clarify, the JavaScript is not java, the similarity in name is for historical reasons. Get yourself into the world of web applications with this three skills, learn some tutorials on the internet or get some good book.

Step 4 : The java web components, Servlet API and JSP
Almost every web application running on internet or intranet which is developed in Java has their roots in Servlet API. So next thing to learn is servlets. Servlet API is the only standard API for java web application development. JSP is also based on the servlet API. Almost all the web frameworks, like Spring MVC, Struts, Wicket uses the servlet API under the hood. Get yourself a good book like “head first servlet”. Having the solid understanding of the Servlet API is quite important. Understand the core concepts like, life cycle, request, response, filters, session, config, context etc.

Step 5 : Learn a web container
Web container is a run time environment or server that is used to deploy and run the web applications or more specifically Web components (Eg servlets or JSP)
Web containers does not know how to run struts or Spring MVC, they just understand the servlet API, but still you can run them on a web container, because ultimately they are based on the Servlet API. You can learn the tomcat, that would be sufficient initially.

Step 6 : Learn JDBC
Almost every web application will need to connect to a database for storing and retrieving persistent data. JDBC is the standard API for database connectivity. So it is quite important that you understand the JDBC well.

Step 7 : Learn a web application framework and an ORM framework
A web application framework is actually a set of libraries that makes developing web applications easier. Struts and Spring MVC are good choices. If you are just starting, I would recommend going with Spring MVC.

ORM stands for object to relational mapping, they are based on JDBC and used for storing and querying the database. But unlike JDBC, ORM frameworks operates on objects and provides ways for storing and retrieving objects. (But be clear, they are ultimately using JDBC under the hood). ORM frameworks reduces lots of boilerplate code, improves productivity and makes developers life easier. Hibernate is the best choice. If you are just starting, read and understand JPA (Java persistence API) which is the standard java ORM API. You can use hibernate for running your JPA code.

That's it. If you know everything I mentioned above well, you are all set to get a job as java web developer.

Step 8 : What next!
Once you are familiar with the things mentioned above, The next step would be to learn the JavaEE (Java enterprise edition). Learn EJB (Enterprise java beans), JSF (Java server faces) and other APIs that are part of the JavaEE. Get a good book that covers the latest JavaEE edition 1.6




Become a Java programmer without a college degree


Being a pro on Java doesn’t necessarily mean you need a college degree. You just have to take the right steps.

Java is more than an island in Indonesia or slang for coffee: It’s one of the most popular programming languages in common usage throughout the web. If you’re dreaming of a career in software programming, certification in Java is a popular route to establishing recognizable credentials.

Java is very popular because it inherits the tradition and style of C and C++, but is developed with emphasis on simplicity - making it is easier for a beginner to understand. If you’re already an expert in C or C++, then Java is almost effortless to learn. Secondly, Java has portability independent of the platform, which means Java can be executed on most computer environments. This has definitely helped Java prevail in gaining an advantage over other languages. Third, Java uses automatic memory management, which automatically clears out garbage for the programmer and retrieves memory. And it’s free!

To be an expert in Java, you don’t necessarily have to get a college degree. You just need some initiative, a desire to learn and knowledge of the right steps!

Computer literacy

This sounds simple but it’s certainly very important: To become a Java programmer, you’ll need to become computer literate beyond just surfing the internet or sending emails. There are plenty of resources out there on the net for you, but you need to be able to find and utilize them. You’ll need to know how to download, install, and use necessary programs in order to prepare the Java environment to get you started. Do you know how to access and use Java files? Do you know what Java file editors and compilers are, what they do, or where to download them? These are all questions you need to have clear answers for before you start your Java career.

First, a brief explanation of a file, an editor and a compiler:

An editor is where you write, fix and save your code. You can save files in the format appropriate for your programming language, in this case, Java. Learn more here

A compiler “translates” your saved code. Since the computer does not “understand” our human-readable high-level language (source code), we need to translate it into “machine-readable lowest-level language” (machine code) for the computer. Learn more here

Here’s the procedure: First, the programmer creates the instructions on the editor and the code is saved in a file. The compiler takes the code and translates it. Finally, the computer reads the “translated code” and executes it.

To download a Java Editor: here

To download a Compiler: Eclipse, Oracle, NetBeans

Note: Make sure you read the directions before you download anything and select the tool you want, so that you install the right things. And of course there are tons of other Java editors/compilers out there that are equally useful! (Feel free to list your favorite resources in the comments.)

Self-learning

Now that you understand how to get your basic Java environment set up, you can move on to the next step-writing your first line of code.

As you know, receiving a college degree in computer science or joining a face-to-face Java instruction program would require you to put in a lot of effort in a short span. It might not be the best choice for you if you can’t dedicate a lot of time to your studies, especially if you have a full-time job.

Self-learning might be a better choice because you can pace yourself in the process, decide when to study and for how long; everything is pretty much up to you.

Here are some great sites that offer self-paced, online Java training courses:

Free:

Free Java Guide: Java Tutorials for Beginners
MIT - Intro to Java Courses
Welcome to Java
For purchase:

Oracle Online Tutorials and Training
Lynda
OpenSesame
You don’t have to limit yourself to just online resources. Another good way to learn Java is through books. There are plenty of good books available everywhere and you can get them for pretty cheap. For example, take a look at Amazon.com

Professional certification exams

Once you’ve studied Java using all kinds of resources, you may feel comfortable pursuing a professional certification.

Like a final exam in a college class, the professional certification exams measure your understanding and proficiency of Java. Instead of receiving a grade, you’ll earn an accredited certificate indicating your mastery. This addition to your resume will help you stand out in the eye of your future employer.

But what kind of certification exams should you pursue? There are various test providers out there. A reliable test administer is the Oracle Corporation, which is the current developer of the Java language. This is a test provider that employers definitely trust. Sun Microsystems is also a good choice (as it is now part of Oracle).

The procedure for obtaining a certificate could be a little complicated because there are a lot of  options at the different levels of Java expertise.

So before you choose an exam to take, you need to understand your own skill level and standing. Here are some guidelines for you. We’ll use the Oracle Certified Exams as an example. Oracle Certifications have various types and levels of exams spanning Java fundamentals to advanced programming.

Oracle places their Java certifications in three categories:

Standard Edition (SE)
Mobile Edition (ME)
Enterprise Edition (EE)
Within each category, there are also different levels of exams, which will be talked about in a moment. First, take a look at this chart.

As you can see, there are three different categories. Within each category, there are several levels. The Standard Edition covers the fundamental skill sets that are needed to be a Java programmer; you would need to pass at least the professional level of Standard Edition in order to move on to the upper level within SE, which is the Master, or move on to the upper categories. The arrows (both blue and black) indicate that prerequisites are needed to take that exam. For example, in order to take ME1 or any EE professional-level or expert-level exams, you would need to pass a SE professional-level exam (SE5, 6, or 7).

You can choose your career path based on which certification you pursue. If you just want a certificate showing you have some skills in Java, then Associate SE5/6/7 or Professional SE5/6 are the ones to choose. (Note: Professional SE7 requires you to take Associate SE7 first.) They don’t require any prerequisites and are excellent certifications for showing your fundamental understanding of Java. If you want to go a little bit further in depth, consider taking Master SE6 or Professional SE7. If you wish to create mobile applications applying Java, then ME1 is the choice for you. EE is for more business-oriented applications and requires a strong and solid basis of Java. Master EE5 is the most difficult exam available now and has a little different exam content.

Click on the links below to access explanations and details about each exam (exam numbers, objectives, content, prerequisites, &c). I also attached links to study material for some of the exams. These study courses are different from the self-learning material I provided in the section above. They are specifically targeted for the exams you wish to take and they introduce a lot of useful strategies to help you pass the exams.

You can also check the minimum score requirement to pass each exam here.

Standard Edition:

Oracle Certified Associate

Exam: Oracle Certified Associate, Java SE 5/SE 6
Exam: Oracle Certified Associate, Java SE 7 Programmer
Oracle Certified Professional

Exam: Oracle Certified Professional, Java SE 5 Programmer
Exam: Oracle Certified Professional, Java SE 6 Programmer
Study Material: Oracle Certified 1Z0-851 Exam Study Material
Exam: Oracle Certified Professional, Java SE 7 Programmer
Oracle Certified Master

Exam: Oracle Certified Master, Java SE 6 Developer

Mobile edition:

Oracle Certified Professional

Exam: Oracle Certified Professional, Java ME 1 Mobile Application Developer

Enterprise edition:

Oracle Certified Professional

Exam: Oracle Certified Professional, Java EE 5 Business Component Developer
Exam: Oracle Certified Professional, Java EE 5 Web Component Developer
Exam: Oracle Certified Professional, Java EE 5 Web Services Developer
Oracle Certified Expert

Exam: Oracle Certified Expert, Java EE 6 Enterprise JavaBeans Developer
Exam: Oracle Certified Expert, Java EE 6 Java Persistence API Developer
Exam: Oracle Certified Expert, Java EE 6 Web Services Developer
Exam: Oracle Certified Expert, Java Platform, EE 6 Web Component Developer
Oracle Certified Master

Exam: Oracle Certified Master, Java EE 5 Enterprise Architect

The opportunities available for a Java developer are immense, and their knowledge is very valuable. Best of all, to be an expert in Java, you don’t necessarily have to get a college degree. Just take the right steps towards developing and proving your skills, and you’re good to go.

Bunron Chen is a business development and software engineering intern at OpenSesame, the world’s largest marketplace for buying and selling elearning courses. He earned his BS degree in electrical engineering from the State University of New York at Binghamton.




The original article was written by:


Thursday, January 3, 2013

Java: Oracle unveils roadmap for JDK 8, the publication of the final version planned for September 2013


Last month, Oracle released at the conference Qcon a roadmap for Java that provides an output of JDK 8 in 2013, 9 in 2015 JDK, JDK 10 in 2017, 11 in 2019 and JDK JDK 12 in 2022. Firm returns today provide details and dates of release of the next version of the development platform. Mathias Axelsson, manager at Oracle JDK versions published on the mailing list jdk8-dev, delivery dates of the various prerelease "Milestone" which will incorporate new features and enhancements kit. The Company therefore plans to publish:





M1: 24 April 2012

M2: June 14, 2012

M3: June 30, 2012

M4: September 1, 2012

M5: November 26, 2012

M6: 30 January 2013



For now, the specifications of features for each step has not yet been published. Delivery M6 mark the end of the full integration of new features and the beginning of the stabilization period JDK 8 to the publication of the final version in September 2013. general test period will take place between February and early early April 2013, then will follow the phase in which priority will be corrected bugs and finally in mid-June 2013, the JDK 8 will enter the optimization period for the release of the final version. developers of the proposed project the introduction of a M7 "Developer Preview" for testing by individual developers on open source projects to avoid problems with JDK 7, including Apache Lucene. On the menu for the next version of Java the introduction of the Lambda project, annotations on all types, a new API "Date and Time API" JavaFX 3.0, JavaScript interoperability, convergence JVM, etc.. Source : OpenJDK

"I'm an engineer, not a compiler", interview questions are they too control-oriented concepts and instructions?

Nowadays, the jobs are more oriented languages ​​well defined. Result: questions interviews tackle more aspects related to language concepts. anyway This is the finding of a developer nick clements in a blog post entitled "I'm an engineer, not a compiler . " This was realized in several interviews that standard questions such as: what polymorphism? What is the difference between "List" and "Set"? When you use one or the other? What is the difference between strong typing and weak typing? etc.. returning from time to time. For an interview, " any question that takes 5 seconds to find an answer on Google is not a good question, "says Clements. " Yet many interviews and many exams test essentially how you you can substitute a compiler , "laments one. " Even the Java certification exams tend to focus on the issues of syntax and compilation rather than how you can actually design a system or program . " According to Clements, " a good engineer thinks abstractly in terms design and construction of systems, he thinks in terms of algorithms, components and engineering design. It does not necessarily know all the details of the syntax of a given language, especially when used with a good IDE that does it for him . " the good engineer should be able to justify the use of a concept that define it. " It is more important that I am able to tell you when and where I should use inheritance and when and where I should use polymorphism, as to be able to spit a definition , "writes Clements. " I a good engineer, I'm not a good compiler "concludes it, we also reveals his favorite question for an interview:" What is your preferred language and what are its weaknesses ? " Source : Numbergrinder.com And you? What do you think? issues interviews they are too oriented towards mastery of language instruction? What are your favorite questions for the interviews?

Preview the fate Oracle Java SE 8 for ARM with JavaFX, developers can create applications for Raspberry Pi

Nearly two months after the release of the preview of Java SE 8 at the JavaOne conference, Oracle publishes a variation of the ARM development platform. preview of the Java SE 8 for ARM will help develop Java applications for embedded systems and other devices based on the ARM architecture like the Raspberry Pi It embeds a version of JavaFX (on Linux) framework for Rich Internet Applications development. To reminder, Java SE 8 as introduce new products: lambda expressions, Nashorn JavaScript engine, annotations, the new API "date and time" and more. The output of the final version of the platform is scheduled for September 2013.


Download Java SE 8 for ARM

First draft of PrimeFaces 3.5, the largest graphics library for JSF, appears via a video demonstration

Prime Faces graphics library for JSF most popular now in version 3.5 with more than 150 changes and anomalies occasion, and as each new version of Prime Faces, a video is available on the Web with a visual demonstration of the new features:

You will appreciate the ability to sort multiple columns in a table at the same time, sub-tables, navigation between cell tree dynamic new options galleries and that's not counting all the little additions or corrections that found everywhere. premium Faces is available online: http://www.primefaces.org/ The online demonstration: http://www.primefaces.org/showcase/ui/home.jsf reminder, Prime Faces c is:

Quote:
PrimeFaces is a lightweight open source component suite for Java Server Faces 2.0 featuring 100 + rich set of JSF components. Additional PrimeFaces Mobile Module features a UI kit for Developing mobile web applications. 
* Rich set of components (HTMLEditor, Dialog, AutoComplete, Charts and many more). 
* Built-in Ajax based on standard JSF 2.0 Ajax APIs. 
* Lightweight, one jar , zero-configuration and no required dependencies. 
* Native Ajax Push / Comet support. 
* Mobile UI kit to create mobile web applications for handheld devices. (IPhone, Palm, Android, Blackberry, Windows Mobile and more) 
* Skinning Framework with 30 + built-in themes and media for visual theme designer tool. 
* Extensive documentation with 450 + pages of User's Guide. 
* Large, vibrant and active user community. 
* Developed with "passion" from implementation to application developers developers.
Do not hesitate to consult the interview Çagatay Civici, creator of PrimeFaces, made ​​a few weeks ago: http://thierry-leriche-dessirier.dev...i-prime-faces/

Wednesday, January 2, 2013

A Secret Is No Longer A Secret Once You Tell The Internet



Sure the headline of this post is just common sense, but I feel like we all need a reminder this holiday season, especially as all the salacious photo evidence from the past couple of nights is just hitting Facebook.
Screen Shot 2013-01-02 at 2.31.02 AMFor those of you that have been busy drunkenly accumulating that evidence and not reading tech news over the holidays, a couple of things happened this past week that make this reminder especially pressing. In an amazing confluence of events over the break, Mark Zuckerberg’s sister Randi posted a photo of her famous family trying out the Poke app to her “Friends” on Facebook. Then she tagged her sister Arielle in it.
Not knowing or perhaps forgetting that every time you tag a friend in a photo on Facebook, that person’s friends can also see said photo, Randi was shocked, on Twitter, to find out that one of Arielle’s friends had subsequently screencapped the pic and tweeted it out to her over 40k followers.
IMG_7576
The irony of this privacy “breach” obviously wasn’t lost on news-starved tech reporters, who jumped at the once in a lifetime chance to write a bunch of “Even Zuckerberg’s Sister Doesn’t Understand Facebook Privacy” headlines.

While clickbait headlines are clickbait headlines, the more subtle irony in the narrative lay in the fact that the photo in question showed the Zuckerbergs reacting to Facebook Poke, a newly created Facebook App specifically created for Messages with expiration dates on their content. An app designed to do the opposite of what happened to Randi.
If you take a long and somewhat anthropological view, Facebook Poke, and Snapchat, the app it’s modeled after, have arisen out of a necessity for data impermanence in a world where one slip of the thumb (not putting the “d” when messaging on Twitter, for example) can ruin entire political careers. What happens on Facebook can hit Twitter and stay on Google, and this rule especially holds for public and even marginally public figures like Zuckerberg.
Like Zuckerberg, both Snapchat and Poke suffered their own mini privacy scandals last week, as Buzzfeed discovered that videos sent to users via Snapchat or Poke could be recovered by using an iOS file browser.
The idea of this being a privacy “scandal” strikes me as somewhat ridiculous. Users sent someone a video, and then were surprised/shocked that that service actually stored that data somewhere accessible?
“When the ‘app’ says that they ‘won’t have it’ after a ‘user-defined time limit’ then ‘yeah I’m surprised’” Gizmodo writer Sam Biddle responded to my ribbing.
Trolling aside, the thing about walls closed by product controls like “Privacy Settings” and “Self-Destructing Messages” is that they lull you into a false sense of security.
IMG_3654
“I understood exactly how the privacy settings work,” Randi Zuckerberg posted on her Facebook wall, in response to a comment by Michael Arrington about the brouhaha. “I just (foolishly) trusted that anyone who was FB friends with my family would have the decency not to screenshot an image and post it to Twitter.”
The success of more and more consumer internet startups will hinge on this: for all intents and purposes, we have a false sense of privacy moving forward, and it might be wise to revise the old dictum, “Two people can keep a secret if one on them is dead.”
Even Path, which prides itself to keeping its network under Dunbar’s Number, has its share of trust “breaches.” I can’t tell you how often I hear real life gossip about something posted on Path, even though I am not Path friends with any of the people being gossiped about.
“There is a part of me that just assumes everything will go public regardless,” Randi told Arrington in the same apparently private/”Friends-only” Facebook conversation, which, to even further my point, was screenshotted and sent to me, who wouldn’t have access to it otherwise.
A secret is no longer a secret once you tell the Internet.
“When you find a way to let someone view content and not make copies, sell it to the MPAA for big money,” notorious Internet persona Andrew Auernheimer quipped about the SnapChat/Facebook Poke video leak.  Auernheimer is right, it’s logically impossible to grant someone access to data and prevent them from copying and transforming it. Perhaps we should focus on creating a giant delete/unsend button for the entire Internet instead? Now that the Internet is old, maybe it should start suffering from Alzheimer’s?
For a society reacting to the “terrifying permanence” of technology by increasingly using products that hinge on impermanence, Auernheimer’s words are haunting. In this day and age we are all just one screenshot away from embarrassment.
Screen Shot 2013-01-02 at 2.59.45 AM