* Why I will use Java EE (JEE, and not J2EE) instead of Spring: Here the author compares JEE and Spring (in a non-flamatory way) and discusses their advantages and disadvantages. After a short history flashback, pros and cons are presented and in the end Java EE wins with a slight edge. On a similar note, check out how to migrate From Spring to Java EE 6.
* Why Software Projects are Terrible and How Not To Fix Them: A nice article on why software projects lack quality, main reason being that best practices are not followed because they are totally non-intuitive. Another reason presented is that manager lack knowledge on the matter and they usually iterate on assigning blame. The solution is to avoid selling to people who won’t be receptive, but try to attract like-minded people who already know you are right.
* Setting the Record Straight on GWT: A short and to the point analysis of what GWT is and what is not. Also check out Getting Started with SmartGWT for awesome GWT interfaces and GWT 2 Spring 3 JPA 2 Hibernate 3.5 Tutorial.
* Asynchronous Memcached with a Side of Ketchup and Membase: A presentation that explains with code samples how to combine caching with asynchronous IO using memcached, Membase and Ketchup in order to maximize the throughput of an application.
* Data Management Options for Android Applications: An overview of the various data management options for Android apps, including internal storage, SD card, database, shared preferences and web storage.
* Making Android Games that Play Nice: The first part of series of posts on Android game development. The author talks about how to handle the audio part of your game and more specifically how to tackle the game’s audio lifecycle issues. Also, don’t miss our Android Game Development Tutorials.
* Cross-Platform Development Considerations: If you want your app or service to reach the largest audience possible, developing for various platforms makes sense. The pros and cons of cross-platform development are discussed in this article along with a description of the most well known, including PhoneGap, RhoMobile, Appcelerator, Corona SDK and Unity3D.
* File Management in Java with Guava’s Files Class: A tutorial on using Guava’s Files class for easier file management and operations like file creation, file copying/moving, file comparison, touching files, retrieving file contents, creation of temporary directories, retrieving file contents as lines and more. Also check out Google Guava Libraries Essentials.
* Remote partitioning with Spring Batch: This tutorial shows how to use Spring Batch in order to perform a remote execution of partitions where JMS would be used to transport the requests and responses.
* Getting Started with MongoDB: An introductory tutorial on MongoDB showing how to create, update and delete databases and records and how to perform complex searches for data and elementary data mining with MapReduce. Also check out Using MongoDB with Morphia.
* State of Performance and Stability in Java 7 Update 1: An overview of the performance improvements included in the Java 7 update 1 version, like Tiered compilation, Compressed Oops, Escape Analysis and Non Uniform Memory Access Garbage Collection.
* The reason I don’t monitor connection pool usage: An article stating that pool usage alone does not tell us enough, but acquisition time (the time that a transaction has to wait for a connection from the pool) does. Impact measures like acquisition time are far more useful and actionable.
* Performance Tuning the JVM for Running Apache Tomcat: This article provides some basic JVM tuning (targeted on Apache Tomcat) such as defining the heap size used by the JVM, the size of the permanent generation space, the size of the stack for each thread etc. Additionally, the available garbage collectors are described along with some of their configurable parameters.
That’s all for this week. Stay tuned for more, here at Java Code Geeks.