<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://au.sys-con.com"  xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>General Java</title>
 <link>http://au.sys-con.com/</link>
 <description>Latest articles from General Java</description>
 <language>en</language>
 <copyright>Copyright 2012 Ulitzer.com</copyright>
 <generator>Ulitzer.com</generator>
 <lastBuildDate>Sat, 18 Feb 2012 09:03:25 EST</lastBuildDate>
 <docs>http://backend.userland.com/rss</docs>
 <ttl>10</ttl>
<item>
 <title>Graal, a Dynamic Java Compiler in the Works</title>
 <link>http://au.sys-con.com/node/2166548</link>
 <description>Graal is a new project to explore implementing a dynamic compiler in Java that can be used in a native JVM as well as meta-circular VM. Graal compiler is a dynamic compiler in Java and it allows to extend its functionality to support the customizations. 
The Graal compiler allows Java libraries to extend their functionality to support customizations. For example, it enables custom optimization phases that we cannot achieve with the traditional Java compilers. It provides a Java API to control the compiler phases and it even allows us to introduce new phases, thus it opens the door for efficient implementations of new languages.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/2166548&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 15 Feb 2012 10:00:00 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/2166548</guid>
</item>
<item>
 <title>Migration Failures in a WebSphere Network Deployment on an AIX Platform</title>
 <link>http://au.sys-con.com/node/2159860</link>
 <description>Migration failures may occur when migrating application run time configurations for large complex network deployment to higher version of WebSphere Application Server (WAS) Network Deployment(ND) on AIX platform. The WebSphere migration utilities such as WASPreUpgrade and WASPostUpgrade provide the necessary mechanism to move the existing configuration information such as older defaults and settings including ports, JVM parameters etc from previous version to higher version of the WebSphere Application Server. These migration failures may happen due to several reasons such as any shortcomings in the procedure or a peculiar deployment topology chosen by the customer or due to any underlying network and synchronization failures from configurations in WebSphere or AIX.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/2159860&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 10 Feb 2012 08:00:00 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/2159860</guid>
</item>
<item>
 <title>Book Excerpt: Essential Java Skills (Part 1)</title>
 <link>http://au.sys-con.com/node/2159493</link>
 <description>When Sun’s developers created Java, they tried to keep the syntax for Java similar to the syntax for C++ so it would be easy for C++ programmers to learn Java. In addition, they designed Java so its applications can be run on any computer platform. In contrast, C++ needs to have a specific compiler for each platform. Java was also designed to automatically handle many operations involving the creation and destruction of memory. This is a key reason why it’s easier to develop programs and write bug-free code with Java than with C++. To provide these features, the developers of Java had to sacrifice some speed (or performance) when compared to C++. For many types of applications, however, Java’s relative slowness is not an issue.
Microsoft’s Visual C# language is similar to Java in many ways. Like Java, C# uses a syntax that’s similar to C++ and that automatically handles memory operations. However, in practice, C# code only runs on Windows. Because of that, C# is a good choice for developing applications for a Windows-only environment. However, Java is a better choice if you need to develop crossplatform applications.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/2159493&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 09 Feb 2012 10:00:00 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/2159493</guid>
</item>
<item>
 <title>Book Review: The Definitive Guide to HTML5</title>
 <link>http://au.sys-con.com/node/2154185</link>
 <description>Although I started with Cold Fusion for application development, I did plenty brochureware sites with HTML. I believe the version was HTML 2.0 for IE 2.0. I lived in the browser world for years doing Cold Fusion, ASP, and HTML sites. When winforms and Smart Client with Web Services emerged I changed my religion. I have been avoiding the browser whenever possible since.
For the past couple of years my extent of using simple HTML has been limited to writing blogs and book reviews. Simple HTML means no ASP.NET or ASP.NET MVC. With all the HTML5 hype I figured I would take some time and read a few books on it. This one is my third and I have one more on the way.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/2154185&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 07 Feb 2012 08:30:00 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/2154185</guid>
</item>
<item>
 <title>Component Development and Assembly Using OSGi Services </title>
 <link>http://au.sys-con.com/node/2146647</link>
 <description>This article introduces the concepts of Component Oriented Development and Assembly (CODA) using the OSGi Service platform with an example application. The article starts with an introduction to software components, elaborates with an example application, followed by an overview of the OSGi Service platform, and an implementation of the example application using this platform.
Components are parts that can be assembled to form a larger system. Electronic components such as ICs (Integrated Circuits) are assembled together to build an electronic system; similarly software components are assembled together to build a software system. Software systems have a static form as well as a dynamic runtime form. Software components can be assembled either in static form or dynamic form. In either case, the software component is an independent unit of development, deployment, and assembly. Using components to build software systems will provide many architectural advantages apart from promoting ease of reuse.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/2146647&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 03 Feb 2012 11:45:00 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/2146647</guid>
</item>
<item>
 <title>Asynchronous Logging Using Spring</title>
 <link>http://au.sys-con.com/node/2123093</link>
 <description>Each application developer faces the problem of logging usage information. On the one hand, the more logging that’s done the easier it is to detect and locate the source of problems. On the other hand, large volume logging might impair an application’s performance.
This problem is typically solved by defining various log levels dependent on a program’s maturity. For example, a program in developmental stages would have a higher logging requirements; logging requirements would be relatively lower in the production phase. If an application requires a lot of logging for audit purposes, then special measures are required to protect performance.
This article provides a possible solution for this problem by using Spring asynchronous support.
Logging is used extensively to help find problems within applications. A developer who finds a problem can investigate it by enabling debug logging. He may then reproduce the problem, or create additional logging if needed. Programmers usually require extensive logging to locate problems.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/2123093&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 12 Jan 2012 10:45:00 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/2123093</guid>
</item>
<item>
 <title>Why Rule-Based Log Correlation Is Almost a Good Idea... (Part 5)</title>
 <link>http://au.sys-con.com/node/2115862</link>
 <description>Compounding the combinatory explosion in the number of static-based correlation rules, it is impossible to correlate 100% of all your logs, it is just too expensive and not practical. Read on...
A correlation engine works really hard, even when dealing with a limited set of scenarios:
- Each scenario requires lots of rules and exceptions, and most of these rules need to be interpreted further as dozen, if not hundred of simple checks and tests. For example, you may want to flag loops with a simple rule such as &quot;IP Origin&quot; = &quot;IP Destination&quot;. If you have 1 000 logs this means that for each log you need to do 1 000 tests. Imagine having a million logs, a trillion logs, which is not uncommon on a medium sized infrastructure over a couple days.
&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/2115862&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 10 Jan 2012 06:00:00 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/2115862</guid>
</item>
<item>
 <title>Book Review: Sams Teach Yourself Java in 24 Hours</title>
 <link>http://au.sys-con.com/node/2107399</link>
 <description>If you want a well rounded introduction to JAVA 7, look no further.   This book touches on all the things you would expect in an introduction to a programming languages.
The book is broken down into six parts and a set of appendices. I have listed the chapters by part below.
Part I: Getting Started- Becoming a Programmer, Writing Your First Program, Vacationing in Java, and Understanding How Java Programs Work.
Part II: Learning the Basics of Programming- Storing and Changing Information in a Program, Using Strings to Communicate, Using Conditional Tests to Make Decisions, and Repeating an Action with Loops.
Part III: Working with Information in New Ways- Storing Information with Arrays, Creating Your First Object, Describing What Your Object is Like, and Making the Most of Existing Objects.
Part IV: Programming a Graphical User Interface- Building a Simple User Interface, Laying Out a User Interface, Responding to User Input, and Building a Complex User Interface.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/2107399&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 30 Dec 2011 15:30:00 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/2107399</guid>
</item>
<item>
 <title>Third-Party Content Management Applied</title>
 <link>http://au.sys-con.com/node/2111996</link>
 <description>Today’s web sites are often cluttered up with third-party content that slows down page load and rendering times, hampering user experience. In my first blog post, I discussed how third-party content impacts your website’s performance and identified common problems with its integration. Today I want to share the experience I have had as a developer and consultant with the management of third-party content. In the following, I will show you best practices for integrating third-party content and for convincing your business that they will benefit from establishing third-party management.
First the bad news: as a developer, you have to get the commitment for establishing third-party management and changing the integration of third-party content from the highest business management level possible – the best is CEO level. Otherwise you will run into problems trying to implement improvements. The good news is that, from my experience, this is an achievable goal – you just have to bring the problems up the right way with hard facts. Let’s start our journey toward implementing third-party content management from two possible starting points that I’ve seen in the past. The first one is triggered if someone from the business has a bad user experience and wants to find out who is responsible for the slow pages. The second one is that you as the developer know that your page is slow. No matter where you are starting, the first step you should make is to get the correct hard facts.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/2111996&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 30 Dec 2011 15:00:00 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/2111996</guid>
</item>
<item>
 <title>Book Review: Data Integration Blueprint and Modeling</title>
 <link>http://au.sys-con.com/node/2095534</link>
 <description>Data integration is a complex, detailed, sometimes excruciating boring activity, that is not an activity for the light at heart.
This book does a great job of digging into the details of the data transformations.  It is not just a high level look at data integration, it gets into the weeds.
The book is broken down into three parts. I have listed them and the chapters they contain below.
Part 1 Overview of Data Integration - Types of Data Integration, An Architecture for Data Integration, A Design Technique: Data Integration Modeling, and Case Study: Customer Loan Data Warehouse Project.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/2095534&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 13 Dec 2011 08:00:00 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/2095534</guid>
</item>
<item>
 <title>Book Review: The CERT Oracle Secure Coding Standard for Java</title>
 <link>http://au.sys-con.com/node/2092756</link>
 <description>All in all I highly recommend this book to every Java programmer.
I really like the CERT books. This one is no different, however, it is not one to read from cover to cover, at least not for me. It contains a catalog of rules for programming secure java code. What I have been doing is using it to look up rules about topics found in other resources that I have been using to learn the java environment.
Although the book contains a great index, there is an online version of this book which is really nice. It contains a really sweet search. I have been using that a lot to find the topics I am interested in, marking them in the book, and then reading about them in the book. The online version of the book contains all the code samples found in the book.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/2092756&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 09 Dec 2011 10:00:00 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/2092756</guid>
</item>
<item>
 <title>Book Excerpt: Java Application Profiling Tips and Tricks - Part 2</title>
 <link>http://au.sys-con.com/node/2088381</link>
 <description>In early JVM releases, it was common to delegate Java monitor operations directly to operating system monitors, or mutex primitives. As a result, a Java application experiencing lock contention would exhibit high values of system CPU utilization since operating system mutex primitives involve system calls. In modern JVMs Java monitors are mostly implemented within the JVM in user code rather than immediately delegating them to operating system locking primitives. This means Java applications can exhibit lock contention yet not consume system CPU. Rather, these applications first consume user CPU utilization when attempting to acquire a lock. Only applications that experience severe lock contention may show high system CPU utilization since modern JVMs tend to delegate to operating system locking primitives as a last resort. A Java application running in a modern JVM that experiences lock contention tends to show symptoms of not scaling to a large number of application threads, CPU cores, or a large number of concurrent users. The challenge is finding the source of the lock contention, that is, where are those Java monitors in the source code and what can be done to reduce the lock contention.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/2088381&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 07 Dec 2011 12:00:00 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/2088381</guid>
</item>
<item>
 <title>Exploring PureMVC</title>
 <link>http://au.sys-con.com/node/2088539</link>
 <description>If we search for MVC frameworks we found many variants: MVC1, MVC2, MVC3, MVP, MVVM and PureMVC.
Let&#039;s discover the main difference between PureMVC and the other variants.
According to the MVC definition from wikipedia:
&quot;Model View Controller (MVC) pattern creates applications that separate the different aspects of the application (input logic, business logic, and UI logic), while providing a loose coupling between these elements.&quot;
But if we search for MVC frameworks we found many variants: MVC1,MVC2,MVC3,MVP,MVVM and PureMVC.
The question is which one is the best to use?
As any debate like that, there&#039;s no unique solution, it depends on many factors.In this article we try using JavaDepend to discover PureMVC indepth, and talk about the main difference between it and the other variants.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/2088539&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 07 Dec 2011 08:45:00 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/2088539</guid>
</item>
<item>
 <title>Java for Programmers (2nd Edition)</title>
 <link>http://au.sys-con.com/node/2084733</link>
 <description>All in all I highly recommend this book as a learning resource for Java.  It covers a ton of topics and covers them in detail with plenty of examples.  I would expect to find this in any good Java programmer&#039;s library.
I have had several Deitel books in the past and I would say my biggest disappointment with this one was finding out that there were no Deitel bugs to find on the cover. I have not had a Deitel book for a while and really enjoyed having one back in my hands.
If you have never owned a Deitel book, you owe it to yourself to get one sometime. If you are a Java developer, or want to be a Java developer, I would recommend starting with this one.
I am from the .NET camp and I am doing my best to go all out learning Java. This book has definitely helped with goal.
This book covers a ton of information. Some of the topics covered Classes, Objects, Methods, Strings, Control Statements, Arrays, ArrayLists, Object-Oriented Programming, Exception Handling, GUI Components, Graphics, Java 2D, Regular Expressions, File Serialization, Streams, Object Serialization, Generic Collections, Generic Classes, Generic Methods, Applets, Java Web Start, Multithreading, Networking, Accessing Databases with JDBC, JavaServer Faces, Web Services, and UML.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/2084733&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 05 Dec 2011 06:00:00 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/2084733</guid>
</item>
<item>
 <title>PaaS 2.0 Adds Standards and Greater Developer Control </title>
 <link>http://au.sys-con.com/node/2083113</link>
 <description>Like evolution, constant technological change is unstoppable, whether through improvements or the emergence of entirely new technologies. This is especially true in the hosting industry where a new generation of more flexible and efficient platforms is emerging to take advantage of the cloud. 
Historically, hosting services have been very inflexible. For example, a customer looking to change out servers rented from a hosted service provider would have to wait for several days, sometimes resulting in a significant blow to credibility and other losses. Amazon, with its infrastructure-as-a-service (IaaS) solution, was able to reduce that operation to minutes, yet still left most of the server administration tasks to users. Later, first generation platform-as-a-service (PaaS) offerings, like Google AppEngine and Heroku, allowed developers to upload their application code to a preconfigured environment, but with a trade-off. Developers often had to rewrite code to run on the vendor’s platform and give up control of the execution environment.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/2083113&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 01 Dec 2011 09:30:00 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/2083113</guid>
</item>
<item>
 <title>Book Review: Java Performance</title>
 <link>http://au.sys-con.com/node/2080857</link>
 <description>Being new to Java I am interested in finding out the low-level nitty-gritty details of the Java HotSpot VM. This book was definitely the right choice for that.
I must admit being a veteran .NET developer helped when digging into the different concepts and there are a ton of them. One of the things I really liked about the book is that although it leaned towards Oracle, it also included Windows and Solaris.
There are 12 chapters. Chapter 1: Strategies, Approaches, and Methodologies, Chapter 2: Operating System Performance Monitoring, Chapter 3: JVM Overview, Chapter 4: JVM Performance Monitoring, Chapter 5: Java Application Profiling, Chapter 6: Java Application Profiling Tips and Tricks, Chapter 7: Tuning the JVM, Step by Step, Chapter 8: Benchmarking Java Applications, Chapter 9: Benchmarking Multitiered Applications, Chapter 10: Web Application Performance, Chapter 11: Web Services Performance, and Chapter 12: Java Persistence and Enterprise Java Beans Performance.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/2080857&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 30 Nov 2011 10:45:00 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/2080857</guid>
</item>
<item>
 <title>Five Years Waiting for JRE 7: Is It Justified? (Part 1)</title>
 <link>http://au.sys-con.com/node/2070354</link>
 <description>JRE 6 was released in 2006, five years after a major JRE version was released. For the past few years Java was looking stagnant, and many Java developers began to worry; this concern was amplified when Oracle purchased Sun.
We will try to discover if there&#039;s a big refactoring or maybe many features were added that can explain the time span between these two releases. In this first part we will focus on design and implementation changes, and the second part will focus on added features and breaking changes.
With JavaDepend we can compare two versions and detect any modifications concerning architecture, design or implementation. We can provide a summary of the changes using the following views.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/2070354&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sat, 26 Nov 2011 11:00:00 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/2070354</guid>
</item>
<item>
 <title>Book Excerpt: Java Application Profiling Tips and Tricks</title>
 <link>http://au.sys-con.com/node/2067673</link>
 <description>Most Java performance opportunities fall into one or more of the following categories:
Using a more efficient algorithm. The largest gains in the performance of an application come from the use of a more efficient algorithm. The use of a more efficient algorithm allows an application to execute with fewer CPU instructions, also known as a shorter path length. An application that executes with a shorter path length generally executes faster. Many different changes can lead to a shorter path length. At the highest level of the application, using a different data structure or modifying its implementation can lead to a shorter path length. Many applications that suffer application performance issues often use inappropriate data structures. There is no substitute for choosing the proper data structure and algorithm. As profiles are analyzed, take notice of the data structures and the algorithms used. Optimal performance can be realized when the best data structures and algorithms are utilized.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/2067673&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 25 Nov 2011 09:45:00 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/2067673</guid>
</item>
<item>
 <title>You Only Control One-Third of Your Page Load Performance!</title>
 <link>http://au.sys-con.com/node/2066022</link>
 <description>You don’t agree with that? Have you ever looked at the details of your page load time and analyzed what really impacts Page Load Time? Let me show you with a real life example and let me explain that in most cases you only control 1/3 of the time required to load a page as the rest is consumed by third-party content that you do not have under control.
When analyzing web page load times we can use tools such as dynaTrace, Firebug or PageSpeed. The following two screenshots show timeline views from dynaTrace AJAX Edition. The timelines show all network downloads, rendering activities and JavaScript executions that happen when loading almost exactly the same page. The question is: Where does the huge difference come from? &lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/2066022&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 16 Nov 2011 11:00:00 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/2066022</guid>
</item>
<item>
 <title>Essential Skills for the Agile Developer</title>
 <link>http://au.sys-con.com/node/2056126</link>
 <description>The best thing about this book is that each subject is truly the actions and insights that give the most understanding with the least investment.
I have been a fan of the Net Objectives books since the first edition of Design Patterns Explained: A New Perspective on Object-Oriented Design (2nd Edition). That is still my favorite design patterns book.
I have been a fan of the Net Objectives books since the first edition of Design Patterns Explained: A New Perspective on Object-Oriented Design (2nd Edition). That is still my favorite design patterns book.
When it comes to the agile movement I still remain torn. I watch it change and shift the industry&#039;s development processes to improve the customer satisfaction delivered by software teams successfully executing the processes, while at the same time I watch more teams use it as an excuse for the chaos they live in.\
I have been a fan of the Net Objectives books since the first edition of Design Patterns Explained: A New Perspective on Object-Oriented Design (2nd Edition). That is still my favorite design patterns book.
When it comes to the agile movement I still remain torn. I watch it change and shift the industry&#039;s development processes to improve the customer satisfaction delivered by software teams successfully executing the processes, while at the same time I watch more teams use it as an excuse for the chaos they live in.
When it comes to the agile movement I still remain torn. I watch it change and shift the industry&#039;s development processes to improve the customer satisfaction delivered by software teams successfully executing the processes, while at the same time I watch more teams use it as an excuse for the chaos they live in.
The good news is books like this one offer sound advice on achieving agility. The bad news is the agile team members I mentioned above that are living in daily chaos never pick them up. They are too busy putting out the day&#039;s hottest fire.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/2056126&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 09 Nov 2011 10:15:01 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/2056126</guid>
</item>
<item>
 <title>Spring: The Art of Using GRASP Patterns</title>
 <link>http://au.sys-con.com/node/2041435</link>
 <description>When we searched for design pattern articles, we found documentation concerning &quot;Gang of Four&quot; patterns. They are very useful and contribute to a well-designed application. But when I discovered GRASP principles , I advised any one interested to improve his skills design to look at these principles. It gives the fundamental rules of design. In this article we will discover some GRASP principles used by Spring, and the advantages of using them.
Spring is one of the most popular application developement framework for entreprise Java. The Spring Framework does not impose any specific programming model, it has become popular in the Java community as an alternative to, replacement for, or even addition to the Enterprise JavaBean (EJB) model.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/2041435&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 02 Nov 2011 14:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/2041435</guid>
</item>
<item>
 <title>Architecture Evaluation Framework for ORM Technologies</title>
 <link>http://au.sys-con.com/node/2012570</link>
 <description>Object Relational Technologies form the backbone of most of the enterprise Java applications. Choosing the appropriate technology however is one of the most important decisions for an enterprise architect. More often than not, such a decision is either a hit or miss. Mistakes done in selecting the appropriate technology results in performance bottlenecks, lack of scalability, unreliable transaction handling etc.
More than the problem with the specific ORM technology, it&#039;s the suitability of that technology to the underlying business needs and non-functional requirements. This article aims to establish an objective architecture evaluation framework for evaluating which ORM technology best fits your project needs. Based on the requirements, one or the other technology may be appropriate.

This article aims to establish an objective architecture evaluation framework for evaluating which ORM technology best fits your project needs. &lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/2012570&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 11 Oct 2011 12:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/2012570</guid>
</item>
<item>
 <title>The Right End of REST</title>
 <link>http://au.sys-con.com/node/2012750</link>
 <description>As an architectural style, REST is simply a set of constraints on the architecture: one way of doing things that makes it easier to solve certain problems. The architect must decide whether REST or any other style is appropriate for the problem at hand, but if you choose REST, then you must begin with the distributed hypermedia application you wish to build.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/2012750&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 11 Oct 2011 10:45:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/2012750</guid>
</item>
<item>
 <title>Book Review: Java The Complete Reference, 8th Edition </title>
 <link>http://au.sys-con.com/node/2007185</link>
 <description>This is a great place to start learning Java.  I think the book is good for beginners to start learning Java, as well as great reference for those experienced with Java. 
The book does not use an IDE to create, compile, and run the programs. It uses javac and java commands to compile and run. I used both the SDK command lines and the IntelliJ IDEA Community Edition to compile and run the programs. Both worked fine, but I also have an interest in learning to use IntelliJ IDEA.
The book covers the Java language, the Java Library, Software Development with Java Beans, Swing, Servlets, and ends with building 2 sample applications. &lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/2007185&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 05 Oct 2011 11:30:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/2007185</guid>
</item>
<item>
 <title>Java, A Beginner&#039;s Guide, 5th Edition</title>
 <link>http://au.sys-con.com/node/1997758</link>
 <description>This book is great for the person who is new to Java and new to programming.
Let’s first set the context of my normal skillset. I am a .NET Software Architect and Developer. I have been 100% in the .NET world since 2001 (with a very little sprinkling of VB6). I recently decided to expand my skillset into the Java and iOS world. This is the first book on my long journey into the world of Java.
I think this book is great for the person who is new to Java and new to programming.
Although the book does not use an IDE to create, compile, and run the programs, that does not take away from the book&#039;s learning quality.
I used both the SDK command lines and the IntelliJ IDEA Community Edition to compile and run the programs.
The book covers the core language in-depth, has a short chapter on Swing, briefly introduces applets, but does not touch on Servlets.
The book covers Data Types and Operators, Control Statements, Classes, Objects, Methods, Packages, Interfaces, Exception Handling, Inheritance, I/O, Multithreading, Enumerations, Autoboxing, Static Import, Annotations, Generics, Applets, Events, introduces Swing, and using Java&#039;s Documentation Comments.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1997758&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 05 Oct 2011 08:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1997758</guid>
</item>
<item>
 <title>Dealing with Application Deadlocks</title>
 <link>http://au.sys-con.com/node/1969495</link>
 <description>A deadlock is a situation where two or more threads are blocked while waiting to obtain locks that some of the other threads in the deadlock are holding. Deadlocks can occur when multiple threads need the same locks, at the same time, but obtain them in different order. For instance, if thread 1 locks A, and tries to lock B, and thread 2 has already locked B, and tries to lock A, a deadlock arises. Thread 1 can never get B, and thread 2 can never get A. In addition, neither of them will ever know. They will remain blocked on each of their objects, A and B, forever. 
The most common way of detecting whether your application is deadlocked is by analyzing thread dumps of the Java Virtual Machine while its in the state of appearing hung. A thread dump is a snapshot of the virtual machine&#039;s current state, including stack traces for each Java thread.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1969495&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 07 Sep 2011 07:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1969495</guid>
</item>
<item>
 <title>New Features in JavaServer Faces 2.0 </title>
 <link>http://au.sys-con.com/node/1952954</link>
 <description>JavaServer Faces (JSF) technology is used for developing server-side user interfaces (UI) for Java EE applications. JSF 2.0 architecture has introduced several new features, most of which we shall discuss in this article. The salient new features in JSF 2.0 are State Saving, Facelets, Navigation, Validations, Scopes, AJAX, Resource Handling, Composite Components, View Params, Client Behaviors, Event Handling, and Exception Handling. 
In JSF 1.2 the full component tree is saved/restored. Attributes are also stored and restored. Saving and restoring the full state has performance and memory issues as the complete state has to be saved and restored and the size of the state saved could be large. In JSF 1.2 each UIComponent saves/restores its own state in the component hierarchy using saveState and resoreState methods in StateHolder. If state saving were to be optimized, it would have to be added to each component class in the hierarchy. &lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1952954&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 01 Sep 2011 13:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1952954</guid>
</item>
<item>
 <title>General Best Practices for WebSphere Application Environments</title>
 <link>http://au.sys-con.com/node/1925974</link>
 <description>This article provides a list of general best practices to apply to any WebSphere Application Server V7 and V8 environment. However, some of the recommendations only apply to specific conditions and scenarios. These recommendations could be used to set up any WebSphere environment.
All WebSphere Application processes should be running as non-admin/root user.
It&#039;s not a good practice to run a process as an admin/root user. For obvious reasons, you don&#039;t want more folks to know about the admin/root password and generally the WebSphere admins are not the system admins. Create a services user account on the box and use it for the WebSphere Application&#039;s start and stop purposes.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1925974&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 29 Jul 2011 10:30:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1925974</guid>
</item>
<item>
 <title>JavaScript: The Definitive Guide</title>
 <link>http://au.sys-con.com/node/1924469</link>
 <description>All in all I think this a great book.  It will be on my desk for the next few years until I need to replace it with the 8th or 9th version.
This book has delivered exactly what I was hoping for, an in-depth look into modern day JavaScript.
I rarely use JavaScript nowadays in my day to day job. I have been lucky to avoid the messy browser applications it is usually a part of the past few years. That was my primary reason for buying the book. Although I may not like it, JavaScript is here to stay, and I need to keep current with it.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1924469&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 29 Jul 2011 09:45:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1924469</guid>
</item>
<item>
 <title>The Development of a Perl-based Password Complexity Filter</title>
 <link>http://au.sys-con.com/node/1911661</link>
 <description>If you watch the news regularly, it is easy to notice that in almost any given week some company seems to have experienced an electronic break-in or in some other way experienced a form of computer or network compromise. While computer security professionals can help to mitigate such risks via the proper configuration of firewalls, careful crafting of Access Control Lists, the application of updates, and the judicious application of file permission, among other measures, it’s important that one of the most fundamental ways of improving the security of a computer or network resource not be overlooked – that of a really strong password. To this day passwords remain one of the weaker links in the security of electronic resources, and their potential for exploitation needs to be examined more carefully than ever. With the growing trend of cloud computing-based initiatives, many resources that were formerly enclosed within the wall of a business are now available over a network, thereby mitigating the physical security measures the previously helped to limit access to such resources. Given that many of these cloud-based solutions are accessed via user name and password combinations, a strong password is often the primary form of defense against illicit access. &lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1911661&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 19 Jul 2011 12:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1911661</guid>
</item>
<item>
 <title>Logging with Spring JDBC and Craftsman Spy</title>
 <link>http://au.sys-con.com/node/1886050</link>
 <description>I recently used the framework by Craftsman Spy and must say it was really exciting. This framework is very useful for JDBC logging.
Craftsman Spy is an open source and free framework for JDBC logging. It is a JDBC driver implementation. You can download it from &lt;a href=&quot;http://zer0.free.fr/craftsman/spy.php&quot; title=&quot;http://zer0.free.fr/craftsman/spy.php&quot;&gt;http://zer0.free.fr/craftsman/spy.php&lt;/a&gt;, and you can also bind it in your local repository for Maven. But how does it work? I will explain it in my next article.
Spy logger logs all SQL processing and connections with executing spent time, all stored procedures with arguments, all batch processing and result sets.  Craftsman Spy Framework is very helpful for all JunitTests because you see what runs under the roof and all hidden processes.  Unfortunately, you cannot find all these facilities in the Spring JDBC Framework.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1886050&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sat, 25 Jun 2011 11:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1886050</guid>
</item>
<item>
 <title>How Garbage Collection Differs in the Three Big JVMs</title>
 <link>http://au.sys-con.com/node/1845371</link>
 <description>Most articles about Garbage Collection ignore the fact that the Sun Hotspot JVM is not the only game in town. In fact whenever you have to work with either IBM WebSphere or Oracle WebLogic you will run on a different runtime. While the concept of Garbage Collection is the same, the implementation is not and neither are the default settings or how to tune it. This often leads to unexpected problems when running the first load tests or in the worst case when going live. So let’s look at the different JVMs, what makes them unique and how to ensure that Garbage Collection is running smooth.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1845371&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 25 May 2011 11:15:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1845371</guid>
</item>
<item>
 <title>Application Performance Management in WebSphere Environments</title>
 <link>http://au.sys-con.com/node/1827011</link>
 <description>Just in time for the upcoming Webinar with The BonTon Stores, where we talk about the challenges in operating complex WebSphere environments, we had another set of prospects running their applications on WebSphere. Francis Cordon, a colleague of mine, shares some of the screenshots resulting from these engagements.

In this blog I want to highlight important areas when managing performance in WebSphere environments. This includes WebSphere Health Monitoring, End-to-End Performance Analysis, Performance and Business Impact Analysis as well as WebSphere Memory Analysis and Management. More details will be discussed during the Webinar on May 25th – so check it out if you are interested.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1827011&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 12 May 2011 08:45:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1827011</guid>
</item>
<item>
 <title>Application Performance Monitoring in Production</title>
 <link>http://au.sys-con.com/node/1824802</link>
 <description>Last time I explained logical and organizational prerequisites to a successful production level application performance monitoring. I originally wanted to look at the concrete metrics we need on every tier, but was asked how you can correlate data in a distributed environment, so this will be the first thing that we look into. So let’s take a look at the technical prerequisites of successful production monitoring.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1824802&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 11 May 2011 11:15:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1824802</guid>
</item>
<item>
 <title>Tips on Creating Stable Functional Web Tests</title>
 <link>http://au.sys-con.com/node/1824787</link>
 <description>In the last week my task was to create stable functional tests for a new eCommerce application. We picked several use cases, e.g.: clicking through the different links, logging in, searching for products and actually buying a product. We needed functional tests that run on both Internet Explorer and Firefox. With these tests we want to make sure to automatically find any functional problems but also performance and architectural problems (e.g: too many JavaScript files on the site, too many exceptions on the server or too many database statements executed for a certain test scenario). We also want to find problems that happen on certain browsers – therefore the task of letting these tests run on the two major browsers.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1824787&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 10 May 2011 10:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1824787</guid>
</item>
<item>
 <title>WebSphere eXtreme Scale  Design and Performance Considerations</title>
 <link>http://au.sys-con.com/node/1803990</link>
 <description>This article attempts to serve as checklist and is designed for clients and professional community that use or are considering to use WebSphere eXtreme Scale as a elastic, scalable in memory data cache, and  who are interested in implementing a highly available and scalable e-business infrastructure using the IBM WebSphere eXtreme Scale (WXS). Through WebSphere eXtreme Scale, customers can postpone or virtually eliminate costs associated with upgrading more expensive, heavily loaded back-end database and transactional systems, while meeting the high availability and scalability requirements for today’s environments. While not an exhaustive list, this paper includes primarily the infrastructure planning requirements of WXS environment.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1803990&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 26 Apr 2011 10:15:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1803990</guid>
</item>
<item>
 <title>Application Performance Monitoring in Production</title>
 <link>http://au.sys-con.com/node/1793969</link>
 <description>Setting up Application Performance Monitoring is a big task, but like everything else it can be broken down into simple steps. You have to know what you want to achieve and subsequently where to start. So let’s start at the beginning and take a top-down approach
The first thing to do is to be clear of what we want when monitoring the application. Let’s face it: we “do not want to” ensure CPU utilization to be below 90 percent or a network latency of under one millisecond. We are also not really interested in garbage collection activity or whether the database connection pool is utilized. We need to monitor all of these things in order to reach our main goal. And the main goal for this article series is to ensure the health and stability of our application and business services. To ensure that we need to leverage all of the mentioned metrics.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1793969&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 22 Apr 2011 10:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1793969</guid>
</item>
<item>
 <title>The Cost of an Exception</title>
 <link>http://au.sys-con.com/node/1793989</link>
 <description>Recently there was a bigger discussion at dynaTrace around the cost of exceptions. When working with customers we very often find a lot of exceptions they are not aware of. After removing these exceptions, the code runs significantly faster than before. This creates the assumption that using exceptions in your code comes with a significant performance overhead. The implication would be that you better avoid using exceptions. As exceptions are an important construct for handling error situation, avoiding exceptions completely does not seem to be good solution. All in all this was reason enough to have a closer look at the costs of throwing exceptions.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1793989&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 22 Apr 2011 07:30:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1793989</guid>
</item>
<item>
 <title>Java EE 7 and Cloud Computing</title>
 <link>http://au.sys-con.com/node/1794962</link>
 <description>Java EE 7 is the next version of the major enterprise platform has been approved by the JCP board recently.  We find significant support for Cloud Adoption in the proposed platform. This platform analyzes how Java EE could be a major Cloud Platform much  like .net has been positioned in the form of Windows Azure.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1794962&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sat, 16 Apr 2011 16:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1794962</guid>
</item>
<item>
 <title>Why You Can’t Compare Cross-Browser Execution Times of Selenium Tests</title>
 <link>http://au.sys-con.com/node/1793976</link>
 <description>I am currently working on a blog where I am going to explain how to do cross-browser testing and performance analysis using dynaTrace. Before I am going to blog that How-To I want to share with you one thing that I have noticed when executing my tests in Internet Explorer 8 and Firefox 3.6. Test execution times are very different – but – this is not because one browser is slower than the other. It is because Selenium has different synchronization mechanisms in IE and FF to e.g: wait for a page to be loaded.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1793976&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 15 Apr 2011 15:00:50 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1793976</guid>
</item>
</channel>
</rss>

