<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:georss="http://www.georss.org/georss" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-7907778724738449118</atom:id><lastBuildDate>Tue, 10 Nov 2009 22:52:09 +0000</lastBuildDate><title>srinip</title><description /><link>http://srinip2007.blogspot.com/</link><managingEditor>noreply@blogger.com (srinip)</managingEditor><generator>Blogger</generator><openSearch:totalResults>42</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/blogspot/srinip" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-7068408305485931076</guid><pubDate>Sun, 06 Sep 2009 20:35:00 +0000</pubDate><atom:updated>2009-09-06T14:15:18.606-07:00</atom:updated><title>Menlo Tour - How Agile Software Development is Done at Menlo</title><description>Last month, I visited a software consulting company called &lt;a href="http://www.menloinnovations.com/"&gt;Menlo Innovations&lt;/a&gt; located in &lt;a href="http://www.annarbor.org/"&gt;Ann Arbor&lt;/a&gt;, Michigan. Menlo has been using &lt;a href="http://en.wikipedia.org/wiki/Agile_software_development"&gt;Agile methodologies&lt;/a&gt; in their Software Development processes for last eight years. Menlo hosts the &lt;a href="http://www.menloinnovations.com/registration/MenloTour.htm"&gt;tours&lt;/a&gt; every month at their company office to show the visitors how they do agile software development.&lt;br /&gt;&lt;br /&gt;James Goebel was our host at the meeting. It was a very good experience to see a team of teams doing the agile software development and how they have perfected an unique development process that works for them to be successful in their software development projects.&lt;br /&gt;&lt;br /&gt;They use several eXtreme Programming (&lt;a href="http://www.extremeprogramming.org/"&gt;XP&lt;/a&gt;) development and testing techniques.&lt;br /&gt;&lt;br /&gt;Here are some high-level details of their agile process:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Iteration Length = 1 week&lt;/li&gt;&lt;li&gt;High-Tech Anthropologists (&lt;a href="http://www.menloinnovations.com/method/anthropology.htm"&gt;HTA&lt;/a&gt;'s) write the user stories working with the client and the project team. They write the stories through the eyes of the customers. User designs are also done by HTA's.&lt;/li&gt;&lt;li&gt;They use big white papers, charts, and tasks with color coded statuses to make the project progress visible to every one in the team w/o having to dig into several different project management software tools.&lt;/li&gt;&lt;li&gt;Their projects range from 1-day to 4-years in length and all different business domains in nature.&lt;/li&gt;&lt;li&gt;The Daily stand-up meeting is at 10 am every morning and every one in the building (all project teams, HTA's, QA team, clients, vendors if they happen to be in the office at that time) attend the meeting.&lt;/li&gt;&lt;li&gt;They review the story cards every day to monitor the progress and identify any roadblocks to complete their tasks. They follow the strict rule of, if there is no card on the board for a specific task, the project team must not work on that task. So, "No Card, No Work, No Money".&lt;/li&gt;&lt;li&gt;Their revenue model is based on the royalty and partnership based (on some projects) so they take the quality, customer satisfaction, and long-term health of their software products very seriously.&lt;/li&gt;&lt;li&gt;If a pair has to stop a particular task because of some dependencies or roadblocks, they put a red dot on that task indicating that the work has been stopped on that task, and start the work on a new task (with yellow dot on it showing that it's in progress).&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Fail Fast:&lt;/span&gt;&lt;br /&gt;They believe in the concept of make small mistakes faster and often. James gave us an example of how they managed a previous project in an iterative manner to successfully deliver what the customer needed out of the project. It was a small project with 1-day deadline. The first time they worked on the project, they worked on for the whole day and didn't finish it on time. Then they worked on the same project again in 1-day with great success, the only difference is this time they followed a eight 1-hour iterations rather than one 8-hr iteration. And on the second day, after 2 hours into the project, they found where they got stuck the previous time, and made the necessary adjustment (following the "&lt;a href="http://www.c2.com/cgi/wiki?InspectAndAdapt"&gt;Inspect and Adapt&lt;/a&gt;" philosophy we hear in the context of the Agile project management)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Color coded status tracking:&lt;/span&gt;&lt;br /&gt;They use a color coding system to track the status of project tasks.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Red = Task Stopped&lt;/li&gt;&lt;li&gt;Yellow = In Progress&lt;/li&gt;&lt;li&gt;Green = Completed&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Projects don't move, people do:&lt;/span&gt;&lt;br /&gt;They have dedicated areas (basically a corner of one big office room) for each project where the project tasks, information reports and charts are displayed on the wall. Since the project status reports and other artifacts in a specific area, it's the team members who move to the project area when they need to work on a project, rather than the other way around.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pair Programming:&lt;/span&gt;&lt;br /&gt;Change the partners every week so the pairs don't get used to each other's poor development practices (for example, not writing unit tests).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Test Driven Development:&lt;/span&gt;&lt;br /&gt;They religiously follow Test Driven Design/Development (&lt;a href="http://en.wikipedia.org/wiki/Test-driven_development"&gt;TDD&lt;/a&gt;) philosophy.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Build is Broken - Uncommit Your Code:&lt;/span&gt;&lt;br /&gt;If someone's code caused a unit test or the whole application build to fail after code check-in, the team has to either fix the build errors in a reasonable time or "Uncommit" the new code so the build will succeed and the other developers can move forward with testing their features on the Integration server.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Time Estimates:&lt;/span&gt;&lt;br /&gt;Every one in the project team estimate all the tasks and the project lead uses the most common estimates (by taking away the lowest and highest time estimates). The time estimates range from 2 hours to 1 week (i.e. 2, 4, 8, 16, and 32 hours). If a task is estimated to be higher than 32 hours (e.g. 64 hours), those features have to be split into smaller tasks so they can fit in a single iteration.&lt;br /&gt;&lt;br /&gt;They also use different sizes of the paper for tasks with different estimates, so they know how many tasks can fit in an iteration. For example, they use 8.5 x 11 paper size as the 32 hours. And the team can only have use one 8.5 x 11 sheet to fit the tasks for one iteration, meaning they can put one 32-hour tasks, or two 16-hour tasks, or one 16-hour and two 8-hour tasks, you get the point. This approach sounds very interesting and it works great if you think about it.&lt;br /&gt;&lt;br /&gt;Every thing (estimations, development, unit testing, show &amp;amp; tell, and the delivery of CD) happens every week.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Show and Tell: For Customer, By Customer:&lt;/span&gt;&lt;br /&gt;At the end of each iteration the project team creates two CD's of the working software and gives one CD to the QA team and another to the client. The QA team's job is to verify the health of the overall software package, not just test each feature in isolation.&lt;br /&gt;&lt;br /&gt;And when it's the time to demonstrate the software created in an iteration, the team works with the client to install the software on the client's PC and let the customer show (demonstrate) the software product to the team.&lt;br /&gt;&lt;br /&gt;They don't really use any software tools for the project management purposes. Other than Microsoft Excel to keep track of the time spent on tasks and the project, every thing else is done on a piece of paper. It was amazing to see how they are able to be agile without really using a tool for writing user stories and other tasks. This is the proof that the agile development teams should focus on the results and not the tools.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Other Observations:&lt;/span&gt;&lt;br /&gt;Their software development process is created around the social constructs of the team. For the new prospective team members, they look for the ability to learn and team player skills.&lt;br /&gt;&lt;br /&gt;James said that we should ask the following question to ensure that what we are working is going to add value to our company goals:&lt;br /&gt;&lt;br /&gt;"How does your job impact the bottom line of your company?"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Conclusions:&lt;/span&gt;&lt;br /&gt;They have been following the mantra: "Continue doing what works &amp;amp; Stop doing what doesn't work".&lt;br /&gt;&lt;br /&gt;If I have to pick two things that Menlo teams seem to be following, they would be: "Team Collaboration" and "Collective Discipline".&lt;br /&gt;&lt;br /&gt;James was an excellent host of the tour and he is also a great speaker. I learned a lot about how Agile Development Process works @ Menlo and apply some of the ideas in my projects.&lt;br /&gt;&lt;br /&gt;Like said, it was a very good learning experience for me to be part of the tour and I encourage every one who lives in the southeast Michigan area to sign-up for the next &lt;a href="http://www.menloinnovations.com/registration/MenloTour.htm"&gt;tour&lt;/a&gt; which is actually the coming Wednesday.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-7068408305485931076?l=srinip2007.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://srinip2007.blogspot.com/2009/09/menlo-tour-how-agile-software.html</link><author>noreply@blogger.com (srinip)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-2119309461649942210</guid><pubDate>Sun, 06 Sep 2009 04:24:00 +0000</pubDate><atom:updated>2009-09-05T21:25:43.669-07:00</atom:updated><title>Role of Code Generation in Java Application Development</title><description>I recently wrote an article on InfoQ about the role of code generation in Java application development. There have been different tool vendors (Spring Roo, Skyway Builder Community Edition, and Blu Age's M2Spring) announcing Code Generation tools in the recent months, so I thought I would write a tool round-up type of article summarizing these tools.&lt;br /&gt;&lt;br /&gt;Check out this Q&amp;amp;A article on InfoQ:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.infoq.com/news/2009/09/codegen-java-development" target="_blank"&gt;http://www.infoq.com/news/&lt;wbr&gt;2009/09/codegen-java-&lt;wbr&gt;development&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-2119309461649942210?l=srinip2007.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://srinip2007.blogspot.com/2009/09/i-recently-wrote-article-on-infoq-about.html</link><author>noreply@blogger.com (srinip)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-7228670180405570980</guid><pubDate>Sun, 02 Aug 2009 22:02:00 +0000</pubDate><atom:updated>2009-08-02T15:19:54.967-07:00</atom:updated><title>JEE Web Development Framework Requirements Revisited</title><description>There is an excellent blog &lt;a href="http://www.ilyasterin.com/blog/2009/07/choosing-a-web-development-frameworktoolkit.html"&gt;post&lt;/a&gt; on choosing a web development framework/toolkit by &lt;a href="http://www.ilyasterin.com/"&gt;Ilya Sterin&lt;/a&gt;. It captures very well most of the web app framework requirements and limitations we all face on a daily basis in our projects.&lt;br /&gt;&lt;br /&gt;As mentioned in the write-up, most of the J2EE developers think, at one time or the other, about what features they really need from a web application framework and why there is no single framework that supports all those features.&lt;br /&gt;&lt;br /&gt;If I have to pick top 5 features I look for in an ideal web application framework, they would be:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Isolation from the domain layer so presentation and domain layers can evolve independently w/o (adversely) impacting each other.&lt;/li&gt;&lt;li&gt;Simple and Easy Data binding between the Domain, Controller, and Presentation layers, so the developers don't have to write unnecessary and useless boiler plate code to convert the same data from a DO -&gt; DTO -&gt; Struts Action Form -&gt; JSP/HMTL field to just select some data from a back-end data store anddisplay it on a web page.&lt;/li&gt;&lt;li&gt;Support for data validation that works in all the layers w/o any additional coding.&lt;/li&gt;&lt;li&gt;Support for AJAX functionality.&lt;/li&gt;&lt;li&gt;Controller class methods can be exposed as &lt;a href="http://en.wikipedia.org/wiki/Representational_State_Transfer"&gt;RESTful&lt;/a&gt; Web Services w/o lot of extra coding or configuration.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;The presentation layer classes should also be unit testable w/o having to deploy the web application into a container.&lt;br /&gt;&lt;br /&gt;Ilya talks about the persistence concern as well. Unless the web application in question is a simple data driven application that can use a solution like &lt;a href="http://rubyonrails.org/"&gt;RoR&lt;/a&gt; or &lt;a href="http://grails.org/"&gt;Grails&lt;/a&gt;, I am not sure if persistence is really a concern from the web application side. In an ideal architecture, presentation layer should never access the persistence layer directly. It should always go thru the domain layer for the retrieval and modification of the data stored in the back-end data store. So, if the domain model and its boundaries are well defined and implemented, I don't worry too much about the persistence concern when I look for a web application framework.&lt;br /&gt;&lt;br /&gt;I have been using Spring MVC in the recent projects. It supports all the items listed above except for the &lt;a href="http://en.wikipedia.org/wiki/Ajax_%28programming%29"&gt;AJAX&lt;/a&gt; support. But I read that &lt;a href="http://www.springsource.org/webflow"&gt;Spring WebFlow&lt;/a&gt; framework (which includes Spring JavaScript and integration with &lt;a href="http://www.dojotoolkit.org/"&gt;Dojo&lt;/a&gt;) has AJAX support, so that's good news for the developers who are using Spring.&lt;br /&gt;&lt;br /&gt;I am also eagerly waiting to start using &lt;a href="http://blog.springsource.com/2009/03/03/building-spring-3/"&gt;Spring 3&lt;/a&gt; framework which makes it even easier to expose controller class methods as REST web services and also has &lt;a href="http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/ch07.html"&gt;Expression Language&lt;/a&gt; (EL) support which is another nice feature to have when working in the MVC part of an enterprise application.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-7228670180405570980?l=srinip2007.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://srinip2007.blogspot.com/2009/08/jee-web-development-framework.html</link><author>noreply@blogger.com (srinip)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-464146945511674952</guid><pubDate>Sun, 05 Jul 2009 22:26:00 +0000</pubDate><atom:updated>2009-07-05T15:34:22.746-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">NFJS Magazine</category><category domain="http://www.blogger.com/atom/ns#">Architecture Enforcement</category><category domain="http://www.blogger.com/atom/ns#">AOP</category><title>Architecture Enforcement and Governance Using Aspect-Oriented Programming</title><description>I wrote an article in this month's &lt;a href="http://www.nofluffjuststuff.com/magazine_subscribe.jsp"&gt;NFJS magazine&lt;/a&gt; (June 2009 &lt;a href="http://www.nofluffjuststuff.com/magazine_subscribe.jsp?id=4"&gt;issue&lt;/a&gt;) on Architecture Enforcement and Governance Using Aspect-Oriented Programming.&lt;br /&gt;&lt;br /&gt;The objective of this article is to give an overview of Reference Architecture (RA) and its significance in Enterprise Architecture space and how Aspects and &lt;a href="http://en.wikipedia.org/wiki/Aspect-oriented_programming"&gt;Aspect-oriented Programming&lt;/a&gt; (AOP) can help  enforce RA and manage Architecture Governance model.&lt;br /&gt;&lt;br /&gt;I also discussed in the article, a sample Java application that uses several architecture rules to enforce good architectural and design practices such as Layered Architecture, Separation of Concerns, &lt;a href="http://domaindrivendesign.org/"&gt;Domain-Driven Design&lt;/a&gt; etc.&lt;br /&gt;&lt;br /&gt;The other articles published in the new issue are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Introducing Drools 5 by Brian Sam-Bodden&lt;/li&gt;&lt;li&gt;Implementing "Web-2.0 Style" Popularity Filters by David Bock and Karen Gillison&lt;/li&gt;&lt;li&gt;Scala as Concise Java by Venkat Subramaniam&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;If you haven't attended &lt;a href="http://www.nofluffjuststuff.com/home.jsp"&gt;NFJS software symposium&lt;/a&gt; or read the magazine before, check them out. The conference sessions are very practical oriented and just like the title says the focus is on the architecture, design, and development techniques that you can take back to your company and start using them right away in your projects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-464146945511674952?l=srinip2007.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://srinip2007.blogspot.com/2009/07/architecture-enforcement-and-governance.html</link><author>noreply@blogger.com (srinip)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-1174518246018009394</guid><pubDate>Sun, 05 Jul 2009 02:35:00 +0000</pubDate><atom:updated>2009-07-04T19:36:46.225-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">STS</category><category domain="http://www.blogger.com/atom/ns#">SpringSource</category><title>SpringSource Tool Suite (STS) is a free tool now</title><description>SpringSource has recently released their SpringSource Tool Suite (STS) IDE tool as a free version. If you are currently working on or planning on introducing Spring Framework in your projects, this is a very good development tool to use.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;STS Project Main Page:&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.springsource.com/products/sts" target="_blank"&gt;http://www.springsource.com/&lt;wbr&gt;products/sts&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I wrote a mini-article on InfoQ about the recent RC1 release of STS. Here is the link:&lt;br /&gt;&lt;a href="http://www.infoq.com/news/2009/07/springsource-tool-suite" target="_blank"&gt;http://www.infoq.com/news/&lt;wbr&gt;2009/07/springsource-tool-&lt;wbr&gt;suite&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Let me know if you have any feedback when you use this tool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-1174518246018009394?l=srinip2007.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://srinip2007.blogspot.com/2009/07/springsource-tool-suite-sts-is-free.html</link><author>noreply@blogger.com (srinip)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-6221175946535614891</guid><pubDate>Mon, 01 Jun 2009 05:00:00 +0000</pubDate><atom:updated>2009-06-04T20:49:02.197-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ProjectWorld 2009</category><category domain="http://www.blogger.com/atom/ns#">Conferences</category><title>I will be speaking at ProjectWorld 2009 Conference</title><description>I will be speaking at upcoming &lt;a href="http://www.iirusa.com/projectworld-info/event-home.xml"&gt;ProjectWorld 2009&lt;/a&gt; conference in June (06/24-06/26) in Baltimore. My presentation topic is &lt;a href="http://www.iirusa.com/projectworldjune/day-two.xml"&gt;Agile Application Architecture Trends&lt;/a&gt;. The presentation is part of the "IT Innovation and Trends" track which is new for this conference.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_XQM_82SlH58/SeLJqtJO31I/AAAAAAAAAGc/sjW5NKjaBLY/s1600-h/PWLP_header.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 50px;" src="http://1.bp.blogspot.com/_XQM_82SlH58/SeLJqtJO31I/AAAAAAAAAGc/sjW5NKjaBLY/s320/PWLP_header.jpg" alt="" id="BLOGGER_PHOTO_ID_5324039445015355218" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Here is the session abstract of my presentation:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Architecture Trends - Where We Have Been, Where We Are Going&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;The presentation will include the discussion on emerging design techniques like Domain Driven Design (DDD), Custom Annotations, Dependency Injection (DI), Aspect-Oriented Programming (AOP), OSGi and Dynamic Languages. I will discuss some use cases where these techniques add value to the architecture and where they will be just an overkill. With upcoming releases of Spring 3.0, EJB 3.1, JPA 2.0 and Java EE 6, Java developer, not the product vendor, has once again become the core part of Software Development Process.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I want to focus on the emerging software architecture trends and how agile philosophy can drive architectural and design decisions in software development projects.&lt;br /&gt;&lt;br /&gt;Some of the architecture trends I will be focusing in my presentation are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Cloud Computing&lt;/li&gt;&lt;li&gt;Architecture Models (J2EE v. POJO)&lt;/li&gt;&lt;li&gt;Domain-Driven Design&lt;/li&gt;&lt;li&gt;Spring Portfolio&lt;/li&gt;&lt;li&gt;Model-Driven Development&lt;/li&gt;&lt;li&gt;OSGi&lt;/li&gt;&lt;li&gt;Innovations in the Database Layer&lt;/li&gt;&lt;li&gt;Software Product Lines&lt;/li&gt;&lt;/ul&gt;This will be my first trip to Washington DC/Baltimore area. I am looking forward to attending the conference which has excellent &lt;a href="http://www.iirusa.com/projectworldjune/at-a-glance.xml"&gt;sessions&lt;/a&gt; and &lt;a href="http://www.iirusa.com/projectworldjune/speakers.xml"&gt;speaker&lt;/a&gt; line-up.&lt;br /&gt;&lt;br /&gt;There is a 20% speaker discount off the conference standard rate for any one who registers on my behalf. Contact me if any one is interested in taking the advantage of the discount.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-6221175946535614891?l=srinip2007.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://srinip2007.blogspot.com/2009/04/i-will-be-speaking-at-projectworld-2009.html</link><author>noreply@blogger.com (srinip)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_XQM_82SlH58/SeLJqtJO31I/AAAAAAAAAGc/sjW5NKjaBLY/s72-c/PWLP_header.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-8453612693755081674</guid><pubDate>Wed, 20 May 2009 03:00:00 +0000</pubDate><atom:updated>2009-05-19T20:08:14.526-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">QCon</category><category domain="http://www.blogger.com/atom/ns#">QConSF 2008 Conference</category><category domain="http://www.blogger.com/atom/ns#">AOM</category><category domain="http://www.blogger.com/atom/ns#">Modeling</category><title>Adaptive Object Modeling - QCon Interview with Joseph Yoder</title><description>I did a video interview with &lt;a href="http://www.refactory.com/people/joe.html"&gt;Joseph Yoder&lt;/a&gt; on an innovative architecture concept called "&lt;a href="http://www.adaptiveobjectmodel.com/"&gt;Adaptive Object Modeling&lt;/a&gt;" at &lt;a href="http://qcon.infoq.com/"&gt;QCon&lt;/a&gt; San Francisco &lt;a href="http://qconsf.com/sf2008/conference/"&gt;conference&lt;/a&gt; last November. This interview is now live on &lt;a href="http://www.infoq.com"&gt;InfoQ&lt;/a&gt; website.&lt;br /&gt;&lt;br /&gt;The highlights from Joe's interview include:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;What is &lt;a href="http://www.adaptiveobjectmodel.com/"&gt;Adaptive Object Modeling&lt;/a&gt; (AOM)&lt;/li&gt;&lt;li&gt;How it differs from a traditional object model.&lt;/li&gt;&lt;li&gt;Application domains where AOM can be used.&lt;/li&gt;&lt;li&gt;Role of UML in adaptive object modeling efforts.&lt;/li&gt;&lt;li&gt;Architecture and design validation of the adaptive object models.&lt;/li&gt;&lt;/ul&gt;Check out the video &lt;a href="http://www.infoq.com/news/2009/05/Adaptive-Model-Joseph-Yoder"&gt;interview&lt;/a&gt; on InfoQ site.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-8453612693755081674?l=srinip2007.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://srinip2007.blogspot.com/2009/05/adaptive-object-modeling-qcon-interview.html</link><author>noreply@blogger.com (srinip)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-8471825285710875204</guid><pubDate>Mon, 18 May 2009 01:01:00 +0000</pubDate><atom:updated>2009-05-17T18:03:09.577-07:00</atom:updated><title>InfoQ is offering online training classes on Cloud Computing, SOA and Agile Design topics</title><description>InfoQ web site is offering virtual training classes on topics like Cloud Computing, SOA and Agile Design hosted by reputed speakers like John Davies, Jim Webber, and Rebecca Wirfs-Brock.&lt;br /&gt;&lt;br /&gt;These classes are not free (each class is currently priced @ $65 for one-hour "Briefing Session" and $135 for a half-day "Training Session"). The first training session is next Wednesday (May 27).&lt;br /&gt;&lt;br /&gt;This is a good opportunity for software developers and architects who want to learn new technologies by attending a live training class and at the same time not spend a fortune that they would otherwise spend in attending technology conferences in person.&lt;br /&gt;&lt;br /&gt;For more details on the new virtual training program, check out this link:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.infoq.com/news/2009/05/virtual-training" target="_blank"&gt;http://www.infoq.com/news/&lt;wbr&gt;2009/05/virtual-training&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If any of you attend these classes, let me know what you think about the quality and if the price is worth the class. Also, if any one has other topics they would like to see online training classes, e-mail me with the topic names. I will pass along the feedback and suggestions to the training program organizers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-8471825285710875204?l=srinip2007.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://srinip2007.blogspot.com/2009/05/infoq-is-offering-online-training.html</link><author>noreply@blogger.com (srinip)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-521388821269315249</guid><pubDate>Sun, 17 May 2009 23:51:00 +0000</pubDate><atom:updated>2009-05-17T17:23:18.536-07:00</atom:updated><title>Architecture Enforcement Presentation at SEI Architecture (SATURN) 2009 Conference</title><description>I attended the SEI Architecture Technology User Network (SATURN) 2009 &lt;a href="http://www.sei.cmu.edu/architecture/saturn/2009/"&gt;Conference&lt;/a&gt; in Pittsburgh last week.&lt;br /&gt;&lt;br /&gt;I gave a presentation at the conference on the topic &lt;a href="http://www.sei.cmu.edu/architecture/saturn/2009/abstracts.html#ArchGovRulesEnforce"&gt;Architecture Enforcement and Governance Using Aspects&lt;/a&gt;. I discussed an architecture enforcement framework I created to "inject" architecture rules and design policies into the application code as part of the Continuous Integration (CI) process using &lt;a href="http://en.wikipedia.org/wiki/Aspect-oriented_programming"&gt;Aspects&lt;/a&gt; to enforce quality of the code.&lt;br /&gt;&lt;br /&gt;This framework uses tools like &lt;a href="http://www.eclipse.org/"&gt;Eclipse&lt;/a&gt;, &lt;a href="http://www.eclipse.org/ajdt/"&gt;AJDT&lt;/a&gt; and &lt;a href="http://maven.apache.org/"&gt;Maven&lt;/a&gt; to integrate policy enforcement into the agile development process to detect architecture deviations early and often and validates that the design and code are in compliance with the Reference Architecture (RA).&lt;br /&gt;&lt;br /&gt;The response from the attendees was pretty good. There were questions on how to take the architecture enforcement back to the design documents like Class and Sequence Diagrams (UML) as well.&lt;br /&gt;&lt;br /&gt;Overall, SATURN conference experience was excellent. This was my first time attending it. It was a good opportunity to learn more about the techniques and best practices in the areas of architecture evaluation, validation, and assessment.&lt;br /&gt;&lt;br /&gt;Some of the highlights from the conference are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Keynote presentation by &lt;a href="http://www.zachmaninternational.com/index.php/home-article/14"&gt;John Zachman&lt;/a&gt; on "&lt;a href="http://www.sei.cmu.edu/architecture/saturn/2009/abstracts.html#zachman"&gt;Architecture Is Architecture&lt;/a&gt;"&lt;/li&gt;&lt;li&gt;&lt;a href="http://wirfs-brock.com/"&gt;Rebecca Wirfs-Brock&lt;/a&gt;'s keynote presentation on "&lt;a href="http://www.sei.cmu.edu/architecture/saturn/2009/abstracts.html#wirfs_brock"&gt;Lessons Learned from Architecture Reviews&lt;/a&gt;"&lt;/li&gt;&lt;li&gt;Tutorial on "Pattern-Oriented Software Architecture: A Pattern Language for Distributed Computing" by &lt;a href="http://frontweb.vuse.vanderbilt.edu/vuse_web/directory/facultybio.asp?FacultyID=23088"&gt;Doug Schmidt&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Tutorial: Integrating Architecture-Centric Methods into Object-Oriented Analysis and Design by &lt;a href="http://www.personal.psu.edu/rxs69/"&gt;Raghvinder Sangwan&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Birds-Of-A-Feather (BoF) session on Architecture Competence facilitated by &lt;a href="http://www.sei.cmu.edu/staff/jklein/"&gt;John Klein&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;For more details on the events from the conference, check out this conference &lt;a href="http://saturnnetwork.wordpress.com/"&gt;blog&lt;/a&gt; site.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-521388821269315249?l=srinip2007.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://srinip2007.blogspot.com/2009/05/architecture-enforcement-presentation.html</link><author>noreply@blogger.com (srinip)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-4803417540016302651</guid><pubDate>Mon, 13 Apr 2009 04:00:00 +0000</pubDate><atom:updated>2009-04-12T22:19:03.923-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">NFJS</category><title>NFJS, The Magazine</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XQM_82SlH58/SeLK1KSPXKI/AAAAAAAAAGs/3nXuAq0uyaU/s1600-h/NFJSMagazine.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 125px; height: 162px;" src="http://4.bp.blogspot.com/_XQM_82SlH58/SeLK1KSPXKI/AAAAAAAAAGs/3nXuAq0uyaU/s320/NFJSMagazine.png" alt="" id="BLOGGER_PHOTO_ID_5324040724148083874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I recently attended New England Software Symposium in Boston. I spoke on Architecture Enforcement and Domain-Driven Development topics at the conference.&lt;br /&gt;&lt;br /&gt;On the flight back to Detroit, I read the inaugural issue of &lt;a href="http://www.nofluffjuststuff.com/magazine_subscribe.jsp"&gt;NFJS magazine&lt;/a&gt; which is very interesting. It was full of technical information just like the &lt;a href="http://www.nofluffjuststuff.com/"&gt;NFJS conference&lt;/a&gt;, no fluff and a lot of technical stuff.&lt;br /&gt;&lt;br /&gt;This issue has the following technical articles:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A Case For Continuous Integration by Jared Richardson (author of &lt;a href="http://www.lulu.com/content/5925115"&gt;Career 2.0&lt;/a&gt; book)&lt;/li&gt;&lt;li&gt;So you want to be Agile? by Venkat Subramaniam&lt;/li&gt;&lt;li&gt;Introduction to Functional Languages by Ken Sipe&lt;/li&gt;&lt;li&gt;Message Driven POJOs - Messaging Made Easy by Mark Richards&lt;/li&gt;&lt;/ul&gt;All are excellent articles and very informative with sample code explaining the concepts.&lt;br /&gt;&lt;br /&gt;With the new magazine, Jay Zimmerman, Andrew Glover (Editor of the magazine) and NFJS team have done an excellent contribution to Java and Agile development communities.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-4803417540016302651?l=srinip2007.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://srinip2007.blogspot.com/2009/03/nfjs-magazine.html</link><author>noreply@blogger.com (srinip)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_XQM_82SlH58/SeLK1KSPXKI/AAAAAAAAAGs/3nXuAq0uyaU/s72-c/NFJSMagazine.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-8811950036246529660</guid><pubDate>Sun, 05 Apr 2009 23:43:00 +0000</pubDate><atom:updated>2009-04-10T21:06:04.702-07:00</atom:updated><title>SATURN 2009 Conference Presentation</title><description>I will be speaking at the upcoming &lt;a href="http://www.sei.cmu.edu/architecture/saturn/2009/index.html"&gt;SATURN 2009&lt;/a&gt; conference organized by Sofware Engineering Institute (&lt;a href="http://www.sei.cmu.edu/"&gt;SEI&lt;/a&gt;) of Carnegie Mellon University (&lt;a href="http://www.cmu.edu/index.shtml"&gt;CMU&lt;/a&gt;). The conference starts on 4th and ends on 7th of May.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sei.cmu.edu/architecture/saturn/2009"&gt;&lt;img src="http://www.sei.cmu.edu/architecture/saturn/2009/images/SATURN_speaker_badge.png" title="SATURN 2009 Speaker" alt="SATURN 2009 Speaker" width="120" border="0" height="240" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is a statement from their website that describes the main theme behind this year's conference:&lt;br /&gt;&lt;blockquote&gt;SATURN 2009 is expanding to cover architecture ranging from enterprise to system and software architectures. To reflect this expansion, the theme of the SATURN 2009 Conference is “architecture at all scales.”'&lt;/blockquote&gt;My presentation will be on &lt;a href="http://www.sei.cmu.edu/architecture/saturn/2009/program.html#may7"&gt;Architecture Governance and Enforcement using Aspects&lt;/a&gt; which is based on my recent work on using Aspect-Oriented Programming (AOP) techniques to enforce the architecture and design policies in J2EE applications.&lt;br /&gt;&lt;br /&gt;I have done the same presentation at &lt;a href="http://www.iasahome.org/web/itarc/116#SriniPenchikala"&gt;ITARC Conference&lt;/a&gt; in Atlanta back in February and again at &lt;a href="http://www.nofluffjuststuff.com/conference/boston/2009/03/schedule.html"&gt;New England Software Symposium&lt;/a&gt; in Boston last month. The response and feedback from the attendees was excellent. Architecture Policy Enforcement is definitely a very promising application of Aspects and AOP in enterprise software applications.&lt;br /&gt;&lt;br /&gt;I am looking forward to speaking at SATURN conference and meeting other architects from different backgrounds and experiences.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-8811950036246529660?l=srinip2007.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://srinip2007.blogspot.com/2009/04/i-will-be-speaking-at-upcoming-saturn.html</link><author>noreply@blogger.com (srinip)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-8421488459217765422</guid><pubDate>Mon, 30 Mar 2009 01:34:00 +0000</pubDate><atom:updated>2009-04-06T05:06:36.633-07:00</atom:updated><title>New England Software Symposium Presentations</title><description>I recently spoke at &lt;a href="http://www.nofluffjuststuff.com/conference/boston/2009/03/schedule.html"&gt;New England Software Symposium&lt;/a&gt; in Boston. The conference was excellent, my talks were very well received. It was a great opportunity to network with other speakers and share my ideas with the attendees.&lt;br /&gt;&lt;br /&gt;At the conference, I gave 3 presentations:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.nofluffjuststuff.com/show_session_view.jsp?presentationId=13767&amp;amp;showId=196"&gt;Architecture Rules Enforcement using Aspects&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.nofluffjuststuff.com/show_session_view.jsp?presentationId=13766&amp;amp;showId=196"&gt;Domain Driven Design &amp;amp; Development with Spring Portfolio&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.nofluffjuststuff.com/show_session_view.jsp?presentationId=13218&amp;amp;showId=196"&gt;Application Architecture Trends - Where We Have Been, Where We Are Going&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;The sessions on "Architecture Enforcement using Aspects" and "Domain Driven Development" drew bigger crowds than I anticipated. The attendees asked good questions and expressed interest in the architecture enforcement framework I discussed and demonstrated in the presentation. I am still getting e-mails from the attendees with follow-up discussion on the talks. I also got couple of suggestions on improving the presentation. I am updating the presentations to focus on the parts that were more interesting to the audience.&lt;br /&gt;&lt;br /&gt;I want to thank every one who attended my sessions and gave valuable feedback and comments on the presentation topics.&lt;br /&gt;&lt;br /&gt;This was my first trip to the city of Boston. It's an excellent city. I enjoyed my short stay and looking forward to visiting there again in the future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-8421488459217765422?l=srinip2007.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://srinip2007.blogspot.com/2009/03/new-england-software-symposium.html</link><author>noreply@blogger.com (srinip)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-1662010311952170752</guid><pubDate>Sun, 29 Mar 2009 22:40:00 +0000</pubDate><atom:updated>2009-03-29T15:44:34.102-07:00</atom:updated><title>Interview and Book Excerpt: Jaroslav Tulach's Practical API Design</title><description>Jaroslav Tulach's latest book &lt;a href="http://www.apress.com/book/view/9781430209737"&gt;Practical API Design&lt;/a&gt; covers the topic of API design of software projects. Jaroslav discusses the importance of API design in the modern software applications, what are the different factors that make a good API, and how to go about implementing API frameworks. He brings his experience as the architect for &lt;a href="http://www.netbeans.org/"&gt;NetBeans&lt;/a&gt; IDE project to the writing of this book. In the book, Jaroslav talks about several real-world examples of how to (and more importantly how not to) use Java API based on his experiences working on NetBeans project.&lt;br /&gt;&lt;br /&gt;I published an &lt;a href="http://www.infoq.com/news/2009/03/tulach-practical-api-design"&gt;interview&lt;/a&gt; with Jaroslav on &lt;a href="http://www.infoq.com/"&gt;InfoQ&lt;/a&gt; on various design and architecture topics. Check it out.&lt;br /&gt;&lt;br /&gt;Jaroslav also maintains an excellent &lt;a href="http://wiki.apidesign.org/"&gt;wiki&lt;/a&gt; site where he writes about his book and other API design topics.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-1662010311952170752?l=srinip2007.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://srinip2007.blogspot.com/2009/03/interview-and-book-excerpt-jaroslav.html</link><author>noreply@blogger.com (srinip)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-4543855780213973348</guid><pubDate>Sun, 01 Mar 2009 21:04:00 +0000</pubDate><atom:updated>2009-03-08T12:34:20.473-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Architecture Enforcement</category><category domain="http://www.blogger.com/atom/ns#">ITARC 2009</category><category domain="http://www.blogger.com/atom/ns#">Aspects</category><category domain="http://www.blogger.com/atom/ns#">AOP</category><title>Architecture Enforcement and Governance Using Aspects - ITARC Conference Presentation</title><description>I was at IT Architect Confrence (&lt;a href="http://www.iasahome.org/web/itarc/2009/Atlanta"&gt;ITARC&lt;/a&gt;) 2009 in Atlanta last week. The conference was a great event. It offered a great opportunity to talk to other architects (of all specializations, Information, Solutions, Data, and Enterprise) about their architecture experience and frameworks and technologies they are currently using in their projects.&lt;br /&gt;&lt;br /&gt;Here are some of the highlights of the conference:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;It was a non-vendor driven event organized by &lt;a href="http://www.iasahome.org/web/home/home"&gt;IASA&lt;/a&gt; (a non-profit organization focused on the Architecture profession). Paul Preiss and his team at IASA are helping the architecture community through education, consulting, and conference events such as ITARC.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Conference main focus was on Architecture and Architecture only, so there were no different tracks on Java, Ruby, SOA, and Agile topics to attract as many people to attend the conference as possible.&lt;/li&gt;&lt;li&gt;It was also more than just one kind of Architecture conference. The key-notes, technical sessions and round-table discussions included other architecture specializations like Data, Information, Infrastructure, and Enterprise Architecture which helped the attendees to put these specializations in perspective and see architecture as a whole solution for the enterprise business and IT needs.&lt;/li&gt;&lt;li&gt;There was a dedicated &lt;a href="http://www.iasahome.org/web/itarc/116#Yourcareer"&gt;Architecture Career Mentoring&lt;/a&gt; track which I thought is an innovative idea and real help to the architecture professionals who are looking for some guidance from the experienced architects. Architecture is an art, not a science, so the advice from a senior architect is of a great value to the new architects.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;And finally the &lt;a href="http://www.stevenlist.com/openspace.html"&gt;Open Spaces&lt;/a&gt; track, hosted by Steven "Doc" List included two 1-hour open spaces sessions. This was a conference in itself and very informative; I learned a lot of new "open spaces patterns" in attending this event. I will be blogging more about those patterns in the future blog entries.&lt;/li&gt;&lt;/ul&gt;At the conference, I gave a &lt;a href="http://www.iasahome.org/web/itarc/116#SriniPenchikala"&gt;presentation&lt;/a&gt; on "Architecture Enforcement using Aspects" topic. The presentation was very well received. There were both JEE and .NET IT professionals in the room and there was good interest on the topic of using Aspects and &lt;a href="http://en.wikipedia.org/wiki/Aspect-oriented_programming"&gt;AOP&lt;/a&gt; to enforce the architecture and design policies.&lt;br /&gt;&lt;br /&gt;I have uploaded to SlideShare web site. If you want to check out the presentation slides, here is the &lt;a href="http://www.slideshare.net/srinip/architecture-enforcement-aspects-itarc2009-1117942"&gt;link&lt;/a&gt;. Let me know if you have any suggestions and feedback for improvement of the presentation.&lt;br /&gt;&lt;br /&gt;This presentation has also been accepted for the upcoming No Fluff Just Stuff (NFJS) New England Software Symposium. Check out the symposium &lt;a href="http://www.nofluffjuststuff.com/conference/boston/2009/03/schedule.html"&gt;schedule&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Let me know if any of you will be attending the NFJS symposium.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-4543855780213973348?l=srinip2007.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://srinip2007.blogspot.com/2009/03/architecture-enforcement-and-governance.html</link><author>noreply@blogger.com (srinip)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-7217872852197421140</guid><pubDate>Sun, 01 Mar 2009 21:02:00 +0000</pubDate><atom:updated>2009-03-01T18:18:52.018-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Presentations</category><category domain="http://www.blogger.com/atom/ns#">Spring Portfolio</category><category domain="http://www.blogger.com/atom/ns#">Domain Driven Design</category><category domain="http://www.blogger.com/atom/ns#">Spring Framework</category><category domain="http://www.blogger.com/atom/ns#">Conferences</category><title>Domain Driven Design and Development with Spring Portfolio</title><description>I gave a presentation at Ann Arbor Java User Group (&lt;a href="http://www.aajug.org/"&gt;AAJUG&lt;/a&gt;) last Tuesday on "Domain Driven Design and Development with Spring Portfolio". The presentation went very well with great discussion and feedback from the attendees.&lt;br /&gt;&lt;br /&gt;David at AAJUG has been leading the user group meetings, speakers, and presentation. AAJUG has been an active Java user group for last several years. I want to thank David and the group members for the opportunity to speak at JUG meeting.&lt;br /&gt;&lt;br /&gt;In the presentation, I focused on the &lt;a href="http://www.domaindrivendesign.org/"&gt;Domain-Driven Design&lt;/a&gt; (DDD) implementation aspects using &lt;a href="http://www.springframework.org/"&gt;Spring&lt;/a&gt; projects like Spring IoC, Spring AOP and &lt;a href="http://static.springframework.org/spring-security/site/index.html"&gt;Spring Security&lt;/a&gt;. I also talked about enforcing architecture rules in DDD applications. I briefly talked about the role of code generation in a DDD application which included a quick demo using tools like Eclipse &lt;a href="http://www.eclipse.org/modeling/emf/"&gt;EMF&lt;/a&gt; and &lt;a href="http://www.openarchitectureware.org/"&gt;openArchitectureWare&lt;/a&gt; (oAW).&lt;br /&gt;&lt;br /&gt;Here are some of the items I talked about:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Domain Driven Design &amp;amp; Development&lt;/li&gt;&lt;li&gt;Spring Portfolio&lt;/li&gt;&lt;li&gt;Dependency Injection (DI)&lt;/li&gt;&lt;li&gt;Aspect-Oriented Programming (AOP)&lt;/li&gt;&lt;li&gt;Role of Custom Annotations in DDD&lt;/li&gt;&lt;li&gt;Spring Security&lt;/li&gt;&lt;li&gt;Architecture Enforcement (Demo)&lt;/li&gt;&lt;li&gt;Code Generation (Demo)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;I have uploaded to &lt;a href="http://www.slideshare.net/"&gt;SlideShare&lt;/a&gt; web site. You can view the presentation &lt;a href="http://www.slideshare.net/srinip/domain-driven-design-development-spring-portfolio"&gt;slides&lt;/a&gt; on the site. Let me know if you have any suggestions or feedback for improvement of the presentation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-7217872852197421140?l=srinip2007.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://srinip2007.blogspot.com/2009/03/domain-driven-design-and-development.html</link><author>noreply@blogger.com (srinip)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-4153913888981423508</guid><pubDate>Sat, 07 Feb 2009 04:52:00 +0000</pubDate><atom:updated>2009-02-07T19:47:41.921-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Presentations</category><category domain="http://www.blogger.com/atom/ns#">ITARC 2009</category><category domain="http://www.blogger.com/atom/ns#">Conferences</category><title>I will be speaking at ITARC Architect Conference</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.iasahome.org/web/itarc/116#SriniPenchikala"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 138px;" src="http://4.bp.blogspot.com/_XQM_82SlH58/SY0VyJ3YqrI/AAAAAAAAAFM/LaO_1zM1CFY/s320/itarc-conference.png" alt="" id="BLOGGER_PHOTO_ID_5299916287870806706" border="0" /&gt;&lt;/a&gt;I will be speaking at the upcoming IT Architect Regional Conference in Atlanta later this month. My presentation is in the &lt;a href="http://www.iasahome.org/web/itarc/116#Enterprise"&gt;Enterprise Architecture&lt;/a&gt; track of the conference schedule.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Topic:&lt;/span&gt;&lt;br /&gt;&lt;strong style="font-weight: normal;"&gt;Architecture Enforcement and Governance Using Aspects and SonarJ&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Abstract:&lt;/span&gt;&lt;br /&gt;In this presentation, I will talk about the significance of enforcing the architecture rules and standards and how to actually enforce them in software development projects. Architecture governance ensures that the Implementation (Code) does match the Requirements (Reference Architecture). It can help with clear and cycle free dependency structures as well as improve testability and reusability of code.&lt;br /&gt;&lt;br /&gt;Enforcing Reference Architecture guidelines promotes consistency and modularity in the System. It also helps in detecting structural complexity and preventing it earlier in the software development process. As a result, the application code is modifiable, portable, and testable.&lt;br /&gt;&lt;br /&gt;Most of the presentation will focus on using Aspects and &lt;a href="http://en.wikipedia.org/wiki/Aspect-oriented_programming"&gt;AOP&lt;/a&gt; techniques to define architecture rules and use them for policy-enforcement in Java applications. I will briefly discuss how tools like SonarJ and Structure 101 can help the architects integrate architecture analysis and management earlier in the development process.&lt;br /&gt;&lt;br /&gt;The session will include several demo's of how to enforce the architecture rules using frameworks like &lt;a href="http://www.eclipse.org/aspectj/"&gt;AspectJ&lt;/a&gt; and &lt;a href="http://static.springframework.org/spring/docs/2.5.x/reference/aop.html"&gt;SpringAOP&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Check out more details of the ITARC &lt;a href="http://www.iasahome.org/web/itarc/2009/atlanta"&gt;conference&lt;/a&gt;, event &lt;a href="http://www.iasahome.org/web/itarc/115"&gt;schedule&lt;/a&gt; and my &lt;a href="http://www.iasahome.org/web/itarc/116#SriniPenchikala"&gt;presentation&lt;/a&gt;. Let me know if you live in Atlanta area and if you are going to be attending the conference.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-4153913888981423508?l=srinip2007.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://srinip2007.blogspot.com/2009/02/i-will-be-speaking-at-itarc-architect.html</link><author>noreply@blogger.com (srinip)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_XQM_82SlH58/SY0VyJ3YqrI/AAAAAAAAAFM/LaO_1zM1CFY/s72-c/itarc-conference.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-7476632501897387736</guid><pubDate>Sat, 07 Feb 2009 04:03:00 +0000</pubDate><atom:updated>2009-02-06T20:12:19.980-08:00</atom:updated><title>Greg Young on Domain-Driven Design</title><description>At QCon San Francisco 2008 &lt;a href="http://qconsf.com/sf2008/conference/"&gt;conference&lt;/a&gt; last year, I interviewed Greg Young on &lt;a href="http://www.domaindrivendesign.org"&gt;Domain-Driven Design&lt;/a&gt; (DDD) topic. His team has been using DDD concepts in their projects. In the interview, Greg discussed how to manage domain state transitions in a DDD project using two different design models, one for reading data from data store and the other for write-only command operations. He also talked about Command Query Separation (CQS) design concept to keep design cleaner and easier to test and maintain and the best practices that developers can use when working on DDD projects.&lt;br /&gt;&lt;br /&gt;Check out the &lt;a href="http://www.infoq.com/news/2009/01/greg-young-ddd"&gt;interview&lt;/a&gt; on &lt;a href="http://www.infoq.com"&gt;InfoQ&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-7476632501897387736?l=srinip2007.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://srinip2007.blogspot.com/2009/02/greg-young-on-domain-driven-design.html</link><author>noreply@blogger.com (srinip)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-1677730088862001642</guid><pubDate>Mon, 02 Feb 2009 04:19:00 +0000</pubDate><atom:updated>2009-02-01T20:58:02.167-08:00</atom:updated><title>JavaRebel - nice tool to help with J2EE App hot-deployments</title><description>Recently, I got a license of &lt;a href="http://www.zeroturnaround.com/javarebel/"&gt;JavaRebel&lt;/a&gt; software created by &lt;a href="http://www.zeroturnaround.com/"&gt;ZeroTurnaround&lt;/a&gt; development group. This tool uses a custom Java &lt;a href="http://en.wikipedia.org/wiki/JAR_hell#Class_loading_process"&gt;classloader&lt;/a&gt; to hot-deploy the code changes made in a single Java class in the web applications to override the servlet container (&lt;a href="http://www.jboss.org/"&gt;JBoss&lt;/a&gt; or &lt;a href="http://tomcat.apache.org/"&gt;Tomcat&lt;/a&gt;) default WAR deploy behavior (which redeploys the whole web application context).&lt;br /&gt;&lt;br /&gt;This tool helps the Java developers be more productive with the time they can save because of the less time required to load the class changes into JVM without having to deploy the whole web application every time a change is made in a single class.&lt;br /&gt;&lt;br /&gt;Using the tool is pretty straight-forward. You will have to start the container (whether it's JBoss, Tomcat or any other J2EE container) using the "&lt;a href="http://java.sun.com/javase/6/docs/api/java/lang/instrument/package-summary.html"&gt;-javaagent&lt;/a&gt;" option and specify the folder(s) where JavaRebel should look for Java class changes in the web applications deployed in the container.&lt;br /&gt;&lt;br /&gt;But, remember that even though JavaRebel helps boost the productivity with faster deployments of web application contexts, you should still design your applications to be more unit-testing friendly and be able to test most of the code in the application using the unit testing frameworks like &lt;a href="http://www.junit.org/"&gt;JUnit4&lt;/a&gt; or &lt;a href="http://testng.org/doc/index.html"&gt;TestNG&lt;/a&gt;, outside the container. You should depend on the container only for those infrastructure concerns (like in-container Database Connection Pool, JTA Transactions, JMS Message Queues and Topics) that need the application to be deployed inside the container. Even in most of these cases, you can use the embedded &lt;a href="http://activemq.apache.org/how-do-i-embed-a-broker-inside-a-connection.html"&gt;broker&lt;/a&gt; version of &lt;a href="http://activemq.apache.org/"&gt;ActiveMQ&lt;/a&gt; container to unit test the JMS resources outside the container.&lt;br /&gt;&lt;br /&gt;If you are using JBoss or Tomcat or other application server and you are maintaining a legacy J2EE application that's not easy to unit test and requires the application to be deployed in the container for even simple code changes, you should check out JavaRebel tool. Similar to tools like &lt;a href="http://www.jetbrains.com/idea/"&gt;IntelliJ IDEA&lt;/a&gt;, it is worth the price. The benefits it offers far out-weigh the cost.&lt;br /&gt;&lt;br /&gt;I hope &lt;a href="http://www.springsource.com/"&gt;SpringSource&lt;/a&gt; or &lt;a href="http://www.jboss.com/"&gt;JBoss&lt;/a&gt; will soon acquire ZeroTurnaround to integrate JavaRebel into Tomcat or JBoss containers respectively. JavaRebel is such an useful tool it only makes sense to see it integrated with these popular J2EE containers and not as a separate product.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-1677730088862001642?l=srinip2007.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://srinip2007.blogspot.com/2009/02/javarebel-nice-tool-to-help-with-j2ee.html</link><author>noreply@blogger.com (srinip)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-4815260819935280046</guid><pubDate>Sat, 24 Jan 2009 05:03:00 +0000</pubDate><atom:updated>2009-01-23T21:20:39.928-08:00</atom:updated><title>Spring 3.0 and Beyond - Interview with Rod Johnson</title><description>During QCon San Francisco 2009 &lt;a href="http://qconsf.com/sf2008/conference/"&gt;conference&lt;/a&gt;, I interviewed &lt;a href="http://www.springframework.org/"&gt;SpringFramework&lt;/a&gt; founder &lt;a href="http://blog.springsource.com/author/rodj/"&gt;Rod Johnson&lt;/a&gt; about various topics including:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://static.springsource.org/spring/docs/3.0.0.M1/javadoc-api/"&gt;Spring 3.0&lt;/a&gt; Features&lt;/li&gt;&lt;li&gt;REST Support&lt;/li&gt;&lt;li&gt;Java EE6/EJB 3.1 integration in Spring&lt;/li&gt;&lt;li&gt;SpringSource license model&lt;/li&gt;&lt;li&gt;Future &lt;a href="http://www.domaindrivendesign.org/"&gt;Domain Driven Design&lt;/a&gt; Support&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.g2one.com/"&gt;G2One&lt;/a&gt; acquisition&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.springsource.org/spring-integration"&gt;Spring Integration&lt;/a&gt;/Spring &lt;a href="http://www.springsource.org/webflow"&gt;Web Flow&lt;/a&gt;/Spring &lt;a href="http://static.springsource.org/spring-batch/"&gt;Batch&lt;/a&gt; Frameworks&lt;/li&gt;&lt;li&gt;Cloud Computing&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.springsource.org/dmserver"&gt;SpringSource DM Server&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.osoa.org/display/Main/Service+Component+Architecture+Home"&gt;SCA&lt;/a&gt; Support in Spring&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The &lt;a href="http://www.infoq.com/interviews/Spring-3.0-Rod-Johnson"&gt;interview&lt;/a&gt; is now available on &lt;a href="http://www.infoq.com/"&gt;InfoQ&lt;/a&gt;. Check it out and let me know what you think.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-4815260819935280046?l=srinip2007.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://srinip2007.blogspot.com/2009/01/spring-30-and-beyond-interview-with-rod.html</link><author>noreply@blogger.com (srinip)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-8629285005738094648</guid><pubDate>Tue, 20 Jan 2009 04:13:00 +0000</pubDate><atom:updated>2009-01-19T20:19:19.064-08:00</atom:updated><title>Top 100 Best Software Engineering Books - Good List</title><description>&lt;a href="http://knol.google.com/k/jurgen-appelo/jurgen-appelo/z7e4mx2g6lir/1"&gt;Jurgen Appelo&lt;/a&gt; recently posted a &lt;a href="http://knol.google.com/k/jurgen-appelo/top-100-best-software-engineering-books/z7e4mx2g6lir/3"&gt;list&lt;/a&gt; of Top 100 Best Software Engineering Books. I am not sure if I agree with the author on all the ratings of books in the list, but most of my favorites are in top 30. I am just not happy that Eric Evans' book "&lt;a href="http://www.domaindrivendesign.org/books/index.html#DDD"&gt;Domain Driven Design&lt;/a&gt;" (which is my top 10 book) is 89 on the list :)&lt;br /&gt;&lt;br /&gt;Check out the list. Top 100 Best Software Engineering Books, Ever:&lt;br /&gt;http://knol.google.com/k/jurgen-appelo/top-100-best-software-engineering-books/&lt;br /&gt;&lt;br /&gt;How does this compare to your own list of favorite books?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-8629285005738094648?l=srinip2007.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://srinip2007.blogspot.com/2009/01/top-100-best-software-engineering-books.html</link><author>noreply@blogger.com (srinip)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-812076389074176223</guid><pubDate>Mon, 19 Jan 2009 22:49:00 +0000</pubDate><atom:updated>2009-01-19T14:57:43.322-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">CodeMash 2009</category><title>CodeMash 2009 Conference - Venkat's Keynote Presentation</title><description>I attended a keynote presentation by &lt;a href="http://www.agiledeveloper.com/blog/"&gt;Venkat Subamaniam&lt;/a&gt; at the recent &lt;a href="http://www.codemash.org"&gt;CodeMash 2009 &lt;/a&gt;conference. He talked about the facts and fallacies of every day software development and what developers &amp;amp; project managers should watch out for to ensure the success of the projects. It was an excellent presentation, Venkat touched on several agile development and project management techniques such as dynamic languages, off-shoring, innovation-before-standardization, and &lt;a href="http://en.wikipedia.org/wiki/Unit_testing"&gt;unit testing&lt;/a&gt;. He has a unique way of explaining every day problems that we, the programmers, run into in our projects and never even realize that we are in the midst of a problem.&lt;br /&gt;&lt;br /&gt;The keynote session drew great response from the audience because of the practical nature of the fallacies mentioned by the speaker. I have published a &lt;a href="http://www.infoq.com/news/2009/01/venkat-codemash-keynote"&gt;news item&lt;/a&gt; on &lt;a href="http://www.infoq.com"&gt;InfoQ&lt;/a&gt; summarizing Venkat's keynote presentation. Check it out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-812076389074176223?l=srinip2007.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://srinip2007.blogspot.com/2009/01/codemash-2009-conference-venkats.html</link><author>noreply@blogger.com (srinip)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-5955728873878307050</guid><pubDate>Sun, 28 Dec 2008 19:39:00 +0000</pubDate><atom:updated>2008-12-28T17:18:49.852-08:00</atom:updated><title>CodeMash 2009 Conference Next Month</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XQM_82SlH58/SVglLoyGK8I/AAAAAAAAAEs/MIp1BSzOyPk/s1600-h/attendee1.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 206px; height: 132px;" src="http://3.bp.blogspot.com/_XQM_82SlH58/SVglLoyGK8I/AAAAAAAAAEs/MIp1BSzOyPk/s320/attendee1.png" alt="" id="BLOGGER_PHOTO_ID_5285015044575603650" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I will be attending &lt;a href="http://www.codemash.org/"&gt;CodeMash 2009&lt;/a&gt; Conference next month on January 7, 8 and 9. On the first day of the conference, there will be &lt;a href="http://www.codemash.org/PreCompiler.aspx"&gt;PreCompiler sessions&lt;/a&gt; with Code Jam sessions and workshops.  The main conference schedule and &lt;a href="http://www.codemash.org/SessionList.aspx"&gt;sessions&lt;/a&gt; look very interesting. One thing I noticed about the conference sessions and the speakers is that this is one of those no fluff conferences where the speakers and attendees are IT geeks who have practical knowledge and experience of the topics they are presenting on, which should result in a rewarding experience to the attendees.&lt;br /&gt;&lt;br /&gt;Some of the sessions I am planning on attending are listed below:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Day 1:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Value Stream Mapping Workshop (Host: Mary Poppendieck)&lt;/li&gt;&lt;li&gt;Kanban 101 (David Laribee)&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Day 2:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Programming in Scala (Speaker: Venkat Subramaniam)&lt;/li&gt;&lt;li&gt;RIAs with Java, Spring, Hibernate, BlazeDS, and Flex (Speaker: James Ward)&lt;/li&gt;&lt;li&gt;Dynamic Languages and the JVM (Speaker: Nathaniel Schutta)&lt;/li&gt;&lt;li&gt;Thrashing (Speaker: Mary Poppendieck)&lt;/li&gt;&lt;li&gt;Functional Concepts for OOP Developers (Speaker: Bryan Weber)&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Day 3:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Grease, a Parallel Systems Architecture (Speaker: Edward Vielmetti)&lt;/li&gt;&lt;li&gt;Language Oriented DDD (Speaker: David Laribee)&lt;/li&gt;&lt;li&gt;Executable Documentation with easyb (Speaker: Andrew Glover)&lt;/li&gt;&lt;/ul&gt;All-in-all, I am looking forward to meeting other passionate Java, .NET, Python and Ruby developers there and network with regional user group leaders.&lt;br /&gt;&lt;br /&gt;If anyone is attending the conference, let me know. We can get together for a cup of coffee or brew.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-5955728873878307050?l=srinip2007.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://srinip2007.blogspot.com/2008/12/codemash-2009-conference-next-month.html</link><author>noreply@blogger.com (srinip)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_XQM_82SlH58/SVglLoyGK8I/AAAAAAAAAEs/MIp1BSzOyPk/s72-c/attendee1.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-738950235693695321</guid><pubDate>Sun, 21 Dec 2008 11:49:00 +0000</pubDate><atom:updated>2008-12-21T21:16:50.877-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Detroit JUG</category><category domain="http://www.blogger.com/atom/ns#">Presentations</category><title>Application Architecture Trends presentation at Detroit Java User Group meeting</title><description>I recently gave a &lt;a href="http://sites.google.com/site/detroitjug/Meeting-Announcements/december17thmeeting-applicationarchitectures-wherewehavebeenwherewearegoing"&gt;presentation&lt;/a&gt; on Application Architecture Trends at &lt;a href="http://sites.google.com/site/detroitjug/"&gt;Detroit Java User Group&lt;/a&gt; meeting on Wednesday evening. The presentation title is "Application Architectures - Where We Have Been, Where We Are Going". The turnout was pretty good (about 20 people) and the presentation went very well. There were lot of great questions and discussion on the items I talked about in the presentation like &lt;a href="http://en.wikipedia.org/wiki/Aspect-oriented_programming"&gt;AOP&lt;/a&gt;, Custom Annotations and &lt;a href="http://www.osgi.org/Main/HomePage"&gt;OSGi&lt;/a&gt;. Here is a list of the new technology trends I covered in the presentation:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Dependency Injection (includes a demo on a Data Access Object using Spring DI to inject the JEE resources like Data Source, Entity Manager, and Transaction Manager)&lt;/li&gt;&lt;li&gt;Aspect Oriented Programming (includes 2 demos, one on Architecture Rules Enforcement using AspectJ &amp;amp; AJDT and another on Profiling using Spring AOP)&lt;/li&gt;&lt;li&gt;Annotations&lt;/li&gt;&lt;li&gt;    Custom Annotations (includes a demo on a Custom Annotation for Object Caching using Spring AOP and EHCache)&lt;/li&gt;&lt;li&gt;Spring Portfolio&lt;/li&gt;&lt;li&gt;    Spring Core&lt;/li&gt;&lt;li&gt;    Spring AOP&lt;/li&gt;&lt;li&gt;    Spring Security&lt;/li&gt;&lt;li&gt;    Spring MVC/ Spring WebFlow&lt;/li&gt;&lt;li&gt;Persistence&lt;/li&gt;&lt;li&gt;    JDBC v. Hibernate v. JPA&lt;/li&gt;&lt;li&gt;Transaction Management&lt;/li&gt;&lt;li&gt;    Spring JTA&lt;/li&gt;&lt;li&gt;Web Services, Async Messaging &amp;amp; ESB's&lt;/li&gt;&lt;li&gt;Java As a Platform&lt;/li&gt;&lt;li&gt;    Dynamic Languages (Groovy, JRuby, Scala)&lt;/li&gt;&lt;li&gt;    Domain Specific Languages (DSL's)&lt;/li&gt;&lt;li&gt;        Internal DSLs&lt;/li&gt;&lt;li&gt;        External DSLs&lt;/li&gt;&lt;li&gt;Deployment&lt;/li&gt;&lt;li&gt;    OSGi&lt;/li&gt;&lt;li&gt;Distributed Computing&lt;/li&gt;&lt;li&gt;    Concurrent Programming (support in JDK)&lt;/li&gt;&lt;li&gt;    Cloud Computing&lt;/li&gt;&lt;li&gt;    Virtualization&lt;/li&gt;&lt;li&gt;Database Layer&lt;/li&gt;&lt;li&gt;    Distributed Data Storage Frameworks&lt;/li&gt;&lt;li&gt;Other Trends&lt;/li&gt;&lt;li&gt;    Web 2.0&lt;/li&gt;&lt;li&gt;    RIA/RCP Applications&lt;/li&gt;&lt;li&gt;    Conversational Web / Batch Frameworks&lt;/li&gt;&lt;li&gt;What's next for J2EE?&lt;/li&gt;&lt;li&gt;    Java EE 6 (JSR-316)&lt;/li&gt;&lt;li&gt;        - Profiles&lt;/li&gt;&lt;li&gt;    JPA 2.0 (JSR-317)&lt;/li&gt;&lt;li&gt;        - Criteria Expression Support&lt;/li&gt;&lt;li&gt;    EJB 3.1 (JSR-318)&lt;/li&gt;&lt;li&gt;        - Deploy EJB's in WAR files (no need for EAR files any more)&lt;/li&gt;&lt;li&gt;    Spring 3.0&lt;/li&gt;&lt;li&gt;        - REST Support&lt;/li&gt;&lt;li&gt;        - Support for EJB 3.1&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The presentation slides are available &lt;a href="http://www.slideshare.net/srinip/application-architecture-trends-presentation/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://independentindetroit.blogspot.com/"&gt;Erik&lt;/a&gt; has &lt;a href="http://independentindetroit.blogspot.com/2008/12/i-love-jugs.html"&gt;blogged&lt;/a&gt; about this meeting and my presentation.&lt;br /&gt;&lt;br /&gt;This presentation is also accepted for the upcoming No Fluff Just Stuff (NFJS) &lt;a href="http://www.nofluffjuststuff.com/home.jsp"&gt;Symposium&lt;/a&gt; in &lt;a href="http://www.nofluffjuststuff.com/conference/milwaukee/2009/02/index.html"&gt;Milwaukee&lt;/a&gt; in February (Feb 27 to March 1; checkout out the full &lt;a href="http://www.nofluffjuststuff.com/conference/milwaukee/2009/02/schedule.html"&gt;conference schedule&lt;/a&gt; which has great speakers talking on very interesting topics).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-738950235693695321?l=srinip2007.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://srinip2007.blogspot.com/2008/12/application-architecture-trends.html</link><author>noreply@blogger.com (srinip)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-3988780769345517592</guid><pubDate>Fri, 28 Nov 2008 02:02:00 +0000</pubDate><atom:updated>2008-11-27T18:20:00.913-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">QConSF 2008 Conference</category><title>QCon San Francisco 2008 Conference - Tutorials</title><description>I attended &lt;a href="http://qconsf.com/sf2008/"&gt;QCon&lt;/a&gt; San Francisco conference last week. The conference &lt;a href="http://qconsf.com/sf2008/schedule/wednesday.jsp"&gt;schedule&lt;/a&gt; included &lt;a href="http://qconsf.com/sf2008/tutorials/"&gt;tutorial sessions&lt;/a&gt; before the main conference. There were several tutorials on topics like:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://qconsf.com/sf2008/presentation/Building+Modular+Applications+with+the+SpringSource+Application+Platform"&gt;SpringSource dm Server&lt;/a&gt; by &lt;a href="http://qconsf.com/sf2008/speaker/Rob+Harrop"&gt;Rob Harrop&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Domain Specific Languages by &lt;a class="textlink" href="http://qconsf.com/sf2008/speaker/Neal+Ford"&gt;Neal Ford&lt;/a&gt;, &lt;a class="textlink" href="http://qconsf.com/sf2008/speaker/Martin+Fowler"&gt;Martin Fowler&lt;/a&gt; &amp;amp; &lt;a class="textlink" href="http://qconsf.com/sf2008/speaker/Rebecca+Parsons"&gt;Rebecca Parsons&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Scala (Bill Venners)&lt;/li&gt;&lt;li&gt;Erlang (Francesco Cesarini)&lt;/li&gt;&lt;li&gt;JRuby and JRuby on Rails (Ola Bini &amp;amp; Nick Sieger), and &lt;/li&gt;&lt;li&gt;Agile Management (David Anderson). &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;I attended Certified Scrum Master (&lt;a href="http://qconsf.com/sf2008/presentation/Certified+Scrum+Master"&gt;CSM&lt;/a&gt;) hosted by &lt;a href="http://qconsf.com/sf2008/speaker/Martine+Devos"&gt;Martine Devos&lt;/a&gt; from &lt;a href="http://www.objectmentor.com/index.html"&gt;Object Mentor&lt;/a&gt; Project Management team. Martine is an excellent CSM Trainer. The tutorial class was very educational and informative for people who are in technical management to be come Agile Project Managers. The class was interactive that allowed students to discuss with each other and rest of the group in serveral real-world project management scenarios.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Some of my favorite parts of the class are: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Scrum From Hell &lt;/li&gt;&lt;li&gt;Estimation Quiz&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Martine is a great instructor. I recommend her class for any one who wants to learn how to be an Agile Project Manager.&lt;/p&gt;&lt;p&gt;On day 2 of the conference, I attended an ad hoc presentation by &lt;a href="http://st-www.cs.uiuc.edu/users/johnson/index.html"&gt;Ralph Johnson&lt;/a&gt; (one of GOF &lt;a href="http://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional/dp/0201633612"&gt;Design Patterns&lt;/a&gt; authros) on Parallel Computing Design Patterns.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-3988780769345517592?l=srinip2007.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://srinip2007.blogspot.com/2008/11/qcon-san-francisco-2008-conference.html</link><author>noreply@blogger.com (srinip)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7907778724738449118.post-2054771035898841908</guid><pubDate>Sat, 08 Nov 2008 01:32:00 +0000</pubDate><atom:updated>2008-11-07T18:51:26.369-08:00</atom:updated><title>QCon 2008 conference</title><description>The second QCon San Francisco (&lt;a href="http://qconsf.com/sf2008/"&gt;QCon SF 2008&lt;/a&gt;) conference is fast approaching us. The conference is held at &lt;a href="http://www.westinsf.com/"&gt;Westin SF Market Street&lt;/a&gt; from November 19 - 21.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_XQM_82SlH58/SRT9yQhNn0I/AAAAAAAAAEI/AxGDKEGJXDg/s1600-h/QConConferenceLogo.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 114px;" src="http://1.bp.blogspot.com/_XQM_82SlH58/SRT9yQhNn0I/AAAAAAAAAEI/AxGDKEGJXDg/s320/QConConferenceLogo.gif" alt="" id="BLOGGER_PHOTO_ID_5266112904172511042" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The &lt;a href="http://qconsf.com/sf2008/schedule/wednesday.jsp"&gt;schedule&lt;/a&gt; includes &lt;a href="http://qconsf.com/sf2008/tracks/"&gt;tracks&lt;/a&gt; on Domain Driven Design (DDD), Domain Specific Languages (DSLs), Service Oriented Architecture (SOA), REST Web Services, Design and Architecture (with several case-studies presentations), Emerging Technologies, and Agile Methodologies.&lt;br /&gt;&lt;br /&gt;I was at the conference &lt;a href="http://qconsf.com/sf2007/conference/"&gt;last year&lt;/a&gt;. It was a great experience.  I am looking forward this year's conference. With several interesting sessions, most of them conflicting with each other, it will be tough to pick which session to attend.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7907778724738449118-2054771035898841908?l=srinip2007.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://srinip2007.blogspot.com/2008/11/qcon-2008-conference.html</link><author>noreply@blogger.com (srinip)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_XQM_82SlH58/SRT9yQhNn0I/AAAAAAAAAEI/AxGDKEGJXDg/s72-c/QConConferenceLogo.gif" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item></channel></rss>
