<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://java.sys-con.com"  xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>General Java</title>
 <link>http://java.sys-con.com/</link>
 <description>Latest articles from General Java</description>
 <language>en</language>
 <copyright>Copyright 2013 Ulitzer.com</copyright>
 <generator>Ulitzer.com</generator>
 <lastBuildDate>Thu, 23 May 2013 17:27:54 EDT</lastBuildDate>
 <docs>http://backend.userland.com/rss</docs>
 <ttl>10</ttl>
<item>
 <title>The Past, Present and Future of Enterprise Java</title>
 <link>http://java.sys-con.com/node/2470667</link>
 <description>The Java Platform Enterprise Edition 7 specification early draft is available for download. All these years the focus was to introduce several APIs and technologies as part of the platform to make it more powerful, simple and complete. This is the first time the focus has shifted in a completely different direction - to bring in something new to the platform, apart from the enhancements to the existing technologies. In this article, we&#039;ll look at how Java EE evolved, became a major platform specification and understand the direction in which it is moving forward.
A brief look at the history of the Java EE – Java Platform Enterprise Edition specification reveals that every major release of the specification has been driven by a major theme. 
A look at the specification details reveals that the theme for the first release of the specification J2EE 1.2 was to bring all enterprise specifications like Servlet, JSP, EJB, RMI, IIOP under one umbrella of specifications, the focus was to introduce support for distributed computing systems that reduce cost and complexity. The next release of the specification J2EE 1.3 was merely an enhancement to the J2EE 1.2 specification without any specific theme as such. Connector API, JMS Provider and Container Managed Persistence beans are prominent inclusions.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/2470667&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 12 Dec 2012 06:30:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/2470667</guid>
</item>
<item>
 <title>Who Will Be Winner with Oracle $10 Million Dollar Challenge?</title>
 <link>http://java.sys-con.com/node/2336455</link>
 <description>In case you missed it, Oracle has a ten million dollar challenge (&lt;a style=&quot;text-decoration:none&quot; href=&quot;http://www.oracle.com/us/corporate/advertising/412m-exd-ibm-challenge-1639795.pdf&quot;&gt;here&lt;/a&gt;, &lt;a style=&quot;text-decoration:none&quot; href=&quot;http://www.oracle.com/us/corporate/features/ibmchallenge/10millionchallenge-entry-form-1631186.pdf&quot;&gt;here&lt;/a&gt; and &lt;a style=&quot;text-decoration:none&quot; href=&quot;http://www.oracle.com/us/corporate/advertising/10millionchallenge-entry-form-168090.pdf&quot;&gt;here&lt;/a&gt;) to prove that their servers and database software technologies are &lt;a style=&quot;text-decoration:none&quot; href=&quot;http://www.oracle.com/us/corporate/advertising/412m-exd-ibm-challenge-1639795.pdf&quot;&gt;5 times faster than IBM&lt;/a&gt;. &lt;/p&gt;
        &lt;p align=&quot;justify&quot;&gt;Up to 10 winners open to U.S. Fortune 1000 companies running an Oracle 11g data warehouse on IBM Power system. Offer expires August 31, 2012 with configuration terms. See this URL for official rules: &lt;a style=&quot;text-decoration:none&quot; href=&quot;http://oracle.com/IBMchallenge&quot;&gt;http://oracle.com/IBMchallenge&lt;/a&gt;&lt;/p&gt;
        &lt;p align=&quot;justify&quot;&gt;&lt;a style=&quot;text-decoration:none&quot; href=&quot;http://www.oracle.com/us/corporate/features/ibmchallenge/10millionchallenge-entry-form-1631186.pdf&quot;&gt;Click here to view entry form&lt;/a&gt; or click on form below.&lt;/p&gt;
        &lt;p align=&quot;justify&quot;&gt;&lt;a style=&quot;text-decoration:none&quot; href=&quot;http://www.oracle.com/us/corporate/advertising/10millionchallenge-entry-form-168090.pdf&quot;&gt;&lt;img src=&quot;http://storageio.com/images/SIO_Oracle_10M_Form.gif&quot; alt=&quot;Oracle 10 million dollar challenge entry form image&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
        &lt;p align=&quot;justify&quot;&gt;Taking a step back for a moment, if you forgot or had not heard, Oracle earlier this summer had &lt;a style=&quot;text-decoration:none&quot; href=&quot;http://storageioblog.com/?p=3321&quot;&gt;their hands slapped by the US Better Business Bureau (BBB) National Advertising Directive (NAD)&lt;/a&gt; over performance claims and ads. IBM complained to the BBB that unfair marketing claims about their servers and database products were being made by Oracle (&lt;a style=&quot;text-decoration:none&quot; href=&quot;http://storageioblog.com/?p=3321&quot;&gt;read more here&lt;/a&gt;).&lt;/p&gt;
        &lt;p align=&quot;justify&quot;&gt;Not one to miss a beat or bit or byte of data, not to mention dollars, Oracle has run ads in newspapers and other venues for the Oracle IBM challenge with the winner receiving $10,000,000.00 USD (details here).&lt;/p&gt;
        &lt;p align=&quot;justify&quot;&gt;&lt;a style=&quot;text-decoration:none&quot; href=&quot;http://www.oracle.com/us/products/database/exadata/overview/index.html&quot;&gt;&lt;img src=&quot;http://www.oracle.com/us/assets/im07t1-exadata-x2-8-1-495498.png&quot; alt=&quot;Oracle exadata servers image&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
        &lt;p align=&quot;justify&quot;&gt;&lt;a style=&quot;text-decoration:none&quot; href=&quot;http://www.oracle.com/us/assets/im07t1-exadata-x2-8-1-495498.png&quot;&gt;&lt;/a&gt;This begs the question, who wins, the company or entity that actually can standup and meet the challenge? How about Oracle, do they win if enough people see, hear, talk (or complain) about the ads and challenges? What about the cost, how will Oracle cover that or is it simply a drop in the bucket of an even larger amount of dollars potentially valued in the billions of dollars (e.g. servers, storage, software, services)?&lt;/p&gt;
        &lt;p align=&quot;justify&quot;&gt;Now for some fun, using an &lt;a style=&quot;text-decoration:none&quot; href=&quot;http://www.usinflationcalculator.com/&quot;&gt;inflation calculator&lt;/a&gt; with 1974 dollars as that is when the TV show the &lt;a style=&quot;text-decoration:none&quot; href=&quot;http://www.imdb.com/title/tt0071054/&quot;&gt;six million dollar man&lt;/a&gt; made its debut. If you do not know, that is a TV show where an injured government employee (Steve Austin) played by actor &lt;a style=&quot;text-decoration:none&quot; href=&quot;http://www.imdb.com/name/nm0000516/&quot;&gt;Lee Majors&lt;/a&gt; was rebuilt using bionic in order to be faster and stronger with the then current technology (ok, TV technology). Using the &lt;a style=&quot;text-decoration:none&quot; href=&quot;http://www.usinflationcalculator.com/&quot;&gt;inflation calculator&lt;/a&gt;, the 1974 six million dollar man and machine would cost about $27,882,839.76 in 2012 USD (364.7% increase). &lt;/p&gt;
        &lt;p align=&quot;justify&quot;&gt;&lt;a style=&quot;text-decoration:none&quot; href=&quot;http://borg.com/2011/09/15/remastered-six-million-dollar-man-series-on-dvd-worth-the-wait/&quot;&gt;&lt;img src=&quot;http://borgdotcom.files.wordpress.com/2011/09/six-million-dollar-man-banner.jpg?w=640&quot; alt=&quot;Six million dollar man DVD video image&quot; width=&quot;200&quot; height=&quot;150&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
        &lt;p align=&quot;justify&quot;&gt;Now using todays what Oracle is calling faster, stronger machine and associated staff for $10,000,000 challenge prize award, would have cost $2,151,861.17 in 1974 dollars. Note that the equal amount of compute processing, storage performance and capacity, networking capability and software abilities in 1974 similar to what is available today would have cost even more than what the inflation calculator shows. For that, we would need to have something like a technology inflation (or improvement) calculator.&lt;/p&gt;
        &lt;p align=&quot;justify&quot;&gt;Learn more about the Oracle challenge &lt;a style=&quot;text-decoration:none&quot; href=&quot;http://www.oracle.com/us/corporate/advertising/412m-exd-ibm-challenge-1639795.pdf&quot;&gt;here&lt;/a&gt;, &lt;a style=&quot;text-decoration:none&quot; href=&quot;http://www.oracle.com/us/corporate/features/ibmchallenge/10millionchallenge-entry-form-1631186.pdf&quot;&gt;here&lt;/a&gt; and &lt;a style=&quot;text-decoration:none&quot; href=&quot;http://www.oracle.com/us/corporate/advertising/10millionchallenge-entry-form-168090.pdf&quot;&gt;here&lt;/a&gt;, as well as the &lt;a style=&quot;text-decoration:none&quot; href=&quot;http://storageioblog.com/?p=3321&quot;&gt;NAD announcement here&lt;/a&gt;, and the &lt;a style=&quot;text-decoration:none&quot; href=&quot;http://www.imdb.com/title/tt0071054/&quot;&gt;six million dollar man here&lt;/a&gt;&lt;/p&gt;
        &lt;p&gt;Ok, nuff said for now.&lt;/p&gt;
        &lt;p align=&quot;justify&quot;&gt;Cheers Gs&lt;/p&gt;
        &lt;p&gt;Greg Schulz - Author &lt;a style=&quot;text-decoration:none&quot; href=&quot;http://storageio.com/book3.html&quot;&gt;Cloud and Virtual Data Storage Networking&lt;/a&gt; (&lt;a style=&quot;text-decoration:none&quot; href=&quot;http://www.crcpress.com/product/isbn/9781439851739&quot;&gt;CRC Press, 2011&lt;/a&gt;), &lt;a style=&quot;text-decoration:none&quot; href=&quot;http://storageio.com/book2.html&quot;&gt;The Green and Virtual Data Center&lt;/a&gt; (CRC Press, 2009), and &lt;a style=&quot;text-decoration:none&quot; href=&quot;http://storageio.com/book1.html&quot;&gt;Resilient Storage Networks&lt;/a&gt; (Elsevier, 2004) &lt;br/&gt;
        &lt;/p&gt;
        &lt;p&gt;twitter &lt;a style=&quot;text-decoration:none&quot; href=&quot;http://twitter.com/storageio&quot;&gt;@storageio&lt;/a&gt;&lt;/p&gt;
        &lt;p&gt;All Comments, (C) and (TM) belong to their owners/posters, Other content (C) Copyright 2006-2012 StorageIO All Rights Reserved&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/2336455&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 27 Aug 2012 07:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/2336455</guid>
</item>
<item>
 <title>A Complex Password May Not Be a Strong Password</title>
 <link>http://java.sys-con.com/node/2331671</link>
 <description>Just because your password meets complexity requirements does not necessarily make it a strong password. It is a given that many sites require you to have a password of a minimum length of at least six or eight characters, and some go so far as to require the addition of a number and at least one upper case letter. At first glance, this gives the appearance of a complex password that, in theory, should be harder to crack. If we consider a blind brute force attack that starts at six characters with “000000” and cycles through every combination of upper and lower case letters and numbers through “zzzzzz”, this is essentially true.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/2331671&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sat, 18 Aug 2012 11:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/2331671</guid>
</item>
<item>
 <title>Geostatistics and the 500-mile Email Problem</title>
 <link>http://java.sys-con.com/node/2270634</link>
 <description>In the mid-1990s, a Statistics professor at UNC reported an IT problem: he couldn&#039;t send email more than 500 miles away. He&#039;d had geostatisticians plot the sites where emails could be sent successfully and where they bounced, and found they described a circle a radius slightly over 500 miles. Some sites within the circle could sporadically receive email, but definitely none outside them. The solution to the problem, which involves old sendmail.cf formats and the speed of light, is well worth a read.
        
            David Smith&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/2270634&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sun, 06 May 2012 11:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/2270634</guid>
</item>
<item>
 <title>Scott McNealy To Testify for Oracle in Java Trial</title>
 <link>http://java.sys-con.com/node/2263813</link>
 <description>Former Sun CEO Scott McNealy, an off-again-on-again buddy of
Oracle CEO Larry Ellison, is going to testify for Oracle Thursday in its
infringement suit against Google and Android.

His appearance could wrap up Oracle’s side of the copyright infringement
part of the trial and he could be followed on the witness stand by his
successor at Sun Jonathan Schwartz who’s supposed to testify for Google.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/2263813&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 26 Apr 2012 08:15:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/2263813</guid>
</item>
<item>
 <title>Judge Bars Oracle’s Newly Validated Patent from Java Trial</title>
 <link>http://java.sys-con.com/node/2263809</link>
 <description>The judge in the Java trial told Oracle late Wednesday that it can’t assert
the patent that the Patent and Trademark Office just said was valid against
Google.

It’s too late, he said, although the patent part of the case won’t start until
next week or whenever the jury decides the trademark infringement part it’s
been hearing since April 16.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/2263809&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 26 Apr 2012 00:01:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/2263809</guid>
</item>
<item>
 <title>How to Cannibalize Your Own Products Without Getting Eaten Alive</title>
 <link>http://java.sys-con.com/node/2252363</link>
 <description>The scenario is fairly typical. You launch your SaaS application for $14.99 per month. A few months later, a competitor launches a competing service for $10 per month. How do you respond with a competitive offer without cannibalizing your existing customers? We asked three software executives for their thoughts on the topic and have summarized their responses.
In the above scenario, you are introducing a new tier in the Free-&gt;Premium continuum. The inherent risk is that existing customers might want to downgrade to the new level to save albeit with a constrained set of features. While you cannot stop this, one way to have your customers think about this decision is to make the distinction between the SKUs extremely clear in the new tier vs. the premium SKUs. For example, at the low-end customers might be able to only perform 50 transactions a month (or an equivalent measure that makes sense in your business). While this might be okay for someone who is getting on board just to try the service, existing customers must think twice about downgrading for the ever-present fear of &quot;what if I grow?&quot; Usage-based price tiering lets your customers experience the product with little risk then upgrade to customize features to their unique needs.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/2252363&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sat, 21 Apr 2012 13:30:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/2252363</guid>
</item>
<item>
 <title>Generating Ext JS and Java CRUD Applications with CDB</title>
 <link>http://java.sys-con.com/node/2255582</link>
 <description>Clear Data Builder for Ext JS (CDBExt) is an open source tool that automatically builds Ext JS/Java EE CRUD applications given one or more annotated Java interfaces. The generated JavaScript and Java code enforce best Ext JS and Java EE practices and is deployed on the development version of the Tomcat ready to run. A [...]&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=yakovfain.com&amp;amp;blog=16177610&amp;amp;post=7383&amp;amp;subd=yakovfain&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; height=&quot;1&quot; /&gt;&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/2255582&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 20 Apr 2012 05:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/2255582</guid>
</item>
<item>
 <title>Component Development and Assembly Using OSGi Services </title>
 <link>http://java.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://java.sys-con.com/node/2146647&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 10 Apr 2012 13:30:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/2146647</guid>
</item>
<item>
 <title>Next-Gen Concurrency in Java: The Actor Model</title>
 <link>http://java.sys-con.com/node/2206076</link>
 <description>In a time where the clock speeds of processors have been stable over the past couple of years, and Moore&#039;s Law is instead being applied by increasing the number of processor cores, it is getting more important for applications to use concurrent processing to reduce run/response times, as the time slicing routine via increased clock speed will no longer be available to bail out slow running programs.
Carl Hewitt proposed the Actor Model in 1973 as a way to implement unbounded nondeterminism in concurrent processing. In many ways this model was influenced by the packet switching mechanism, for example, no synchronous handshake between sender and receiver, inherently concurrent message passing, messages may not arrive in the order they were sent, addresses are stored in messages, etc.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/2206076&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 15 Mar 2012 10:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/2206076</guid>
</item>
<item>
 <title>Scaling Java and JSP Apps with Distributed Caching</title>
 <link>http://java.sys-con.com/node/2183276</link>
 <description>Java is the technology of choice for high-end enterprise applications. The most common applications that developers are involved with are JavaServer Pages web applications, also known as JSP applications. JSP has become one of the two standards for developing high traffic web applications, the other being Microsoft ASP.NET. Being part of Java, JSP has been popular for a long time and is highly instrumental in promoting Web technologies for developing high-traffic applications. Millions of people are using JSP applications and those numbers keep growing.
These JSP applications are endowed with an architecture that scales very nicely. You can handle more and more users by adding more web servers to a load-balanced Web farm. As you have an increasing amount of transaction load, you just keep adding more servers to the Web farm. That way you can handle more transactions and more concurrent users.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/2183276&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 14 Mar 2012 15:15:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/2183276</guid>
</item>
<item>
 <title>How to Get Started with Java and NetBeans </title>
 <link>http://java.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://java.sys-con.com/node/2159493&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 12 Mar 2012 05:45:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/2159493</guid>
</item>
<item>
 <title>Why Rule-Based Log Correlation Is Almost a Good Idea (Part 8)</title>
 <link>http://java.sys-con.com/node/2192641</link>
 <description>You bought a static rule-based correlation and you want to get the most out of it, or are you planning on getting and deploying one? There are some simple steps you can take to maximize its efficiency.
The main use case for correlation is real-time incident management, so you need a 24x7x365 team of forensics experts to validate and follow-up on alerts - in real time.
No need to have real-time correlation if you only have a 9-5 operation...
If an alarm goes on at 3.a.m., do you have the skilled staff to act on it? If the answer is no, can you afford such a team? If you can&#039;t afford a 24x7 staff of experts, ask yourself if correlation is really the most appropriate effort for you.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/2192641&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 09 Mar 2012 07:15:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/2192641</guid>
</item>
<item>
 <title>Avoiding Merge Hell with Development Hierarchies</title>
 <link>http://java.sys-con.com/node/2197025</link>
 <description>As you start to scale a software development process it becomes apparent that code and user stories have to be merged more frequently. Sometimes changes may flow from one organization to another. This means that you will need to take code from one team, merge, integrate and test those changes with everyone. &lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/2197025&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 08 Mar 2012 05:50:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/2197025</guid>
</item>
<item>
 <title>SDD Cache: Why is Cache Write Through Good? </title>
 <link>http://java.sys-con.com/node/2192488</link>
 <description>&lt;span id=&quot;internal-source-marker_0.6933702631221755&quot; style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;Whether &amp;lsquo;tis nobler in the mind to suffer the slings and arrows of your IT manager or to take up cache against a sea of data. &amp;nbsp;With apologies to Bill Shakespeare, the &lt;/span&gt;&lt;span style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: normal; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;IT Dog&lt;/span&gt;&lt;span style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt; is discussing two different cache write policies: &lt;/span&gt;&lt;span style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: normal; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;write through&lt;/span&gt;&lt;span style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt; and &lt;/span&gt;&lt;span style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: normal; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;write back&lt;/span&gt;&lt;span style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;. &amp;nbsp;Let me take a run at telling you what they are, why they are different and what you need to think about when you decide what policy to use.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;Cache Write Through&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;This is the easier to explain and understand of the two policies discussed here. &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: normal; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;Cache write through&lt;/span&gt;&lt;span style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt; is like having your cake and eating it too. &amp;nbsp;Data is written into cache for fast retrieval when needed for a future operation and at the same time, the data is written into the underlying memory location (think central database or primary storage here). &amp;nbsp;Why is cache write through good? &amp;nbsp;Because it insures the integrity of the data in the database so if another application needs to access the same data, you can be sure the data in the database is correct or &amp;lsquo;fresh&amp;rsquo;. &amp;nbsp;Another benefit to cache write through is there is always a good, reliable copy of the data in the database if something happens to the cache itself (e.g. power failure). &amp;nbsp;&amp;ldquo;So &lt;/span&gt;&lt;span style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: normal; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;Dog&lt;/span&gt;&lt;span style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;, why wouldn&amp;rsquo;t I do cache write through all the time?&amp;rdquo; &amp;nbsp;Well, because cache write through has a little problem in that the writing application must wait for the completion of the write into the primary storage before it can proceed with the next operation and as you well know, writing to primary storage can be slow which is why you are using cache in the first place. &amp;nbsp;Write through cache can therefore slow down the application. &amp;nbsp;So you get data integrity and assurance at the expense of application speed.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;Getting Down And Dirty&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;We need to get a little dirty here to explain &lt;/span&gt;&lt;span style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: normal; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;cache write back&lt;/span&gt;&lt;span style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;. &amp;nbsp;No, not that kind of dirty; we are still talking about data and applications here. &amp;nbsp;Cache write back uses cache as the temporary storage for the &amp;lsquo;freshest&amp;rsquo; data and that same data is updated in the primary storage at a later time. &amp;nbsp;This means that when a data location is updated, it is written to only to cache, not to primary storage and the data in cache is termed &amp;lsquo;fresh&amp;rsquo;. &amp;nbsp;The corresponding data location in primary storage now does not match the &amp;lsquo;fresh&amp;rsquo; cache data and is now considered &amp;lsquo;stale&amp;rsquo;. &amp;nbsp;The cache controller keeps track of the state of the primary storage (fresh or stale) by using a &amp;lsquo;dirty&amp;rsquo; bit to indicate if the data in the primary storage matches the cache data copy or does not. &amp;nbsp;If a request for the stale data from primary storage comes in from another application, then the controller has to update the primary storage location before the application can use the data. &amp;nbsp;&amp;ldquo;Why would I use this cache policy?&amp;rdquo; &amp;nbsp;Well, because data is not written into slower, primary storage each time it is updated, the writing application does not have to wait for the write to primary storage to be completed before moving on to the next operation so the application runs faster. &amp;nbsp;The problem with this policy is there is a small chance that the fresh cache data (or the dirty bit) can be corrupted before the data is written into primary storage. &amp;nbsp;So you get speed at the expense of possible loss of data integrity.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;What To Do When?&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;The question on which of these two cache policies to use depends on the application. &amp;nbsp;Applications that absolutely cannot risk data loss (banks storing real-time trading info, continuous data protection in back store) should use write through cache policy and applications that can tolerate data loss (back end, analytics, etc.) can speed performance by using write back cache policy.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;Tell Me What Your Policy Is&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 15px; font-family: Arial; color: #000000; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;Let me know if you have experience with using either write back or write through cache policy and what you have learned from deploying that technique.&lt;/span&gt;&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/2192488&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 07 Mar 2012 07:30:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/2192488</guid>
</item>
<item>
 <title>Graal, a Dynamic Java Compiler in the Works</title>
 <link>http://java.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://java.sys-con.com/node/2166548&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 22 Feb 2012 10:04:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/2166548</guid>
</item>
<item>
 <title>Migration Failures in a WebSphere Network Deployment on an AIX Platform</title>
 <link>http://java.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://java.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://java.sys-con.com/node/2159860</guid>
</item>
<item>
 <title>Book Review: The Definitive Guide to HTML5</title>
 <link>http://java.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://java.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://java.sys-con.com/node/2154185</guid>
</item>
<item>
 <title>Asynchronous Logging Using Spring</title>
 <link>http://java.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://java.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://java.sys-con.com/node/2123093</guid>
</item>
<item>
 <title>Why Rule-Based Log Correlation Is Almost a Good Idea... (Part 5)</title>
 <link>http://java.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://java.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://java.sys-con.com/node/2115862</guid>
</item>
<item>
 <title>Book Review: Sams Teach Yourself Java in 24 Hours</title>
 <link>http://java.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://java.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://java.sys-con.com/node/2107399</guid>
</item>
<item>
 <title>Third-Party Content Management Applied</title>
 <link>http://java.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://java.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://java.sys-con.com/node/2111996</guid>
</item>
<item>
 <title>Book Review: Data Integration Blueprint and Modeling</title>
 <link>http://java.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://java.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://java.sys-con.com/node/2095534</guid>
</item>
<item>
 <title>Book Review: The CERT Oracle Secure Coding Standard for Java</title>
 <link>http://java.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://java.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://java.sys-con.com/node/2092756</guid>
</item>
<item>
 <title>Book Excerpt: Java Application Profiling Tips and Tricks - Part 2</title>
 <link>http://java.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://java.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://java.sys-con.com/node/2088381</guid>
</item>
<item>
 <title>Exploring PureMVC</title>
 <link>http://java.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://java.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://java.sys-con.com/node/2088539</guid>
</item>
<item>
 <title>Java for Programmers (2nd Edition)</title>
 <link>http://java.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://java.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://java.sys-con.com/node/2084733</guid>
</item>
<item>
 <title>PaaS 2.0 Adds Standards and Greater Developer Control </title>
 <link>http://java.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://java.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://java.sys-con.com/node/2083113</guid>
</item>
<item>
 <title>Book Review: Java Performance</title>
 <link>http://java.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://java.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://java.sys-con.com/node/2080857</guid>
</item>
<item>
 <title>Five Years Waiting for JRE 7: Is It Justified? (Part 1)</title>
 <link>http://java.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://java.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://java.sys-con.com/node/2070354</guid>
</item>
<item>
 <title>Book Excerpt: Java Application Profiling Tips and Tricks</title>
 <link>http://java.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://java.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://java.sys-con.com/node/2067673</guid>
</item>
<item>
 <title>You Only Control One-Third of Your Page Load Performance!</title>
 <link>http://java.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://java.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://java.sys-con.com/node/2066022</guid>
</item>
<item>
 <title>Essential Skills for the Agile Developer</title>
 <link>http://java.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://java.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://java.sys-con.com/node/2056126</guid>
</item>
<item>
 <title>Spring: The Art of Using GRASP Patterns</title>
 <link>http://java.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://java.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://java.sys-con.com/node/2041435</guid>
</item>
<item>
 <title>Architecture Evaluation Framework for ORM Technologies</title>
 <link>http://java.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://java.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://java.sys-con.com/node/2012570</guid>
</item>
<item>
 <title>The Right End of REST</title>
 <link>http://java.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://java.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://java.sys-con.com/node/2012750</guid>
</item>
<item>
 <title>Book Review: Java The Complete Reference, 8th Edition </title>
 <link>http://java.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://java.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://java.sys-con.com/node/2007185</guid>
</item>
<item>
 <title>Java, A Beginner&#039;s Guide, 5th Edition</title>
 <link>http://java.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://java.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://java.sys-con.com/node/1997758</guid>
</item>
<item>
 <title>Dealing with Application Deadlocks</title>
 <link>http://java.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://java.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://java.sys-con.com/node/1969495</guid>
</item>
<item>
 <title>New Features in JavaServer Faces 2.0 </title>
 <link>http://java.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://java.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://java.sys-con.com/node/1952954</guid>
</item>
</channel>
</rss>
