Simple Algorithms for Effective Data Processing in Java

The needs of Big Data processing require specific tools which nowadays are, in many cases, represented by the Hadoop product ecosystem.

When I speak to people who work with Hadoop, they say that their deployments are usually pretty modest: about 20 machines, give or take. It may account for the fact that most companies are still in the technology adoption phase evaluating this Big Data platform and with time the number of machines in their Hadoop clusters would probably grow into 3- or even 4-digit ranges.

Development on Hadoop is becoming more agile with shorter execution cycles — Apache Tez, Cloudera’s Impala, Databricks’ Spark are some of the technologies that aid in the process along the way.

Continue reading “Simple Algorithms for Effective Data Processing in Java”

Java Courses Being Updated to Java 8

UPDATE – In order to provide clients a choice on which Java version they would like training on, we are releasing new course codes for Java 8.  Our current course codes will stay at Java 7 for those that need that version.

At Web Age Solutions it is important for us to make sure we are offering training that is relevant and appropriate for you.  Even though Java SE 8 was released some time ago, clients have taken a while to start using it since most Java environments they ran applications in had not yet added Java 8 support.  With the latest versions of all major Java EE application servers offering some type of Java 8 support that dynamic has changed.

We are updating our primary Java training courses to add Java 8 coverage.  The primary courses being updated are:

WA2494 Introduction to Java 8 Using Eclipse

WA2509 Advanced Java 8 Using Eclipse

The following courses will remain available using Java SE 7 for clients that need this version.

WA1278 Introduction to Java Using Eclipse

WA1449 Advanced Java using Eclipse

Since we know that there are also lots of Java programmers that do not need to take a “standard” course but simply need to learn what the changes are with this new version, we are also releasing a new course that covers the most recent changes.  This course covers the major changes of Java 8 that will have a significant impact on a wide range of Java applications in addition to a few important Java 7 features that are well known.

WA2493 What’s New in Java 8

So what is new in Java 8?  Will it impact your applications?  Java 8 is one of the most significant updates to Java in some time.  After Oracle bought out Sun, Java 6 was around for quite a while.  Oracle decided to release the "easy stuff" in Java 7 while working on some of the more significant changes for Java 8.

While the following is not an exhaustive list of Java 8 changes (you can go here for that) the following are some of the major features that are likely to impact a large cross-section of Java applications.

  • Lambda Expressions – This is by far the most impactful change in Java 8.  A “Lambda Expression” allows for the definition of an anonymous function that can be used as an object, for example being passed as a method parameter.  Besides simplifying code by replacing many usages of anonymous classes, a wide range of features are available as the rest of the Java platform was examined to use Lambda expressions where they made sense.
  • Collections Stream API – One place where Lambda expressions is leveraged is the Collections “Stream API”.  This lets you perform aggregate operations on a collection of objects.  For example, you might want to search through a set of CustomerProfile objects for all of the ones in a certain zip code and age range.
  • New Date/Time API – Although Java has always had the concept of ‘Date’ to represent a moment in time, many date and time related operations have been difficult.  Even answering the simple question “What was the date of the first Monday in November last year?” would be very complex.  The addition of the Date/Time API in Java 8 is meant to provide standard tools for these kinds of use cases.  This has long been a need in Java and now you won’t need third party libraries to address this need.
  • Concurrency changes – Although Java concurrency is not new, Java 5 and Java 7 introduced significant features in this area.  Java 8 continues to expand this area of Java programming, of particular importance since the impact of efficiently using multiple CPU processors, for example, can realize a significant improvement in performance.
  • Default methods – Currently, if you want to change the API of an interface, any implementing class is forced to implement the new functionality.  With Java 8 “default methods” you can add a new method to an interface along with a “default” implementation.  This implementation would be used for older classes that implement the interface but do not provide a unique implementation of the new method.  This could help you add new functionality to systems while minimizing the impact on existing, and already proven, libraries.

As I mentioned this is nowhere near absolutely all of the new changes in Java 8 but certainly most of the most significant. 

Besides the above courses that are being updated and released, we will also soon have a webinar that covers some of these changes as well.  Keep an eye on our webinar page for when that is scheduled.

WebSphere Liberty Profile Webinar – Wednesday, May 28, 2PM Eastern

Although WebSphere Application Server is one of the most robust Java Enterprise Application Servers for deployment of mission critical applications, it is not always that easy to use in development. Often we see clients who deploy to WebSphere in production using Tomcat or some other server to test in development because it is "easier". The complaint is that the full WebSphere Application Server takes too long to start or redeploy applications and is not intuitive to configure for developers. To address these issues, IBM has created the WebSphere "Liberty Profile" server. This is a lightweight server, certified for Java EE 6, that starts much faster and is easier to configure.

 

In this webinar we will look at the features of the WebSphere Liberty Profile server, how it compares to the "full" WebSphere Application Server, and how you can use it to simplify the development and testing of Java EE applications. We will even show that with version 8.5.5 of the WebSphere Liberty Profile there are some intriguing new features that would even let you run the server as part of a cluster and use it for some production deployment scenarios. We will also highlight the use of FREE Eclipse development tools that are available since the cost of development tools for WebSphere Application Server has also been historically an issue.