<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>j2ee &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/j2ee/</link>
	<description>Feed of posts on WordPress.com tagged "j2ee"</description>
	<pubDate>Thu, 26 Nov 2009 19:25:36 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Je cherche un nouveau boulot!]]></title>
<link>http://leblogdekitov.wordpress.com/2009/11/26/je-cherche-un-nouveau-boulot/</link>
<pubDate>Thu, 26 Nov 2009 11:50:23 +0000</pubDate>
<dc:creator>Kitov</dc:creator>
<guid>http://leblogdekitov.wordpress.com/2009/11/26/je-cherche-un-nouveau-boulot/</guid>
<description><![CDATA[Au cas ou cet article tombe sous les yeux de quelqu&#8217;un que je peux intéresser&#8230; Je suis a]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Au cas ou cet article tombe sous les yeux de quelqu&#8217;un que je peux intéresser&#8230;</p>
<p>Je suis actuellement à la recherche d&#8217;un boulot de développeur/Leader Technique/Architecte autour des technologies Java/J2EE. Mon CV en ligne est disponible sur LinkedIn à l&#8217;adresse suivante : <a href="http://www.linkedin.com/in/chamerling">http://www.linkedin.com/in/chamerling</a></p>
<p>Actuellement à Toulouse, je vise le secteur de Montpellier&#8230; Le SUD, le vrai!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[อะไรคือความแตกต่างระหว่าง response.sendRedirect(), RequestDispatcher.forward(), และ PageContext.forward()? ]]></title>
<link>http://kobdesign.wordpress.com/2009/11/26/%e0%b8%ad%e0%b8%b0%e0%b9%84%e0%b8%a3%e0%b8%84%e0%b8%b7%e0%b8%ad%e0%b8%84%e0%b8%a7%e0%b8%b2%e0%b8%a1%e0%b9%81%e0%b8%95%e0%b8%81%e0%b8%95%e0%b9%88%e0%b8%b2%e0%b8%87%e0%b8%a3%e0%b8%b0%e0%b8%ab%e0%b8%a7/</link>
<pubDate>Thu, 26 Nov 2009 10:14:03 +0000</pubDate>
<dc:creator>kobdesign</dc:creator>
<guid>http://kobdesign.wordpress.com/2009/11/26/%e0%b8%ad%e0%b8%b0%e0%b9%84%e0%b8%a3%e0%b8%84%e0%b8%b7%e0%b8%ad%e0%b8%84%e0%b8%a7%e0%b8%b2%e0%b8%a1%e0%b9%81%e0%b8%95%e0%b8%81%e0%b8%95%e0%b9%88%e0%b8%b2%e0%b8%87%e0%b8%a3%e0%b8%b0%e0%b8%ab%e0%b8%a7/</guid>
<description><![CDATA[ผมเองมักจะลืมว่า เจ้าเมธอดทั้งสามตัวนี้มันต่างกันตรงใหน เขียนผิดเขียนถูกอยู่นั่นแหละ รำคาญตัวเองก็เล]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>ผมเองมักจะลืมว่า เจ้าเมธอดทั้งสามตัวนี้มันต่างกันตรงใหน เขียนผิดเขียนถูกอยู่นั่นแหละ รำคาญตัวเองก็เลยมาเขียนในบล๊อกเอาไว้กันลืม และเผื่อจะมีผู้สนใจร่วมคอมเม้นต์มาแลกเปลี่ยนความรู้ความคิดเห็นกัน</p>
<p>RequestDispatcher.forward() เป็นการทำงานที่อยู่บนเซิร์บเวอร์ แต่ response.sendRedirect() ทำงานอยู่บนบราวเซอร์. เมื่อมีการเรียกใช้งาน RequestDispatcher.forward(), servlet engine จะำทำการ Transfer control ของ HTTP request ที่ได้รับมาตั้งแต่แรกและยังทำงานอยู่ที่ Servlet หรือ ที่ JSP ยังทำการที่ Servlet อื่น. แต่เมื่อทำการเรียกใช้งาน response.sendRedirect() การส่งภาระให้กับบราวเซอร์คืนกลับไปจัดการเอง เหมือนทำให้ท้องแล้วไม่รับผิดชอบยังใงยังงั้น อ๊อบเจ็คต์ Request Response ก็ให้บราวเซอร์ทำการ Route ไปหา Servlet อื่นหรือหน้า JSP อื่นตัวเก่าก็ไม่เหลืออะไร</p>
<p>ส่วน RequestDispatcher.forward() และ PageContext.forward() จะมีหน้าที่เหมือนๆ กันแต่ PageContext.forward() จะเป็น Method Helper ให้กับทาง RequestDispacher.forward() อีกทีหนึ่งนั่นเอง</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[ J2EE - Java 2 Enterprise Edition]]></title>
<link>http://dbglory.wordpress.com/2009/11/25/j2ee-java-2-enterprise-edition/</link>
<pubDate>Wed, 25 Nov 2009 19:17:18 +0000</pubDate>
<dc:creator>dbglory</dc:creator>
<guid>http://dbglory.wordpress.com/2009/11/25/j2ee-java-2-enterprise-edition/</guid>
<description><![CDATA[Introduction au Java Framework Le «Java Framework» (Java 2 Platform) est composé de trois éditions, ]]></description>
<content:encoded><![CDATA[Introduction au Java Framework Le «Java Framework» (Java 2 Platform) est composé de trois éditions, ]]></content:encoded>
</item>
<item>
<title><![CDATA[Unable to loadProperties]]></title>
<link>http://corejavadev.wordpress.com/2009/11/25/unable-to-loadproperties/</link>
<pubDate>Wed, 25 Nov 2009 07:07:03 +0000</pubDate>
<dc:creator>corejavadeveloper</dc:creator>
<guid>http://corejavadev.wordpress.com/2009/11/25/unable-to-loadproperties/</guid>
<description><![CDATA[java.io.IOException: Unable to loadProperties:java.util.MissingResourceException: Can’t find bundle ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>java.io.IOException: Unable to loadProperties:java.util.MissingResourceException: Can’t find bundle for base name mailprop, locale en_US<br />
at com.dynamicRouter.Utility.FileMarshal.loadProperties(FileMarshal.java:48)<br />
at com.dynamicRouter.servlet.AshSrv.CreateMail(AshSrv.java:189)<br />
at com.dynamicRouter.servlet.AshSrv.doPost(AshSrv.java:82)<br />
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)<br />
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[struts : Cannot forward after response has been committed]]></title>
<link>http://corejavadev.wordpress.com/2009/11/25/struts-cannot-forward-after-response-has-been-committed/</link>
<pubDate>Wed, 25 Nov 2009 07:06:08 +0000</pubDate>
<dc:creator>corejavadeveloper</dc:creator>
<guid>http://corejavadev.wordpress.com/2009/11/25/struts-cannot-forward-after-response-has-been-committed/</guid>
<description><![CDATA[Mar 27, 2008 1:58:30 AM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Mar 27, 2008 1:58:30 AM org.apache.catalina.core.StandardWrapperValve invoke<br />
SEVERE: Servlet.service() for servlet action threw exception<br />
java.lang.IllegalStateException: Cannot forward after response has been committed<br />
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:302)</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Mail: Sender address must contain a…………….]]></title>
<link>http://corejavadev.wordpress.com/2009/11/25/mail-sender-address-must-contain-a%e2%80%a6%e2%80%a6%e2%80%a6%e2%80%a6%e2%80%a6/</link>
<pubDate>Wed, 25 Nov 2009 07:03:04 +0000</pubDate>
<dc:creator>corejavadeveloper</dc:creator>
<guid>http://corejavadev.wordpress.com/2009/11/25/mail-sender-address-must-contain-a%e2%80%a6%e2%80%a6%e2%80%a6%e2%80%a6%e2%80%a6/</guid>
<description><![CDATA[2008-03-20 17:57:28,546[ERROR] com.dynamicRouter.Utility.dmMail: 230- send:com.sun.mail.smtp.SMTPSen]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>2008-03-20 17:57:28,546[ERROR] com.dynamicRouter.Utility.dmMail: 230- send:com.sun.mail.smtp.SMTPSendFailedException: 501 &#60;DynamicMethod&#62;: sender address must contain a domain</p>
<p>com.sun.mail.smtp.SMTPSendFailedException: 501 &#60;DynamicMethod&#62;: sender address must contain a domain</p>
<p>at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1388)<br />
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:959)<br />
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:583)<br />
at javax.mail.Transport.send0(Transport.java:169)<br />
at javax.mail.Transport.send(Transport.java:98)<br />
at com.dynamicRouter.Utility.dmMail.send(dmMail.java:224)…………………</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[init javax.naming.NameNotFoundException]]></title>
<link>http://corejavadev.wordpress.com/2009/11/25/init-javax-naming-namenotfoundexception/</link>
<pubDate>Wed, 25 Nov 2009 07:02:02 +0000</pubDate>
<dc:creator>corejavadeveloper</dc:creator>
<guid>http://corejavadev.wordpress.com/2009/11/25/init-javax-naming-namenotfoundexception/</guid>
<description><![CDATA[I am using JDBC to connect to to embedded Derby database.I got Exception “Naming exception in JNDIDa]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I am using JDBC to connect to to embedded Derby database.I got Exception<br />
“Naming exception in JNDIDatabase init javax.naming.NameNotFoundException: Name jdbc is not bound in this Context</p>
<p>Solution:</p>
<h3>context.xml</h3>
<p>Context antiJARLocking=”true”&#62;</p>
<p>&#60;Resource name=”jdbc/myDB” auth=”Container” type=”com.atomikos.jdbc.SimpleDataSourceBean”<br />
factory=”org.apache.naming.factory.BeanFactory”<br />
uniqueResourceName=”jdbc/myDB”<br />
xaDataSourceClassName=”org.apache.derby.jdbc.EmbeddedXADataSource”<br />
exclusiveConnectionMode=”true”<br />
connectionPoolSize=”3″<br />
connectionTimeout=”10″<br />
xaDataSourceProperties=”databaseName=../work/users1;createDatabase=create”/&#62;</p>
<p>&#60;Transaction factory=”com.atomikos.icatch.jta.UserTransactionFactory” /&#62;</p>
<p>&#60;/Context&#62;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Spring MVC validation Configuration]]></title>
<link>http://corejavadev.wordpress.com/2009/11/25/spring-mvc-validation-configuration/</link>
<pubDate>Wed, 25 Nov 2009 07:00:30 +0000</pubDate>
<dc:creator>corejavadeveloper</dc:creator>
<guid>http://corejavadev.wordpress.com/2009/11/25/spring-mvc-validation-configuration/</guid>
<description><![CDATA[Commons Validation Pros: Optimal use of use of resources: JavaScript validations are provided when J]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><strong>Commons Validation</strong></p>
<p><strong>Pros:</strong></p>
<p>Optimal use of use of resources: JavaScript validations are provided when JavaScript is enabled, and server-side validations are guaranteed.</p>
<p>A single point of maintenance: both client-side and server-side validations are generated from the same configuration and use the same error message.</p>
<p><strong>Cons:</strong></p>
<p>Lack of data conversions and transformations</p>
<p>The generated JavaScript is no modal, it does not engage until the form is submitted.</p>
<p><strong>Spring Validation</strong></p>
<p><strong>Pros:</strong></p>
<p>Server-side validation is easy to implement org.springframework.validation.Validator.</p>
<p>Use the same error message as commons validation. Easy internationalization.</p>
<p><strong>Cons:</strong></p>
<p>Spring client-side validation is in development progress, need standard version.</p>
<p><strong>Configuration:</strong></p>
<p><strong>1. WEB-INF/validation-rules.xml </strong></p>
<p>default validation rules<strong> </strong>such as email , creditcard, date validation rules.</p>
<p><strong>2. WEB-INF/validation.xml </strong></p>
<p>User-defined form validation rules.</p>
<p>&#60;form-validation&#62;</p>
<p>&#60;formset&#62;</p>
<p>&#60;form&#62;</p>
<p>&#60;field property=”username” depends=”required”&#62;</p>
<p>&#60;arg0 key=”signonusername”/&#62;</p>
<p>&#60;/field&#62;</p>
<p>&#60;field property=”password” depends=”required”&#62;</p>
<p>&#60;arg0 key=”signonpassword”/&#62;</p>
<p>&#60;/field&#62;</p>
<p>&#60;field property=”lastName” depends=”required”&#62;</p>
<p>&#60;arg0 key=”accountfirstname”/&#62;</p>
<p>&#60;/field&#62;</p>
<p>&#60;field property=”firstName” depends=”required”&#62;</p>
<p>&#60;arg0 key=”accountlastname”/&#62;</p>
<p>&#60;/field&#62;</p>
<p>&#60;field property=”email” depends=”required, email”&#62;</p>
<p>&#60;arg0 key=”accountemail”/&#62;</p>
<p>&#60;/field&#62;</p>
<p>&#60;/form&#62;</p>
<p>&#60;/formset&#62;</p>
<p>&#60;/form-validation&#62;</p>
<p><strong>3. Web-INF/dms-servlet.xml </strong>add bean configuration<strong> </strong></p>
<p>&#60;bean class=”org.springmodules.commons.validator.DefaultValidatorFactory”&#62;</p>
<p>&#60;property name=”validationConfigLocations”&#62;</p>
<p>&#60;list&#62;</p>
<p>&#60;value&#62;/WEB-INF/validator-rules.xml&#60;/value&#62;</p>
<p>&#60;value&#62;/WEB-INF/validation.xml&#60;/value&#62;</p>
<p>&#60;/list&#62;</p>
<p>&#60;/property&#62;</p>
<p>&#60;/bean&#62;</p>
<p>&#60;!–  Validating the Spring way –&#62;</p>
<p>&#60;bean id=”userValidator”/&#62;</p>
<p>&#60;!–Commons Validation define –&#62;</p>
<p>&#60;bean class=”org.springmodules.commons.validator.DefaultBeanValidator”&#62;</p>
<p>&#60;property ref=”validatorFactory”/&#62;</p>
<p>&#60;/bean&#62;</p>
<p><strong>4.Web-INF/dms-servlet.xml</strong> Add validator property in Spring contoller</p>
<p>&#60;bean id=”createUserController”&#62;</p>
<p>&#60;property name=”commandName” value=”account”/&#62;</p>
<p>&#60;property name=”formView” value=”createUser”/&#62;</p>
<p>&#60;property name=”successView” value=”redirect:logout.jsp”/&#62;</p>
<p>&#60;property name=”serviceLocator” ref=”serviceLocator”/&#62;</p>
<p>&#60;property name=”validators”&#62;</p>
<p>&#60;list&#62;</p>
<p>&#60;ref bean=”beanValidator”/&#62;      &#60;!–Commons Server-side validation –&#62;</p>
<p>&#60;ref bean=”userValidator”/&#62;       &#60;!–Spring validation –&#62;</p>
<p>&#60;/list&#62;</p>
<p>&#60;/property&#62;</p>
<p><strong>5. WEB-INF/classes/message_en_US.properties (English version)</strong> Add error message for the validation.</p>
<p># — validator errors –</p>
<p>errors.required= {0} is required.</p>
<p>errors.minlength={0} can not be less than {1} characters.</p>
<p>errors.maxlength={0} can not be greater than {1} characters.</p>
<p>errors.invalid={0} is invalid.</p>
<p><strong>6. Add class Dms.view.validator.UserValidator </strong>Spring server-side validator class.</p>
<p><strong>7. Modify taglibs.jsp </strong>add jsp file tag definition</p>
<p>&#60;%@ tglib uri=”http://www.springmodules.org/tags/commons-validator” prefix=”validator” %&#62;</p>
<p><strong>8. Modify /jsp/createUser.jsp</strong> add commons validation tag</p>
<p>Modify:</p>
<p>&#60;form method=”post” action=”&#60;c:url value=”/createUser.html”/&#62;”&#62;</p>
<p>Add in the last line:</p>
<p>&#60;validator:javascript formName=”account”</p>
<p>staticJavascript=”false” xhtml=”true” cdata=”false”/&#62;</p>
<p>&#60;script</p>
<p>src=”&#60;c:url value=”/scripts/validator.jsp”/&#62;”&#62;&#60;/script&#62;</p>
<p><strong>9: Add /scripts/validator.jsp </strong></p>
<p>&#60;%@ page contentType=”javascript/x-javascript” %&#62;</p>
<p>&#60;%@ taglib uri=”http://www.springmodules.org/tags/commons-validator” prefix=”validator” %&#62;</p>
<p>&#60;validator:javascript dynamicJavascript=”false” staticJavascript=”true”/&#62;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Persisting state in Servlets]]></title>
<link>http://manjubhat.wordpress.com/2009/11/25/persisting-state-in-servlets/</link>
<pubDate>Wed, 25 Nov 2009 00:25:35 +0000</pubDate>
<dc:creator>Manjunath Bhat</dc:creator>
<guid>http://manjubhat.wordpress.com/2009/11/25/persisting-state-in-servlets/</guid>
<description><![CDATA[Only a single instance of the servlet is created, and each request simply results in a new thread ca]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Only a single instance of the servlet is created, and each request simply results in a new thread calling the servlet’s <strong>service </strong>method (which calls <strong>doGet </strong>or <strong>doPost</strong>). So, shared data simply has to be placed in a regular instance variable (field) of the servlet. Thus, the servlet can access the appropriate ongoing calculation when the browser reloads the page and can keep a list of the N most recently requested results, returning them immediately if a new request specifies<br />
the same parameters as a recent one. Of course, the normal rules that require authors to synchronize multithreaded access to shared data still  apply to servlets.</p>
<p>Servlets can also store persistent data in the Servlet-Context object that is available through the getServletContext method. <strong>ServletContext</strong> has <strong>setAttribute </strong>and <strong>getAttribute </strong>methods that let you store arbitrary data associated with specified keys.</p>
<p>The difference between storing data in instance variables and storing it in the Servlet- Context is that the ServletContext is shared by all servlets in the servlet engine.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Application Administrator]]></title>
<link>http://mindsourceinc.wordpress.com/2009/11/24/application-administrator/</link>
<pubDate>Tue, 24 Nov 2009 22:33:50 +0000</pubDate>
<dc:creator>Michelle</dc:creator>
<guid>http://mindsourceinc.wordpress.com/2009/11/24/application-administrator/</guid>
<description><![CDATA[This position is an Application Administrator to support operations within our client&#8217;s depart]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>This position is an Application Administrator to support operations within our client&#8217;s department. This position has a critical role in delivering our services to clients and ensuring successful ongoing operation of our applications and services. It services a highly interactive software development build/release process as well as a rich operational environment with many interrelated applications/database services. The candidate should be self-motivated, detail oriented, adaptable to change and must work well in a flexible team environment with developers, QA, operations staff, system administrators and managers.</p>
<p><strong>RESPONSIBILITIES:</strong></p>
<p><span style="text-decoration:underline;"> </span></p>
<p><span style="text-decoration:underline;">Application and database support </span></p>
<ul>
<li>Provide on-going database administration in both back-end and front-end with application infrastructure support for our client&#8217;s administration systems, including the deployment of new applications.</li>
<li>Review the physical design of existing databases for optimal database structures, database performance tuning, security, database backup/recovery strategy, implementing high-availability, and pro-active and reactive performance analysis, monitoring, troubleshooting and resolution of issues, capacity planning, monitoring data growth and system utilization, trend analysis and predicting future database resource requirements.</li>
<li>Install web-base applications from ground up to full-ballooned implementation and support, including configuration at Unix/Linux/Windows system level, back-end integration with database, front-end integration with user-interface, final delivery to users to fulfill users’ requirement and on-going maintenance.</li>
<li>Take the lead in ensuring that application and web services are configured and tuned according to application needs; provide troubleshooting as needed.</li>
<li>Work with System Administrators to ensure test and production boxes conform to the software application configuration needs.</li>
<li>Support the department-wide infrastructure application for database management, system monitoring and notification, job scheduling, deployment, provision and patching automation, application topology and service level management for campus-wide system performance.</li>
</ul>
<p><span style="text-decoration:underline;">Build/release activities</span></p>
<ul>
<li>Manage the build, tagging and release processes for a number of interdependent Java web applications and background processes in the QA and production environments. Ensure the build and release process is scalable and repeatable.</li>
<li>Work with the development team to ensure efficient and understandable build procedures are adhered to and conform to a standard process for configuration and release management</li>
<li>Develop and maintain tools that automate the building of software releases for an Agile-based development process. This is one of continuous integration, where the automated build process can be run many times a day if necessary.</li>
<li>Work with and support the QA team to ensure automated test suites run as part of the continuous integration build process.</li>
</ul>
<p><strong>REQUIREMENT FOR SKILL AND COMPETENCIES:</strong></p>
<ul>
<li>Expert hands-on with shell scripts, other scripting languages, preferably Perl, and tool automations</li>
<li>Minimum 2 years database administration experience in Oracle and 3 years Application administration experience in Unix/Linux infrastructure environments is required.</li>
<li>Hands-on experience of Oracle databases 10g for 24/7 database operations and tool automation in installation, configuration, backup/recovery, startup/shutdown, data refresh, and application integrations.</li>
<li>Experience with OEM/Grid Control is highly desired.</li>
<li>Knowledge and understanding of large scale ERP implementation and support like Oracle Financial and PeopleSoft systems.</li>
<li>Expert knowledge of Apache and Tomcat, and other web/application servers such as JBoss</li>
<li>Strong Unix and system administration skills with basic network and security knowledge</li>
<li>Strong experience and ability in web applications deployment, configuration and integration from both OpenSource and Commercial based systems with or without sophisticated vendor support.</li>
<li>Java/J2EE based programs</li>
<li>Java/servlet/JSP based web applications</li>
<li>Experience with Subversion, PVCS or similar source code repository</li>
<li>Experience with Maven and familiarity with automated build processes</li>
<li>Experience with the Agile development methodology and concepts of extreme programming and continuous integration</li>
<li>Understanding of the layers/tiers of web applications and the communication protocol between the tiers with networking protocols (TCP/IP, HTTP, SSL, DNS, FTP, etc.)</li>
<li>Ability to multi-task and work in a team environment is critical and should have excellent communication skills in both verbal and written forms.</li>
<li>Ability to manage multiple competing priorities and work under pressure in high stress situations</li>
<li>Excellent communication skills in both verbal and written</li>
<li>Ability to work under pressure and to deliver results in a complex and dynamic operational environment</li>
</ul>
<p><strong>Qualifications</strong></p>
<p>Minimum 5 years as an IT professional in build/release and application/database administration, plus one or more of the following areas: IT infrastructure operations 24/7, systems analysis and design, or application development.</p>
<p><strong>Education</strong><br />
Bachelors Degree in Computer Science, Engineering or related field or equivalent experience</p>
<p>If you are interested, please send your resume to <a href="mailto:tsotelo@mindsource.com?subject=Application Administrator">tsotelo@mindsource.com</a>.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Inicio con IntelliJ IDEA]]></title>
<link>http://kumakros.wordpress.com/2009/11/24/inicio-con-intellij-idea/</link>
<pubDate>Tue, 24 Nov 2009 18:15:20 +0000</pubDate>
<dc:creator>kumakros</dc:creator>
<guid>http://kumakros.wordpress.com/2009/11/24/inicio-con-intellij-idea/</guid>
<description><![CDATA[Hoy comienzo a utilizar IntelliJ IDEA de forma profesional, es decir, con proyectos reales. He utili]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Hoy comienzo a utilizar IntelliJ IDEA de forma profesional, es decir, con proyectos reales. He utilizado este entorno antes, y creo que es uno de los más avanzados y rápidos. Soy usuario de Eclipse desde hace 2 años, y la verdad es que siempre a tenido problema de estabilidad. A veces, eclipse daba errores muy extraños que se solucionaban con volver a ejecutar la aplicación.</p>
<p>Según comenta la página de JetBrains (<a href="http://www.jetbrains.com/idea/">http://www.jetbrains.com/idea/</a>):</p>
<blockquote><p>IntelliJ IDEA lets you code without a hitch. It practices a non-intrusive, intuitive approach to help                 you write, debug, refactor, test and learn your code. Thanks to its deep understanding of languages and                 technologies, IntelliJ IDEA provides a second pair of hands for you when you need them. Playing the game                 by your rules without ever getting in your way — that&#8217;s our <em>idea</em> of a productive                 and pleasant development.</p></blockquote>
<p>Y espero que de verdad esto sea &#8220;pleasant development&#8221;.</p>
<p>Si alguien quiere utilizarlo puede ir a la página: <a href="http://www.jetbrains.com/idea/">http://www.jetbrains.com/idea/</a>, y descargarse una versión de pruebas de 30 días. O <a href="http://www.jetbrains.com/idea/download/index.html">http://www.jetbrains.com/idea/download/index.html</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[J2EE Architect, Costa Mesa, CA]]></title>
<link>http://infotechjobs.wordpress.com/2009/11/24/j2ee-architect-costa-mesa-ca/</link>
<pubDate>Tue, 24 Nov 2009 04:12:16 +0000</pubDate>
<dc:creator>tejasinfotech</dc:creator>
<guid>http://infotechjobs.wordpress.com/2009/11/24/j2ee-architect-costa-mesa-ca/</guid>
<description><![CDATA[Job # A91101 Job Title J2EE Architect Experience Level 9+ yrs (atleast 3 yrs as an Architect) Locati]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><table border="0" cellspacing="0" cellpadding="0" width="503">
<tbody>
<tr>
<td width="139" valign="bottom"><strong>Job #</strong></td>
<td width="364" valign="bottom">A91101</td>
</tr>
<tr>
<td width="139" valign="bottom"><strong>Job Title</strong></td>
<td width="364" valign="bottom"><strong>J2EE Architect</strong></td>
</tr>
<tr>
<td width="139" valign="bottom"><strong>Experience Level</strong></td>
<td width="364" valign="bottom">9+ yrs (atleast 3 yrs as an Architect)</td>
</tr>
<tr>
<td width="139" valign="bottom"><strong>Location</strong></td>
<td width="364" valign="bottom">Costa Mesa, CA</td>
</tr>
<tr>
<td width="139" valign="bottom"><strong>Start Date</strong></td>
<td width="364" valign="bottom">Immediate</td>
</tr>
<tr>
<td width="139" valign="bottom"><strong>Duration</strong></td>
<td width="364" valign="bottom">Long term</td>
</tr>
<tr>
<td width="139" valign="bottom"><strong>No. Of Positions</strong></td>
<td width="364" valign="bottom">1</td>
</tr>
<tr>
<td colspan="2" width="503" valign="bottom"><strong>Job Description</strong></td>
</tr>
<tr>
<td colspan="2" width="503"><strong>Must Have Skills: </strong>J2ee, Struts, Rule engine, web services, hibernate, Jboss, JBPM, knowledge of database concepts<br />
<strong>Desired Skills: </strong>Seam, open source rule engine, work flow engine, Agile dev methodology</td>
</tr>
</tbody>
</table>
<p>If you are interested, please send your resume, expected pay rate and citizenship status (US citizen/green card/work permit) to <a href="mailto:sarada@quality-waves.com">sarada@quality-waves.com</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Play - a Java framework for web applications]]></title>
<link>http://ksojkotech.wordpress.com/2009/11/23/play-a-java-framework-for-web-applications/</link>
<pubDate>Mon, 23 Nov 2009 16:49:41 +0000</pubDate>
<dc:creator>Karol Sójko</dc:creator>
<guid>http://ksojkotech.wordpress.com/2009/11/23/play-a-java-framework-for-web-applications/</guid>
<description><![CDATA[Not long ago i came across this cool Java framework for building your own web applications. Actually]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:justify;">Not long ago i came across this cool Java framework for building your own web applications. Actually I think someone posted it at Twitter ( <a title="playframework" href="http://twitter.com/playframework">@playframework</a> ). At first i saw the invitational presentation which you can find <a href="http://vimeo.com/7087610">here</a> or at the framework&#8217;s <a title="playframework" href="http://www.playframework.org/">page</a>.﻿</p>
<p style="text-align:justify;"><a href="http://ksojkotech.wordpress.com/files/2009/11/zrzut_ekranu.png"><img class="aligncenter size-full wp-image-219" style="border:0;" title="playframework" src="http://ksojkotech.wordpress.com/files/2009/11/zrzut_ekranu.png" alt="playframework" width="484" height="213" /></a></p>
<h2 style="text-align:justify;">First Impression</h2>
<p style="text-align:justify;">This looked like fun and was very similar to what I&#8217;m used to in <a title="symfony" href="http://www.symfony-project.org">Symfony</a> based web applications. So I said &#8220;what the hell&#8221; and started off with the tutorial, most of the things seemed obvious and I was pleased with the concept of writing in Java and having the ability to use any Java library I would like to.</p>
<h2 style="text-align:justify;">IDE</h2>
<p style="text-align:justify;">But wait, it gets even cooler. The guys developing this framework prepared some tasks to make your project integrate with your preferable Java IDE. If it&#8217;s <a title="NetBeans" href="http://netbeans.org/">NetBeans</a>, like it was in my case, or <a title="eclipse" href="http://www.eclipse.org/">Eclipse</a> this is a matter of typing one command in your console.</p>
<h2 style="text-align:justify;">All the keys you need to use &#8230;</h2>
<p style="text-align:justify;">The coolest thing about it I think is that while developing a web application in <a title="playframework" href="http://www.playframework.org/">Play</a> you get to use all sorts of solutions like Hibernate, OpenId, JUnit, templates based on Groovy and integrate them easily with your project.</p>
<h2 style="text-align:justify;">Fresh prince</h2>
<p style="text-align:justify;">Although this framework seems to be a reasonably &#8220;fresh&#8221; thing on the web (version 1.0 wright now), it has quite a good looking portfolio to speak for itself. I think this will aspire to be an awesome lite Java framework for all agile projects and web applications. Good luck and congrats to the <a title="playframework" href="http://www.playframework.org/">Play</a> team.</p>
<p style="text-align:center;"><a href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fksojkotech.wordpress.com%2F2009%2F11%2F23%2Fplay-a-java-framework-for-web-applications%2F&#38;linkname=Play%20-%20a%20Java%20framework%20for%20web%20applications%20%23playframework%20%23Java%20%23J2EE"><img class="aligncenter" style="border:0;" src="http://static.addtoany.com/buttons/share_save_256_24.png" alt="Share" /></a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[FindBugs Part 1]]></title>
<link>http://nikhilsidhaye.wordpress.com/2009/11/23/findbugs-part-1/</link>
<pubDate>Mon, 23 Nov 2009 16:18:14 +0000</pubDate>
<dc:creator>nikhilsidhaye</dc:creator>
<guid>http://nikhilsidhaye.wordpress.com/2009/11/23/findbugs-part-1/</guid>
<description><![CDATA[FindBugsTM : static code analysis tool FindBug is a static code analysis tool that examines your cla]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><h2>FindBugs<sup>TM</sup> : static code analysis tool</h2>
<p style="text-align:justify;">FindBug is a static code analysis tool that examines your class or JAR files looking for potential problems by matching your byte-code against a list of bug patterns. With static code analysis tool, you can analyze software(s) without actually running the program.</p>
<h2>Getting started with FindBugs:</h2>
<p style="text-align:justify;">To run FindBugs, you will need a Java Development Kit (JDK), version 1.4 or higher. One should download the latest release of FindBugs &#8212; currently 1.3.9. After downloading the zip or tar, unzip it into a directory of your choice. That&#8217;s it &#8212; the install is finished.</p>
<h2>Running FindBugs:</h2>
<p style="text-align:justify;">Like most tools these days, you can run FindBugs in multiple ways &#8212; from a GUI, from a command line, using Ant, as an Eclipse plug-in and using Maven.</p>
<h2>Using the FindBugs UI:</h2>
<p style="text-align:justify;">Using the FindBugs UI is straightforward, but a couple of points deserves some elaboration. One of the advantages of using the FindBugs UI is the description provided for each type of detected problem. Descriptions are provided for each bug pattern, which is extremely useful when you&#8217;re first becoming acquainted with the tool. Equally useful is the Source code tab in the lower pane of the window. If you tell FindBugs where to find your source, it will highlight the offending line of code when you switch to the appropriate tab.</p>
<p style="text-align:justify;">It&#8217;s also important to mention that if you choose xml as your output option when running FindBugs as an Ant task or from the command line, you can load the results of a previous run into the UI. Doing so is a great way to leverage the advantages of the command-line-based tooling and the UI tooling at the same time.</p>
<p style="text-align:justify;">For day to day activity developers find Eclipse plug-in is more suitable. But for this blog we will stick to ant as it gives us variety of reports depending upon the provided style sheets.</p>
<h2>Integrate with Ant:</h2>
<p>In build.xml we need to write the following code</p>
<blockquote><p>&#60;!&#8211; =================================</p>
<p>target: findbugs</p>
<p>================================= &#8211;&#62;</p>
<p>&#60;target name=&#8221;findbugs&#8221; depends=&#8221;compile&#8221; description=&#8221;description&#8221;&#62;</p>
<p>&#60;taskdef name=&#8221;FindBugs&#8221; classname=&#8221;edu.umd.cs.findbugs.anttask.FindBugsTask&#8221;&#62;</p>
<p>&#60;classpath&#62;</p>
<p>&#60;pathelement location=&#8221;${findbugs.home}/lib/findbugs-ant.jar&#8221; /&#62;</p>
<p>&#60;/classpath&#62;</p>
<p>&#60;/taskdef&#62;</p>
<p>&#60;FindBugs home=&#8221;${findbugs.home}&#8221; output=&#8221;html&#8221; outputFile=&#8221; findbug-report.html&#8221;  jvmargs=&#8221;-Xms60m -Xmx250m&#8221; stylesheet=&#8221;default.xsl&#124;fancy.xsl&#124;fancy-hist.xsl&#124;plain.xsl&#124;summary.xsl&#8221;&#62;</p>
<p>&#60;class location=&#8221;${webinf.dir}/classes&#8221; /&#62;</p>
<p>&#60;sourcePath path=&#8221;JavaSource&#8221; /&#62;</p>
<p>&#60;/FindBugs&#62;</p>
<p>&#60;/target&#62;</p></blockquote>
<p>Let&#8217;s take a closer look at what&#8217;s going on in this code.</p>
<p style="text-align:justify;"><strong>Target:</strong> Notice that the target depends on the compile. It&#8217;s important to remember that FindBugs works on class files, not source files, so making the target depend on the compile target ensure that FindBugs will be running across the up-to-date class files. FindBugs is flexible about what it will accept as input, including a set of class files, JAR files, or a list of directories.</p>
<p style="text-align:justify;"><strong>Taskdef:</strong> Here we define task def name. This is general ANT Practice.</p>
<p><strong>FindBug.home:</strong> One should mention directory that contain findbugs.</p>
<blockquote><p>findbugs.home=D:/opt/findbugs-1.3.9</p></blockquote>
<p style="text-align:justify;"><strong>Output: </strong>The optional attribute output specifies the output format that FindBugs will use for its results. The possible values are xml, text, or emacs. If no output File is specified, then FindBugs prints to standard out. The XML format has the added advantage of being viewable within the UI.</p>
<p style="text-align:justify;"><strong>jvmargs:</strong> In large projects it is tend to get OutOfMemoryException. To take care of such situation we should pass max and minimum memory by jvmargs. This is optional one.</p>
<p style="text-align:justify;"><strong>Stylesheet:</strong> It specifies stylesheet to be used if output is html. This is optional attribute.</p>
<p style="text-align:justify;"><strong>Class / ClassRegex:</strong> The class element is used to specify which set of JARs, class files, or directories you want FindBugs to analyze. To analyze multiple JARs or class files, specify a separate class element for each. The class element is required unless the project File element is included. See the FindBugs manual for more details.</p>
<p style="text-align:justify;"><strong>AuxClasspath:</strong> You list your application&#8217;s dependencies by using the nested element auxClasspath. These are classes that your application needs, but you don&#8217;t want FindBugs to analyze. If you don&#8217;t list your application&#8217;s dependencies, FindBugs will still analyze your classes as well as it can, but it will complain when it is unable to find one of the missing classes. as with the class element, you can specify multiple auxClasspath elements in the FindBugs element. The auxClasspath element is optional.</p>
<p style="text-align:justify;"><strong>SourcePath:</strong> If the sourcePath element is specified, the path attribute should indicate a directory that contains your application&#8217;s source code. Specifying the directory allows FindBugs to highlight the source code in error when viewing the XML results in the GUI. This element is optional.</p>
<h3>Different Bugs identified by FindBugs:</h3>
<ul>
<li>Use Long.valueOf(…) instead of new Long(…)</li>
<li>Need to replace things like</li>
</ul>
<blockquote><p>int num = (int) (100000 * Math.random());<br />
by<br />
Random r = new Random();<br />
r.nextInt(100000);</p></blockquote>
<ul>
<li>concatenation with + , use String Buffer or String Builder</li>
<li>change key set by entry set</li>
</ul>
<h2>Bug categorization:</h2>
<p>FindBug categorize the bugs in following categories</p>
<ul>
<li> Bad practice Warnings</li>
<li>Correctness Warnings</li>
<li>Malicious code vulnerability Warnings</li>
<li>Multithreaded correctness Warnings</li>
<li>Performance Warnings</li>
<li>Dodgy Warnings</li>
</ul>
<p>Refrences:</p>
<ul>
<li><a href="http://findbugs.sourceforge.net/manual/anttask.html">http://findbugs.sourceforge.net/manual/anttask.html</a> </li>
</ul>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Wicket in OC4J / OracleAS]]></title>
<link>http://webmoli.com/2009/11/22/wicket-in-oc4j-oracleas/</link>
<pubDate>Mon, 23 Nov 2009 03:35:27 +0000</pubDate>
<dc:creator>Venkat</dc:creator>
<guid>http://webmoli.com/2009/11/22/wicket-in-oc4j-oracleas/</guid>
<description><![CDATA[Recently I tried deploying wicket framework based web application in OC4J container it didn&#8217;t ]]></description>
<content:encoded><![CDATA[Recently I tried deploying wicket framework based web application in OC4J container it didn&#8217;t ]]></content:encoded>
</item>
<item>
<title><![CDATA[Why Spring Framework?]]></title>
<link>http://tecnoesis.wordpress.com/2009/11/21/why-spring-framework/</link>
<pubDate>Sat, 21 Nov 2009 07:43:00 +0000</pubDate>
<dc:creator>Rajani Ramsagar</dc:creator>
<guid>http://tecnoesis.wordpress.com/2009/11/21/why-spring-framework/</guid>
<description><![CDATA[    Why Spring Framework?   Since the widespread implementation of J2EE applications in 1999/2000, i]]></description>
<content:encoded><![CDATA[    Why Spring Framework?   Since the widespread implementation of J2EE applications in 1999/2000, i]]></content:encoded>
</item>
<item>
<title><![CDATA[Concurrency and Deadlocks in Java: A Brief Introduction]]></title>
<link>http://nerdgerl.wordpress.com/2009/11/21/concurrency-and-deadlocks-in-java/</link>
<pubDate>Sat, 21 Nov 2009 04:07:11 +0000</pubDate>
<dc:creator>nerdgerl</dc:creator>
<guid>http://nerdgerl.wordpress.com/2009/11/21/concurrency-and-deadlocks-in-java/</guid>
<description><![CDATA[In attempting to understand how concurrency works with java it is important to lay the foundation by]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>In attempting to understand how concurrency works with java it is important to lay the foundation by discussing process management in operating systems before moving on to specific concurrency issues in java.</p>
<h2 style="text-align:center;"><strong><span style="color:#ad00ad;">Process Management in Operating Systems</span></strong></h2>
<p>A process is an instance of a computer program that performs some action. <strong><span style="color:#3366ff;">A process can have multiple threads</span></strong> and can be controlled by a user, other programs or by the operating system that its running on. The operating system will execute processes sequentially and can be running multiple processes at any one time, this is called concurrency.</p>
<p>To further explain, a single computer processor runs instructions one at a time, so that a user can run several programs at once, time-sharing is performed. Time-sharing allows for programs to be in either &#8220;executed&#8221; or &#8220;waiting to be executed&#8221; state, this gives the illusion to the user that multiple processes are running at the same time but in reality the operating system is switching between them rapidly. An operating system run on a computer with multiple processors can execute instructions simultaneously for different processes.</p>
<h2 style="text-align:center;"><span style="color:#ad00ad;">Mutexes and Threads</span></h2>
<p>A mutex or mutual exclusion is used in parallel programming to &#8220;lock&#8221; a shared resources so that only one thread can access it at a time whilst at the same time giving waiting tasks a place to wait for their turn. A popular way to remember this is to think of an airplane bathroom. Only one person can access the bathroom at one time, in this case the lock is the mutex so when the door is locked the bathroom is unavailable to the people waiting in queue.</p>
<p><strong><span style="color:#3366ff;">In java every object has one monitor and mutex associated with it</span></strong><span style="color:#3366ff;">. </span>A monitor is a piece of code which is guarded by a mutex. Whenever a thread accesses a <em>synchronized</em> method, the mutex is locked, conversely when the method is finished, the mutex is unlocked. This ensures that only one <em>synchronized</em> method is called at a time on a given object.</p>
<h2 style="text-align:center;"><span style="color:#ad00ad;">Deadlocks and Prevention</span></h2>
<p>A deadlock occurs when two or more threads are waiting for each other to finish and so therefore cannot.</p>
<p><strong><span style="color:#800080;">Lock Ordering</span></strong></p>
<p>One way to prevent a deadlock is to assign an order to the locks and require that they are accessed in that order. This can only work if you know about all locks ahed of time so is not always practical.</p>
<p><strong><span style="color:#800080;">Lock Timeout</span></strong></p>
<p>You can also prevent deadlocks by having a timeout function on lock attempts. This means a thread will only try for so long to acquire the necessary locks before quitting (backing up), thus freeing all locks taken. It will then try again after a random amount of time during which other threads can try to access the necessary threads.</p>
<p>One of the drawbacks if you have lots of threads trying to acquire the same lock they might end up waiting the same amount of time and therefore trying to obtain a lock at the same time over and over.</p>
<p><strong><span style="color:#800080;">Deadlock Detected</span></strong></p>
<p>What do you do if you have a deadlock? You can release all the locks and wait a random amount of time before retrying. But this is can have the same problems as described by a lock timeout above. A better way to do this would be to assigned a priority to the threads so that only the highest priority thread/s backup.</p>
<h3>References</h3>
<p>Processes:</p>
<ul>
<li><a href="http://computer.howstuffworks.com/operating-system5.htm">http://computer.howstuffworks.com/operating-system5.htm</a></li>
<li><a href="http://en.wikipedia.org/wiki/Process_(computing)">http://en.wikipedia.org/wiki/Process_(computing)</a></li>
</ul>
<p>Mutexes:</p>
<ul>
<li><a href="http://www.javaworld.com/javaworld/jw-10-1998/jw-10-toolbox.html" target="_blank">http://www.javaworld.com/javaworld/jw-10-1998/jw-10-toolbox.html</a></li>
</ul>
<p>Deadlocks:</p>
<ul>
<li><a href="http://tutorials.jenkov.com/java-concurrency/deadlock-prevention.html" target="_blank">http://tutorials.jenkov.com/java-concurrency/deadlock-prevention.html</a></li>
</ul>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[An Intro to Big Oh Notation with Java]]></title>
<link>http://nerdgerl.wordpress.com/2009/11/18/an-intro-to-big-oh-notation-with-java/</link>
<pubDate>Wed, 18 Nov 2009 05:41:49 +0000</pubDate>
<dc:creator>nerdgerl</dc:creator>
<guid>http://nerdgerl.wordpress.com/2009/11/18/an-intro-to-big-oh-notation-with-java/</guid>
<description><![CDATA[Big Oh notation is used in computer science to decribe the complexity of an algorithm in terms of ti]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Big Oh notation is used in computer science to decribe the complexity of an algorithm in terms of time and space (memory). Big Oh notation describes the <strong>worst case scenario</strong> of what happens when an algorithm is run with N values and is really only useful when talking about large sets of data.</p>
<table border="1" cellspacing="0" cellpadding="4" summary="example O(N) values">
<tbody>
<tr>
<th></th>
<th><em>constant</em></th>
<th><em>logarithmic</em></th>
<th><em>linear</em></th>
<th></th>
<th><em>quadratic</em></th>
<th><em>cubic</em></th>
</tr>
<tr valign="bottom">
<th>n</th>
<th>O(1)</th>
<th>O(log N)</th>
<th>O(N)</th>
<th>O(N log N)</th>
<th>O(N<sup>2</sup>)</th>
<th>O(N<sup>3</sup>)</th>
</tr>
<tr align="right">
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr align="right">
<td>2</td>
<td>1</td>
<td>1</td>
<td>2</td>
<td>2</td>
<td>4</td>
<td>8</td>
</tr>
<tr align="right">
<td>4</td>
<td>1</td>
<td>2</td>
<td>4</td>
<td>8</td>
<td>16</td>
<td>64</td>
</tr>
<tr align="right">
<td>8</td>
<td>1</td>
<td>3</td>
<td>8</td>
<td>24</td>
<td>64</td>
<td>512</td>
</tr>
<tr align="right">
<td>16</td>
<td>1</td>
<td>4</td>
<td>16</td>
<td>64</td>
<td>256</td>
<td>4,096</td>
</tr>
<tr align="right">
<td>1,024</td>
<td>1</td>
<td>10</td>
<td>1,024</td>
<td>10,240</td>
<td>1,048,576</td>
<td>1,073,741,824</td>
</tr>
<tr align="right">
<td>1,048,576</td>
<td>1</td>
<td>20</td>
<td>1,048,576</td>
<td>20,971,520</td>
<td>10<sup>12</sup></td>
<td>10<sup>16</sup></td>
</tr>
</tbody>
</table>
<p style="text-align:left;">
<div id="attachment_199" class="wp-caption aligncenter" style="width: 528px"><a href="http://nerdgerl.wordpress.com/files/2009/11/scale_plot1.jpg"><img class="size-full wp-image-199" title="Big Oh Complexity Over Time" src="http://nerdgerl.wordpress.com/files/2009/11/scale_plot1.jpg" alt="" width="518" height="469" /></a><p class="wp-caption-text">Big Oh Complexity Over Time</p></div>
<p><em>Source: table source <a href="http://leepoint.net/notes-java/algorithms/big-oh/bigoh.html">here</a> also big thanks to Dean who made the graph for me <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </em></p>
<h3>Explanation<em><br />
</em></h3>
<p><strong>O(1)</strong> = irrespective of changing the size of the input, time stays the same</p>
<p><strong>O(N)</strong> = as you increase the size of input, the time taken to complete operations scales linearly with that size</p>
<p><strong>O(log N) = </strong>growth curve that peaks at the beginning and slowly flattens out as the size of the data sets increase</p>
<p><strong>O(</strong><strong>N<sup>2</sup></strong><strong>) = </strong>growth will double with each additional element in the input</p>
<p><strong>Java Example for</strong> <strong>O(1):</strong></p>
<pre class="brush: java;">
    public static boolean isArrayOver100(String[] args) {
        if (args.length &#62; 100)
            return true;
        return false;
    }
</pre>
<p><strong>Java Example for O(N):</strong></p>
<pre class="brush: java;">
    public static boolean contains(String[] args, String value) {
        for (int i = 0; i &#60; args.length; i++) {
            if (args[i] == value)
                return true;
        }
        return false;
    }
</pre>
<p><strong>Java Example for O(log N):</strong></p>
<pre class="brush: java;">
public static int binarySearch(int[] toSearch, int key) {
    int fromIndex = 0;
    int toIndex = toSearch.length - 1;

    while (fromIndex &#60; toIndex) {
        int midIndex = (toIndex - fromIndex / 2) + fromIndex;
        int midValue = toSearch[midIndex];

        if (key &#62; midValue) {
            fromIndex = midIndex++;
        } else if (key &#60; midValue) {
            toIndex = midIndex - 1;
        } else {
            return midIndex;
        }
    }
    return -1;
}
</pre>
<p>See my other post on binary search <a href="http://nerdgerl.wordpress.com/2009/11/17/implementing-binary-search-in-java/">here</a>.</p>
<p><strong>Java Exmaple O(</strong><strong>N<sup>2</sup></strong><strong>)</strong></p>
<pre class="brush: java;">
public static boolean containsDuplicates(String[] args) {
        for (int i = 0; i &#60; args.length; i++) {
            for (int j = 0; j &#60; args.length; j++) {
                if (i == j)
                    break;
                if (args[i] == args[j])
                    return true;
            }
        }
        return false;
    }
</pre>
<p>I took <a href="http://rob-bell.net/2009/06/a-beginners-guide-to-big-o-notation/">this</a> post as my inspiration as I found it to be a great introduction but have instead used java for the code examples.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Java/J2EE Application Architect – DIRECT HIRE – Miramar, FL]]></title>
<link>http://recruiterfl.wordpress.com/2009/11/17/javaj2ee-application-architect-%e2%80%93-direct-hire-%e2%80%93-miramar-fl/</link>
<pubDate>Tue, 17 Nov 2009 13:59:29 +0000</pubDate>
<dc:creator>Ruben Rabines</dc:creator>
<guid>http://recruiterfl.wordpress.com/2009/11/17/javaj2ee-application-architect-%e2%80%93-direct-hire-%e2%80%93-miramar-fl/</guid>
<description><![CDATA[Please send all resumes to rrabines@topsource.com Must be: Citizen, Green Card or EAD Location: Mira]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Please send all resumes to rrabines@topsource.com</p>
<p>Must be: Citizen, Green Card or EAD</p>
<p>Location: Miramar, FL<br />
Salary: High on Experience<br />
Status: DIRECT HIRE</p>
<p>The Java Application Architect will work across teams to design, develop, and deploy business driven solutions consistent with the Enterprise Architecture strategy. The candidate will drive the evolution of a Service Oriented Architecture (SOA) by developing SOA based solutions spanning all layers of the SOA software stack, including but not limited to, service enablement of legacy systems, Enterprise Service Bus (ESB) based integration, Business Process Management (BPM), and SOA Management &#38; Governance. The Jave Application Architect will be a middleware and integration expert chartered with developing mission-critical enterprise software solutions, for enterprise modernization and integration projects. This technical leadership position will require a deep understanding of modern SOA standards, integration patterns, and Web technologies. This person will also be required to map and model business processes, as well as manage integrated project schedules. The Java Application Architect will develop a deep understand of both the business architecture and technical architecture.</p>
<p>Requirements:</p>
<p>-     BS or higher in Computer Science, Computer Engineering, or Electrical Engineering<br />
-     At least 10 years developing object oriented enterprise software solutions in Java<br />
-     At least 12 years applying OOA/D techniques to architect and implement software solutions<br />
-     At least 6 years using J2EE Application Servers and Java enterprise application frameworks<br />
-     At least 4 years as a lead SOA architect working on enterprise integration projects<br />
-     Experience with the full software development life-cycle and various software methodologies such as RUP and Agile approaches<br />
-     Skilled at modeling with UML, as well as requirements capture and business process mapping<br />
-     At least 4 years hands-on experience on enterprise modernization and integration projects employing ESB based SOA solutions<br />
-     Extensive hands-on experience at all layers of the SOA solutions stack, including but not limited to: ESB, BPM, Business Rules, Workflow, SOA Governance &#38; Management, Security &#38; Identity Management, and Portal Development<br />
-     Web Services and Standards Expert<br />
-     Have used/implemented JMS, Message Oriented Middleware, Event Driven Architectures, &#38; Complex Event Processing solutions<br />
-     Project experience with service enabling legacy systems, assembling composite service enabled applications, and applying a wide-range of enterprise integration patterns<br />
-     Experience creating a data services and management architecture for enterprise information integration, developing information models, XML and database schemas<br />
-     Strong SQL skills and experience with one or more database systems<br />
-     Knowledge/experience with various operating systems: Linux, Windows, and/or AS 400<br />
-     First-hand experience developing SOA solutions for CRM, ERP, SCM, and/or e-commerce systems<br />
-     The ability to effectively estimate work effort, create integrated project schedules, and function as a PM<br />
-     Excellent verbal and written communication skills with the ability to create documentation and present to a varied audience</p>
<p>Responsibilities:</p>
<p>-     Provide leadership toward the evolution of an SOA based Enterprise Architecture<br />
-     Design and develop SOA solutions and act as the lead architect on multiple enterprise projects, with hands-on development and management responsibilities<br />
-     Provide expert knowledge on integration projects to the business and technical teams<br />
-     Formulate standards, guidelines, methodologies and best practices for enterprise integration across the IT enterprise portfolio.<br />
-     Work with various service delivery teams providing input for strategic initiatives that may require integration with internal systems and/or external solutions<br />
-     Ensure IT governance and SOA best practices are being applied across the organization<br />
-     Continue to monitor technology development and solution opportunities that support the overarching Enterprise Architecture Strategy<br />
-     Lead and mentor more junior team members, as well as educate the broader IT organization<br />
-     Evaluate products and vendor solutions against well defined evaluation criteria and make recommendations to the business</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Implementing Binary Search in Java]]></title>
<link>http://nerdgerl.wordpress.com/2009/11/17/implementing-binary-search-in-java/</link>
<pubDate>Tue, 17 Nov 2009 00:56:56 +0000</pubDate>
<dc:creator>nerdgerl</dc:creator>
<guid>http://nerdgerl.wordpress.com/2009/11/17/implementing-binary-search-in-java/</guid>
<description><![CDATA[What is it? Binary Search is a technique used to search sorted data sets. It works by comparing the ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><h3>What is it?</h3>
<p><a href="http://en.wikipedia.org/wiki/Binary_search">Binary Search</a> is a technique used to search <strong>sorted data sets</strong>. It works by comparing the middle element against the search value, if the search value is greater than the middle element a subset is created out of the upper half of the set. The same operation is then performed on the subset recursively until the value is either found and the index returned, or not found and -1 returned.</p>
<p>eg. If we start with with a set of ints: [1, 4, 6, 8, 9, 10, 11, 13, 15] and our search value = 11</p>
<ul>
<li> Choose the middle element: 9</li>
<li>Is 9 &#62; 11</li>
<li>No, so take the upper half and create a subset [10, 11, 13, 15]</li>
<li>Choose the middle element: 13 (4/2 =2 which is the third element in the array as arrays are zero based)</li>
<li>Is 13 &#62; 11</li>
<li>No, so take the lower half and create a subset [10, 11]</li>
<li>Choose the middle element: 11</li>
<li>Is 11 &#62;= 11 yes &#8211; we have found our element</li>
</ul>
<h3>Binary Search in Java</h3>
<p>I have created my own java binary search method:</p>
<pre class="brush: java;">
    public static int binarySearch(int[] toSearch, int key) {
        int fromIndex = 0;
        int toIndex = toSearch.length - 1;

        while (fromIndex &#60; toIndex) {
            int midIndex = (toIndex - fromIndex / 2) + fromIndex;
            int midValue = toSearch[midIndex];

            if (key &#62; midValue) {
                fromIndex = midIndex++;
            } else if (key &#60; midValue) {
                toIndex = midIndex - 1;
            } else {
                return midIndex;
            }
        }
        return -1;
    }
</pre>
<p>Take a look at <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Arrays.html#binarySearch(int[],%20int)">Arrays.binarySearch()</a> method to see the java source code implementation of the search. If you don&#8217;t have the java source code attached to your favourite IDE I suggest you do so, it&#8217;s a great way to learn how everything works.</p>
<h3>Complexity</h3>
<p>The complexity of the binary search is<strong> O(log n)</strong>.</p>
<h3>Why use Binary Search?</h3>
<p>Binary Search is quicker than searching through every element (O(n)) as it halves the amount of elements to search each iteration. This halving means that after a strong growth curve at the beginning, it slowly flattens out as the size of the input data set increases, therefore it is <strong>good for large data sets</strong>.</p>
<h3>More Info</h3>
<p>There is a good introductory explanation of binary search and O notation <a href="http://rob-bell.net/2009/06/a-beginners-guide-to-big-o-notation/">here</a>.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Hibernate Sessions in Two Tier Rich Client Applications]]></title>
<link>http://stephanodesign.wordpress.com/2009/11/16/hibernate-sessions-in-two-tier-rich-client-applications/</link>
<pubDate>Mon, 16 Nov 2009 21:34:52 +0000</pubDate>
<dc:creator>Stefan</dc:creator>
<guid>http://stephanodesign.wordpress.com/2009/11/16/hibernate-sessions-in-two-tier-rich-client-applications/</guid>
<description><![CDATA[  One of the most populare articles in this blog so far ist the one about, well: Hibernate Sessions ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><h2><a title="Hibernate Sessions in Two Tier Rich Client Applications" href="http://blog.schauderhaft.de/2008/09/28/hibernate-sessions-in-two-tier-rich-client-applications/"></a> </h2>
<div>
<p>One of the most populare articles in this blog so far ist the one about, well: <a href="http://blog.schauderhaft.de/2007/12/17/hibernate-sessions-in-fat-client-anwendungen/">Hibernate Sessions in Two Tier Rich Client Applications</a>. Although the original article is writen in german I keep refering to this article, even in english communities. Therefore I decided to break my habit of writing articles in german only and provide a english version which you are reading right now.</p>
<p>This is NOT a direct translation so there might be some differnces in scope, focus and detail.</p>
<p>Everybody working with Java and Databases is probably aware of Hibernate. It is a great solution for mapping a database schema to a object model. It is used in hundreds of applications. So on my current project we decided to use it as well. But big surprise. While Support in the user forum of hibernate is pretty good most of the time we hit one kind of a problem which had no apropriate solution available: How to handle Sessions in a Two Tier Hibernate Application (Swing or SWT typically).</p>
<p>How could such a essential problem be unsolved? Well Rich Client Applications are not hip anymore. Everybody goes for web applications and in that context the session handling is well understood and there is a easy straight forward solution that works in most cases: On each request open a session, do all your work including constructing the result (e.g. JSP) , close the session. But there is no equivalent for a request in a swing application. And since Rich Client Applications are kind of old fashioned nobody bothers to find (and write about) a clean solution for this problem.</p>
<p>We tried a lot of things, starting with the antipattern of a single session per application. This doesn’t work at all for any kind of serious app for the following reasons:</p>
<ul>
<li>No transaction control between different parts of the application. When you flush/commit a session, everything gets flushed. So imagine a application with two open edit frames. The user hits save in one frame and surprise, her half done changes in the other frame get saved as well. Not good.</li>
<li>Memory Leak. The Hibernate Session keeps track of every entity ever loaded by that session. So if you don’t close the session from time to time the session will grow until the application blows up or the whole database is contained in the session. If nothing else this will cause performance issues.</li>
</ul>
<p>Of course if you write a really small simple application this might work, but not for us. As said before we tried a lot of things to solve our problem in the assumption that our requirements are so common that it can’t be hard to find the solution. We were wron. So if the solution to a problem isn’t easy to find, what should be your first step? Wrong (probably)! Your first step should be to exactly identify the problem. In this case this meant: What are the requirements we had? What are the relevant features/limitations of Hibernate? The requirements were:</p>
<ul>
<li>We want Lazy Loading: Lazy Loading is a real powerfull feature whe working with a rich domain model (as we did) especially in a Swing Application. You just display what every attribute you can reach by any kind of object navigation, hibernate will ensure the data is there. Awesome. This was one of the main selling points for Hibernate vs. plain JDBC. So it wasn’t realy an option to loose it.</li>
<li>Different views of the same entity should show the same state. So if you edit an Object the same Object shown in some kind of list-view should show the updated state immediatly.</li>
<li>It should be obvious for the user what is going to be saved when she hits the save button.</li>
<li>The whole mechanism must be fairly easy to use, since the team was growing and not everybody was a hibernate expert. Also lazy loading problems are sometimes hard to debug and fix.</li>
</ul>
<p>The relevant properties of the Hibernate session are</p>
<ul>
<li>For lazy loading to work an entity must be attached to a open session.</li>
<li>A entity wich contains at least one collection (which are well above 50% of our class) can only be attached to one session at a time.</li>
<li>A session keeps a reference to any entity it loads, until the entity get evicted or the session gets closed.</li>
<li>A Hibernate session guarantees to return the same instance everytime a specific entity is requested.</li>
</ul>
<p>If you look at it in this compact form it is rather obvious that you can’t have your cake and eat it too. The automatic refresh in all views of an object would be easily implemented, when there is only one session. But we simply couldn’t do this. So the decision was made that the automatic refresh is (obviously) not as important as clean transactional control plus lazy loading. So we will have more then one session. But which part of the application is using which session? The Hibernate site uses the term ‘Unit-of-Work’. Each unit of work should be contained in its own session. But this is basically back to step one. A request in a webapp ist a unit of work, but where is a unit of work in a rich client app? Imagine this example: The user fires up the application and opens a search dialog resulting in a list of objects. Clearly we are accessing the database, so we just startet a unit of work. Now she double clicks an item in the list. The entity gets opened in a editor, she edits it and hits save. Work commited, transaction closed, unit of work ended. Wow, thats easy, isn’t it? No it isn’t: She clicks on a different item, edits it, saves it. So now we have opened one session and closed two sessions. Not good.</p>
<p>The answer is actually fairly easy once found: Use one session per frame/internal frame/dialog. Modal dialogs use the session of the frame the got starteted from. Background tasks get their own session. The critical point is the transfer of objects from one frame to another. It is tempting to just pass the object but then you have a object from the wrong session in the frame. Instead pass just the Id (the primary key) and use that to load the object in the new session. This approach solved most of our problems nicely.</p>
<p>Most problems? Yes and no. We have some things that we don’t like to much. I think I know how to solve them but I haven’t implemented them yet. So I can’t really promis anything.</p>
<ul>
<li>Instant refresh in other (readonly) views. When editing a object the changed state is not represented in other views of the same object. This could be fixed by a hibernate interceptor or event listener. It would listen for update events, then check if this entity is contained in any other session, check if that session is read only and if so trigger a refresh of that object. We haven’t implemented that simple due to time constraints.</li>
<li>Saving in background. Most of the stuff we do is simple object editing, but on fairly complex object graphs. So saving an object to DB may take some time. Due to the tight integration of Frames and session we can’t easily delegate this work to a background thread. The same is true of lazy loading. In long lists of complex objects scrolling to new cells for the first time might cause some lag, because lazy loading happens in the Event Handling Thread. The first part should be fairly easy to fix:Open a new Session, find the dirty Objects, merge the dirty Objects in the new Session, do a flush of the new session in a background thread. One just has to make sure the background thread uses its own instances, not the same instances as the original frame/session. The lazy loading in background is more difficult to solve. For almost everything in the GUI we use a <a href="http://www.jgoodies.com/index.html">JGoodies</a> PresentationModel and the associated ValueModels, so the swing objects don’t access directly any attributes of our Hibernate entities. These ValueModel could be used to implement a seperation of two differnt threads: The Swing Event Handling Thread on one side and a seperate thread for all the model work, including lazy loading. But this would mean the whole application is split in two threads, instead of the normal aproach of having one main thread and a couple of worker threads for special work. I think it should be feasibly and actually enforces a very strict and clean architecture, and result in a highly responsive gui, but it would also be a lot of (debugging) work and as everybody knows: Concurrency is hard. So we decided that we don’t need it in this application.</li>
</ul>
<p>If you are going to implement this kind of session handling I strongly suggest to use a director/mediator pattern for all your frames. While always a good idea, it becomes important in this case because it gives you a well defined spot to do your session handling. And of course you should be aware of the alternatives:</p>
<ul>
<li>Go with a single long living session. Only feasable with smallish applications</li>
<li>Kick Lazy Loading and close your session after retrieving your objects. This loses many of the interesting benefits hibernate offers.</li>
</ul>
<p>In any case I how this write up shed some light on the issues and helped to make a informed decission.</p>
<p>Source : <a href="http://blog.schauderhaft.de/2008/09/28/hibernate-sessions-in-two-tier-rich-client-applications/">http://blog.schauderhaft.de/2008/09/28/hibernate-sessions-in-two-tier-rich-client-applications/</a></p>
</div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[IceFaces 2.0 Alpha]]></title>
<link>http://stephanodesign.wordpress.com/2009/11/16/icefaces-2-0-alpha/</link>
<pubDate>Mon, 16 Nov 2009 21:28:34 +0000</pubDate>
<dc:creator>Stefan</dc:creator>
<guid>http://stephanodesign.wordpress.com/2009/11/16/icefaces-2-0-alpha/</guid>
<description><![CDATA[I&#8217;m very pleased to announce that ICEfaces 2.0 &#8211; Alpha 1 is now available for download. ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I&#8217;m very pleased to announce that ICEfaces 2.0 &#8211; Alpha 1 is now available for <a href="http://www.icefaces.org/main/downloads/os-downloads.iface">download</a>.</p>
<p>This inaugural development milestone release of ICEfaces 2.0 provides the fundamental capability of running the next-generation ICEfaces core on the Mojarra JSF 2.0.1 runtime. You can plug the icefaces.jar into your existing JSF2 application and immediately receive some of the benefits of ICEfaces Direct-to-Dom rendering, such as providing incremental page updates without the need to specify the JSF 2 &#8220;f:ajax&#8221; tag. A sample application is included demonstrating ICEfaces 2 with JSF 2 (&#8220;h:&#8221;) standard components, and Ajax Push.</p>
<p>Also included in this release is the initial implementation of the ICEfaces 1.x compatibility libraries, along with sample applications that demonstrate this capability. The ICEfaces 1.x compatibility libraries are used to readily port your existing JSF 1.2 / ICEfaces 1.8 applications to JSF 2.0 / ICEfaces 2.</p>
<p>See the <a href="http://www.icefaces.org/releasenotes/ICEfaces-2.0.0-Alpha1-RN.html">Release Notes</a> for all the details.</p>
<p>We are planning to have another significant ICEfaces 2 milestone release, featuring the beginnings of our all-new ICEfaces 2 component suite, before the end of this year, so stay tuned!</p>
<p>Source: <a href="http://www.icefaces.org">www.icefaces.org</a> <a href="www.icefaces.org"><img class="alignnone size-full wp-image-8" title="icefaces" src="http://stephanodesign.wordpress.com/files/2009/11/icefaces1.jpg" alt="" width="96" height="79" /></a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[IceFaces 1.8.2]]></title>
<link>http://stephanodesign.wordpress.com/2009/11/16/icefaces-1-8-2/</link>
<pubDate>Mon, 16 Nov 2009 21:25:23 +0000</pubDate>
<dc:creator>Stefan</dc:creator>
<guid>http://stephanodesign.wordpress.com/2009/11/16/icefaces-1-8-2/</guid>
<description><![CDATA[ICEfaces 1.8.2 is now available for download, SVN repository checkout, or via Maven public repositor]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>ICEfaces 1.8.2 is now available for <a href="http://downloads.icefaces.org/" target="_new">download</a>, <a href="http://www.icefaces.org/main/community/svninfo.iface" target="_new">SVN repository</a> checkout, or via <a href="http://www.icefaces.org/JForum/posts/list/14793.page" target="_new">Maven public repository</a>.</p>
<p>ICEfaces 1.8.2 is an official maintenance release that includes 165 fixes and improvements. Notable changes include:</p>
<li>All-new support for &#8220;cookieless&#8221; mode operation for synchronous ICEfaces applications (deployed to browsers with cookies disabled).</li>
<li>Enhanced keyboard navigation for the menuBar, menuPopup, panelCollapsible, panelTabSet, and tree components.</li>
<li>The panelTab component now supports an optional label facet for defining arbitrarily complex labels.</li>
<li>Enhanced dataExporter: define which columns &#38; rows to export, seamless operation with dataPaginator, portlet support, and improved robustness.</li>
<li>Improved panelTooltip: smarter positioning, mouse tracking, and customizable display event triggers (hover, click, etc.).</li>
<li>Support for nested modal panelPopups.</li>
<li>The inputFile component now supports optional &#8220;autoUpload&#8221; mode.</li>
<li>The graphicImage component now supports all ICEfaces Resource APIs for specifying image resources.</li>
<li>The outputResource component now has improved special character support for resource file-names.</li>
<li>Rendering performance optimizations have been made to the dataTable, panelGroup, panelSeries, and menuBar components.</li>
<li>Updated Component Showcase sample application illustrating new component capabilities.Please read the <a href="http://www.icefaces.org/releasenotes/icefaces-1.8.2-RN.html" target="_new">Release Notes</a> (also included in the release bundle) for details on new features, known issues, and other notes.</li>
<p>Source: <a href="http://www.icefaces.org">www.icefaces.org</a><a href="www.icefaces.org"><img class="alignnone size-full wp-image-5" title="icefaces" src="http://stephanodesign.wordpress.com/files/2009/11/icefaces.jpg" alt="" width="96" height="79" /></a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[JRebel - a productive tool for Java developers]]></title>
<link>http://webmoli.com/2009/11/15/jrebel-a-productive-tool-for-java-developers/</link>
<pubDate>Mon, 16 Nov 2009 03:06:00 +0000</pubDate>
<dc:creator>Venkat</dc:creator>
<guid>http://webmoli.com/2009/11/15/jrebel-a-productive-tool-for-java-developers/</guid>
<description><![CDATA[Java Rebel &#8211; a very useful productive tool One of my friend told me about JavaRebel. Later I t]]></description>
<content:encoded><![CDATA[Java Rebel &#8211; a very useful productive tool One of my friend told me about JavaRebel. Later I t]]></content:encoded>
</item>
<item>
<title><![CDATA[Introduction to Agile Scrum]]></title>
<link>http://szypulski.wordpress.com/2009/11/15/introduction-to-agile-scrum/</link>
<pubDate>Sun, 15 Nov 2009 19:02:18 +0000</pubDate>
<dc:creator>mszypulski</dc:creator>
<guid>http://szypulski.wordpress.com/2009/11/15/introduction-to-agile-scrum/</guid>
<description><![CDATA[Many of us have experienced projects that drag on much longer than expected and cost more than plann]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Many of us have experienced projects that drag on much longer than expected and cost more than planned. Companies looking to improve their software development processes are now exploring how Agile can help their Enterprise more reliably deliver software quickly, iteratively and with a feature set that hits that mark.  While Agile has different &#8220;flavors&#8221;, Scrum is one process for implementing Agile.  This article discusses the Agile Scrum process that can be used to aid in improving your software releases.</p>
<p><a title="Introduction to Agile Scrum" href="http://szypulski.wordpress.com/introduction-to-agile-scrum/" target="_self">http://szypulski.wordpress.com/introduction-to-agile-scrum/</a></p>
</div>]]></content:encoded>
</item>

</channel>
</rss>
